Skip to content

Commit

Permalink
fix: missing bom details in the stock entry
Browse files Browse the repository at this point in the history
(cherry picked from commit 2fc7d82)
  • Loading branch information
rohitwaghchaure authored and mergify[bot] committed May 31, 2023
1 parent 841d2e4 commit 2ee0229
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
22 changes: 21 additions & 1 deletion erpnext/manufacturing/doctype/job_card/test_job_card.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@
import frappe
from frappe.tests.utils import FrappeTestCase, change_settings
from frappe.utils import random_string
from frappe.utils.data import add_to_date, now
from frappe.utils.data import add_to_date, now, today

from erpnext.manufacturing.doctype.job_card.job_card import (
JobCardOverTransferError,
OperationMismatchError,
OverlapError,
make_corrective_job_card,
make_material_request,
)
from erpnext.manufacturing.doctype.job_card.job_card import (
make_stock_entry as make_stock_entry_from_jc,
Expand Down Expand Up @@ -449,6 +450,25 @@ def assertStatus(status):
jc.docstatus = 2
assertStatus("Cancelled")

def test_job_card_material_request_and_bom_details(self):
from erpnext.stock.doctype.material_request.material_request import make_stock_entry

create_bom_with_multiple_operations()
work_order = make_wo_with_transfer_against_jc()

job_card_name = frappe.db.get_value("Job Card", {"work_order": work_order.name}, "name")

mr = make_material_request(job_card_name)
mr.schedule_date = today()
mr.submit()

ste = make_stock_entry(mr.name)
self.assertEqual(ste.purpose, "Material Transfer for Manufacture")
self.assertEqual(ste.work_order, work_order.name)
self.assertEqual(ste.job_card, job_card_name)
self.assertEqual(ste.from_bom, 1.0)
self.assertEqual(ste.bom_no, work_order.bom_no)


def create_bom_with_multiple_operations():
"Create a BOM with multiple operations and Material Transfer against Job Card"
Expand Down
10 changes: 10 additions & 0 deletions erpnext/stock/doctype/material_request/material_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -622,6 +622,16 @@ def set_missing_values(source, target):
target.stock_entry_type = target.purpose
target.set_job_card_data()

if source.job_card:
job_card_details = frappe.get_all(
"Job Card", filters={"name": source.job_card}, fields=["bom_no", "for_quantity"]
)

if job_card_details and job_card_details[0]:
target.bom_no = job_card_details[0].bom_no
target.fg_completed_qty = job_card_details[0].for_quantity
target.from_bom = 1

doclist = get_mapped_doc(
"Material Request",
source_name,
Expand Down

0 comments on commit 2ee0229

Please sign in to comment.