From 382735ad2f4989abfffe6ea7676c3e5730f62710 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 10 Oct 2019 16:40:10 +0530 Subject: [PATCH] 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