Skip to content

Commit

Permalink
Merge pull request #45718 from frappe/mergify/bp/version-15-hotfix/pr…
Browse files Browse the repository at this point in the history
…-45710

fix: show only items with inspection enabled on create QI dialog (backport #45710)
  • Loading branch information
rohitwaghchaure authored Feb 5, 2025
2 parents 5a7b901 + 3689a2d commit efa7602
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 20 deletions.
21 changes: 21 additions & 0 deletions erpnext/controllers/stock_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -1564,6 +1564,27 @@ def repost_required_for_queue(doc: StockController) -> bool:
return False


def check_item_quality_inspection(doctype, items):
if isinstance(items, str):
items = json.loads(items)

inspection_fieldname_map = {
"Purchase Receipt": "inspection_required_before_purchase",
"Purchase Invoice": "inspection_required_before_purchase",
"Subcontracting Receipt": "inspection_required_before_purchase",
"Sales Invoice": "inspection_required_before_delivery",
"Delivery Note": "inspection_required_before_delivery",
}

items_to_remove = []
for item in items:
if not frappe.db.get_value("Item", item.get("item_code"), inspection_fieldname_map.get(doctype)):
items_to_remove.append(item)
items = [item for item in items if item not in items_to_remove]

return items


@frappe.whitelist()
def make_quality_inspections(doctype, docname, items):
if isinstance(items, str):
Expand Down
50 changes: 30 additions & 20 deletions erpnext/public/js/controllers/transaction.js
Original file line number Diff line number Diff line change
Expand Up @@ -2367,29 +2367,39 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
primary_action_label: __("Create")
});

this.frm.doc.items.forEach(item => {
if (this.has_inspection_required(item)) {
let dialog_items = dialog.fields_dict.items;
dialog_items.df.data.push({
"item_code": item.item_code,
"item_name": item.item_name,
"qty": item.qty,
"description": item.description,
"serial_no": item.serial_no,
"batch_no": item.batch_no,
"sample_size": item.sample_quantity,
"child_row_reference": item.name,
frappe.call({
method: "erpnext.controllers.stock_controller.check_item_quality_inspection",
args: {
doctype: this.frm.doc.doctype,
items: this.frm.doc.items
},
freeze: true,
callback: function (r) {
r.message.forEach(item => {
if (me.has_inspection_required(item)) {
let dialog_items = dialog.fields_dict.items;
dialog_items.df.data.push({
"item_code": item.item_code,
"item_name": item.item_name,
"qty": item.qty,
"description": item.description,
"serial_no": item.serial_no,
"batch_no": item.batch_no,
"sample_size": item.sample_quantity,
"child_row_reference": item.name,
});
dialog_items.grid.refresh();
}
});
dialog_items.grid.refresh();

data = dialog.fields_dict.items.df.data;
if (!data.length) {
frappe.msgprint(__("All items in this document already have a linked Quality Inspection."));
} else {
dialog.show();
}
}
});

data = dialog.fields_dict.items.df.data;
if (!data.length) {
frappe.msgprint(__("All items in this document already have a linked Quality Inspection."));
} else {
dialog.show();
}
}

has_inspection_required(item) {
Expand Down

0 comments on commit efa7602

Please sign in to comment.