diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py index df7bc0bb044..39acbac6d5e 100644 --- a/erpnext/controllers/status_updater.py +++ b/erpnext/controllers/status_updater.py @@ -92,8 +92,8 @@ status_map = { "Delivery Note": [ ["Draft", None], ["To Bill", "eval:self.per_billed < 100 and self.docstatus == 1"], - ["Return Issued", "eval:self.per_returned == 100 and self.docstatus == 1"], ["Completed", "eval:self.per_billed == 100 and self.docstatus == 1"], + ["Return Issued", "eval:self.per_returned == 100 and self.docstatus == 1"], ["Cancelled", "eval:self.docstatus==2"], ["Closed", "eval:self.status=='Closed' and self.docstatus != 2"], ], diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 6bf1c7a6c23..9e6ab281b85 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -991,7 +991,13 @@ class StockController(AccountsController): def update_billing_percentage(self, update_modified=True): target_ref_field = "amount" if self.doctype == "Delivery Note": - target_ref_field = "amount - (returned_qty * rate)" + total_amount = total_returned = 0 + for item in self.items: + total_amount += flt(item.amount) + total_returned += flt(item.returned_qty * item.rate) + + if total_returned < total_amount: + target_ref_field = "(amount - (returned_qty * rate))" self._update_percent_field( {