diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py index d1ec4b187ab..228f2bde11a 100755 --- a/erpnext/hr/doctype/leave_application/leave_application.py +++ b/erpnext/hr/doctype/leave_application/leave_application.py @@ -239,14 +239,15 @@ def get_total_leave_days(leave_app): if not leave_app.half_day: tot_days = date_diff(leave_app.to_date, leave_app.from_date) + 1 if frappe.db.get_value("Leave Type", leave_app.leave_type, "include_holiday"): + ret = { + 'total_leave_days' : flt(tot_days) + } + else: holidays = leave_app.get_holidays() ret = { 'total_leave_days' : flt(tot_days)-flt(holidays) } - else: - ret = { - 'total_leave_days' : flt(tot_days) - } + return ret @frappe.whitelist() diff --git a/erpnext/patches.txt b/erpnext/patches.txt index ca6e137c57a..75c1dff5765 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -181,6 +181,6 @@ erpnext.patches.v5_1.rename_roles erpnext.patches.v5_1.default_bom execute:frappe.delete_doc("DocType", "Party Type") execute:frappe.delete_doc("Module Def", "Contacts") -erpnext.patches.v5_4.fix_reserved_qty_and_sle_for_packed_items +erpnext.patches.v5_4.fix_reserved_qty_and_sle_for_packed_items # 30-07-2015 execute:frappe.reload_doctype("Leave Type") -execute:frappe.db.sql("update `tabLeave Type` set include_holiday=1") +execute:frappe.db.sql("update `tabLeave Type` set include_holiday=0") \ No newline at end of file diff --git a/erpnext/patches/v5_4/fix_reserved_qty_and_sle_for_packed_items.py b/erpnext/patches/v5_4/fix_reserved_qty_and_sle_for_packed_items.py index 0d46d99c349..f1632abd5ac 100644 --- a/erpnext/patches/v5_4/fix_reserved_qty_and_sle_for_packed_items.py +++ b/erpnext/patches/v5_4/fix_reserved_qty_and_sle_for_packed_items.py @@ -10,15 +10,19 @@ def execute(): where docstatus = 2 and ifnull(update_stock, 0) = 1""") if cancelled_invoices: + repost_for = frappe.db.sql("""select distinct item_code, warehouse from `tabStock Ledger Entry` + where voucher_type = 'Sales Invoice' and voucher_no in (%s)""" + % (', '.join(['%s']*len(cancelled_invoices))), tuple(cancelled_invoices)) + frappe.db.sql("""delete from `tabStock Ledger Entry` where voucher_type = 'Sales Invoice' and voucher_no in (%s)""" % (', '.join(['%s']*len(cancelled_invoices))), tuple(cancelled_invoices)) - for item_code, warehouse in frappe.db.sql("select item_code, warehouse from tabBin where ifnull(reserved_qty, 0) < 0"): - - repost_actual_qty(item_code, warehouse) - - update_bin_qty(item_code, warehouse, { - "reserved_qty": get_reserved_qty(item_code, warehouse) - }) - \ No newline at end of file + for item_code, warehouse in repost_for: + repost_actual_qty(item_code, warehouse) + + for item_code, warehouse in frappe.db.sql("""select distinct item_code, warehouse + from `tabPacked Item` where parenttype = 'Sales Invoice' and docstatus = 1"""): + update_bin_qty(item_code, warehouse, { + "reserved_qty": get_reserved_qty(item_code, warehouse) + }) \ No newline at end of file