From 5d77e3ce05be0ca723c07c1897306f4a862efe4f Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 4 Jul 2023 17:26:48 +0530 Subject: [PATCH 1/5] fix: accepted warehouse and rejected warehouse can't be same (cherry picked from commit d618aaef3240d5051cacdae72f35d07b9b02dc06) # Conflicts: # erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json # erpnext/stock/doctype/purchase_receipt/purchase_receipt.json # erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json # erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json --- .../purchase_invoice/purchase_invoice.json | 5 +++++ .../purchase_invoice_item.json | 3 ++- erpnext/controllers/buying_controller.py | 17 +++++++++++------ .../purchase_receipt/purchase_receipt.json | 5 +++++ .../purchase_receipt/test_purchase_receipt.py | 9 +++++++++ .../purchase_receipt_item.json | 3 ++- .../subcontracting_receipt.json | 5 +++++ .../subcontracting_receipt.py | 18 ++++++++++++++---- .../subcontracting_receipt_item.json | 5 +++++ 9 files changed, 58 insertions(+), 12 deletions(-) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json index 5a08f045b8c8..dfc4f3c92156 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json @@ -547,6 +547,7 @@ "depends_on": "update_stock", "fieldname": "rejected_warehouse", "fieldtype": "Link", + "ignore_user_permissions": 1, "label": "Rejected Warehouse", "no_copy": 1, "options": "Warehouse", @@ -1573,7 +1574,11 @@ "idx": 204, "is_submittable": 1, "links": [], +<<<<<<< HEAD "modified": "2023-04-29 12:57:50.832598", +======= + "modified": "2023-07-04 17:22:59.145031", +>>>>>>> d618aaef32 (fix: accepted warehouse and rejected warehouse can't be same) "modified_by": "Administrator", "module": "Accounts", "name": "Purchase Invoice", diff --git a/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json b/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json index f8c1975863e3..92db6b61bb97 100644 --- a/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json +++ b/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json @@ -421,6 +421,7 @@ { "fieldname": "rejected_warehouse", "fieldtype": "Link", + "ignore_user_permissions": 1, "label": "Rejected Warehouse", "options": "Warehouse" }, @@ -881,7 +882,7 @@ "idx": 1, "istable": 1, "links": [], - "modified": "2023-07-02 18:39:41.495723", + "modified": "2023-07-04 17:22:21.501152", "modified_by": "Administrator", "module": "Accounts", "name": "Purchase Invoice Item", diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py index 04636de6406a..fa94a4a88d40 100644 --- a/erpnext/controllers/buying_controller.py +++ b/erpnext/controllers/buying_controller.py @@ -410,18 +410,23 @@ def validate_purchase_return(self): # validate rate with ref PR def validate_rejected_warehouse(self): - for d in self.get("items"): - if flt(d.rejected_qty) and not d.rejected_warehouse: + for item in self.get("items"): + if flt(item.rejected_qty) and not item.rejected_warehouse: if self.rejected_warehouse: - d.rejected_warehouse = self.rejected_warehouse + item.rejected_warehouse = self.rejected_warehouse - if not d.rejected_warehouse: + if not item.rejected_warehouse: frappe.throw( - _("Row #{0}: Rejected Warehouse is mandatory against rejected Item {1}").format( - d.idx, d.item_code + _("Row #{0}: Rejected Warehouse is mandatory for the rejected Item {1}").format( + item.idx, item.item_code ) ) + if item.get("rejected_warehouse") and (item.get("rejected_warehouse") == item.get("warehouse")): + frappe.throw( + _("Row #{0}: Accepted Warehouse and Rejected Warehouse cannot be same").format(item.idx) + ) + # validate accepted and rejected qty def validate_accepted_rejected_qty(self): for d in self.get("items"): diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json index dc61ec4d243c..e1f084e0932e 100755 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json @@ -437,6 +437,7 @@ { "fieldname": "rejected_warehouse", "fieldtype": "Link", + "ignore_user_permissions": 1, "label": "Rejected Warehouse", "no_copy": 1, "oldfieldname": "rejected_warehouse", @@ -1239,7 +1240,11 @@ "idx": 261, "is_submittable": 1, "links": [], +<<<<<<< HEAD "modified": "2023-05-07 20:18:25.458185", +======= + "modified": "2023-07-04 17:23:17.025390", +>>>>>>> d618aaef32 (fix: accepted warehouse and rejected warehouse can't be same) "modified_by": "Administrator", "module": "Stock", "name": "Purchase Receipt", diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py index 4743f3a4d7f7..c87b3587feca 100644 --- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py @@ -323,6 +323,15 @@ def test_serial_no_supplier(self): pr.cancel() self.assertFalse(frappe.db.get_value("Serial No", pr_row_1_serial_no, "warehouse")) + def test_rejected_warehouse_filter(self): + pr = frappe.copy_doc(test_records[0]) + pr.get("items")[0].item_code = "_Test Serialized Item With Series" + pr.get("items")[0].qty = 3 + pr.get("items")[0].rejected_qty = 2 + pr.get("items")[0].received_qty = 5 + pr.get("items")[0].rejected_warehouse = pr.get("items")[0].warehouse + self.assertRaises(frappe.ValidationError, pr.save) + def test_rejected_serial_no(self): pr = frappe.copy_doc(test_records[0]) pr.get("items")[0].item_code = "_Test Serialized Item With Series" diff --git a/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json index 98d6154f22e0..76f476edf8a0 100644 --- a/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json +++ b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json @@ -495,6 +495,7 @@ { "fieldname": "rejected_warehouse", "fieldtype": "Link", + "ignore_user_permissions": 1, "label": "Rejected Warehouse", "no_copy": 1, "oldfieldname": "rejected_warehouse", @@ -1022,7 +1023,7 @@ "idx": 1, "istable": 1, "links": [], - "modified": "2023-07-02 18:40:48.152637", + "modified": "2023-07-04 17:22:02.830029", "modified_by": "Administrator", "module": "Stock", "name": "Purchase Receipt Item", diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json index 3385eac05281..e722c1787826 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json @@ -250,6 +250,7 @@ "description": "Sets 'Rejected Warehouse' in each row of the Items table.", "fieldname": "rejected_warehouse", "fieldtype": "Link", + "ignore_user_permissions": 1, "label": "Rejected Warehouse", "no_copy": 1, "options": "Warehouse", @@ -629,7 +630,11 @@ "in_create": 1, "is_submittable": 1, "links": [], +<<<<<<< HEAD "modified": "2022-11-16 14:18:57.001239", +======= + "modified": "2023-07-06 18:43:16.171842", +>>>>>>> d618aaef32 (fix: accepted warehouse and rejected warehouse can't be same) "modified_by": "Administrator", "module": "Subcontracting", "name": "Subcontracting Receipt", diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py index 416f4f80a215..ecec73e265c2 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py @@ -190,13 +190,23 @@ def calculate_items_qty_and_amount(self): self.total = total_amount def validate_rejected_warehouse(self): - if not self.rejected_warehouse: - for item in self.items: - if item.rejected_qty: + for item in self.items: + if flt(item.rejected_qty) and not item.rejected_warehouse: + if self.rejected_warehouse: + item.rejected_warehouse = self.rejected_warehouse + + if not item.rejected_warehouse: frappe.throw( - _("Rejected Warehouse is mandatory against rejected Item {0}").format(item.item_code) + _("Row #{0}: Rejected Warehouse is mandatory for the rejected Item {1}").format( + item.idx, item.item_code + ) ) + if item.get("rejected_warehouse") and (item.get("rejected_warehouse") == item.get("warehouse")): + frappe.throw( + _("Row #{0}: Accepted Warehouse and Rejected Warehouse cannot be same").format(item.idx) + ) + def validate_available_qty_for_consumption(self): for item in self.get("supplied_items"): precision = item.precision("consumed_qty") diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json b/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json index 4b64e4bafee6..7e8415a7ebf5 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json +++ b/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json @@ -252,6 +252,7 @@ "depends_on": "eval: !parent.is_return", "fieldname": "rejected_warehouse", "fieldtype": "Link", + "ignore_user_permissions": 1, "label": "Rejected Warehouse", "no_copy": 1, "options": "Warehouse", @@ -476,7 +477,11 @@ "idx": 1, "istable": 1, "links": [], +<<<<<<< HEAD "modified": "2022-11-16 14:21:26.125815", +======= + "modified": "2023-07-06 18:43:45.599761", +>>>>>>> d618aaef32 (fix: accepted warehouse and rejected warehouse can't be same) "modified_by": "Administrator", "module": "Subcontracting", "name": "Subcontracting Receipt Item", From 6459c28316f7917e1ad733193f2ab16a89f453ea Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Mon, 10 Jul 2023 17:12:41 +0530 Subject: [PATCH 2/5] fix: conflicts --- .../accounts/doctype/purchase_invoice/purchase_invoice.json | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json index dfc4f3c92156..6fa71654f67f 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json @@ -1574,11 +1574,7 @@ "idx": 204, "is_submittable": 1, "links": [], -<<<<<<< HEAD - "modified": "2023-04-29 12:57:50.832598", -======= - "modified": "2023-07-04 17:22:59.145031", ->>>>>>> d618aaef32 (fix: accepted warehouse and rejected warehouse can't be same) + "modified": "2023-07-04 17:23:59.145031", "modified_by": "Administrator", "module": "Accounts", "name": "Purchase Invoice", From a178e6693c650bb2ad02e2addb52c1dfb46a62d1 Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Mon, 10 Jul 2023 17:13:23 +0530 Subject: [PATCH 3/5] fix: conflicts --- .../stock/doctype/purchase_receipt/purchase_receipt.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json index e1f084e0932e..f33c7a65cff4 100755 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json @@ -1240,11 +1240,7 @@ "idx": 261, "is_submittable": 1, "links": [], -<<<<<<< HEAD - "modified": "2023-05-07 20:18:25.458185", -======= - "modified": "2023-07-04 17:23:17.025390", ->>>>>>> d618aaef32 (fix: accepted warehouse and rejected warehouse can't be same) + "modified": "2023-07-04 17:24:17.025390", "modified_by": "Administrator", "module": "Stock", "name": "Purchase Receipt", @@ -1313,4 +1309,4 @@ "timeline_field": "supplier", "title_field": "title", "track_changes": 1 -} \ No newline at end of file +} From 79f9785d151217381af0ad24a66f521123a483c7 Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Mon, 10 Jul 2023 17:13:55 +0530 Subject: [PATCH 4/5] fix: conflicts --- .../subcontracting_receipt/subcontracting_receipt.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json index e722c1787826..d572ae3d4bed 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json @@ -630,11 +630,7 @@ "in_create": 1, "is_submittable": 1, "links": [], -<<<<<<< HEAD - "modified": "2022-11-16 14:18:57.001239", -======= - "modified": "2023-07-06 18:43:16.171842", ->>>>>>> d618aaef32 (fix: accepted warehouse and rejected warehouse can't be same) + "modified": "2023-07-06 18:44:16.171842", "modified_by": "Administrator", "module": "Subcontracting", "name": "Subcontracting Receipt", @@ -703,4 +699,4 @@ "timeline_field": "supplier", "title_field": "title", "track_changes": 1 -} \ No newline at end of file +} From e55a264e57afd2a9e4fa34fe8cc5f4b529bea9b2 Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Mon, 10 Jul 2023 17:14:25 +0530 Subject: [PATCH 5/5] fix: conflicts --- .../subcontracting_receipt_item.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json b/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json index 7e8415a7ebf5..f6cf3402ad24 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json +++ b/erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json @@ -477,11 +477,7 @@ "idx": 1, "istable": 1, "links": [], -<<<<<<< HEAD - "modified": "2022-11-16 14:21:26.125815", -======= - "modified": "2023-07-06 18:43:45.599761", ->>>>>>> d618aaef32 (fix: accepted warehouse and rejected warehouse can't be same) + "modified": "2023-07-06 18:44:45.599761", "modified_by": "Administrator", "module": "Subcontracting", "name": "Subcontracting Receipt Item", @@ -492,4 +488,4 @@ "sort_field": "modified", "sort_order": "DESC", "states": [] -} \ No newline at end of file +}