diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py index 6979f1ffd9..87afd74d08 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.py +++ b/accounts/doctype/sales_invoice/sales_invoice.py @@ -197,18 +197,10 @@ class DocType(SellingController): if pos: self.doc.conversion_rate = flt(pos.conversion_rate) - if not self.doc.debit_to: - self.doc.debit_to = self.doc.customer and webnotes.conn.get_value("Account", { - "name": self.doc.customer + " - " + self.get_company_abbr(), - "docstatus": ["!=", 2] - }) or pos.customer_account - - if self.doc.debit_to and not self.doc.customer: - self.doc.customer = webnotes.conn.get_value("Account", { - "name": self.doc.debit_to, - "master_type": "Customer" - }, "master_name") - + if not for_validate: + self.doc.customer = pos.customer + self.set_customer_defaults() + for fieldname in ('territory', 'naming_series', 'currency', 'charge', 'letter_head', 'tc_name', 'selling_price_list', 'company', 'select_print_heading', 'cash_bank_account'): if (not for_validate) or (for_validate and not self.doc.fields.get(fieldname)): diff --git a/hr/doctype/employee/employee.py b/hr/doctype/employee/employee.py index 89f9856221..f1646f7265 100644 --- a/hr/doctype/employee/employee.py +++ b/hr/doctype/employee/employee.py @@ -156,29 +156,33 @@ class DocType: raise_exception=InvalidLeaveApproverError) def update_dob_event(self): - get_events = webnotes.conn.sql("""select name from `tabEvent` where repeat_on='Every Year' - and ref_type='Employee' and ref_name=%s""", (self.doc.name), as_dict=1) + if self.doc.date_of_birth: + get_events = webnotes.conn.sql("""select name from `tabEvent` where repeat_on='Every Year' + and ref_type='Employee' and ref_name=%s""", self.doc.name) - starts_on = self.doc.date_of_birth + " 00:00:00" - ends_on = self.doc.date_of_birth + " 00:15:00" + starts_on = self.doc.date_of_birth + " 00:00:00" + ends_on = self.doc.date_of_birth + " 00:15:00" - if get_events: - webnotes.conn.sql("""update `tabEvent` set starts_on=%s, ends_on=%s - where name=%s""", (get_events[0].name, starts_on, ends_on) + if get_events: + webnotes.conn.sql("""update `tabEvent` set starts_on=%s, ends_on=%s + where name=%s""", (starts_on, ends_on, get_events[0][0])) + else: + webnotes.bean({ + "doctype": "Event", + "subject": _("Birthday") + ": " + self.doc.employee_name, + "starts_on": starts_on, + "ends_on": ends_on, + "event_type": "Public", + "all_day": 1, + "send_reminder": 1, + "repeat_this_event": 1, + "repeat_on": "Every Year", + "ref_type": "Employee", + "ref_name": self.doc.name + }).insert() else: - event_wrapper = webnotes.bean({ - "doctype": "Event", - "subject": _("Birthday") + ": " + self.doc.employee_name, - "starts_on": starts_on, - "ends_on": ends_on, - "event_type": "Public", - "all_day": 1, - "send_reminder": 1, - "repeat_this_event": 1, - "repeat_on": "Every Year", - "ref_type": "Employee", - "ref_name": self.doc.name - }).insert() + webnotes.conn.sql("""delete from `tabEvent` where repeat_on='Every Year' and + ref_type='Employee' and ref_name=%s""", self.doc.name) @webnotes.whitelist() def get_retirement_date(date_of_birth=None): diff --git a/patches/august_2013/p02_rename_price_list.py b/patches/august_2013/p02_rename_price_list.py index cea7c79856..a66a0c24f4 100644 --- a/patches/august_2013/p02_rename_price_list.py +++ b/patches/august_2013/p02_rename_price_list.py @@ -1,3 +1,7 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals import webnotes def execute(): diff --git a/patches/august_2013/p04_employee_birthdays.py b/patches/august_2013/p04_employee_birthdays.py new file mode 100644 index 0000000000..6e8481d0d6 --- /dev/null +++ b/patches/august_2013/p04_employee_birthdays.py @@ -0,0 +1,11 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals +import webnotes + +def execute(): + for employee in webnotes.conn.sql_list("""select name from `tabEmployee` where ifnull(date_of_birth, '')!=''"""): + obj = webnotes.get_obj("Employee", employee) + obj.update_dob_event() + \ No newline at end of file diff --git a/patches/patch_list.py b/patches/patch_list.py index bd6b9a3ff2..9e6938b44e 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -254,4 +254,5 @@ patch_list = [ "patches.august_2013.p01_hr_settings", "patches.august_2013.p02_rename_price_list", "patches.august_2013.p03_pos_setting_replace_customer_account", + "patches.august_2013.p04_employee_birthdays", ] \ No newline at end of file