fix: Clinical Procedure Template code refactor
This commit is contained in:
parent
8c5725c799
commit
d76908d757
@ -1,431 +1,122 @@
|
|||||||
{
|
{
|
||||||
"allow_copy": 0,
|
"actions": [],
|
||||||
"allow_events_in_timeline": 0,
|
"beta": 1,
|
||||||
"allow_guest_to_view": 0,
|
"creation": "2017-10-05 16:15:10.876952",
|
||||||
"allow_import": 0,
|
"doctype": "DocType",
|
||||||
"allow_rename": 0,
|
"editable_grid": 1,
|
||||||
"beta": 1,
|
"engine": "InnoDB",
|
||||||
"creation": "2017-10-05 16:15:10.876952",
|
"field_order": [
|
||||||
"custom": 0,
|
"item_code",
|
||||||
"docstatus": 0,
|
"barcode",
|
||||||
"doctype": "DocType",
|
"item_name",
|
||||||
"document_type": "",
|
"qty",
|
||||||
"editable_grid": 1,
|
"uom",
|
||||||
"engine": "InnoDB",
|
"invoice_separately_as_consumables",
|
||||||
|
"column_break_5",
|
||||||
|
"batch_no",
|
||||||
|
"conversion_factor",
|
||||||
|
"stock_uom",
|
||||||
|
"transfer_qty",
|
||||||
|
"actual_qty"
|
||||||
|
],
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"bold": 1,
|
||||||
"allow_in_quick_entry": 0,
|
"columns": 3,
|
||||||
"allow_on_submit": 0,
|
"fieldname": "item_code",
|
||||||
"bold": 1,
|
"fieldtype": "Link",
|
||||||
"collapsible": 0,
|
"ignore_user_permissions": 1,
|
||||||
"columns": 3,
|
"in_global_search": 1,
|
||||||
"fieldname": "item_code",
|
"in_list_view": 1,
|
||||||
"fieldtype": "Link",
|
"label": "Item",
|
||||||
"hidden": 0,
|
"options": "Item",
|
||||||
"ignore_user_permissions": 1,
|
"reqd": 1,
|
||||||
"ignore_xss_filter": 0,
|
"search_index": 1
|
||||||
"in_filter": 0,
|
},
|
||||||
"in_global_search": 1,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "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": 1,
|
|
||||||
"search_index": 1,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"translatable": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"fieldname": "barcode",
|
||||||
"allow_in_quick_entry": 0,
|
"fieldtype": "Data",
|
||||||
"allow_on_submit": 0,
|
"label": "Barcode"
|
||||||
"bold": 0,
|
},
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "barcode",
|
|
||||||
"fieldtype": "Data",
|
|
||||||
"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": "Barcode",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"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,
|
"fieldname": "item_name",
|
||||||
"allow_in_quick_entry": 0,
|
"fieldtype": "Data",
|
||||||
"allow_on_submit": 0,
|
"in_list_view": 1,
|
||||||
"bold": 0,
|
"label": "Item Name"
|
||||||
"collapsible": 0,
|
},
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "item_name",
|
|
||||||
"fieldtype": "Data",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Item Name",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"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,
|
"fieldname": "qty",
|
||||||
"allow_in_quick_entry": 0,
|
"fieldtype": "Float",
|
||||||
"allow_on_submit": 0,
|
"in_list_view": 1,
|
||||||
"bold": 0,
|
"label": "Quantity",
|
||||||
"collapsible": 0,
|
"reqd": 1
|
||||||
"columns": 0,
|
},
|
||||||
"fieldname": "qty",
|
|
||||||
"fieldtype": "Float",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Quantity",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 1,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"translatable": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"fieldname": "uom",
|
||||||
"allow_in_quick_entry": 0,
|
"fieldtype": "Link",
|
||||||
"allow_on_submit": 0,
|
"in_list_view": 1,
|
||||||
"bold": 0,
|
"label": "UOM",
|
||||||
"collapsible": 0,
|
"options": "UOM",
|
||||||
"columns": 0,
|
"reqd": 1
|
||||||
"fieldname": "uom",
|
},
|
||||||
"fieldtype": "Link",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "UOM",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"options": "UOM",
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 0,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 1,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"translatable": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"default": "0",
|
||||||
"allow_in_quick_entry": 0,
|
"fieldname": "invoice_separately_as_consumables",
|
||||||
"allow_on_submit": 0,
|
"fieldtype": "Check",
|
||||||
"bold": 0,
|
"in_list_view": 1,
|
||||||
"collapsible": 0,
|
"label": "Invoice Separately as Consumables"
|
||||||
"columns": 0,
|
},
|
||||||
"fieldname": "invoice_separately_as_consumables",
|
|
||||||
"fieldtype": "Check",
|
|
||||||
"hidden": 0,
|
|
||||||
"ignore_user_permissions": 0,
|
|
||||||
"ignore_xss_filter": 0,
|
|
||||||
"in_filter": 0,
|
|
||||||
"in_global_search": 0,
|
|
||||||
"in_list_view": 1,
|
|
||||||
"in_standard_filter": 0,
|
|
||||||
"label": "Invoice Separately as Consumables",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"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,
|
"fieldname": "column_break_5",
|
||||||
"allow_in_quick_entry": 0,
|
"fieldtype": "Column Break"
|
||||||
"allow_on_submit": 0,
|
},
|
||||||
"bold": 0,
|
|
||||||
"collapsible": 0,
|
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "column_break_5",
|
|
||||||
"fieldtype": "Column Break",
|
|
||||||
"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,
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"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,
|
"fieldname": "batch_no",
|
||||||
"allow_in_quick_entry": 0,
|
"fieldtype": "Link",
|
||||||
"allow_on_submit": 0,
|
"label": "Batch",
|
||||||
"bold": 0,
|
"options": "Batch"
|
||||||
"collapsible": 0,
|
},
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "batch_no",
|
|
||||||
"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": "Batch",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"options": "Batch",
|
|
||||||
"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,
|
"fieldname": "conversion_factor",
|
||||||
"allow_in_quick_entry": 0,
|
"fieldtype": "Float",
|
||||||
"allow_on_submit": 0,
|
"label": "Conversion Factor",
|
||||||
"bold": 0,
|
"read_only": 1
|
||||||
"collapsible": 0,
|
},
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "conversion_factor",
|
|
||||||
"fieldtype": "Float",
|
|
||||||
"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": "Conversion Factor",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 1,
|
|
||||||
"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,
|
"fieldname": "stock_uom",
|
||||||
"allow_in_quick_entry": 0,
|
"fieldtype": "Link",
|
||||||
"allow_on_submit": 0,
|
"label": "Stock UOM",
|
||||||
"bold": 0,
|
"options": "UOM",
|
||||||
"collapsible": 0,
|
"read_only": 1,
|
||||||
"columns": 0,
|
"reqd": 1
|
||||||
"fieldname": "stock_uom",
|
},
|
||||||
"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": "Stock UOM",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"options": "UOM",
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 1,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 1,
|
|
||||||
"search_index": 0,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"translatable": 0,
|
|
||||||
"unique": 0
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"allow_bulk_edit": 0,
|
"fieldname": "transfer_qty",
|
||||||
"allow_in_quick_entry": 0,
|
"fieldtype": "Float",
|
||||||
"allow_on_submit": 0,
|
"label": "Transfer Qty",
|
||||||
"bold": 0,
|
"read_only": 1
|
||||||
"collapsible": 0,
|
},
|
||||||
"columns": 0,
|
|
||||||
"fieldname": "transfer_qty",
|
|
||||||
"fieldtype": "Float",
|
|
||||||
"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": "Transfer Qty",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 0,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 0,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 1,
|
|
||||||
"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,
|
"fieldname": "actual_qty",
|
||||||
"allow_in_quick_entry": 0,
|
"fieldtype": "Float",
|
||||||
"allow_on_submit": 0,
|
"label": "Actual Qty (at source/target)",
|
||||||
"bold": 0,
|
"no_copy": 1,
|
||||||
"collapsible": 0,
|
"print_hide": 1,
|
||||||
"columns": 0,
|
"read_only": 1,
|
||||||
"fieldname": "actual_qty",
|
"search_index": 1
|
||||||
"fieldtype": "Float",
|
|
||||||
"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": "Actual Qty (at source/target)",
|
|
||||||
"length": 0,
|
|
||||||
"no_copy": 1,
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": "",
|
|
||||||
"print_hide": 1,
|
|
||||||
"print_hide_if_no_value": 0,
|
|
||||||
"read_only": 1,
|
|
||||||
"remember_last_selected_value": 0,
|
|
||||||
"report_hide": 0,
|
|
||||||
"reqd": 0,
|
|
||||||
"search_index": 1,
|
|
||||||
"set_only_once": 0,
|
|
||||||
"translatable": 0,
|
|
||||||
"unique": 0
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"has_web_view": 0,
|
"istable": 1,
|
||||||
"hide_heading": 0,
|
"links": [],
|
||||||
"hide_toolbar": 0,
|
"modified": "2020-02-28 13:15:09.058073",
|
||||||
"idx": 0,
|
"modified_by": "Administrator",
|
||||||
"image_view": 0,
|
"module": "Healthcare",
|
||||||
"in_create": 0,
|
"name": "Clinical Procedure Item",
|
||||||
"is_submittable": 0,
|
"owner": "Administrator",
|
||||||
"issingle": 0,
|
"permissions": [],
|
||||||
"istable": 1,
|
"quick_entry": 1,
|
||||||
"max_attachments": 0,
|
"restrict_to_domain": "Healthcare",
|
||||||
"modified": "2018-11-04 03:33:16.833884",
|
"sort_field": "modified",
|
||||||
"modified_by": "Administrator",
|
"sort_order": "DESC",
|
||||||
"module": "Healthcare",
|
"track_changes": 1
|
||||||
"name": "Clinical Procedure Item",
|
|
||||||
"name_case": "",
|
|
||||||
"owner": "Administrator",
|
|
||||||
"permissions": [],
|
|
||||||
"quick_entry": 1,
|
|
||||||
"read_only": 0,
|
|
||||||
"read_only_onload": 0,
|
|
||||||
"restrict_to_domain": "Healthcare",
|
|
||||||
"show_name_in_global_search": 0,
|
|
||||||
"sort_field": "modified",
|
|
||||||
"sort_order": "DESC",
|
|
||||||
"track_changes": 1,
|
|
||||||
"track_seen": 0,
|
|
||||||
"track_views": 0
|
|
||||||
}
|
}
|
||||||
@ -3,32 +3,38 @@
|
|||||||
|
|
||||||
frappe.ui.form.on('Clinical Procedure Template', {
|
frappe.ui.form.on('Clinical Procedure Template', {
|
||||||
template: function(frm) {
|
template: function(frm) {
|
||||||
if(!frm.doc.item_code)
|
if (!frm.doc.item_code)
|
||||||
frm.set_value("item_code", frm.doc.template);
|
frm.set_value('item_code', frm.doc.template);
|
||||||
if(!frm.doc.description)
|
if (!frm.doc.description)
|
||||||
frm.set_value("description", frm.doc.template);
|
frm.set_value('description', frm.doc.template);
|
||||||
mark_change_in_item(frm);
|
mark_change_in_item(frm);
|
||||||
},
|
},
|
||||||
|
|
||||||
rate: function(frm) {
|
rate: function(frm) {
|
||||||
mark_change_in_item(frm);
|
mark_change_in_item(frm);
|
||||||
},
|
},
|
||||||
|
|
||||||
is_billable: function (frm) {
|
is_billable: function (frm) {
|
||||||
mark_change_in_item(frm);
|
mark_change_in_item(frm);
|
||||||
},
|
},
|
||||||
|
|
||||||
item_group: function(frm) {
|
item_group: function(frm) {
|
||||||
mark_change_in_item(frm);
|
mark_change_in_item(frm);
|
||||||
},
|
},
|
||||||
|
|
||||||
description: function(frm) {
|
description: function(frm) {
|
||||||
mark_change_in_item(frm);
|
mark_change_in_item(frm);
|
||||||
},
|
},
|
||||||
|
|
||||||
medical_department: function(frm) {
|
medical_department: function(frm) {
|
||||||
mark_change_in_item(frm);
|
mark_change_in_item(frm);
|
||||||
},
|
},
|
||||||
|
|
||||||
refresh: function(frm) {
|
refresh: function(frm) {
|
||||||
frm.fields_dict["items"].grid.set_column_disp("barcode", false);
|
frm.fields_dict['items'].grid.set_column_disp('barcode', false);
|
||||||
frm.fields_dict["items"].grid.set_column_disp("batch_no", false);
|
frm.fields_dict['items'].grid.set_column_disp('batch_no', false);
|
||||||
cur_frm.set_df_property("item_code", "read_only", frm.doc.__islocal ? 0 : 1);
|
|
||||||
if(!frm.doc.__islocal) {
|
if (!frm.doc.__islocal) {
|
||||||
cur_frm.add_custom_button(__('Change Item Code'), function() {
|
cur_frm.add_custom_button(__('Change Item Code'), function() {
|
||||||
change_template_code(frm.doc);
|
change_template_code(frm.doc);
|
||||||
});
|
});
|
||||||
@ -36,106 +42,104 @@ frappe.ui.form.on('Clinical Procedure Template', {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var mark_change_in_item = function(frm) {
|
let mark_change_in_item = function(frm) {
|
||||||
if(!frm.doc.__islocal){
|
if (!frm.doc.__islocal) {
|
||||||
frm.doc.change_in_item = 1;
|
frm.doc.change_in_item = 1;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var change_template_code = function(doc){
|
let change_template_code = function(doc) {
|
||||||
var d = new frappe.ui.Dialog({
|
let d = new frappe.ui.Dialog({
|
||||||
title:__("Change Template Code"),
|
title:__('Change Item Code'),
|
||||||
fields:[
|
fields:[
|
||||||
{
|
{
|
||||||
"fieldtype": "Data",
|
'fieldtype': 'Data',
|
||||||
"label": "Template Code",
|
'label': 'Item Code',
|
||||||
"fieldname": "Item Code",
|
'fieldname': 'item_code',
|
||||||
reqd:1
|
reqd: 1
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldtype": "Button",
|
|
||||||
"label": __("Change Code"),
|
|
||||||
click: function() {
|
|
||||||
var values = d.get_values();
|
|
||||||
if(!values)
|
|
||||||
return;
|
|
||||||
change_item_code_from_template(values["Item Code"], doc);
|
|
||||||
d.hide();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
primary_action: function() {
|
||||||
|
let values = d.get_values();
|
||||||
|
|
||||||
|
if (values) {
|
||||||
|
frappe.call({
|
||||||
|
'method': 'erpnext.healthcare.doctype.clinical_procedure_template.clinical_procedure_template.change_item_code_from_template',
|
||||||
|
'args': {item_code: values.item_code, doc: doc},
|
||||||
|
callback: function () {
|
||||||
|
cur_frm.reload_doc();
|
||||||
|
frappe.show_alert({
|
||||||
|
message: 'Item Code renamed successfully',
|
||||||
|
indicator: 'green'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
d.hide();
|
||||||
|
},
|
||||||
|
primary_action_label: __('Change Item Code')
|
||||||
});
|
});
|
||||||
d.show();
|
d.show();
|
||||||
d.set_values({
|
|
||||||
'Item Code': doc.item_code
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
var change_item_code_from_template = function(item_code, doc){
|
d.set_values({
|
||||||
frappe.call({
|
'item_code': doc.item_code
|
||||||
"method": "erpnext.healthcare.doctype.clinical_procedure_template.clinical_procedure_template.change_item_code_from_template",
|
|
||||||
"args": {item_code: item_code, doc: doc},
|
|
||||||
callback: function () {
|
|
||||||
cur_frm.reload_doc();
|
|
||||||
frappe.show_alert({
|
|
||||||
message: "Item Code renamed successfully",
|
|
||||||
indicator: "green"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
frappe.ui.form.on('Clinical Procedure Item', {
|
frappe.ui.form.on('Clinical Procedure Item', {
|
||||||
qty: function(frm, cdt, cdn){
|
qty: function(frm, cdt, cdn) {
|
||||||
var d = locals[cdt][cdn];
|
let d = locals[cdt][cdn];
|
||||||
frappe.model.set_value(cdt, cdn, "transfer_qty", d.qty*d.conversion_factor);
|
frappe.model.set_value(cdt, cdn, 'transfer_qty', d.qty * d.conversion_factor);
|
||||||
},
|
},
|
||||||
|
|
||||||
uom: function(doc, cdt, cdn){
|
uom: function(doc, cdt, cdn){
|
||||||
var d = locals[cdt][cdn];
|
let d = locals[cdt][cdn];
|
||||||
if(d.uom && d.item_code){
|
if (d.uom && d.item_code) {
|
||||||
return frappe.call({
|
return frappe.call({
|
||||||
method: "erpnext.stock.doctype.stock_entry.stock_entry.get_uom_details",
|
method: 'erpnext.stock.doctype.stock_entry.stock_entry.get_uom_details',
|
||||||
args: {
|
args: {
|
||||||
item_code: d.item_code,
|
item_code: d.item_code,
|
||||||
uom: d.uom,
|
uom: d.uom,
|
||||||
qty: d.qty
|
qty: d.qty
|
||||||
},
|
},
|
||||||
callback: function(r) {
|
callback: function(r) {
|
||||||
if(r.message) {
|
if (r.message) {
|
||||||
frappe.model.set_value(cdt, cdn, r.message);
|
frappe.model.set_value(cdt, cdn, r.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
item_code: function(frm, cdt, cdn) {
|
item_code: function(frm, cdt, cdn) {
|
||||||
var d = locals[cdt][cdn];
|
let d = locals[cdt][cdn];
|
||||||
if(d.item_code) {
|
if (d.item_code) {
|
||||||
let args = {
|
let args = {
|
||||||
'item_code' : d.item_code,
|
'item_code' : d.item_code,
|
||||||
'transfer_qty' : d.transfer_qty,
|
'transfer_qty' : d.transfer_qty,
|
||||||
'company' : frm.doc.company,
|
'company' : frm.doc.company,
|
||||||
'quantity' : d.qty
|
'quantity' : d.qty
|
||||||
};
|
};
|
||||||
return frappe.call({
|
return frappe.call({
|
||||||
doc: frm.doc,
|
doc: frm.doc,
|
||||||
method: "get_item_details",
|
method: 'get_item_details',
|
||||||
args: args,
|
args: args,
|
||||||
callback: function(r) {
|
callback: function(r) {
|
||||||
if(r.message) {
|
if (r.message) {
|
||||||
var d = locals[cdt][cdn];
|
let d = locals[cdt][cdn];
|
||||||
$.each(r.message, function(k, v){
|
$.each(r.message, function(k, v){
|
||||||
d[k] = v;
|
d[k] = v;
|
||||||
});
|
});
|
||||||
refresh_field("items");
|
refresh_field('items');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// List Stock items
|
// List Stock items
|
||||||
cur_frm.set_query("item_code", "items", function() {
|
cur_frm.set_query('item_code', 'items', function() {
|
||||||
return {
|
return {
|
||||||
filters: {
|
filters: {
|
||||||
is_stock_item:1
|
is_stock_item:1
|
||||||
|
|||||||
@ -79,6 +79,8 @@
|
|||||||
"depends_on": "is_billable",
|
"depends_on": "is_billable",
|
||||||
"fieldname": "rate",
|
"fieldname": "rate",
|
||||||
"fieldtype": "Float",
|
"fieldtype": "Float",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"in_standard_filter": 1,
|
||||||
"label": "Rate",
|
"label": "Rate",
|
||||||
"mandatory_depends_on": "is_billable"
|
"mandatory_depends_on": "is_billable"
|
||||||
},
|
},
|
||||||
@ -127,7 +129,8 @@
|
|||||||
"fetch_from": "sample.sample_uom",
|
"fetch_from": "sample.sample_uom",
|
||||||
"fieldname": "sample_uom",
|
"fieldname": "sample_uom",
|
||||||
"fieldtype": "Data",
|
"fieldtype": "Data",
|
||||||
"label": "UOM"
|
"label": "Sample UOM",
|
||||||
|
"read_only": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "sample_qty",
|
"fieldname": "sample_qty",
|
||||||
@ -163,6 +166,8 @@
|
|||||||
{
|
{
|
||||||
"fieldname": "item",
|
"fieldname": "item",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
|
"in_list_view": 1,
|
||||||
|
"in_standard_filter": 1,
|
||||||
"label": "Item",
|
"label": "Item",
|
||||||
"no_copy": 1,
|
"no_copy": 1,
|
||||||
"options": "Item",
|
"options": "Item",
|
||||||
@ -170,7 +175,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2020-02-27 16:32:55.780893",
|
"modified": "2020-02-28 13:20:23.692613",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Healthcare",
|
"module": "Healthcare",
|
||||||
"name": "Clinical Procedure Template",
|
"name": "Clinical Procedure Template",
|
||||||
|
|||||||
@ -17,16 +17,8 @@ class ClinicalProcedureTemplate(Document):
|
|||||||
create_item_from_template(self)
|
create_item_from_template(self)
|
||||||
|
|
||||||
def on_update(self):
|
def on_update(self):
|
||||||
#Item and Price List update --> if (change_in_item)
|
if self.change_in_item:
|
||||||
if self.change_in_item and self.is_billable == 1 and self.item:
|
self.update_item_and_item_price()
|
||||||
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):
|
def enable_disable_item(self):
|
||||||
if self.is_billable:
|
if self.is_billable:
|
||||||
@ -35,26 +27,26 @@ class ClinicalProcedureTemplate(Document):
|
|||||||
else:
|
else:
|
||||||
frappe.db.set_value('Item', self.item, 'disabled', 0)
|
frappe.db.set_value('Item', self.item, 'disabled', 0)
|
||||||
|
|
||||||
#Call before delete the template
|
|
||||||
def on_trash(self):
|
def on_trash(self):
|
||||||
if(self.item):
|
if self.item:
|
||||||
try:
|
try:
|
||||||
frappe.delete_doc('Item',self.item)
|
frappe.delete_doc('Item', self.item)
|
||||||
except Exception:
|
except Exception:
|
||||||
frappe.throw(_("""Not permitted. Please disable the Procedure Template"""))
|
frappe.throw(_('Not permitted. Please disable the Procedure Template'), title='Not Permitted')
|
||||||
|
|
||||||
def get_item_details(self, args=None):
|
def get_item_details(self, args=None):
|
||||||
item = frappe.db.sql("""select stock_uom, item_name
|
item = frappe.db.get_all('Item',
|
||||||
from `tabItem`
|
filters={
|
||||||
where name = %s
|
'disabled': 0,
|
||||||
and disabled=0
|
'name': args.get('item_code')
|
||||||
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)
|
fields=['stock_uom', 'item_name']
|
||||||
|
)
|
||||||
|
|
||||||
if not item:
|
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').format(args.get('item_code')))
|
||||||
|
|
||||||
item = item[0]
|
item = item[0]
|
||||||
|
|
||||||
ret = {
|
ret = {
|
||||||
'uom' : item.stock_uom,
|
'uom' : item.stock_uom,
|
||||||
'stock_uom' : item.stock_uom,
|
'stock_uom' : item.stock_uom,
|
||||||
@ -65,22 +57,34 @@ class ClinicalProcedureTemplate(Document):
|
|||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def updating_item(self):
|
def update_item_and_item_price(self):
|
||||||
frappe.db.sql("""update `tabItem` set item_name=%s, item_group=%s, disabled=0,
|
if self.is_billable and self.item:
|
||||||
description=%s, modified=NOW() where item_code=%s""",
|
item_doc = frappe.get_doc('Item', {'item_code': self.item})
|
||||||
(self.template, self.item_group , self.description, self.item))
|
item_doc.item_name = self.template
|
||||||
def updating_rate(self):
|
item_doc.item_group = self.item_group
|
||||||
frappe.db.sql("""update `tabItem Price` set item_name=%s, price_list_rate=%s, modified=NOW() where
|
item_doc.description = self.description
|
||||||
item_code=%s""",(self.template, self.rate, self.item))
|
item_doc.disabled = 0
|
||||||
|
item_doc.save(ignore_permissions=True)
|
||||||
|
|
||||||
|
if self.rate:
|
||||||
|
item_price = frappe.get_doc('Item Price', {'item_code': self.item})
|
||||||
|
item_price.item_name = self.template
|
||||||
|
item_price.price_list_name = self.rate
|
||||||
|
item_price.save()
|
||||||
|
|
||||||
|
elif not self.is_billable 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 create_item_from_template(doc):
|
def create_item_from_template(doc):
|
||||||
disabled = 1
|
disabled = doc.disabled
|
||||||
|
if doc.is_billable and not doc.disabled:
|
||||||
if doc.is_billable == 1:
|
|
||||||
disabled = 0
|
disabled = 0
|
||||||
|
|
||||||
#insert item
|
item = frappe.get_doc({
|
||||||
item = frappe.get_doc({
|
|
||||||
'doctype': 'Item',
|
'doctype': 'Item',
|
||||||
'item_code': doc.template,
|
'item_code': doc.template,
|
||||||
'item_name':doc.template,
|
'item_name':doc.template,
|
||||||
@ -96,20 +100,13 @@ def create_item_from_template(doc):
|
|||||||
'stock_uom': 'Unit'
|
'stock_uom': 'Unit'
|
||||||
}).insert(ignore_permissions=True)
|
}).insert(ignore_permissions=True)
|
||||||
|
|
||||||
#insert item price
|
make_item_price(item.name, doc.rate)
|
||||||
#get item price list to insert item price
|
|
||||||
if(doc.rate != 0.0):
|
|
||||||
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()
|
||||||
|
|
||||||
doc.reload() #refresh the doc after insert.
|
def make_item_price(item, item_price):
|
||||||
|
price_list_name = frappe.db.get_value('Price List', {'selling': 1})
|
||||||
def make_item_price(item, price_list_name, item_price):
|
|
||||||
frappe.get_doc({
|
frappe.get_doc({
|
||||||
'doctype': 'Item Price',
|
'doctype': 'Item Price',
|
||||||
'price_list': price_list_name,
|
'price_list': price_list_name,
|
||||||
@ -119,13 +116,10 @@ def make_item_price(item, price_list_name, item_price):
|
|||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def change_item_code_from_template(item_code, doc):
|
def change_item_code_from_template(item_code, doc):
|
||||||
args = json.loads(doc)
|
doc = frappe._dict(json.loads(doc))
|
||||||
doc = frappe._dict(args)
|
|
||||||
|
|
||||||
if(frappe.db.exists({
|
if frappe.db.exists('Item', {'item_code': item_code}):
|
||||||
'doctype': 'Item',
|
frappe.throw(_('Item with Item Code {0} already exists').format(item_code))
|
||||||
'item_code': item_code})):
|
|
||||||
frappe.throw(_('Code {0} already exist').format(item_code))
|
|
||||||
else:
|
else:
|
||||||
rename_doc('Item', doc.item_code, item_code, ignore_permissions=True)
|
rename_doc('Item', doc.item_code, item_code, ignore_permissions=True)
|
||||||
frappe.db.set_value('Clinical Procedure Template', doc.name, 'item_code', item_code)
|
frappe.db.set_value('Clinical Procedure Template', doc.name, 'item_code', item_code)
|
||||||
|
|||||||
@ -0,0 +1,13 @@
|
|||||||
|
from __future__ import unicode_literals
|
||||||
|
from frappe import _
|
||||||
|
|
||||||
|
def get_data():
|
||||||
|
return {
|
||||||
|
'fieldname': 'procedure_template',
|
||||||
|
'transactions': [
|
||||||
|
{
|
||||||
|
'label': _('Consultations'),
|
||||||
|
'items': ['Clinical Procedure']
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user