mirror of
https://github.com/frappe/erpnext.git
synced 2026-03-07 20:42:50 +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)
|
row[field] = rm_details.get(field)
|
||||||
|
|
||||||
self.update_required_qty(row)
|
self.update_required_qty(row)
|
||||||
row.release_date = add_days(row.delivery_date, row.lead_time * -1)
|
|
||||||
if i != 0:
|
if i != 0:
|
||||||
data.append(frappe._dict({}))
|
data.append(frappe._dict({}))
|
||||||
|
|
||||||
@@ -463,7 +462,15 @@ class MaterialRequirementsPlanningReport:
|
|||||||
if rm_details.raw_materials:
|
if rm_details.raw_materials:
|
||||||
row.capacity = get_item_capacity(row.item_code, self.filters.bucket_size)
|
row.capacity = get_item_capacity(row.item_code, self.filters.bucket_size)
|
||||||
row.type_of_material = "Manufacture"
|
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)
|
data.append(row)
|
||||||
if rm_details.raw_materials:
|
if rm_details.raw_materials:
|
||||||
self.update_rm_details(
|
self.update_rm_details(
|
||||||
@@ -472,6 +479,15 @@ class MaterialRequirementsPlanningReport:
|
|||||||
|
|
||||||
return data
|
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):
|
def add_non_planned_so(self, row):
|
||||||
if so_details := self._so_details.get((row.item_code, row.delivery_date)):
|
if so_details := self._so_details.get((row.item_code, row.delivery_date)):
|
||||||
row.adhoc_qty = so_details.qty
|
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":
|
if type_of_material == "Manufacture":
|
||||||
query = query.select(
|
query = query.select(
|
||||||
Case()
|
Case()
|
||||||
.when(doctype.manufacturing_time_in_mins.isnull(), 0)
|
.when(
|
||||||
.else_(doctype.manufacturing_time_in_mins / 1440 + doctype.buffer_time)
|
(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")
|
.as_("lead_time")
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -89,6 +89,18 @@
|
|||||||
"show_arrow": 0,
|
"show_arrow": 0,
|
||||||
"type": "Section Break"
|
"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,
|
"child": 1,
|
||||||
"collapsible": 1,
|
"collapsible": 1,
|
||||||
@@ -425,7 +437,7 @@
|
|||||||
"type": "Link"
|
"type": "Link"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"modified": "2026-01-10 00:06:13.058137",
|
"modified": "2026-01-29 16:41:40.416652",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Manufacturing",
|
"module": "Manufacturing",
|
||||||
"name": "Manufacturing",
|
"name": "Manufacturing",
|
||||||
|
|||||||
Reference in New Issue
Block a user