chore: Lab Test Template form clean-up

This commit is contained in:
Rucha Mahabal 2020-07-30 12:16:18 +05:30
parent 9e81bb9a11
commit 440c752529
3 changed files with 25 additions and 22 deletions

View File

@ -112,7 +112,7 @@
{ {
"default": "1", "default": "1",
"depends_on": "eval:doc.lab_test_template_type != 'Grouped'", "depends_on": "eval:doc.lab_test_template_type != 'Grouped'",
"description": "If unchecked, the item wont be appear in Sales Invoice, but can be used in group test creation. ", "description": "If unchecked, the item will not be available in Sales Invoices for billing but can be used in group test creation. ",
"fieldname": "is_billable", "fieldname": "is_billable",
"fieldtype": "Check", "fieldtype": "Check",
"label": "Is Billable", "label": "Is Billable",
@ -184,7 +184,7 @@
"depends_on": "eval:doc.lab_test_template_type == 'Descriptive'", "depends_on": "eval:doc.lab_test_template_type == 'Descriptive'",
"fieldname": "section_break_special", "fieldname": "section_break_special",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "Descriptive" "label": "Descriptive Test"
}, },
{ {
"default": "0", "default": "0",
@ -196,7 +196,7 @@
"depends_on": "eval:doc.lab_test_template_type == 'Grouped'", "depends_on": "eval:doc.lab_test_template_type == 'Grouped'",
"fieldname": "section_break_group", "fieldname": "section_break_group",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "Group" "label": "Group Tests"
}, },
{ {
"fieldname": "lab_test_groups", "fieldname": "lab_test_groups",
@ -314,7 +314,7 @@
} }
], ],
"links": [], "links": [],
"modified": "2020-07-13 12:57:09.925436", "modified": "2020-07-30 11:55:43.093828",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Healthcare", "module": "Healthcare",
"name": "Lab Test Template", "name": "Lab Test Template",

View File

@ -15,7 +15,8 @@ class LabTestTemplate(Document):
def validate(self): def validate(self):
if self.is_billable and (not self.lab_test_rate or self.lab_test_rate <= 0.0): if self.is_billable and (not self.lab_test_rate or self.lab_test_rate <= 0.0):
frappe.throw(_("Standard Selling Rate should be greater than zero.")) frappe.throw(_('Standard Selling Rate should be greater than zero.'))
self.validate_conversion_factor() self.validate_conversion_factor()
self.enable_disable_item() self.enable_disable_item()
@ -42,7 +43,9 @@ class LabTestTemplate(Document):
# Remove template reference from item and disable item # Remove template reference from item and disable item
if self.item: if self.item:
try: try:
frappe.delete_doc('Item', self.item) item = self.item
self.db_set('item', '')
frappe.delete_doc('Item', item)
except Exception: except Exception:
frappe.throw(_('Not permitted. Please disable the Lab Test Template')) frappe.throw(_('Not permitted. Please disable the Lab Test Template'))
@ -63,26 +66,26 @@ class LabTestTemplate(Document):
'standard_rate': self.lab_test_rate, 'standard_rate': self.lab_test_rate,
'description': self.lab_test_description 'description': self.lab_test_description
}) })
item.save() item.flags.ignore_mandatory = True
item.save(ignore_permissions=True)
def item_price_exists(self): def item_price_exists(self):
item_price = frappe.db.exists({'doctype': 'Item Price', 'item_code': self.lab_test_code}) item_price = frappe.db.exists({'doctype': 'Item Price', 'item_code': self.lab_test_code})
if item_price: if item_price:
return item_price[0][0] return item_price[0][0]
else: return False
return False
def validate_conversion_factor(self): def validate_conversion_factor(self):
if self.lab_test_template_type == "Single" and self.secondary_uom and not self.conversion_factor: if self.lab_test_template_type == 'Single' and self.secondary_uom and not self.conversion_factor:
frappe.throw(_("Conversion Factor is mandatory")) frappe.throw(_('Conversion Factor is mandatory'))
if self.lab_test_template_type == "Compound": if self.lab_test_template_type == 'Compound':
for item in self.normal_test_templates: for item in self.normal_test_templates:
if item.secondary_uom and not item.conversion_factor: if item.secondary_uom and not item.conversion_factor:
frappe.throw(_("Conversion Factor is mandatory")) frappe.throw(_('Conversion Factor is mandatory'))
if self.lab_test_template_type == "Grouped": if self.lab_test_template_type == 'Grouped':
for group in self.lab_test_groups: for group in self.lab_test_groups:
if group.template_or_new_line == "Add New Line" and group.secondary_uom and not group.conversion_factor: if group.template_or_new_line == 'Add New Line' and group.secondary_uom and not group.conversion_factor:
frappe.throw(_("Conversion Factor is mandatory")) frappe.throw(_('Conversion Factor is mandatory'))
def create_item_from_template(doc): def create_item_from_template(doc):
@ -103,7 +106,7 @@ def create_item_from_template(doc):
'is_pro_applicable': 0, 'is_pro_applicable': 0,
'disabled': 0 if doc.is_billable and not doc.disabled else doc.disabled, 'disabled': 0 if doc.is_billable and not doc.disabled else doc.disabled,
'stock_uom': uom 'stock_uom': uom
}).insert(ignore_permissions = True, ignore_mandatory = True) }).insert(ignore_permissions=True, ignore_mandatory=True)
# Insert item price # Insert item price
if doc.is_billable and doc.lab_test_rate != 0.0: if doc.is_billable and doc.lab_test_rate != 0.0:
@ -123,7 +126,7 @@ def make_item_price(item, price_list_name, item_price):
'price_list': price_list_name, 'price_list': price_list_name,
'item_code': item, 'item_code': item,
'price_list_rate': item_price 'price_list_rate': item_price
}).insert(ignore_permissions = True, ignore_mandatory = True) }).insert(ignore_permissions=True, ignore_mandatory=True)
@frappe.whitelist() @frappe.whitelist()
def change_test_code_from_template(lab_test_code, doc): def change_test_code_from_template(lab_test_code, doc):
@ -132,8 +135,8 @@ def change_test_code_from_template(lab_test_code, doc):
if frappe.db.exists({'doctype': 'Item', 'item_code': lab_test_code}): if frappe.db.exists({'doctype': 'Item', 'item_code': lab_test_code}):
frappe.throw(_('Lab Test Item {0} already exist').format(lab_test_code)) frappe.throw(_('Lab Test Item {0} already exist').format(lab_test_code))
else: else:
rename_doc('Item', doc.name, lab_test_code, ignore_permissions = True) rename_doc('Item', doc.name, lab_test_code, ignore_permissions=True)
frappe.db.set_value('Lab Test Template', doc.name, 'lab_test_code', lab_test_code) frappe.db.set_value('Lab Test Template', doc.name, 'lab_test_code', lab_test_code)
frappe.db.set_value('Lab Test Template', doc.name, 'lab_test_name', lab_test_code) frappe.db.set_value('Lab Test Template', doc.name, 'lab_test_name', lab_test_code)
rename_doc('Lab Test Template', doc.name, lab_test_code, ignore_permissions = True) rename_doc('Lab Test Template', doc.name, lab_test_code, ignore_permissions=True)
return lab_test_code return lab_test_code

View File

@ -3,5 +3,5 @@
*/ */
frappe.listview_settings['Lab Test Template'] = { frappe.listview_settings['Lab Test Template'] = {
add_fields: ['lab_test_name', 'lab_test_code', 'lab_test_rate'], add_fields: ['lab_test_name', 'lab_test_code', 'lab_test_rate'],
filters: [['disabled', '=', 0]] filters: [['disabled', '=', 'No']]
}; };