From 6fa44fefc3907faeb7807a523bb83bae72ff9977 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Wed, 10 Feb 2021 15:48:32 +0530 Subject: [PATCH 01/15] fix: Use new favicon --- erpnext/hooks.py | 2 +- erpnext/public/images/erpnext-favicon.svg | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 erpnext/public/images/erpnext-favicon.svg diff --git a/erpnext/hooks.py b/erpnext/hooks.py index bc1d7628ff..109d9216e7 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -78,7 +78,7 @@ website_generators = ["Item Group", "Item", "BOM", "Sales Partner", "Job Opening", "Student Admission"] website_context = { - "favicon": "/assets/erpnext/images/favicon.png", + "favicon": "/assets/erpnext/images/erpnext-favicon.svg", "splash_image": "/assets/erpnext/images/erpnext-logo.svg" } diff --git a/erpnext/public/images/erpnext-favicon.svg b/erpnext/public/images/erpnext-favicon.svg new file mode 100644 index 0000000000..a3ac3bb2ce --- /dev/null +++ b/erpnext/public/images/erpnext-favicon.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file From 5f27c9e100cd2acf6c95380fb2c634acd069bad2 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Wed, 10 Feb 2021 15:48:58 +0530 Subject: [PATCH 02/15] chore: Remove unnecessary image files --- erpnext/public/images/erp-icon.svg | 21 ------------------ erpnext/public/images/erpnext-12.svg | 26 ----------------------- erpnext/public/images/erpnext-footer.png | Bin 1937 -> 0 bytes erpnext/public/images/erpnext-logo.png | Bin 11639 -> 0 bytes erpnext/public/images/erpnext_logo.svg | 4 ---- erpnext/public/images/favicon.png | Bin 1696 -> 0 bytes erpnext/public/images/splash.png | Bin 10615 -> 0 bytes 7 files changed, 51 deletions(-) delete mode 100644 erpnext/public/images/erp-icon.svg delete mode 100644 erpnext/public/images/erpnext-12.svg delete mode 100644 erpnext/public/images/erpnext-footer.png delete mode 100644 erpnext/public/images/erpnext-logo.png delete mode 100644 erpnext/public/images/erpnext_logo.svg delete mode 100644 erpnext/public/images/favicon.png delete mode 100644 erpnext/public/images/splash.png diff --git a/erpnext/public/images/erp-icon.svg b/erpnext/public/images/erp-icon.svg deleted file mode 100644 index 6bec40cc62..0000000000 --- a/erpnext/public/images/erp-icon.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - erpnext-logo - Created with Sketch. - - - - - \ No newline at end of file diff --git a/erpnext/public/images/erpnext-12.svg b/erpnext/public/images/erpnext-12.svg deleted file mode 100644 index fcc8e46fdd..0000000000 --- a/erpnext/public/images/erpnext-12.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - version-12 - Created with Sketch. - - - - - - - - - - - - - - - - - 12 - - - - \ No newline at end of file diff --git a/erpnext/public/images/erpnext-footer.png b/erpnext/public/images/erpnext-footer.png deleted file mode 100644 index ffff7756b7794c22794636846f8feacddd31cb7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1937 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 diff --git a/erpnext/public/images/erpnext_logo.svg b/erpnext/public/images/erpnext_logo.svg deleted file mode 100644 index af3a84953b..0000000000 --- a/erpnext/public/images/erpnext_logo.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/erpnext/public/images/favicon.png b/erpnext/public/images/favicon.png deleted file mode 100644 index b6948856f88b93a5de936e256b09845680fa0ff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1696 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 a;FvxakH}_neuKx15#*$lCCk4U1^yqOq<=I3 From fd0e8a4e2320ae65dfb058ad9d72cf55f8ec8304 Mon Sep 17 00:00:00 2001 From: prssanna Date: Wed, 10 Feb 2021 16:31:41 +0530 Subject: [PATCH 03/15] fix: also fetch item variants if hide variants is disabled --- erpnext/shopping_cart/product_query.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/erpnext/shopping_cart/product_query.py b/erpnext/shopping_cart/product_query.py index 8daf3d7dac..36d446ed0f 100644 --- a/erpnext/shopping_cart/product_query.py +++ b/erpnext/shopping_cart/product_query.py @@ -23,8 +23,10 @@ class ProductQuery: self.cart_settings = frappe.get_doc("Shopping Cart Settings") self.page_length = self.settings.products_per_page or 20 self.fields = ['name', 'item_name', 'item_code', 'website_image', 'variant_of', 'has_variants', 'item_group', 'image', 'web_long_description', 'description', 'route'] - self.filters = [['show_in_website', '=', 1]] - self.or_filters = [] + self.filters = [] + self.or_filters = [['show_in_website', '=', 1]] + if not self.settings.get('hide_variants'): + self.or_filters.append(['show_variant_in_website', '=', 1]) def query(self, attributes=None, fields=None, search_term=None, start=0): """Summary From 3237f5bb88d5a60e7c0a75289d652c24cf2fa10c Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Wed, 10 Feb 2021 16:36:49 +0530 Subject: [PATCH 04/15] fix: Inpatient Medication Orders report test (#24596) --- .../doctype/inpatient_record/test_inpatient_record.py | 2 +- .../test_inpatient_medication_orders.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py b/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py index ea0d1e982d..a8c7720a0a 100644 --- a/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py +++ b/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py @@ -145,7 +145,7 @@ def create_inpatient(patient): def get_healthcare_service_unit(unit_name=None): if not unit_name: - service_unit = get_random("Healthcare Service Unit", filters={"inpatient_occupancy": 1}) + service_unit = get_random("Healthcare Service Unit", filters={"inpatient_occupancy": 1, "company": "_Test Company"}) else: service_unit = frappe.db.exists("Healthcare Service Unit", {"healthcare_service_unit_name": unit_name}) diff --git a/erpnext/healthcare/report/inpatient_medication_orders/test_inpatient_medication_orders.py b/erpnext/healthcare/report/inpatient_medication_orders/test_inpatient_medication_orders.py index 0d3f45f500..4b461f1a97 100644 --- a/erpnext/healthcare/report/inpatient_medication_orders/test_inpatient_medication_orders.py +++ b/erpnext/healthcare/report/inpatient_medication_orders/test_inpatient_medication_orders.py @@ -119,7 +119,7 @@ def create_records(patient): ip_record.expected_length_of_stay = 0 ip_record.save() ip_record.reload() - service_unit = get_healthcare_service_unit() + service_unit = get_healthcare_service_unit('Test Service Unit Ip Occupancy') admit_patient(ip_record, service_unit, now_datetime()) ipmo = create_ipmo(patient) From 7b2afaf3497615599d74c294722c919dca801a85 Mon Sep 17 00:00:00 2001 From: Saqib Date: Wed, 10 Feb 2021 17:21:12 +0530 Subject: [PATCH 05/15] fix: NoneType has no len() (#24600) --- erpnext/regional/india/e_invoice/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/regional/india/e_invoice/utils.py b/erpnext/regional/india/e_invoice/utils.py index e64be4b645..5f701f2aa6 100644 --- a/erpnext/regional/india/e_invoice/utils.py +++ b/erpnext/regional/india/e_invoice/utils.py @@ -23,7 +23,7 @@ def validate_einvoice_fields(doc): invalid_doctype = doc.doctype != 'Sales Invoice' invalid_supply_type = doc.get('gst_category') not in ['Registered Regular', 'SEZ', 'Overseas', 'Deemed Export'] company_transaction = doc.get('billing_address_gstin') == doc.get('company_gstin') - no_taxes_applied = len(doc.get('taxes')) == 0 + no_taxes_applied = len(doc.get('taxes', [])) == 0 if not einvoicing_enabled or invalid_doctype or invalid_supply_type or company_transaction or no_taxes_applied: return From df6e20887d85500c312e2a1bf478d41e38e1a771 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Thu, 11 Feb 2021 11:04:39 +0530 Subject: [PATCH 06/15] fix: update total in words after updating items (#24602) * fix: Update total in words after Updating items Update total in words after Updating items in sales/purchase orders. Port of #24592 Closes ISS-20-21-09425 * test: Add test for total & words after update item Add test for total & words after updating items in sales order. --- erpnext/controllers/accounts_controller.py | 1 + erpnext/selling/doctype/sales_order/test_sales_order.py | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 21874fe2ca..991eef1d21 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -1521,6 +1521,7 @@ def update_child_qty_rate(parent_doctype, trans_items, parent_doctype_name, chil parent.flags.ignore_validate_update_after_submit = True parent.set_qty_as_per_stock_uom() parent.calculate_taxes_and_totals() + parent.set_total_in_words() if parent_doctype == "Sales Order": make_packing_list(parent) parent.set_gross_profit() diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py index e259367e58..cbfab8204f 100644 --- a/erpnext/selling/doctype/sales_order/test_sales_order.py +++ b/erpnext/selling/doctype/sales_order/test_sales_order.py @@ -325,6 +325,9 @@ class TestSalesOrder(unittest.TestCase): create_dn_against_so(so.name, 4) make_sales_invoice(so.name) + prev_total = so.get("base_total") + prev_total_in_words = so.get("base_in_words") + first_item_of_so = so.get("items")[0] trans_item = json.dumps([ {'item_code' : first_item_of_so.item_code, 'rate' : first_item_of_so.rate, \ @@ -340,6 +343,12 @@ class TestSalesOrder(unittest.TestCase): self.assertEqual(so.get("items")[-1].amount, 1400) self.assertEqual(so.status, 'To Deliver and Bill') + updated_total = so.get("base_total") + updated_total_in_words = so.get("base_in_words") + + self.assertEqual(updated_total, prev_total+1400) + self.assertNotEqual(updated_total_in_words, prev_total_in_words) + def test_update_child_removing_item(self): so = make_sales_order(**{ "item_list": [{ From 8609d3143099e4814da44a0c689b899653a710ef Mon Sep 17 00:00:00 2001 From: Afshan <33727827+AfshanKhan@users.noreply.github.com> Date: Thu, 11 Feb 2021 11:05:48 +0530 Subject: [PATCH 07/15] fix: amend cancelled job offer (#24589) --- erpnext/hr/doctype/job_offer/job_offer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/hr/doctype/job_offer/job_offer.py b/erpnext/hr/doctype/job_offer/job_offer.py index c397a3f5ca..7e650f7691 100644 --- a/erpnext/hr/doctype/job_offer/job_offer.py +++ b/erpnext/hr/doctype/job_offer/job_offer.py @@ -16,7 +16,7 @@ class JobOffer(Document): def validate(self): self.validate_vacancies() - job_offer = frappe.db.exists("Job Offer",{"job_applicant": self.job_applicant}) + job_offer = frappe.db.exists("Job Offer",{"job_applicant": self.job_applicant, "docstatus": ["!=", 2]}) if job_offer and job_offer != self.name: frappe.throw(_("Job Offer: {0} is already for Job Applicant: {1}").format(frappe.bold(job_offer), frappe.bold(self.job_applicant))) From e3c72a3d718e6d560d8eed0c18609f0723afd6cd Mon Sep 17 00:00:00 2001 From: Anuja Pawar <60467153+Anuja-pawar@users.noreply.github.com> Date: Thu, 11 Feb 2021 11:06:12 +0530 Subject: [PATCH 08/15] fix: fix filters for the report (#24594) --- erpnext/regional/report/irs_1099/irs_1099.py | 22 +++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/erpnext/regional/report/irs_1099/irs_1099.py b/erpnext/regional/report/irs_1099/irs_1099.py index c1c8aedc9f..4e57ff7ea3 100644 --- a/erpnext/regional/report/irs_1099/irs_1099.py +++ b/erpnext/regional/report/irs_1099/irs_1099.py @@ -32,6 +32,10 @@ def execute(filters=None): data = [] columns = get_columns() + conditions = "" + if filters.supplier_group: + conditions += "AND s.supplier_group = %s" %frappe.db.escape(filters.get("supplier_group")) + data = frappe.db.sql(""" SELECT s.supplier_group as "supplier_group", @@ -46,15 +50,17 @@ def execute(filters=None): AND s.irs_1099 = 1 AND gl.fiscal_year = %(fiscal_year)s AND gl.party_type = "Supplier" + AND gl.company = %(company)s + {conditions} + GROUP BY gl.party + ORDER BY - gl.party DESC - """, { - "fiscal_year": filters.fiscal_year, - "supplier_group": filters.supplier_group, - "company": filters.company - }, as_dict=True) + gl.party DESC""".format(conditions=conditions), { + "fiscal_year": filters.fiscal_year, + "company": filters.company + }, as_dict=True) return columns, data @@ -79,13 +85,13 @@ def get_columns(): "fieldname": "tax_id", "label": _("Tax ID"), "fieldtype": "Data", - "width": 120 + "width": 200 }, { "fieldname": "payments", "label": _("Total Payments"), "fieldtype": "Currency", - "width": 120 + "width": 200 } ] From e816ed89e6923bc5d378ccc0440e68aa3b61d414 Mon Sep 17 00:00:00 2001 From: Anupam Kumar Date: Thu, 11 Feb 2021 11:12:13 +0530 Subject: [PATCH 09/15] fix: portal permission issue (#24577) --- .../setup/doctype/customer_group/customer_group.json | 11 ++++++++++- erpnext/setup/doctype/item_group/item_group.json | 11 ++++++++++- erpnext/setup/doctype/territory/territory.json | 11 ++++++++++- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/erpnext/setup/doctype/customer_group/customer_group.json b/erpnext/setup/doctype/customer_group/customer_group.json index 10f9bd0030..0e2ed9efcf 100644 --- a/erpnext/setup/doctype/customer_group/customer_group.json +++ b/erpnext/setup/doctype/customer_group/customer_group.json @@ -139,7 +139,7 @@ "idx": 1, "is_tree": 1, "links": [], - "modified": "2020-03-18 18:10:13.048492", + "modified": "2021-02-08 17:01:52.162202", "modified_by": "Administrator", "module": "Setup", "name": "Customer Group", @@ -189,6 +189,15 @@ "permlevel": 1, "read": 1, "role": "Sales Manager" + }, + { + "email": 1, + "export": 1, + "print": 1, + "report": 1, + "role": "Customer", + "select": 1, + "share": 1 } ], "search_fields": "parent_customer_group", diff --git a/erpnext/setup/doctype/item_group/item_group.json b/erpnext/setup/doctype/item_group/item_group.json index 31624edb49..e835214487 100644 --- a/erpnext/setup/doctype/item_group/item_group.json +++ b/erpnext/setup/doctype/item_group/item_group.json @@ -214,7 +214,7 @@ "is_tree": 1, "links": [], "max_attachments": 3, - "modified": "2020-12-30 12:57:38.876956", + "modified": "2021-02-08 17:02:44.951572", "modified_by": "Administrator", "module": "Setup", "name": "Item Group", @@ -271,6 +271,15 @@ "read": 1, "report": 1, "role": "Accounts User" + }, + { + "email": 1, + "export": 1, + "print": 1, + "report": 1, + "role": "Customer", + "select": 1, + "share": 1 } ], "search_fields": "parent_item_group", diff --git a/erpnext/setup/doctype/territory/territory.json b/erpnext/setup/doctype/territory/territory.json index aa8e0486f5..a25bda054b 100644 --- a/erpnext/setup/doctype/territory/territory.json +++ b/erpnext/setup/doctype/territory/territory.json @@ -123,7 +123,7 @@ "idx": 1, "is_tree": 1, "links": [], - "modified": "2020-03-18 18:11:36.623555", + "modified": "2021-02-08 17:10:03.767426", "modified_by": "Administrator", "module": "Setup", "name": "Territory", @@ -166,6 +166,15 @@ { "read": 1, "role": "Maintenance User" + }, + { + "email": 1, + "export": 1, + "print": 1, + "report": 1, + "role": "Customer", + "select": 1, + "share": 1 } ], "search_fields": "parent_territory,territory_manager", From bb05acb60dce762269af1a20e786e26d3f892ef6 Mon Sep 17 00:00:00 2001 From: Kanchan Chauhan Date: Thu, 11 Feb 2021 11:18:59 +0530 Subject: [PATCH 10/15] fix(Leave Application): List view fix (#24550) --- erpnext/hr/doctype/leave_application/leave_application_list.js | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/hr/doctype/leave_application/leave_application_list.js b/erpnext/hr/doctype/leave_application/leave_application_list.js index cbb4b73227..a3c03b1bec 100644 --- a/erpnext/hr/doctype/leave_application/leave_application_list.js +++ b/erpnext/hr/doctype/leave_application/leave_application_list.js @@ -1,5 +1,6 @@ frappe.listview_settings['Leave Application'] = { add_fields: ["leave_type", "employee", "employee_name", "total_leave_days", "from_date", "to_date"], + has_indicator_for_draft: 1, get_indicator: function (doc) { if (doc.status === "Approved") { return [__("Approved"), "green", "status,=,Approved"]; From 30c8873f2446fdd02250cc0b92ef13346f6f7be8 Mon Sep 17 00:00:00 2001 From: Jannat Patel <31363128+pateljannat@users.noreply.github.com> Date: Thu, 11 Feb 2021 11:46:48 +0530 Subject: [PATCH 11/15] fix: validation for disabled warehouse (#24539) * fix: validation for disabled warehouse * fix: better function name * fix: validation in stock ledger entry --- erpnext/controllers/stock_controller.py | 3 ++- .../stock/doctype/stock_ledger_entry/stock_ledger_entry.py | 3 ++- erpnext/stock/utils.py | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 4b5e347970..2ae9dc7102 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -313,7 +313,7 @@ class StockController(AccountsController): return serialized_items def validate_warehouse(self): - from erpnext.stock.utils import validate_warehouse_company + from erpnext.stock.utils import validate_warehouse_company, validate_disabled_warehouse warehouses = list(set([d.warehouse for d in self.get("items") if getattr(d, "warehouse", None)])) @@ -329,6 +329,7 @@ class StockController(AccountsController): warehouses.extend(from_warehouse) for w in warehouses: + validate_disabled_warehouse(w) validate_warehouse_company(w, self.company) def update_billing_percentage(self, update_modified=True): diff --git a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py index a5c303ccb4..36d09efd1a 100644 --- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py +++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py @@ -27,10 +27,11 @@ class StockLedgerEntry(Document): def validate(self): self.flags.ignore_submit_comment = True - from erpnext.stock.utils import validate_warehouse_company + from erpnext.stock.utils import validate_warehouse_company, validate_disabled_warehouse self.validate_mandatory() self.validate_item() self.validate_batch() + validate_disabled_warehouse(self.warehouse) validate_warehouse_company(self.warehouse, self.company) self.scrub_posting_time() self.validate_and_set_fiscal_year() diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py index 4ea7e4fcd6..0af3d90822 100644 --- a/erpnext/stock/utils.py +++ b/erpnext/stock/utils.py @@ -5,7 +5,7 @@ from __future__ import unicode_literals import frappe, erpnext from frappe import _ import json -from frappe.utils import flt, cstr, nowdate, nowtime +from frappe.utils import flt, cstr, nowdate, nowtime, get_link_to_form from six import string_types @@ -284,6 +284,10 @@ def is_group_warehouse(warehouse): if frappe.db.get_value("Warehouse", warehouse, "is_group"): frappe.throw(_("Group node warehouse is not allowed to select for transactions")) +def validate_disabled_warehouse(warehouse): + if frappe.db.get_value("Warehouse", warehouse, "disabled"): + frappe.throw(_("Disabled Warehouse {0} cannot be used for this transaction.").format(get_link_to_form('Warehouse', warehouse))) + def update_included_uom_in_report(columns, result, include_uom, conversion_factors): if not include_uom or not conversion_factors: return From 15f4672ffac9ad2d77b44abe0996fba4de211042 Mon Sep 17 00:00:00 2001 From: Saqib Date: Thu, 11 Feb 2021 12:11:44 +0530 Subject: [PATCH 12/15] fix: pos closing valdation (#24605) --- .../pos_closing_entry/pos_closing_entry.py | 15 ++++++++++----- .../pos_invoice_merge_log.py | 4 ++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py b/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py index edf3d5a574..f5224a269e 100644 --- a/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py +++ b/erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py @@ -20,11 +20,16 @@ class POSClosingEntry(StatusUpdater): self.validate_pos_invoices() def validate_pos_closing(self): - user = frappe.get_all("POS Closing Entry", - filters = { "user": self.user, "docstatus": 1, "pos_profile": self.pos_profile }, - or_filters = { - "period_start_date": ("between", [self.period_start_date, self.period_end_date]), - "period_end_date": ("between", [self.period_start_date, self.period_end_date]) + user = frappe.db.sql(""" + SELECT name FROM `tabPOS Closing Entry` + WHERE + user = %(user)s AND docstatus = 1 AND pos_profile = %(profile)s AND + (period_start_date between %(start)s and %(end)s OR period_end_date between %(start)s and %(end)s) + """, { + 'user': self.user, + 'profile': self.pos_profile, + 'start': self.period_start_date, + 'end': self.period_end_date }) if user: diff --git a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py index 58409cd3c6..c88d67989b 100644 --- a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py +++ b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py @@ -212,8 +212,8 @@ def consolidate_pos_invoices(pos_invoices=[], closing_entry={}): invoice_by_customer = get_invoice_customer_map(invoices) if len(invoices) >= 5 and closing_entry: - enqueue_job(create_merge_logs, invoice_by_customer, closing_entry) closing_entry.set_status(update=True, status='Queued') + enqueue_job(create_merge_logs, invoice_by_customer, closing_entry) else: create_merge_logs(invoice_by_customer, closing_entry) @@ -225,8 +225,8 @@ def unconsolidate_pos_invoices(closing_entry): ) if len(merge_logs) >= 5: - enqueue_job(cancel_merge_logs, merge_logs, closing_entry) closing_entry.set_status(update=True, status='Queued') + enqueue_job(cancel_merge_logs, merge_logs, closing_entry) else: cancel_merge_logs(merge_logs, closing_entry) From e37a5c2646b28fd69e3fe1a00056f1ea283c937e Mon Sep 17 00:00:00 2001 From: Saqib Date: Thu, 11 Feb 2021 13:10:52 +0530 Subject: [PATCH 13/15] fix: customer_currency referenced before assignment (#24607) --- erpnext/accounts/doctype/pos_invoice/pos_invoice.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py index 8d8babbe75..165294b24c 100644 --- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py +++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py @@ -317,13 +317,14 @@ class POSInvoice(SalesInvoice): ) customer_group_price_list = frappe.db.get_value("Customer Group", customer_group, 'default_price_list') selling_price_list = customer_price_list or customer_group_price_list or profile.get('selling_price_list') + if customer_currency != profile.get('currency'): + self.set('currency', customer_currency) + else: selling_price_list = profile.get('selling_price_list') if selling_price_list: self.set('selling_price_list', selling_price_list) - if customer_currency != profile.get('currency'): - self.set('currency', customer_currency) # set pos values in items for item in self.get("items"): From aa00eb98987fb26435ce02ed10019ffa32d0ff0b Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Thu, 11 Feb 2021 13:23:01 +0530 Subject: [PATCH 14/15] fix: reposting issue with same posting date and posting time (#24570) * fix: reposting issue with same posting date and posting time * Update erpnext/stock/stock_ledger.py Co-authored-by: Nabin Hait --- erpnext/stock/stock_ledger.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index 46919c8c8c..95f8c438b3 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -202,8 +202,7 @@ class update_entries_after(object): where item_code = %(item_code)s and warehouse = %(warehouse)s - and voucher_type = %(voucher_type)s - and voucher_no = %(voucher_no)s + and timestamp(posting_date, time_format(posting_time, '%H:%i:%s')) = timestamp(%(posting_date)s, time_format(%(posting_time)s, '%H:%i:%s')) order by creation ASC for update @@ -794,4 +793,4 @@ def get_future_sle_with_negative_qty(args): and qty_after_transaction + {0} < 0 order by timestamp(posting_date, posting_time) asc limit 1 - """.format(args.actual_qty), args, as_dict=1) \ No newline at end of file + """.format(args.actual_qty), args, as_dict=1) From 47f784aa9cbf76d226bc0bca6a37f6e07618079f Mon Sep 17 00:00:00 2001 From: Shariq Ansari <30859809+shariquerik@users.noreply.github.com> Date: Thu, 11 Feb 2021 13:23:51 +0530 Subject: [PATCH 15/15] fix: Lead not getting linked to call logs (#24593) Co-authored-by: Nabin Hait --- erpnext/crm/doctype/utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/erpnext/crm/doctype/utils.py b/erpnext/crm/doctype/utils.py index 4ccd9bd73b..f244daffea 100644 --- a/erpnext/crm/doctype/utils.py +++ b/erpnext/crm/doctype/utils.py @@ -78,7 +78,9 @@ def get_scheduled_employees_for_popup(communication_medium): def strip_number(number): if not number: return - # strip 0 from the start of the number for proper number comparisions + # strip + and 0 from the start of the number for proper number comparisions + # eg. +7888383332 should match with 7888383332 # eg. 07888383332 should match with 7888383332 + number = number.lstrip('+') number = number.lstrip('0') return number