Merge pull request #33465 from s-aga-r/fix/po-fg_item_qty

fix: `fg_item_qty` in non-subcontracted PO
This commit is contained in:
Sagar Sharma 2022-12-28 15:27:18 +05:30 committed by GitHub
commit 882f92e732
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -207,31 +207,36 @@ class PurchaseOrder(BuyingController):
) )
def validate_fg_item_for_subcontracting(self): def validate_fg_item_for_subcontracting(self):
if self.is_subcontracted and not self.is_old_subcontracting_flow: if self.is_subcontracted:
if not self.is_old_subcontracting_flow:
for item in self.items:
if not item.fg_item:
frappe.throw(
_("Row #{0}: Finished Good Item is not specified for service item {1}").format(
item.idx, item.item_code
)
)
else:
if not frappe.get_value("Item", item.fg_item, "is_sub_contracted_item"):
frappe.throw(
_(
"Row #{0}: Finished Good Item {1} must be a sub-contracted item for service item {2}"
).format(item.idx, item.fg_item, item.item_code)
)
elif not frappe.get_value("Item", item.fg_item, "default_bom"):
frappe.throw(
_("Row #{0}: Default BOM not found for FG Item {1}").format(item.idx, item.fg_item)
)
if not item.fg_item_qty:
frappe.throw(
_("Row #{0}: Finished Good Item Qty is not specified for service item {0}").format(
item.idx, item.item_code
)
)
else:
for item in self.items: for item in self.items:
if not item.fg_item: item.set("fg_item", None)
frappe.throw( item.set("fg_item_qty", 0)
_("Row #{0}: Finished Good Item is not specified for service item {1}").format(
item.idx, item.item_code
)
)
else:
if not frappe.get_value("Item", item.fg_item, "is_sub_contracted_item"):
frappe.throw(
_(
"Row #{0}: Finished Good Item {1} must be a sub-contracted item for service item {2}"
).format(item.idx, item.fg_item, item.item_code)
)
elif not frappe.get_value("Item", item.fg_item, "default_bom"):
frappe.throw(
_("Row #{0}: Default BOM not found for FG Item {1}").format(item.idx, item.fg_item)
)
if not item.fg_item_qty:
frappe.throw(
_("Row #{0}: Finished Good Item Qty is not specified for service item {0}").format(
item.idx, item.item_code
)
)
def get_schedule_dates(self): def get_schedule_dates(self):
for d in self.get("items"): for d in self.get("items"):