From 86801c29cb973c9f05de553cf7298a673fe94017 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 31 May 2023 08:45:02 +0530 Subject: [PATCH] fix: incorrect transferred qty in the job card (#35478) fix: incorrect transfer quantity in the job card (cherry picked from commit d3a5e49db953744c986bb5027ab6caf9c43f6e7d) Co-authored-by: Rohit Waghchaure --- .../doctype/job_card/job_card.py | 22 ++++++++----------- .../doctype/job_card/test_job_card.py | 6 +++++ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py index a7d0b29f83c..fcaa3fd276f 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.py +++ b/erpnext/manufacturing/doctype/job_card/job_card.py @@ -653,23 +653,19 @@ class JobCard(Document): exc=JobCardOverTransferError, ) - job_card_items_transferred_qty = _get_job_card_items_transferred_qty(ste_doc) + job_card_items_transferred_qty = _get_job_card_items_transferred_qty(ste_doc) or {} + allow_excess = frappe.db.get_single_value("Manufacturing Settings", "job_card_excess_transfer") - if job_card_items_transferred_qty: - allow_excess = frappe.db.get_single_value("Manufacturing Settings", "job_card_excess_transfer") + for row in ste_doc.items: + if not row.job_card_item: + continue - for row in ste_doc.items: - if not row.job_card_item: - continue + transferred_qty = flt(job_card_items_transferred_qty.get(row.job_card_item, 0.0)) - transferred_qty = flt(job_card_items_transferred_qty.get(row.job_card_item)) + if not allow_excess: + _validate_over_transfer(row, transferred_qty) - if not allow_excess: - _validate_over_transfer(row, transferred_qty) - - frappe.db.set_value( - "Job Card Item", row.job_card_item, "transferred_qty", flt(transferred_qty) - ) + frappe.db.set_value("Job Card Item", row.job_card_item, "transferred_qty", flt(transferred_qty)) def set_transferred_qty(self, update_status=False): "Set total FG Qty in Job Card for which RM was transferred." diff --git a/erpnext/manufacturing/doctype/job_card/test_job_card.py b/erpnext/manufacturing/doctype/job_card/test_job_card.py index 61766a67511..22177f44148 100644 --- a/erpnext/manufacturing/doctype/job_card/test_job_card.py +++ b/erpnext/manufacturing/doctype/job_card/test_job_card.py @@ -342,6 +342,12 @@ class TestJobCard(FrappeTestCase): job_card.reload() self.assertEqual(job_card.transferred_qty, 2) + transfer_entry_2.cancel() + transfer_entry.cancel() + + job_card.reload() + self.assertEqual(job_card.transferred_qty, 0.0) + def test_job_card_material_transfer_correctness(self): """ 1. Test if only current Job Card Items are pulled in a Stock Entry against a Job Card