Healthcare Practitioner - Service Item Fields - Filter and Validation
diff --git a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.js b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.js
index f2dc849..efca484 100644
--- a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.js
+++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.js
@@ -27,9 +27,22 @@
}
};
});
+ 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 7e794cc..f8f4cc0 100644
--- a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json
+++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.json
@@ -535,6 +535,39 @@
"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,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
"fieldname": "op_consulting_charge",
"fieldtype": "Currency",
"hidden": 0,
@@ -599,6 +632,39 @@
"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,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
"fieldname": "inpatient_visit_charge",
"fieldtype": "Currency",
"hidden": 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 753ecd1..8a087dd 100644
--- a/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py
+++ b/erpnext/healthcare/doctype/healthcare_practitioner/healthcare_practitioner.py
@@ -21,6 +21,10 @@
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 @@
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))