From 281a9cc749fdf2170f58da9be19ea628cebe56ba Mon Sep 17 00:00:00 2001 From: Diksha Jadhav Date: Mon, 1 Nov 2021 17:19:07 +0530 Subject: [PATCH 1/3] feat(manufacturing): add link field for quality inspection template on operation --- erpnext/manufacturing/doctype/operation/operation.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/erpnext/manufacturing/doctype/operation/operation.json b/erpnext/manufacturing/doctype/operation/operation.json index 10a97eda763..2b2a81703f8 100644 --- a/erpnext/manufacturing/doctype/operation/operation.json +++ b/erpnext/manufacturing/doctype/operation/operation.json @@ -9,6 +9,7 @@ "engine": "InnoDB", "field_order": [ "workstation", + "quality_inspection_template", "data_2", "is_corrective_operation", "job_card_section", @@ -92,12 +93,18 @@ "fieldname": "is_corrective_operation", "fieldtype": "Check", "label": "Is Corrective Operation" + }, + { + "fieldname": "quality_inspection_template", + "fieldtype": "Link", + "label": "Quality Inspection Template", + "options": "Quality Inspection Template" } ], "icon": "fa fa-wrench", "index_web_pages_for_search": 1, "links": [], - "modified": "2021-01-12 15:09:23.593338", + "modified": "2021-11-01 15:13:35.911144", "modified_by": "Administrator", "module": "Manufacturing", "name": "Operation", From 6c45f8b2c46adb8a19123f4b65f566cb63f6eb2f Mon Sep 17 00:00:00 2001 From: Diksha Jadhav Date: Wed, 3 Nov 2021 14:07:45 +0530 Subject: [PATCH 2/3] feat: provision to have limited parameters for in-process quality inspection --- .../manufacturing/doctype/job_card/job_card.js | 17 +++++++++++++++++ .../doctype/job_card/job_card.json | 9 ++++++++- .../manufacturing/doctype/job_card/job_card.py | 5 +++++ .../doctype/operation/operation.json | 4 ++-- .../quality_inspection/quality_inspection.js | 2 +- .../quality_inspection/quality_inspection.py | 9 +++++++++ 6 files changed, 42 insertions(+), 4 deletions(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.js b/erpnext/manufacturing/doctype/job_card/job_card.js index 35be38813e5..b036e972a74 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.js +++ b/erpnext/manufacturing/doctype/job_card/job_card.js @@ -70,6 +70,23 @@ frappe.ui.form.on('Job Card', { && (frm.doc.items || !frm.doc.items.length || frm.doc.for_quantity == frm.doc.transferred_qty)) { frm.trigger("prepare_timer_buttons"); } + frm.trigger("setup_quality_inspection"); + }, + + setup_quality_inspection: function(frm) { + let quality_inspection_field = frm.get_docfield("quality_inspection"); + quality_inspection_field.get_route_options_for_new_doc = function(frm) { + return { + "inspection_type": "In Process", + "reference_type": "Job Card", + "reference_name": frm.doc.name, + "item_code": frm.doc.production_item, + "item_name": frm.doc.item_name, + "item_serial_no": frm.doc.serial_no, + "batch_no": frm.doc.batch_no, + "quality_inspection_template": frm.doc.quality_inspection_template, + }; + }; }, setup_corrective_job_card: function(frm) { diff --git a/erpnext/manufacturing/doctype/job_card/job_card.json b/erpnext/manufacturing/doctype/job_card/job_card.json index 7dd38f4673d..0682144e4a0 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.json +++ b/erpnext/manufacturing/doctype/job_card/job_card.json @@ -19,6 +19,7 @@ "serial_no", "column_break_12", "wip_warehouse", + "quality_inspection_template", "quality_inspection", "project", "batch_no", @@ -407,11 +408,17 @@ "no_copy": 1, "options": "Job Card Scrap Item", "print_hide": 1 + }, + { + "fieldname": "quality_inspection_template", + "fieldtype": "Link", + "label": "Quality Inspection Template", + "options": "Quality Inspection Template" } ], "is_submittable": 1, "links": [], - "modified": "2021-09-14 00:38:46.873105", + "modified": "2021-11-03 13:46:06.557348", "modified_by": "Administrator", "module": "Manufacturing", "name": "Job Card", diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py index e1d79be81c4..22e8b54eb91 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.py +++ b/erpnext/manufacturing/doctype/job_card/job_card.py @@ -45,6 +45,7 @@ class JobCard(Document): self.validate_sequence_id() self.set_sub_operations() self.update_sub_operation_status() + self.set_quality_inspection_template() def set_sub_operations(self): if self.operation: @@ -292,6 +293,10 @@ class JobCard(Document): row.completed_time = 0.0 row.completed_qty = 0.0 + def set_quality_inspection_template(self): + qi_template = frappe.db.get_value('Operation', self.operation, 'quality_inspection_template') + self.quality_inspection_template = qi_template + def update_time_logs(self, row): self.append("time_logs", { "from_time": row.planned_start_time, diff --git a/erpnext/manufacturing/doctype/operation/operation.json b/erpnext/manufacturing/doctype/operation/operation.json index 2b2a81703f8..3da3f03b3f1 100644 --- a/erpnext/manufacturing/doctype/operation/operation.json +++ b/erpnext/manufacturing/doctype/operation/operation.json @@ -9,11 +9,11 @@ "engine": "InnoDB", "field_order": [ "workstation", - "quality_inspection_template", "data_2", "is_corrective_operation", "job_card_section", "create_job_card_based_on_batch_size", + "quality_inspection_template", "column_break_6", "batch_size", "sub_operations_section", @@ -104,7 +104,7 @@ "icon": "fa fa-wrench", "index_web_pages_for_search": 1, "links": [], - "modified": "2021-11-01 15:13:35.911144", + "modified": "2021-11-03 13:49:39.114976", "modified_by": "Administrator", "module": "Manufacturing", "name": "Operation", diff --git a/erpnext/stock/doctype/quality_inspection/quality_inspection.js b/erpnext/stock/doctype/quality_inspection/quality_inspection.js index d08dc3e8b76..eea28791a9f 100644 --- a/erpnext/stock/doctype/quality_inspection/quality_inspection.js +++ b/erpnext/stock/doctype/quality_inspection/quality_inspection.js @@ -59,7 +59,7 @@ frappe.ui.form.on("Quality Inspection", { }, item_code: function(frm) { - if (frm.doc.item_code) { + if (frm.doc.item_code && !frm.doc.quality_inspection_template) { return frm.call({ method: "get_quality_inspection_template", doc: frm.doc, diff --git a/erpnext/stock/doctype/quality_inspection/quality_inspection.py b/erpnext/stock/doctype/quality_inspection/quality_inspection.py index 8b2f8da9dfd..2fa5b72f431 100644 --- a/erpnext/stock/doctype/quality_inspection/quality_inspection.py +++ b/erpnext/stock/doctype/quality_inspection/quality_inspection.py @@ -19,6 +19,15 @@ class QualityInspection(Document): if not self.readings and self.item_code: self.get_item_specification_details() + if self.inspection_type=="In Process" and self.reference_type=="Job Card": + item_qi_template = frappe.db.get_value("Item", self.item_code, 'quality_inspection_template') + parameters = get_template_details(item_qi_template) + for reading in self.readings: + for d in parameters: + if reading.specification == d.specification: + reading.update(d) + reading.status = "Accepted" + if self.readings: self.inspect_and_set_status() From 467324c87f407f66b20d8182039fa902b6ffc82f Mon Sep 17 00:00:00 2001 From: Diksha Jadhav Date: Tue, 9 Nov 2021 14:21:34 +0530 Subject: [PATCH 3/3] refactor: use fetch from property for qi template on job card --- erpnext/manufacturing/doctype/job_card/job_card.json | 3 ++- erpnext/manufacturing/doctype/job_card/job_card.py | 5 ----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.json b/erpnext/manufacturing/doctype/job_card/job_card.json index 0682144e4a0..8095e66eac0 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.json +++ b/erpnext/manufacturing/doctype/job_card/job_card.json @@ -410,6 +410,7 @@ "print_hide": 1 }, { + "fetch_from": "operation.quality_inspection_template", "fieldname": "quality_inspection_template", "fieldtype": "Link", "label": "Quality Inspection Template", @@ -418,7 +419,7 @@ ], "is_submittable": 1, "links": [], - "modified": "2021-11-03 13:46:06.557348", + "modified": "2021-11-09 14:07:20.290306", "modified_by": "Administrator", "module": "Manufacturing", "name": "Job Card", diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py index 22e8b54eb91..e1d79be81c4 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.py +++ b/erpnext/manufacturing/doctype/job_card/job_card.py @@ -45,7 +45,6 @@ class JobCard(Document): self.validate_sequence_id() self.set_sub_operations() self.update_sub_operation_status() - self.set_quality_inspection_template() def set_sub_operations(self): if self.operation: @@ -293,10 +292,6 @@ class JobCard(Document): row.completed_time = 0.0 row.completed_qty = 0.0 - def set_quality_inspection_template(self): - qi_template = frappe.db.get_value('Operation', self.operation, 'quality_inspection_template') - self.quality_inspection_template = qi_template - def update_time_logs(self, row): self.append("time_logs", { "from_time": row.planned_start_time,