fix: incorrect produced qty in Production Plan Summary (#44112)
(cherry picked from commit 0828c74fe3)
Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
This commit is contained in:
@@ -87,17 +87,17 @@ frappe.ui.form.on("Production Plan", {
|
||||
if (frm.doc.docstatus === 1) {
|
||||
frm.trigger("show_progress");
|
||||
|
||||
if (frm.doc.status !== "Completed") {
|
||||
frm.add_custom_button(
|
||||
__("Production Plan Summary"),
|
||||
() => {
|
||||
frappe.set_route("query-report", "Production Plan Summary", {
|
||||
production_plan: frm.doc.name,
|
||||
});
|
||||
},
|
||||
__("View")
|
||||
);
|
||||
frm.add_custom_button(
|
||||
__("Production Plan Summary"),
|
||||
() => {
|
||||
frappe.set_route("query-report", "Production Plan Summary", {
|
||||
production_plan: frm.doc.name,
|
||||
});
|
||||
},
|
||||
__("View")
|
||||
);
|
||||
|
||||
if (frm.doc.status !== "Completed") {
|
||||
if (frm.doc.status === "Closed") {
|
||||
frm.add_custom_button(
|
||||
__("Re-open"),
|
||||
|
||||
@@ -27,32 +27,51 @@ def get_data(filters):
|
||||
|
||||
|
||||
def get_production_plan_item_details(filters, data, order_details):
|
||||
itemwise_indent = {}
|
||||
|
||||
production_plan_doc = frappe.get_cached_doc("Production Plan", filters.get("production_plan"))
|
||||
for row in production_plan_doc.po_items:
|
||||
work_order = frappe.get_value(
|
||||
work_orders = frappe.get_all(
|
||||
"Work Order",
|
||||
{"production_plan_item": row.name, "bom_no": row.bom_no, "production_item": row.item_code},
|
||||
"name",
|
||||
filters={
|
||||
"production_plan_item": row.name,
|
||||
"bom_no": row.bom_no,
|
||||
"production_item": row.item_code,
|
||||
},
|
||||
pluck="name",
|
||||
)
|
||||
|
||||
if row.item_code not in itemwise_indent:
|
||||
itemwise_indent.setdefault(row.item_code, {})
|
||||
order_qty = row.planned_qty
|
||||
total_produced_qty = 0.0
|
||||
pending_qty = 0.0
|
||||
for work_order in work_orders:
|
||||
produced_qty = flt(order_details.get((work_order, row.item_code), {}).get("produced_qty", 0))
|
||||
pending_qty = flt(order_qty) - produced_qty
|
||||
|
||||
total_produced_qty += produced_qty
|
||||
|
||||
data.append(
|
||||
{
|
||||
"indent": 0,
|
||||
"item_code": row.item_code,
|
||||
"sales_order": row.get("sales_order"),
|
||||
"item_name": frappe.get_cached_value("Item", row.item_code, "item_name"),
|
||||
"qty": order_qty,
|
||||
"document_type": "Work Order",
|
||||
"document_name": work_order or "",
|
||||
"bom_level": 0,
|
||||
"produced_qty": produced_qty,
|
||||
"pending_qty": pending_qty,
|
||||
}
|
||||
)
|
||||
|
||||
order_qty = pending_qty
|
||||
|
||||
data.append(
|
||||
{
|
||||
"indent": 0,
|
||||
"item_code": row.item_code,
|
||||
"sales_order": row.get("sales_order"),
|
||||
"item_name": frappe.get_cached_value("Item", row.item_code, "item_name"),
|
||||
"indent": 0,
|
||||
"qty": row.planned_qty,
|
||||
"document_type": "Work Order",
|
||||
"document_name": work_order or "",
|
||||
"bom_level": 0,
|
||||
"produced_qty": order_details.get((work_order, row.item_code), {}).get("produced_qty", 0),
|
||||
"pending_qty": flt(row.planned_qty)
|
||||
- flt(order_details.get((work_order, row.item_code), {}).get("produced_qty", 0)),
|
||||
"produced_qty": total_produced_qty,
|
||||
"pending_qty": pending_qty,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user