From 51135a152220eed69f600aee796c5a8c9b90702e Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 25 Mar 2016 11:13:11 +0530 Subject: [PATCH 1/6] [fix] fix get holidays in leave application --- .../leave_application/leave_application.py | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py index 5bf7e9ddfa..a28da1993f 100755 --- a/erpnext/hr/doctype/leave_application/leave_application.py +++ b/erpnext/hr/doctype/leave_application/leave_application.py @@ -335,16 +335,25 @@ def get_leave_allocation_records(date, employee=None): def get_holidays(employee, from_date, to_date): - tot_hol = frappe.db.sql("""select count(*) from `tabHoliday` h1, `tabHoliday List` h2, `tabEmployee` e1 - where e1.name = %s and h1.parent = h2.name and e1.holiday_list = h2.name - and h1.holiday_date between %s and %s""", (employee, from_date, to_date))[0][0] - - if not tot_hol: - tot_hol = frappe.db.sql("""select count(distinct holiday_date) from `tabHoliday` h1, `tabHoliday List` h2 + '''get holidays between two dates for the given employee''' + def get_from_holiday_list(from_date, to_date, holiday_list): + return frappe.db.sql("""select count(distinct holiday_date) from `tabHoliday` h1, `tabHoliday List` h2 where h1.parent = h2.name and h1.holiday_date between %s and %s - and h2.is_default = 1""", (from_date, to_date))[0][0] + and h2.name = %s""", (from_date, to_date, default_holiday_list))[0][0] - return tot_hol + holiday_list, company = frappe.db.get_value('Employee', employee, ['holiday_list', 'company']) + if holiday_list: + holidays = get_from_holiday_list(from_date, to_date, holiday_list) + + else: + default_holiday_list = frappe.db.get_value('Company', company, 'default_holiday_list') + + if default_holiday_list: + holidays = get_from_holiday_list(from_date, to_date, default_holiday_list) + else: + frappe.throw(_('Please set a default holiday list for Employee {0} or Company {0}').format(employee, company)) + + return holidays def is_lwp(leave_type): lwp = frappe.db.sql("select is_lwp from `tabLeave Type` where name = %s", leave_type) From 1b5edcbbd8cf1d72080230ffd43251e9e66887dd Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 25 Mar 2016 11:22:15 +0530 Subject: [PATCH 2/6] [fix] holiday_list issues in maintenance schedule too --- erpnext/hr/doctype/employee/employee.py | 7 +++---- .../leave_application/leave_application.py | 19 ++++--------------- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/erpnext/hr/doctype/employee/employee.py b/erpnext/hr/doctype/employee/employee.py index db580f4d15..9e6afff8bb 100755 --- a/erpnext/hr/doctype/employee/employee.py +++ b/erpnext/hr/doctype/employee/employee.py @@ -229,14 +229,13 @@ def get_employees_who_are_born_today(): and status = 'Active'""", {"date": today()}, as_dict=True) def get_holiday_list_for_employee(employee, raise_exception=True): - employee = frappe.db.get_value("Employee", employee, ["holiday_list", "company"], as_dict=True) - holiday_list = employee.holiday_list + holiday_list, company = frappe.db.get_value("Employee", employee, ["holiday_list", "company"]) if not holiday_list: - holiday_list = frappe.db.get_value("Company", employee.company, "default_holiday_list") + holiday_list = frappe.db.get_value("Company", company, "default_holiday_list") if not holiday_list and raise_exception: - frappe.throw(_("Please set a Holiday List for either the Employee or the Company")) + frappe.throw(_('Please set a default Holiday List for Employee {0} or Company {0}').format(employee, company)) return holiday_list diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py index a28da1993f..6882034b0d 100755 --- a/erpnext/hr/doctype/leave_application/leave_application.py +++ b/erpnext/hr/doctype/leave_application/leave_application.py @@ -336,22 +336,11 @@ def get_leave_allocation_records(date, employee=None): def get_holidays(employee, from_date, to_date): '''get holidays between two dates for the given employee''' - def get_from_holiday_list(from_date, to_date, holiday_list): - return frappe.db.sql("""select count(distinct holiday_date) from `tabHoliday` h1, `tabHoliday List` h2 - where h1.parent = h2.name and h1.holiday_date between %s and %s - and h2.name = %s""", (from_date, to_date, default_holiday_list))[0][0] + holiday_list = get_holiday_list_for_employee(employee) - holiday_list, company = frappe.db.get_value('Employee', employee, ['holiday_list', 'company']) - if holiday_list: - holidays = get_from_holiday_list(from_date, to_date, holiday_list) - - else: - default_holiday_list = frappe.db.get_value('Company', company, 'default_holiday_list') - - if default_holiday_list: - holidays = get_from_holiday_list(from_date, to_date, default_holiday_list) - else: - frappe.throw(_('Please set a default holiday list for Employee {0} or Company {0}').format(employee, company)) + holidays = frappe.db.sql("""select count(distinct holiday_date) from `tabHoliday` h1, `tabHoliday List` h2 + where h1.parent = h2.name and h1.holiday_date between %s and %s + and h2.name = %s""", (from_date, to_date, holiday_list))[0][0] return holidays From 3becd4239ff54ec4f7f1c27f912ed15596e2dbb7 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 25 Mar 2016 12:00:22 +0600 Subject: [PATCH 3/6] bumped to version 6.27.4 --- erpnext/__version__.py | 2 +- erpnext/hooks.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/__version__.py b/erpnext/__version__.py index 36a86ab12c..96bd1375d6 100644 --- a/erpnext/__version__.py +++ b/erpnext/__version__.py @@ -1,2 +1,2 @@ from __future__ import unicode_literals -__version__ = '6.27.3' +__version__ = '6.27.4' diff --git a/erpnext/hooks.py b/erpnext/hooks.py index 6e86d84b17..8291afdeec 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -7,7 +7,7 @@ app_publisher = "Frappe Technologies Pvt. Ltd." app_description = """ERP made simple""" app_icon = "icon-th" app_color = "#e74c3c" -app_version = "6.27.3" +app_version = "6.27.4" app_email = "info@erpnext.com" app_license = "GNU General Public License (v3)" source_link = "https://github.com/frappe/erpnext" diff --git a/setup.py b/setup.py index bd41d1db72..018f767490 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from setuptools import setup, find_packages from pip.req import parse_requirements -version = "6.27.3" +version = "6.27.4" requirements = parse_requirements("requirements.txt", session="") setup( From 47b89756d9a09b8c7f139dad497963da80bbee8d Mon Sep 17 00:00:00 2001 From: Valmik Jangla Date: Mon, 28 Mar 2016 12:18:10 +0530 Subject: [PATCH 4/6] Fix for Holiday List in Maintenance Schedule --- .../doctype/maintenance_schedule/maintenance_schedule.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py index 0469972935..5fab1ace72 100644 --- a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py +++ b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.py @@ -94,7 +94,11 @@ class MaintenanceSchedule(TransactionBase): validated = False employee = frappe.db.get_value("Sales Person", sales_person, "employee") - holiday_list = get_holiday_list_for_employee(employee) + if employee: + holiday_list = get_holiday_list_for_employee(employee) + else: + holiday_list = frappe.db.get_value("Company", self.company, "default_holiday_list") + holidays = frappe.db.sql_list('''select holiday_date from `tabHoliday` where parent=%s''', holiday_list) if not validated and holidays: From b176dea74ef231ca27b455cc0e98913e55bed0e8 Mon Sep 17 00:00:00 2001 From: Neil Trini Lasrado Date: Mon, 28 Mar 2016 13:23:47 +0530 Subject: [PATCH 5/6] Fixed issues in Pricing Rule if multiple pricing rules existed with same priority --- erpnext/accounts/doctype/pricing_rule/pricing_rule.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py index cd6bcf450b..736d03c800 100644 --- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py +++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py @@ -242,6 +242,8 @@ def filter_pricing_rules(args, pricing_rules): for p in pricing_rules: if p.item_code and args.variant_of: p.variant_of = args.variant_of + else: + p.variant_of = None # find pricing rule with highest priority if pricing_rules: @@ -251,7 +253,7 @@ def filter_pricing_rules(args, pricing_rules): # apply internal priority all_fields = ["item_code", "item_group", "brand", "customer", "customer_group", "territory", - "supplier", "supplier_type", "campaign", "sales_partner"] + "supplier", "supplier_type", "campaign", "sales_partner", "variant_of"] if len(pricing_rules) > 1: for field_set in [["item_code", "variant_of", "item_group", "brand"], From 8573aee8b8c28d3a3437e1899fd2974379600394 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 29 Mar 2016 11:19:46 +0600 Subject: [PATCH 6/6] bumped to version 6.27.5 --- erpnext/__version__.py | 2 +- erpnext/hooks.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/__version__.py b/erpnext/__version__.py index 96bd1375d6..9ebc832a59 100644 --- a/erpnext/__version__.py +++ b/erpnext/__version__.py @@ -1,2 +1,2 @@ from __future__ import unicode_literals -__version__ = '6.27.4' +__version__ = '6.27.5' diff --git a/erpnext/hooks.py b/erpnext/hooks.py index 8291afdeec..fd54dd7284 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -7,7 +7,7 @@ app_publisher = "Frappe Technologies Pvt. Ltd." app_description = """ERP made simple""" app_icon = "icon-th" app_color = "#e74c3c" -app_version = "6.27.4" +app_version = "6.27.5" app_email = "info@erpnext.com" app_license = "GNU General Public License (v3)" source_link = "https://github.com/frappe/erpnext" diff --git a/setup.py b/setup.py index 018f767490..581e065565 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from setuptools import setup, find_packages from pip.req import parse_requirements -version = "6.27.4" +version = "6.27.5" requirements = parse_requirements("requirements.txt", session="") setup(