mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-13 09:43:49 +00:00
fix: lead time calculation for FG item
(cherry picked from commit 646688c291)
This commit is contained in:
committed by
Mergify
parent
14ba0f1cae
commit
5595602f24
@@ -454,7 +454,6 @@ class MaterialRequirementsPlanningReport:
|
||||
row[field] = rm_details.get(field)
|
||||
|
||||
self.update_required_qty(row)
|
||||
row.release_date = add_days(row.delivery_date, row.lead_time * -1)
|
||||
if i != 0:
|
||||
data.append(frappe._dict({}))
|
||||
|
||||
@@ -463,7 +462,15 @@ class MaterialRequirementsPlanningReport:
|
||||
if rm_details.raw_materials:
|
||||
row.capacity = get_item_capacity(row.item_code, self.filters.bucket_size)
|
||||
row.type_of_material = "Manufacture"
|
||||
if row.lead_time and row.required_qty:
|
||||
row.lead_time = math.ceil(row.required_qty / row.lead_time)
|
||||
elif not row.required_qty:
|
||||
row.lead_time = 0
|
||||
|
||||
if not row.lead_time and rm_details.raw_materials:
|
||||
row.lead_time = self.get_lead_time_from_raw_materials(rm_details.raw_materials)
|
||||
|
||||
row.release_date = add_days(row.delivery_date, row.lead_time * -1)
|
||||
data.append(row)
|
||||
if rm_details.raw_materials:
|
||||
self.update_rm_details(
|
||||
@@ -472,6 +479,15 @@ class MaterialRequirementsPlanningReport:
|
||||
|
||||
return data
|
||||
|
||||
def get_lead_time_from_raw_materials(self, raw_materials):
|
||||
lead_time = 0
|
||||
for material in raw_materials:
|
||||
lead_time += math.ceil(material.lead_time)
|
||||
if material.raw_materials:
|
||||
lead_time += self.get_lead_time_from_raw_materials(material.raw_materials)
|
||||
|
||||
return lead_time
|
||||
|
||||
def add_non_planned_so(self, row):
|
||||
if so_details := self._so_details.get((row.item_code, row.delivery_date)):
|
||||
row.adhoc_qty = so_details.qty
|
||||
@@ -1199,8 +1215,10 @@ def get_item_lead_time(item_code, type_of_material):
|
||||
if type_of_material == "Manufacture":
|
||||
query = query.select(
|
||||
Case()
|
||||
.when(doctype.manufacturing_time_in_mins.isnull(), 0)
|
||||
.else_(doctype.manufacturing_time_in_mins / 1440 + doctype.buffer_time)
|
||||
.when(
|
||||
(doctype.manufacturing_time_in_mins.isnull() | (doctype.manufacturing_time_in_mins <= 0)), 0
|
||||
)
|
||||
.else_(1440 / doctype.manufacturing_time_in_mins + doctype.buffer_time)
|
||||
.as_("lead_time")
|
||||
)
|
||||
else:
|
||||
|
||||
@@ -89,6 +89,18 @@
|
||||
"show_arrow": 0,
|
||||
"type": "Section Break"
|
||||
},
|
||||
{
|
||||
"child": 1,
|
||||
"collapsible": 1,
|
||||
"icon": "",
|
||||
"indent": 0,
|
||||
"keep_closed": 0,
|
||||
"label": "Item Lead Time",
|
||||
"link_to": "Item Lead Time",
|
||||
"link_type": "DocType",
|
||||
"show_arrow": 0,
|
||||
"type": "Link"
|
||||
},
|
||||
{
|
||||
"child": 1,
|
||||
"collapsible": 1,
|
||||
@@ -425,7 +437,7 @@
|
||||
"type": "Link"
|
||||
}
|
||||
],
|
||||
"modified": "2026-01-10 00:06:13.058137",
|
||||
"modified": "2026-01-29 16:41:40.416652",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Manufacturing",
|
||||
"name": "Manufacturing",
|
||||
|
||||
Reference in New Issue
Block a user