From e29fd41f591af75905c9e13f67405372ba588565 Mon Sep 17 00:00:00 2001 From: Afshan Date: Sat, 28 Nov 2020 11:13:50 +0530 Subject: [PATCH 1/5] fix: overriding po --- erpnext/controllers/selling_controller.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index 515239a982fb..4e6e8008aec6 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -371,10 +371,11 @@ def update_stock_ledger(self): self.make_sl_entries(sl_entries) def set_po_nos(self): - if self.doctype == 'Sales Invoice' and hasattr(self, "items"): - self.set_pos_for_sales_invoice() - if self.doctype == 'Delivery Note' and hasattr(self, "items"): - self.set_pos_for_delivery_note() + if not self.po_no: + if self.doctype == 'Sales Invoice' and hasattr(self, "items"): + self.set_pos_for_sales_invoice() + if self.doctype == 'Delivery Note' and hasattr(self, "items"): + self.set_pos_for_delivery_note() def set_pos_for_sales_invoice(self): po_nos = [] From c3af55a95f8d4e065fb845a966cd363a2eca3108 Mon Sep 17 00:00:00 2001 From: Afshan Date: Sat, 28 Nov 2020 13:26:26 +0530 Subject: [PATCH 2/5] fix: po --- erpnext/controllers/selling_controller.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index 4e6e8008aec6..3844adf3ff98 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -371,11 +371,10 @@ def update_stock_ledger(self): self.make_sl_entries(sl_entries) def set_po_nos(self): - if not self.po_no: - if self.doctype == 'Sales Invoice' and hasattr(self, "items"): - self.set_pos_for_sales_invoice() - if self.doctype == 'Delivery Note' and hasattr(self, "items"): - self.set_pos_for_delivery_note() + if self.doctype == 'Sales Invoice' and hasattr(self, "items") and not self.po_no: + self.set_pos_for_sales_invoice() + if self.doctype == 'Delivery Note' and hasattr(self, "items") and not self.po_no: + self.set_pos_for_delivery_note() def set_pos_for_sales_invoice(self): po_nos = [] From 5546ae222578848964b5d55d58daa5ae38d0a5a1 Mon Sep 17 00:00:00 2001 From: Afshan Date: Thu, 3 Dec 2020 12:27:55 +0530 Subject: [PATCH 3/5] fix: refactor condition --- erpnext/controllers/selling_controller.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index 3844adf3ff98..8c0f532a962e 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -42,7 +42,7 @@ def validate(self): self.validate_max_discount() self.validate_selling_price() self.set_qty_as_per_stock_uom() - self.set_po_nos() + self.set_po_nos(for_validate=True) self.set_gross_profit() set_default_income_account_for_item(self) self.set_customer_address() @@ -370,20 +370,26 @@ def update_stock_ledger(self): })) self.make_sl_entries(sl_entries) - def set_po_nos(self): - if self.doctype == 'Sales Invoice' and hasattr(self, "items") and not self.po_no: + def set_po_nos(self, for_validate=False): + if for_validate and self.po_no: + return + if self.doctype == 'Sales Invoice' and hasattr(self, "items"): self.set_pos_for_sales_invoice() - if self.doctype == 'Delivery Note' and hasattr(self, "items") and not self.po_no: + if self.doctype == 'Delivery Note' and hasattr(self, "items"): self.set_pos_for_delivery_note() def set_pos_for_sales_invoice(self): po_nos = [] + if self.po_no: + po_nos.append(self.po_no) self.get_po_nos('Sales Order', 'sales_order', po_nos) self.get_po_nos('Delivery Note', 'delivery_note', po_nos) self.po_no = ', '.join(list(set(x.strip() for x in ','.join(po_nos).split(',')))) def set_pos_for_delivery_note(self): po_nos = [] + if self.po_no: + po_nos.append(self.po_no) self.get_po_nos('Sales Order', 'against_sales_order', po_nos) self.get_po_nos('Sales Invoice', 'against_sales_invoice', po_nos) self.po_no = ', '.join(list(set(x.strip() for x in ','.join(po_nos).split(',')))) From 6dd3717127a923e88de02073819655b27431f8b0 Mon Sep 17 00:00:00 2001 From: Afshan Date: Thu, 3 Dec 2020 12:52:31 +0530 Subject: [PATCH 4/5] fix: condition --- erpnext/controllers/selling_controller.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index 8c0f532a962e..e0136b4ad829 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -371,11 +371,12 @@ def update_stock_ledger(self): self.make_sl_entries(sl_entries) def set_po_nos(self, for_validate=False): - if for_validate and self.po_no: - return if self.doctype == 'Sales Invoice' and hasattr(self, "items"): - self.set_pos_for_sales_invoice() + if for_validate and self.po_no: + return if self.doctype == 'Delivery Note' and hasattr(self, "items"): + if for_validate and self.po_no: + return self.set_pos_for_delivery_note() def set_pos_for_sales_invoice(self): From a6951c5ee8e86d9fcc315d3360b4df3f2fb00776 Mon Sep 17 00:00:00 2001 From: Afshan Date: Thu, 3 Dec 2020 14:32:06 +0530 Subject: [PATCH 5/5] fix: missing code --- erpnext/controllers/selling_controller.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index e0136b4ad829..4dbd7bfa1866 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -374,6 +374,7 @@ def set_po_nos(self, for_validate=False): if self.doctype == 'Sales Invoice' and hasattr(self, "items"): if for_validate and self.po_no: return + self.set_pos_for_sales_invoice() if self.doctype == 'Delivery Note' and hasattr(self, "items"): if for_validate and self.po_no: return