From d0dafcc46fe8da8912d81123025f29ce643bb2a6 Mon Sep 17 00:00:00 2001 From: Sahil Khan Date: Fri, 4 Oct 2019 14:03:32 +0550 Subject: [PATCH 1/4] bumped to version 11.1.66 --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 1e8ad0ee677..aae6c4f199f 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__ = '11.1.65' +__version__ = '11.1.66' def get_default_company(user=None): '''Get default company for user''' From 7e03e046ec8749ab62ca65f2ff71722065b675d0 Mon Sep 17 00:00:00 2001 From: "Chinmay D. Pai" Date: Sat, 5 Oct 2019 10:18:21 +0530 Subject: [PATCH 2/4] chore: check if discount_percentage exists fixes TypeError: '>' not supported between instances of 'NoneType' and 'float' Signed-off-by: Chinmay D. Pai --- erpnext/regional/italy/e-invoice.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/regional/italy/e-invoice.xml b/erpnext/regional/italy/e-invoice.xml index 0a5bb296a5f..049a7eba61a 100644 --- a/erpnext/regional/italy/e-invoice.xml +++ b/erpnext/regional/italy/e-invoice.xml @@ -19,7 +19,7 @@ {%- endmacro %} {%- macro render_discount_or_margin(item) -%} -{%- if item.discount_percentage > 0.0 or item.margin_type %} +{%- if (item.discount_percentage and item.discount_percentage > 0.0) or item.margin_type %} {%- if item.discount_percentage > 0.0 %} SC From 382735ad2f4989abfffe6ea7676c3e5730f62710 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 10 Oct 2019 16:40:10 +0530 Subject: [PATCH 3/4] fix: Set incoming rate for standalone sales return (#19264) --- erpnext/controllers/selling_controller.py | 5 +++-- erpnext/controllers/stock_controller.py | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index abac43570e4..8b406f27f38 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -306,8 +306,9 @@ class SellingController(StockController): if flt(d.conversion_factor)==0.0: d.conversion_factor = get_conversion_factor(d.item_code, d.uom).get("conversion_factor") or 1.0 return_rate = 0 - if cint(self.is_return) and self.return_against and self.docstatus==1: - return_rate = self.get_incoming_rate_for_sales_return(d.item_code, self.return_against) + if cint(self.is_return) and self.docstatus==1: + return_rate = self.get_incoming_rate_for_sales_return(d.item_code, + d.warehouse, self.return_against) # On cancellation or if return entry submission, make stock ledger entry for # target warehouse first, to update serial no values properly diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 0c7629defb8..4a468205276 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -299,7 +299,7 @@ class StockController(AccountsController): return serialized_items - def get_incoming_rate_for_sales_return(self, item_code, against_document): + def get_incoming_rate_for_sales_return(self, item_code, warehouse, against_document): incoming_rate = 0.0 if against_document and item_code: incoming_rate = frappe.db.sql("""select abs(stock_value_difference / actual_qty) @@ -308,6 +308,9 @@ class StockController(AccountsController): and item_code = %s limit 1""", (self.doctype, against_document, item_code)) incoming_rate = incoming_rate[0][0] if incoming_rate else 0.0 + else: + incoming_rate = get_valuation_rate(item_code, warehouse, + self.doctype, against_document, company=self.company, currency=self.currency) return incoming_rate From aa3d6ed11e870726eb4c679aa1a4b2081c98345f Mon Sep 17 00:00:00 2001 From: Marica Date: Fri, 11 Oct 2019 11:52:29 +0530 Subject: [PATCH 4/4] fix: Margin and Discount percentage set correctly via 'Update Items' (#19173) --- erpnext/controllers/accounts_controller.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 372d5412bb8..4d6e22e1915 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -1114,8 +1114,22 @@ def update_child_qty_rate(parent_doctype, trans_items, parent_doctype_name): else: child_item.rate = flt(d.get("rate")) if flt(child_item.price_list_rate): - child_item.discount_percentage = flt((1 - flt(child_item.rate) / flt(child_item.price_list_rate)) * 100.0, \ - child_item.precision("discount_percentage")) + if flt(child_item.rate) > flt(child_item.price_list_rate): + # if rate is greater than price_list_rate, set margin + # or set discount + child_item.discount_percentage = 0 + child_item.margin_type = "Amount" + child_item.margin_rate_or_amount = flt(child_item.rate - child_item.price_list_rate, + child_item.precision("margin_rate_or_amount")) + child_item.rate_with_margin = child_item.rate + else: + child_item.discount_percentage = flt((1 - flt(child_item.rate) / flt(child_item.price_list_rate)) * 100.0, + child_item.precision("discount_percentage")) + child_item.discount_amount = flt( + child_item.price_list_rate) - flt(child_item.rate) + child_item.margin_type = "" + child_item.margin_rate_or_amount = 0 + child_item.rate_with_margin = 0 child_item.flags.ignore_validate_update_after_submit = True child_item.save()