From 8c5725c799820dd6019369c45b9a95cdaafeb73d Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Thu, 27 Feb 2020 17:18:52 +0530 Subject: [PATCH] fix: change item_code from Link to Data to avoid item not found error --- .../clinical_procedure_template.json | 31 +++----- .../clinical_procedure_template.py | 78 +++++++++---------- 2 files changed, 51 insertions(+), 58 deletions(-) diff --git a/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.json b/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.json index a4d0f42932..7ae4be84a2 100644 --- a/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.json +++ b/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.json @@ -12,17 +12,17 @@ "engine": "InnoDB", "field_order": [ "template", + "item", "item_code", "item_group", - "medical_department", + "description", "column_break_5", "disabled", "is_billable", "rate", - "description", - "section_break_9", - "consume_stock", + "medical_department", "consumables", + "consume_stock", "items", "sample_collection", "sample", @@ -30,8 +30,7 @@ "sample_qty", "column_break_21", "sample_details", - "change_in_item", - "item" + "change_in_item" ], "fields": [ { @@ -45,11 +44,10 @@ }, { "fieldname": "item_code", - "fieldtype": "Link", + "fieldtype": "Data", "label": "Item Code", - "no_copy": 1, "options": "Item", - "read_only": 1 + "reqd": 1 }, { "fieldname": "item_group", @@ -81,7 +79,8 @@ "depends_on": "is_billable", "fieldname": "rate", "fieldtype": "Float", - "label": "Rate" + "label": "Rate", + "mandatory_depends_on": "is_billable" }, { "fieldname": "description", @@ -91,10 +90,6 @@ "no_copy": 1, "reqd": 1 }, - { - "fieldname": "section_break_9", - "fieldtype": "Section Break" - }, { "default": "0", "fieldname": "consume_stock", @@ -103,12 +98,12 @@ "search_index": 1 }, { - "depends_on": "eval:doc.consume_stock == 1", "fieldname": "consumables", "fieldtype": "Section Break", "label": "Consumables" }, { + "depends_on": "eval:doc.consume_stock == 1", "fieldname": "items", "fieldtype": "Table", "ignore_user_permissions": 1, @@ -168,16 +163,14 @@ { "fieldname": "item", "fieldtype": "Link", - "hidden": 1, "label": "Item", "no_copy": 1, "options": "Item", - "print_hide": 1, - "report_hide": 1 + "read_only": 1 } ], "links": [], - "modified": "2020-02-27 13:37:10.143609", + "modified": "2020-02-27 16:32:55.780893", "modified_by": "Administrator", "module": "Healthcare", "name": "Clinical Procedure Template", diff --git a/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.py b/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.py index 864628ed0b..3bfca6c757 100644 --- a/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.py +++ b/erpnext/healthcare/doctype/clinical_procedure_template/clinical_procedure_template.py @@ -13,21 +13,21 @@ class ClinicalProcedureTemplate(Document): def validate(self): self.enable_disable_item() - def on_update(self): - #Item and Price List update --> if (change_in_item) - if(self.change_in_item and self.is_billable == 1 and self.item): - updating_item(self) - if(self.rate != 0.0): - updating_rate(self) - elif(self.is_billable == 0 and self.item): - frappe.db.set_value("Item",self.item,"disabled",1) - - frappe.db.set_value(self.doctype,self.name,"change_in_item",0) - self.reload() - def after_insert(self): create_item_from_template(self) + def on_update(self): + #Item and Price List update --> if (change_in_item) + if self.change_in_item and self.is_billable == 1 and self.item: + updating_item(self) + if self.rate != 0.0: + updating_rate(self) + elif self.is_billable == 0 and self.item: + frappe.db.set_value('Item',self.item,'disabled',1) + + frappe.db.set_value(self.doctype,self.name,'change_in_item',0) + self.reload() + def enable_disable_item(self): if self.is_billable: if self.disabled: @@ -39,7 +39,7 @@ class ClinicalProcedureTemplate(Document): def on_trash(self): if(self.item): try: - frappe.delete_doc("Item",self.item) + frappe.delete_doc('Item',self.item) except Exception: frappe.throw(_("""Not permitted. Please disable the Procedure Template""")) @@ -51,7 +51,7 @@ class ClinicalProcedureTemplate(Document): and (end_of_life is null or end_of_life='0000-00-00' or end_of_life > %s)""", (args.get('item_code'), nowdate()), as_dict = 1) if not item: - frappe.throw(_("Item {0} is not active or end of life has been reached").format(args.get('item_code'))) + frappe.throw(_('Item {0} is not active or end of life has been reached').format(args.get('item_code'))) item = item[0] @@ -76,45 +76,45 @@ def updating_rate(self): def create_item_from_template(doc): disabled = 1 - if(doc.is_billable == 1): + if doc.is_billable == 1: disabled = 0 #insert item item = frappe.get_doc({ - "doctype": "Item", - "item_code": doc.template, - "item_name":doc.template, - "item_group": doc.item_group, - "description":doc.description, - "is_sales_item": 1, - "is_service_item": 1, - "is_purchase_item": 0, - "is_stock_item": 0, - "show_in_website": 0, - "is_pro_applicable": 0, - "disabled": disabled, - "stock_uom": "Unit" + 'doctype': 'Item', + 'item_code': doc.template, + 'item_name':doc.template, + 'item_group': doc.item_group, + 'description':doc.description, + 'is_sales_item': 1, + 'is_service_item': 1, + 'is_purchase_item': 0, + 'is_stock_item': 0, + 'show_in_website': 0, + 'is_pro_applicable': 0, + 'disabled': disabled, + 'stock_uom': 'Unit' }).insert(ignore_permissions=True) #insert item price #get item price list to insert item price if(doc.rate != 0.0): - price_list_name = frappe.db.get_value("Price List", {"selling": 1}) + price_list_name = frappe.db.get_value('Price List', {'selling': 1}) if(doc.rate): make_item_price(item.name, price_list_name, doc.rate) else: make_item_price(item.name, price_list_name, 0.0) #Set item to the template - frappe.db.set_value("Clinical Procedure Template", doc.name, "item", item.name) + frappe.db.set_value('Clinical Procedure Template', doc.name, 'item', item.name) doc.reload() #refresh the doc after insert. def make_item_price(item, price_list_name, item_price): frappe.get_doc({ - "doctype": "Item Price", - "price_list": price_list_name, - "item_code": item, - "price_list_rate": item_price + 'doctype': 'Item Price', + 'price_list': price_list_name, + 'item_code': item, + 'price_list_rate': item_price }).insert(ignore_permissions=True) @frappe.whitelist() @@ -123,11 +123,11 @@ def change_item_code_from_template(item_code, doc): doc = frappe._dict(args) if(frappe.db.exists({ - "doctype": "Item", - "item_code": item_code})): - frappe.throw(_("Code {0} already exist").format(item_code)) + 'doctype': 'Item', + 'item_code': item_code})): + frappe.throw(_('Code {0} already exist').format(item_code)) else: - rename_doc("Item", doc.item_code, item_code, ignore_permissions=True) - frappe.db.set_value("Clinical Procedure Template", doc.name, "item_code", item_code) + rename_doc('Item', doc.item_code, item_code, ignore_permissions=True) + frappe.db.set_value('Clinical Procedure Template', doc.name, 'item_code', item_code) return