minor improvements
This commit is contained in:
parent
1c6eeb228f
commit
ac6d11eb3c
@ -604,27 +604,39 @@ class StockEntry(StockController):
|
|||||||
from erpnext.manufacturing.doctype.bom.bom import get_bom_items_as_dict
|
from erpnext.manufacturing.doctype.bom.bom import get_bom_items_as_dict
|
||||||
|
|
||||||
# item dict = { item_code: {qty, description, stock_uom} }
|
# item dict = { item_code: {qty, description, stock_uom} }
|
||||||
item_dict = get_bom_items_as_dict(self.bom_no, self.company, qty=qty, fetch_exploded = self.use_multi_level_bom)
|
item_dict = get_bom_items_as_dict(self.bom_no, self.company, qty=qty,
|
||||||
|
fetch_exploded = self.use_multi_level_bom)
|
||||||
|
|
||||||
for item in item_dict.values():
|
for item in item_dict.values():
|
||||||
item.from_warehouse = self.from_warehouse or item.default_warehouse
|
item.from_warehouse = self.from_warehouse or item.default_warehouse
|
||||||
return item_dict
|
return item_dict
|
||||||
|
|
||||||
def get_transfered_raw_materials(self):
|
def get_transfered_raw_materials(self):
|
||||||
raw_materials = frappe.db.sql("""select item_name, item_code, sum(qty) as qty, sed.t_warehouse as warehouse,
|
transferred_materials = frappe.db.sql("""
|
||||||
description, stock_uom, expense_account, cost_center from `tabStock Entry` se,`tabStock Entry Detail` sed
|
select
|
||||||
where se.name = sed.parent and se.docstatus=1 and se.purpose='Material Transfer for Manufacture' and
|
item_name, item_code, sum(qty) as qty, sed.t_warehouse as warehouse,
|
||||||
se.production_order= %s and ifnull(sed.t_warehouse, '') != '' group by sed.item_code, sed.t_warehouse""",
|
description, stock_uom, expense_account, cost_center
|
||||||
self.production_order, as_dict=1)
|
from `tabStock Entry` se,`tabStock Entry Detail` sed
|
||||||
|
where
|
||||||
|
se.name = sed.parent and se.docstatus=1 and se.purpose='Material Transfer for Manufacture'
|
||||||
|
and se.production_order= %s and ifnull(sed.t_warehouse, '') != ''
|
||||||
|
group by sed.item_code, sed.t_warehouse
|
||||||
|
""", self.production_order, as_dict=1)
|
||||||
|
|
||||||
transfered_materials = frappe.db.sql("""select item_code, sed.s_warehouse as warehouse, sum(qty) as qty from `tabStock Entry` se,
|
materials_already_backflushed = frappe.db.sql("""
|
||||||
`tabStock Entry Detail` sed where se.name = sed.parent and se.docstatus=1 and
|
select
|
||||||
se.purpose='Manufacture' and se.production_order= %s and ifnull(sed.s_warehouse, '') != ''
|
item_code, sed.s_warehouse as warehouse, sum(qty) as qty
|
||||||
group by sed.item_code, sed.s_warehouse""", self.production_order, as_dict=1)
|
from
|
||||||
|
`tabStock Entry` se, `tabStock Entry Detail` sed
|
||||||
|
where
|
||||||
|
se.name = sed.parent and se.docstatus=1 and se.purpose='Manufacture'
|
||||||
|
and se.production_order= %s and ifnull(sed.s_warehouse, '') != ''
|
||||||
|
group by sed.item_code, sed.s_warehouse
|
||||||
|
""", self.production_order, as_dict=1)
|
||||||
|
|
||||||
transfered_qty= {}
|
backflushed_materials= {}
|
||||||
for d in transfered_materials:
|
for d in materials_already_backflushed:
|
||||||
transfered_qty.setdefault(d.item_code,[]).append({d.warehouse: d.qty})
|
backflushed_materials.setdefault(d.item_code,[]).append({d.warehouse: d.qty})
|
||||||
|
|
||||||
po_qty = frappe.db.sql("""select qty, produced_qty, material_transferred_for_manufacturing from
|
po_qty = frappe.db.sql("""select qty, produced_qty, material_transferred_for_manufacturing from
|
||||||
`tabProduction Order` where name=%s""", self.production_order, as_dict=1)[0]
|
`tabProduction Order` where name=%s""", self.production_order, as_dict=1)[0]
|
||||||
@ -632,14 +644,14 @@ class StockEntry(StockController):
|
|||||||
produced_qty = flt(po_qty.produced_qty)
|
produced_qty = flt(po_qty.produced_qty)
|
||||||
trans_qty = flt(po_qty.material_transferred_for_manufacturing)
|
trans_qty = flt(po_qty.material_transferred_for_manufacturing)
|
||||||
|
|
||||||
for item in raw_materials:
|
for item in transferred_materials:
|
||||||
qty= item.qty
|
qty= item.qty
|
||||||
|
|
||||||
if manufacturing_qty > (produced_qty + flt(self.fg_completed_qty)):
|
if manufacturing_qty > (produced_qty + flt(self.fg_completed_qty)):
|
||||||
qty = (qty/trans_qty) * flt(self.fg_completed_qty)
|
qty = (qty/trans_qty) * flt(self.fg_completed_qty)
|
||||||
|
|
||||||
elif transfered_qty.get(item.item_code):
|
elif backflushed_materials.get(item.item_code):
|
||||||
for d in transfered_qty.get(item.item_code):
|
for d in backflushed_materials.get(item.item_code):
|
||||||
if d.get(item.warehouse):
|
if d.get(item.warehouse):
|
||||||
qty-= d.get(item.warehouse)
|
qty-= d.get(item.warehouse)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user