[git fixes] salary manager, time log title, notificaitons
diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.json b/erpnext/accounts/doctype/pricing_rule/pricing_rule.json
index e2a6873..43fd366 100644
--- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.json
+++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.json
@@ -72,6 +72,7 @@
    "permlevel": 0
   }, 
   {
+   "depends_on": "eval: doc.buying || doc.selling", 
    "fieldname": "applicable_for", 
    "fieldtype": "Select", 
    "label": "Applicable For", 
@@ -244,7 +245,7 @@
  "icon": "icon-gift", 
  "idx": 1, 
  "istable": 0, 
- "modified": "2015-02-05 05:11:42.530822", 
+ "modified": "2015-02-26 04:26:13.240166", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Pricing Rule", 
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index ca85a61..f0a2f08 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -48,7 +48,8 @@
 	def set_missing_lead_customer_details(self):
 		if getattr(self, "customer", None):
 			from erpnext.accounts.party import _get_party_details
-			party_details = _get_party_details(self.customer, ignore_permissions=self.flags.ignore_permissions)
+			party_details = _get_party_details(self.customer,
+				ignore_permissions=self.flags.ignore_permissions)
 			if not self.meta.get_field("sales_team"):
 				party_details.pop("sales_team")
 
diff --git a/erpnext/crm/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py
index 141747fb..de4dc37 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.py
+++ b/erpnext/crm/doctype/opportunity/opportunity.py
@@ -157,6 +157,7 @@
 def make_quotation(source_name, target_doc=None):
 	def set_missing_values(source, target):
 		quotation = frappe.get_doc(target)
+		quotation.currency = None # set it as default from customer
 		quotation.run_method("set_missing_values")
 		quotation.run_method("calculate_taxes_and_totals")
 
diff --git a/erpnext/hr/doctype/appraisal/test_appraisal.py b/erpnext/hr/doctype/appraisal/test_appraisal.py
index 9ec8bda..f70dc48 100644
--- a/erpnext/hr/doctype/appraisal/test_appraisal.py
+++ b/erpnext/hr/doctype/appraisal/test_appraisal.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2015, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors
 # See license.txt
 from __future__ import unicode_literals
 
diff --git a/erpnext/hr/doctype/appraisal_template/test_appraisal_template.py b/erpnext/hr/doctype/appraisal_template/test_appraisal_template.py
index 3215f33..e3029d9 100644
--- a/erpnext/hr/doctype/appraisal_template/test_appraisal_template.py
+++ b/erpnext/hr/doctype/appraisal_template/test_appraisal_template.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2015, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and Contributors
 # See license.txt
 from __future__ import unicode_literals
 
diff --git a/erpnext/hr/doctype/salary_manager/salary_manager.js b/erpnext/hr/doctype/salary_manager/salary_manager.js
index 825bf26..834f5d4 100644
--- a/erpnext/hr/doctype/salary_manager/salary_manager.js
+++ b/erpnext/hr/doctype/salary_manager/salary_manager.js
@@ -5,7 +5,7 @@
 	if(!cur_frm.ss_html)
 		cur_frm.ss_html = $a(cur_frm.fields_dict['activity_log'].wrapper,'div');
 	cur_frm.ss_html.innerHTML =
-		'<div class="panel"><div class="panel-heading">'+__("Activity Log:")+'</div>'+msg+'</div>';
+		'<div class="padding"><h4>'+__("Activity Log:")+'</h4>'+msg+'</div>';
 }
 
 //Create salary slip
@@ -38,25 +38,8 @@
 }
 
 cur_frm.cscript.make_jv = function(doc, dt, dn) {
-	var call_back = function(r, rt){
-		var jv = frappe.model.make_new_doc_and_get_name('Journal Entry');
-		jv = locals['Journal Entry'][jv];
-		jv.voucher_type = 'Bank Entry';
-		jv.user_remark = __('Payment of salary for the month {0} and year {1}', [doc.month, doc.fiscal_year]);
-		jv.fiscal_year = doc.fiscal_year;
-		jv.company = doc.company;
-		jv.posting_date = dateutil.obj_to_str(new Date());
-
-		// credit to bank
-		var d1 = frappe.model.add_child(jv, 'Journal Entry Account', 'accounts');
-		d1.account = r.message['default_bank_account'];
-		d1.credit = r.message['amount']
-
-		// debit to salary account
-		var d2 = frappe.model.add_child(jv, 'Journal Entry Account', 'accounts');
-		d2.debit = r.message['amount']
-
-		loaddoc('Journal Entry', jv.name);
-	}
-	return $c_obj(doc, 'get_acc_details', '', call_back);
+	return $c_obj(doc, 'make_journal_entry', '', function(r) {
+		var doc = frappe.model.sync(r.message)[0];
+		frappe.set_route("Form", doc.doctype, doc.name);
+	});
 }
diff --git a/erpnext/hr/doctype/salary_manager/salary_manager.json b/erpnext/hr/doctype/salary_manager/salary_manager.json
index f49832e..21560a4 100644
--- a/erpnext/hr/doctype/salary_manager/salary_manager.json
+++ b/erpnext/hr/doctype/salary_manager/salary_manager.json
@@ -8,15 +8,9 @@
  "document_type": "Other", 
  "fields": [
   {
-   "fieldname": "document_description", 
-   "fieldtype": "HTML", 
-   "label": "Document Description", 
-   "options": "<div class=\"alert alert-info\">You can generate multiple salary slips based on the selected criteria, submit and mail those to the employee directly from here</div>", 
-   "permlevel": 0
-  }, 
-  {
    "fieldname": "section_break0", 
    "fieldtype": "Section Break", 
+   "label": "Select Employees", 
    "permlevel": 0
   }, 
   {
@@ -43,6 +37,19 @@
    "permlevel": 0
   }, 
   {
+   "description": "Check if you want to send salary slip in mail to each employee while submitting salary slip", 
+   "fieldname": "send_email", 
+   "fieldtype": "Check", 
+   "label": "Send Email", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "column_break1", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
+   "width": "50%"
+  }, 
+  {
    "fieldname": "department", 
    "fieldtype": "Link", 
    "label": "Department", 
@@ -57,10 +64,11 @@
    "permlevel": 0
   }, 
   {
-   "fieldname": "column_break1", 
-   "fieldtype": "Column Break", 
+   "fieldname": "select_payroll_year_and_month", 
+   "fieldtype": "Section Break", 
+   "label": "Select Payroll Year and Month", 
    "permlevel": 0, 
-   "width": "50%"
+   "precision": ""
   }, 
   {
    "fieldname": "fiscal_year", 
@@ -71,6 +79,12 @@
    "reqd": 1
   }, 
   {
+   "fieldname": "column_break_11", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
    "fieldname": "month", 
    "fieldtype": "Select", 
    "label": "Month", 
@@ -79,16 +93,11 @@
    "reqd": 1
   }, 
   {
-   "description": "Check if you want to send salary slip in mail to each employee while submitting salary slip", 
-   "fieldname": "send_email", 
-   "fieldtype": "Check", 
-   "label": "Send Email", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "section_break1", 
+   "fieldname": "process_payroll", 
    "fieldtype": "Section Break", 
-   "permlevel": 0
+   "label": "Process Payroll", 
+   "permlevel": 0, 
+   "precision": ""
   }, 
   {
    "fieldname": "column_break2", 
@@ -144,7 +153,7 @@
  "icon": "icon-cog", 
  "idx": 1, 
  "issingle": 1, 
- "modified": "2015-02-05 05:11:44.876131", 
+ "modified": "2015-02-25 07:21:04.778082", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Salary Manager", 
diff --git a/erpnext/hr/doctype/salary_manager/salary_manager.py b/erpnext/hr/doctype/salary_manager/salary_manager.py
index 6425820..eeb6ac0 100644
--- a/erpnext/hr/doctype/salary_manager/salary_manager.py
+++ b/erpnext/hr/doctype/salary_manager/salary_manager.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.utils import cint, flt
+from frappe.utils import cint, flt, nowdate
 from frappe import _
 
 from frappe.model.document import Document
@@ -75,7 +75,6 @@
 	def create_sal_slip(self):
 		"""
 			Creates salary slip for selected employees if already not created
-
 		"""
 
 		emp_list = self.get_emp_list()
@@ -99,9 +98,9 @@
 
 
 	def create_log(self, ss_list):
-		log = "<b>No employee for the above selected criteria OR salary slip already created</b>"
+		log = "<p>No employee for the above selected criteria OR salary slip already created</p>"
 		if ss_list:
-			log = "<b>Created Salary Slip has been created: </b>\
+			log = "<b>Salary Slip Created For</b>\
 			<br><br>%s" % '<br>'.join(ss_list)
 		return log
 
@@ -149,7 +148,7 @@
 		if submitted_ss:
 			mail_sent_msg = self.send_email and " (Mail has been sent to the employee)" or ""
 			log = """
-			<b>Submitted Salary Slips%s:</b>\
+			<b>Salary Slips Submitted %s:</b>\
 			<br><br> %s <br><br>
 			""" % (mail_sent_msg, '<br>'.join(submitted_ss))
 
@@ -179,17 +178,27 @@
 		return flt(tot[0][0])
 
 
-	def get_acc_details(self):
-		"""
-			get default bank account,default salary acount from company
-		"""
-		amt = self.get_total_salary()
+	def make_journal_entry(self, salary_account = None):
+		amount = self.get_total_salary()
 		default_bank_account = frappe.db.get_value("Company", self.company,
 			"default_bank_account")
-		if not default_bank_account:
-			frappe.msgprint(_("You can set Default Bank Account in Company master"))
 
-		return {
-			'default_bank_account' : default_bank_account,
-			'amount' : amt
-		}
+		journal_entry = frappe.new_doc('Journal Entry')
+		journal_entry.voucher_type = 'Bank Entry'
+		journal_entry.user_remark = _('Payment of salary for the month {0} and year {1}').format(self.month,
+			self.fiscal_year)
+		journal_entry.fiscal_year = self.fiscal_year
+		journal_entry.company = self.company
+		journal_entry.posting_date = nowdate()
+		journal_entry.set("accounts", [
+			{
+				"account": salary_account,
+				"debit": amount
+			},
+			{
+				"account": default_bank_account,
+				"credit": amount
+			},
+		])
+
+		return journal_entry.as_dict()
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.json b/erpnext/manufacturing/doctype/production_order/production_order.json
index 2962c48..bf03b2b 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.json
+++ b/erpnext/manufacturing/doctype/production_order/production_order.json
@@ -351,7 +351,7 @@
  "idx": 1, 
  "in_create": 0, 
  "is_submittable": 1, 
- "modified": "2015-02-25 01:01:11.550217", 
+ "modified": "2015-02-26 04:03:28.164713", 
  "modified_by": "Administrator", 
  "module": "Manufacturing", 
  "name": "Production Order", 
@@ -380,5 +380,6 @@
    "report": 1, 
    "role": "Material User"
   }
- ]
+ ], 
+ "title_field": "production_item"
 }
\ No newline at end of file
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 0566a94..a016262 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -130,3 +130,4 @@
 erpnext.patches.v5_0.update_account_types
 erpnext.patches.v5_0.update_sms_sender
 erpnext.patches.v5_0.set_appraisal_remarks
+erpnext.patches.v5_0.update_time_log_title
diff --git a/erpnext/patches/v5_0/set_appraisal_remarks.py b/erpnext/patches/v5_0/set_appraisal_remarks.py
index b71de2f..8652c32 100644
--- a/erpnext/patches/v5_0/set_appraisal_remarks.py
+++ b/erpnext/patches/v5_0/set_appraisal_remarks.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and Contributors
 # License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
diff --git a/erpnext/patches/v5_0/update_journal_entry_title.py b/erpnext/patches/v5_0/update_journal_entry_title.py
index d1b1d40..eaa2be0 100644
--- a/erpnext/patches/v5_0/update_journal_entry_title.py
+++ b/erpnext/patches/v5_0/update_journal_entry_title.py
@@ -1,3 +1,7 @@
+# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
 import frappe
 
 def execute():
diff --git a/erpnext/patches/v5_0/update_sms_sender.py b/erpnext/patches/v5_0/update_sms_sender.py
index 9dde44d..7ffc703 100644
--- a/erpnext/patches/v5_0/update_sms_sender.py
+++ b/erpnext/patches/v5_0/update_sms_sender.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and Contributors
 # License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
diff --git a/erpnext/projects/doctype/time_log/time_log.json b/erpnext/projects/doctype/time_log/time_log.json
index 9194f82..2316cc8 100644
--- a/erpnext/projects/doctype/time_log/time_log.json
+++ b/erpnext/projects/doctype/time_log/time_log.json
@@ -229,12 +229,20 @@
    "permlevel": 1, 
    "print_hide": 1, 
    "read_only": 0
+  }, 
+  {
+   "fieldname": "title", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "label": "Title", 
+   "permlevel": 0, 
+   "precision": ""
   }
  ], 
  "icon": "icon-time", 
  "idx": 1, 
  "is_submittable": 1, 
- "modified": "2015-02-24 03:57:27.652685", 
+ "modified": "2015-02-26 02:22:10.312376", 
  "modified_by": "Administrator", 
  "module": "Projects", 
  "name": "Time Log", 
@@ -271,5 +279,5 @@
    "write": 1
   }
  ], 
- "title_field": "activity_type"
+ "title_field": "title"
 }
\ No newline at end of file
diff --git a/erpnext/projects/doctype/time_log/time_log.py b/erpnext/projects/doctype/time_log/time_log.py
index 8e15efe..3e7d667 100644
--- a/erpnext/projects/doctype/time_log/time_log.py
+++ b/erpnext/projects/doctype/time_log/time_log.py
@@ -1,8 +1,6 @@
 # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 # License: GNU General Public License v3. See license.txt
 
-# For license information, please see license.txt
-
 from __future__ import unicode_literals
 import frappe, json
 from frappe import _
@@ -19,6 +17,7 @@
 class TimeLog(Document):
 	def validate(self):
 		self.set_status()
+		self.set_title()
 		self.validate_overlap()
 		self.validate_timings()
 		self.calculate_total_hours()
@@ -53,6 +52,16 @@
 		if self.sales_invoice:
 			self.status="Billed"
 
+	def set_title(self):
+		if self.production_order:
+			self.title = _("{0} for {1}").format(self.operation, self.production_order)
+		elif self.task:
+			self.title = _("{0} for {1}").format(self.activity_type, self.task)
+		elif self.project:
+			self.title = _("{0} for {1}").format(self.activity_type, self.project)
+		else:
+			self.title = self.activity_type
+
 	def validate_overlap(self):
 		"""Checks if 'Time Log' entries overlap for a user, workstation. """
 		self.validate_overlap_for("user")