From 8aa0a280b201be9bbd043db3c1f3288853e64da5 Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Tue, 15 Oct 2019 19:17:20 +0530 Subject: [PATCH 01/14] Revert "fix: Allow disabled links in issue doctype (#19265)" This reverts commit 29a5756f87ccb07bb52ffc9fbc4db0bee891c295. --- erpnext/support/doctype/issue/issue.py | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/support/doctype/issue/issue.py b/erpnext/support/doctype/issue/issue.py index cdf5fedcb8d..b748e3fa46e 100644 --- a/erpnext/support/doctype/issue/issue.py +++ b/erpnext/support/doctype/issue/issue.py @@ -22,7 +22,6 @@ class Issue(Document): return "{0}: {1}".format(_(self.status), self.subject) def validate(self): - self.flags.ignore_disabled = 1 if self.is_new() and self.via_customer_portal: self.flags.create_communication = True From a32618dff46e5bfebb23f68c34ba42592b6d826a Mon Sep 17 00:00:00 2001 From: ashish-greycube Date: Wed, 16 Oct 2019 10:26:25 +0530 Subject: [PATCH 02/14] add coupon code on selling card of desk --- erpnext/config/selling.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/erpnext/config/selling.py b/erpnext/config/selling.py index 928bd5fa328..5db4cc27021 100644 --- a/erpnext/config/selling.py +++ b/erpnext/config/selling.py @@ -127,7 +127,11 @@ def get_data(): "name": "Shipping Rule", "description": _("Rules for adding shipping costs."), }, - + { + "type": "doctype", + "name": "Coupon Code", + "description": _("Define coupon codes."), + } ] }, { From c41e44d964a296145332eafee7c342456e5326ce Mon Sep 17 00:00:00 2001 From: ashish-greycube Date: Wed, 16 Oct 2019 10:38:31 +0530 Subject: [PATCH 03/14] fix: relative link in href --- erpnext/www/all-products/item_row.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/www/all-products/item_row.html b/erpnext/www/all-products/item_row.html index 9fa7fa35395..b61785aa2d1 100644 --- a/erpnext/www/all-products/item_row.html +++ b/erpnext/www/all-products/item_row.html @@ -2,7 +2,7 @@
@@ -10,7 +10,7 @@
- + {{ item.item_name or item.name }}
From d8ddd1e2ec0228ed9f795a88dd3ecb93fb554173 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 22 Oct 2019 14:03:27 +0530 Subject: [PATCH 04/14] fix: not able to select the zero qty batch while making the sales return entry --- erpnext/controllers/queries.py | 39 ++++++++++++-------- erpnext/public/js/controllers/transaction.js | 5 +++ 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py index 19dea080b17..2f6b59f0fbe 100644 --- a/erpnext/controllers/queries.py +++ b/erpnext/controllers/queries.py @@ -280,22 +280,31 @@ def get_batch_no(doctype, txt, searchfield, start, page_len, filters): "page_len": page_len } + having_clause = "having sum(sle.actual_qty) > 0" + if filters.get("is_return"): + having_clause = "" + if args.get('warehouse'): - batch_nos = frappe.db.sql("""select sle.batch_no, round(sum(sle.actual_qty),2), sle.stock_uom, concat('MFG-',batch.manufacturing_date), concat('EXP-',batch.expiry_date) - from `tabStock Ledger Entry` sle - INNER JOIN `tabBatch` batch on sle.batch_no = batch.name - where - batch.disabled = 0 - and sle.item_code = %(item_code)s - and sle.warehouse = %(warehouse)s - and (sle.batch_no like %(txt)s - or batch.manufacturing_date like %(txt)s) - and batch.docstatus < 2 - {0} - {match_conditions} - group by batch_no having sum(sle.actual_qty) > 0 - order by batch.expiry_date, sle.batch_no desc - limit %(start)s, %(page_len)s""".format(cond, match_conditions=get_match_cond(doctype)), args) + batch_nos = frappe.db.sql("""select sle.batch_no, round(sum(sle.actual_qty),2), sle.stock_uom, + concat('MFG-',batch.manufacturing_date), concat('EXP-',batch.expiry_date) + from `tabStock Ledger Entry` sle + INNER JOIN `tabBatch` batch on sle.batch_no = batch.name + where + batch.disabled = 0 + and sle.item_code = %(item_code)s + and sle.warehouse = %(warehouse)s + and (sle.batch_no like %(txt)s + or batch.manufacturing_date like %(txt)s) + and batch.docstatus < 2 + {cond} + {match_conditions} + group by batch_no {having_clause} + order by batch.expiry_date, sle.batch_no desc + limit %(start)s, %(page_len)s""".format( + cond=cond, + match_conditions=get_match_cond(doctype), + having_clause = having_clause + ), args) return batch_nos else: diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index a9b19eddd7e..57a1cc2ca19 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -1652,6 +1652,11 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ 'item_code': item.item_code, 'posting_date': me.frm.doc.posting_date || frappe.datetime.nowdate(), } + + if (doc.is_return) { + filters["is_return"] = 1; + } + if (item.warehouse) filters["warehouse"] = item.warehouse; return { From d5166861ded4ec2cb6dcbaab9f9bf41f044174b8 Mon Sep 17 00:00:00 2001 From: Pranav Nachnekar Date: Wed, 23 Oct 2019 07:46:00 +0000 Subject: [PATCH 05/14] fix:setting incorrect field for party bank account Previously ![wrong](https://user-images.githubusercontent.com/6195660/67369702-0671c000-f569-11e9-9916-a1d1a0c3ddd1.gif) Corrected ![corrected](https://user-images.githubusercontent.com/6195660/67369663-f9ed6780-f568-11e9-859b-cbfa9857b39e.gif) --- erpnext/accounts/doctype/payment_entry/payment_entry.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js index 172d5372a61..1e0b1bcbf16 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.js +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js @@ -308,7 +308,7 @@ frappe.ui.form.on('Payment Entry', { () => { frm.set_party_account_based_on_party = false; if (r.message.bank_account) { - frm.set_value("bank_account", r.message.bank_account); + frm.set_value("party_bank_account", r.message.bank_account); } } ]); From 758635ab91565e1247e82436c2c2059f04498251 Mon Sep 17 00:00:00 2001 From: Sahil Khan Date: Thu, 24 Oct 2019 17:50:19 +0550 Subject: [PATCH 06/14] bumped to version 12.1.7 --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 686d5492ca0..a06e3db9aef 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -5,7 +5,7 @@ import frappe from erpnext.hooks import regional_overrides from frappe.utils import getdate -__version__ = '12.1.6' +__version__ = '12.1.7' def get_default_company(user=None): '''Get default company for user''' From 7bdc6120132c23af4e7e334f6a96aeaae06c8ee7 Mon Sep 17 00:00:00 2001 From: Aditya Hase Date: Thu, 24 Oct 2019 18:01:58 +0530 Subject: [PATCH 07/14] chore: Update module name (#19404) --- erpnext/patches/v10_1/transfer_subscription_to_auto_repeat.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/patches/v10_1/transfer_subscription_to_auto_repeat.py b/erpnext/patches/v10_1/transfer_subscription_to_auto_repeat.py index 5c18985f7ff..3d1a88e800c 100644 --- a/erpnext/patches/v10_1/transfer_subscription_to_auto_repeat.py +++ b/erpnext/patches/v10_1/transfer_subscription_to_auto_repeat.py @@ -4,7 +4,7 @@ from frappe.model.utils.rename_field import rename_field def execute(): - frappe.reload_doc('desk', 'doctype', 'auto_repeat') + frappe.reload_doc('automation', 'doctype', 'auto_repeat') doctypes_to_rename = { 'accounts': ['Journal Entry', 'Payment Entry', 'Purchase Invoice', 'Sales Invoice'], @@ -41,4 +41,4 @@ def drop_columns_from_subscription(): if field in frappe.db.get_table_columns("Subscription"): fields_to_drop['Subscription'].append(field) - frappe.model.delete_fields(fields_to_drop, delete=1) \ No newline at end of file + frappe.model.delete_fields(fields_to_drop, delete=1) From e1f95c0529f0109f7cc70674b4bab75971436550 Mon Sep 17 00:00:00 2001 From: Ashish Shah Date: Fri, 25 Oct 2019 12:16:11 +0530 Subject: [PATCH 08/14] fix: allow_items_not_in_stock should be evaluated (#19398) --- erpnext/shopping_cart/cart.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/shopping_cart/cart.py b/erpnext/shopping_cart/cart.py index f850bc17079..a4c10cfb7d6 100644 --- a/erpnext/shopping_cart/cart.py +++ b/erpnext/shopping_cart/cart.py @@ -66,7 +66,7 @@ def place_order(): from erpnext.selling.doctype.quotation.quotation import _make_sales_order sales_order = frappe.get_doc(_make_sales_order(quotation.name, ignore_permissions=True)) - if not cart_settings.allow_items_not_in_stock: + if not cint(cart_settings.allow_items_not_in_stock): for item in sales_order.get("items"): item.reserved_warehouse, is_stock_item = frappe.db.get_value("Item", item.item_code, ["website_warehouse", "is_stock_item"]) From 8f67ef8a750a0fac04b85935e6a2d5b937666fca Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Fri, 25 Oct 2019 18:55:57 +0530 Subject: [PATCH 09/14] fix: Add patch to replace accounting with accounts in home_settings --- erpnext/patches.txt | 1 + .../replace_accounting_with_accounts_in_home_settings.py | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 erpnext/patches/v12_0/replace_accounting_with_accounts_in_home_settings.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 9f98099257d..ee6bdff6612 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -640,3 +640,4 @@ erpnext.patches.v12_0.create_default_energy_point_rules erpnext.patches.v12_0.set_produced_qty_field_in_sales_order_for_work_order erpnext.patches.v12_0.generate_leave_ledger_entries erpnext.patches.v12_0.set_default_shopify_app_type +erpnext.patches.v12_0.replace_accounting_with_accounts_in_home_settings diff --git a/erpnext/patches/v12_0/replace_accounting_with_accounts_in_home_settings.py b/erpnext/patches/v12_0/replace_accounting_with_accounts_in_home_settings.py new file mode 100644 index 00000000000..09fc4c1b04e --- /dev/null +++ b/erpnext/patches/v12_0/replace_accounting_with_accounts_in_home_settings.py @@ -0,0 +1,5 @@ +import frappe + +def execute(): + frappe.db.sql("""UPDATE `tabUser` SET `home_settings` = REPLACE(`home_settings`, 'Accounting', 'Accounts')""") + frappe.cache().delete_key('home_settings') \ No newline at end of file From 9f483c1fa93baba04ae2735c58feab88ffbab1b6 Mon Sep 17 00:00:00 2001 From: Jai Chavan <40264279+jaichavan@users.noreply.github.com> Date: Sat, 26 Oct 2019 18:45:01 +0530 Subject: [PATCH 10/14] fix: Spelling of Variance --- .../report/budget_variance_report/budget_variance_report.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/report/budget_variance_report/budget_variance_report.py b/erpnext/accounts/report/budget_variance_report/budget_variance_report.py index 146c10c222d..8d65ac87148 100644 --- a/erpnext/accounts/report/budget_variance_report/budget_variance_report.py +++ b/erpnext/accounts/report/budget_variance_report/budget_variance_report.py @@ -69,7 +69,7 @@ def get_columns(filters): for year in fiscal_year: for from_date, to_date in get_period_date_ranges(filters["period"], year[0]): if filters["period"] == "Yearly": - labels = [_("Budget") + " " + str(year[0]), _("Actual ") + " " + str(year[0]), _("Varaiance ") + " " + str(year[0])] + labels = [_("Budget") + " " + str(year[0]), _("Actual ") + " " + str(year[0]), _("Variance ") + " " + str(year[0])] for label in labels: columns.append(label+":Float:150") else: From ce5200d70045f02345e84634b1ca3f3d9dc7a7f6 Mon Sep 17 00:00:00 2001 From: Sahil Khan Date: Thu, 24 Oct 2019 17:50:19 +0550 Subject: [PATCH 11/14] bumped to version 12.1.7 --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 686d5492ca0..a06e3db9aef 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -5,7 +5,7 @@ import frappe from erpnext.hooks import regional_overrides from frappe.utils import getdate -__version__ = '12.1.6' +__version__ = '12.1.7' def get_default_company(user=None): '''Get default company for user''' From e6f86c934dc8100980ac009b1d6e39a51d711d0b Mon Sep 17 00:00:00 2001 From: Sahil Khan Date: Sat, 26 Oct 2019 20:22:19 +0550 Subject: [PATCH 12/14] bumped to version 12.1.8 --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index a06e3db9aef..d031bc5bb17 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -5,7 +5,7 @@ import frappe from erpnext.hooks import regional_overrides from frappe.utils import getdate -__version__ = '12.1.7' +__version__ = '12.1.8' def get_default_company(user=None): '''Get default company for user''' From 83b58352cec927b8b8baec9ebf23dd45a3749195 Mon Sep 17 00:00:00 2001 From: Suraj Shetty <13928957+surajshetty3416@users.noreply.github.com> Date: Mon, 28 Oct 2019 12:05:30 +0530 Subject: [PATCH 13/14] fix: Overwrite default cost center if item has default cost center set. (#19405) --- erpnext/selling/doctype/sales_order/sales_order.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index af78ab250d9..c4c3c0f81e3 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -205,7 +205,7 @@ class SalesOrder(SellingController): if self.coupon_code: from erpnext.accounts.doctype.pricing_rule.utils import update_coupon_code_count update_coupon_code_count(self.coupon_code,'cancelled') - + def update_project(self): if frappe.db.get_single_value('Selling Settings', 'sales_update_frequency') != "Each Transaction": return @@ -661,12 +661,15 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False): if source_parent.project: target.cost_center = frappe.db.get_value("Project", source_parent.project, "cost_center") - if not target.cost_center and target.item_code: + if target.item_code: item = get_item_defaults(target.item_code, source_parent.company) item_group = get_item_group_defaults(target.item_code, source_parent.company) - target.cost_center = item.get("selling_cost_center") \ + cost_center = item.get("selling_cost_center") \ or item_group.get("selling_cost_center") + if cost_center: + target.cost_center = cost_center + doclist = get_mapped_doc("Sales Order", source_name, { "Sales Order": { "doctype": "Sales Invoice", From 9942fcc8cb8d2d45ebd285b4876e2f69c725f897 Mon Sep 17 00:00:00 2001 From: Deepesh Garg <42651287+deepeshgarg007@users.noreply.github.com> Date: Mon, 28 Oct 2019 12:08:31 +0530 Subject: [PATCH 14/14] fix: Better validation msg for difference account in Stock Entry (#19400) * fix: Better validation msg for difference account * fix: Make primary info bold --- erpnext/stock/doctype/stock_entry/stock_entry.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 7fa7d3b0b6b..55e02a46ff2 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -241,7 +241,9 @@ class StockEntry(StockController): for d in self.get("items"): if not d.expense_account: - frappe.throw(_("Please enter Difference Account")) + frappe.throw(_("Please enter Difference Account or set default Stock Adjustment Account for company {0}") + .format(frappe.bold(self.company))) + elif self.is_opening == "Yes" and frappe.db.get_value("Account", d.expense_account, "report_type") == "Profit and Loss": frappe.throw(_("Difference Account must be a Asset/Liability type account, since this Stock Entry is an Opening Entry"), OpeningEntryAccountError)