diff --git a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.js b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.js index f2dc849150a..efca484d6ac 100644 --- a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.js +++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.js @@ -27,9 +27,22 @@ frappe.ui.form.on('Healthcare Practitioner', { } }; }); + set_query_service_item(frm, 'inpatient_visit_charge_item'); + set_query_service_item(frm, 'op_consulting_charge_item'); } }); +var set_query_service_item = function(frm, service_item_field) { + frm.set_query(service_item_field, function() { + return { + filters: { + 'is_sales_item': 1, + 'is_stock_item': 0 + } + }; + }); +}; + frappe.ui.form.on("Healthcare Practitioner", "user_id",function(frm) { if(frm.doc.user_id){ frappe.call({ diff --git a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json index 7e794cce45f..f8f4cc0eb09 100644 --- a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json +++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json @@ -528,6 +528,39 @@ "translatable": 0, "unique": 0 }, + { + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "op_consulting_charge_item", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Out Patient Consulting Charge Item", + "length": 0, + "no_copy": 0, + "options": "Item", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, { "allow_bulk_edit": 0, "allow_in_quick_entry": 0, @@ -592,6 +625,39 @@ "translatable": 0, "unique": 0 }, + { + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "inpatient_visit_charge_item", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Inpatient Visit Charge Item", + "length": 0, + "no_copy": 0, + "options": "Item", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, { "allow_bulk_edit": 0, "allow_in_quick_entry": 0, @@ -861,7 +927,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2018-07-20 16:24:40.314459", + "modified": "2018-07-30 12:00:20.746580", "modified_by": "Administrator", "module": "Healthcare", "name": "Healthcare Practitioner", @@ -936,5 +1002,6 @@ "sort_order": "DESC", "title_field": "first_name", "track_changes": 1, - "track_seen": 0 + "track_seen": 0, + "track_views": 0 } \ No newline at end of file diff --git a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py index 753ecd148a1..8a087dd1b2f 100644 --- a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py +++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py @@ -21,6 +21,10 @@ class HealthcarePractitioner(Document): def validate(self): validate_party_accounts(self) + if self.inpatient_visit_charge_item: + validate_service_item(self.inpatient_visit_charge_item, "Configure a service Item for Inpatient Visit Charge Item") + if self.op_consulting_charge_item: + validate_service_item(self.op_consulting_charge_item, "Configure a service Item for Out Patient Consulting Charge Item") if self.user_id: self.validate_for_enabled_user_id() @@ -57,3 +61,7 @@ class HealthcarePractitioner(Document): def on_trash(self): delete_contact_and_address('Healthcare Practitioner', self.name) + +def validate_service_item(item, msg): + if frappe.db.get_value("Item", item, "is_stock_item") == 1: + frappe.throw(_(msg))