Merge branch 'develop' into payment-terms
| @ -4,7 +4,7 @@ import inspect | ||||
| import frappe | ||||
| from erpnext.hooks import regional_overrides | ||||
| 
 | ||||
| __version__ = '9.1.2' | ||||
| __version__ = '9.1.6' | ||||
| 
 | ||||
| def get_default_company(user=None): | ||||
| 	'''Get default company for user''' | ||||
|  | ||||
| @ -417,6 +417,46 @@ | ||||
|    "share": 1,  | ||||
|    "submit": 0,  | ||||
|    "write": 1 | ||||
|   }, | ||||
|   { | ||||
|    "amend": 0,  | ||||
|    "apply_user_permissions": 0,  | ||||
|    "cancel": 0,  | ||||
|    "create": 0,  | ||||
|    "delete": 0,  | ||||
|    "email": 0,  | ||||
|    "export": 0,  | ||||
|    "if_owner": 0,  | ||||
|    "import": 0,  | ||||
|    "permlevel": 0,  | ||||
|    "print": 0,  | ||||
|    "read": 1,  | ||||
|    "report": 0,  | ||||
|    "role": "Sales User",  | ||||
|    "set_user_permissions": 0,  | ||||
|    "share": 0,  | ||||
|    "submit": 0,  | ||||
|    "write": 0 | ||||
|   }, | ||||
|   { | ||||
|    "amend": 0,  | ||||
|    "apply_user_permissions": 0,  | ||||
|    "cancel": 0,  | ||||
|    "create": 0,  | ||||
|    "delete": 0,  | ||||
|    "email": 0,  | ||||
|    "export": 0,  | ||||
|    "if_owner": 0,  | ||||
|    "import": 0,  | ||||
|    "permlevel": 0,  | ||||
|    "print": 0,  | ||||
|    "read": 1,  | ||||
|    "report": 0,  | ||||
|    "role": "Purchase User",  | ||||
|    "set_user_permissions": 0,  | ||||
|    "share": 0,  | ||||
|    "submit": 0,  | ||||
|    "write": 0 | ||||
|   } | ||||
|  ],  | ||||
|  "quick_entry": 1,  | ||||
|  | ||||
| @ -55,13 +55,13 @@ frappe.ui.form.on('Asset', { | ||||
| 				}); | ||||
| 			} | ||||
| 
 | ||||
| 			frm.trigger("show_graph"); | ||||
| 			frm.trigger("setup_chart"); | ||||
| 		} | ||||
| 	}, | ||||
| 
 | ||||
| 	show_graph: function(frm) { | ||||
| 		var x_intervals = ["x", frm.doc.purchase_date]; | ||||
| 		var asset_values = ["Asset Value", frm.doc.gross_purchase_amount]; | ||||
| 	setup_chart: function(frm) { | ||||
| 		var x_intervals = [frm.doc.purchase_date]; | ||||
| 		var asset_values = [frm.doc.gross_purchase_amount]; | ||||
| 		var last_depreciation_date = frm.doc.purchase_date; | ||||
| 
 | ||||
| 		if(frm.doc.opening_accumulated_depreciation) { | ||||
| @ -94,32 +94,21 @@ frappe.ui.form.on('Asset', { | ||||
| 			last_depreciation_date = frm.doc.disposal_date; | ||||
| 		} | ||||
| 
 | ||||
| 		frm.dashboard.setup_chart({ | ||||
| 		frm.dashboard.render_graph({ | ||||
| 			title: "Asset Value", | ||||
| 			data: { | ||||
| 				x: 'x', | ||||
| 				columns: [x_intervals, asset_values], | ||||
| 				regions: { | ||||
| 					'Asset Value': [{'start': last_depreciation_date, 'style':'dashed'}] | ||||
| 				} | ||||
| 				labels: x_intervals, | ||||
| 				datasets: [{ | ||||
| 					color: 'green', | ||||
| 					values: asset_values, | ||||
| 					formatted: asset_values.map(d => d.toFixed(2)) | ||||
| 				}] | ||||
| 			}, | ||||
| 			legend: { | ||||
| 				show: false | ||||
| 			}, | ||||
| 			axis: { | ||||
| 				x: { | ||||
| 					type: 'timeseries', | ||||
| 					tick: { | ||||
| 						format: "%d-%m-%Y" | ||||
| 					} | ||||
| 				}, | ||||
| 				y: { | ||||
| 					min: 0, | ||||
| 					padding: {bottom: 10} | ||||
| 				} | ||||
| 			} | ||||
| 			type: 'line' | ||||
| 		}); | ||||
| 	}, | ||||
| 
 | ||||
| 
 | ||||
| 	item_code: function(frm) { | ||||
| 		if(frm.doc.item_code) { | ||||
| 			frappe.call({ | ||||
|  | ||||
| @ -13,6 +13,7 @@ class TestAsset(unittest.TestCase): | ||||
| 	def setUp(self): | ||||
| 		set_depreciation_settings_in_company() | ||||
| 		create_asset() | ||||
| 		frappe.db.sql("delete from `tabTax Rule`") | ||||
| 		 | ||||
| 	def test_purchase_asset(self): | ||||
| 		asset = frappe.get_doc("Asset", "Macbook Pro 1") | ||||
|  | ||||
| @ -296,7 +296,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-09-04 17:37:01.192312",  | ||||
|  "modified": "2017-10-16 17:37:01.192312",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Accounts",  | ||||
|  "name": "Payment Entry Reference",  | ||||
|  | ||||
| @ -348,6 +348,8 @@ def apply_internal_priority(pricing_rules, field_set, args): | ||||
| 	return filtered_rules or pricing_rules | ||||
| 
 | ||||
| def set_transaction_type(args): | ||||
| 	if args.transaction_type: | ||||
| 		return | ||||
| 	if args.doctype in ("Opportunity", "Quotation", "Sales Order", "Delivery Note", "Sales Invoice"): | ||||
| 		args.transaction_type = "selling" | ||||
| 	elif args.doctype in ("Material Request", "Supplier Quotation", "Purchase Order", | ||||
|  | ||||
| @ -486,17 +486,21 @@ def submit_invoice(si_doc, name, doc, name_list): | ||||
| 		if frappe.message_log: frappe.message_log.pop() | ||||
| 		frappe.db.rollback() | ||||
| 		frappe.log_error(frappe.get_traceback()) | ||||
| 		name_list = save_invoice(e, si_doc, name, name_list) | ||||
| 		name_list = save_invoice(doc, name, name_list) | ||||
| 
 | ||||
| 	return name_list | ||||
| 
 | ||||
| def save_invoice(e, si_doc, name, name_list): | ||||
| def save_invoice(doc, name, name_list): | ||||
| 	try: | ||||
| 		if not frappe.db.exists('Sales Invoice', {'offline_pos_name': name}): | ||||
| 			si_doc.docstatus = 0 | ||||
| 			si_doc.flags.ignore_mandatory = True | ||||
| 			si_doc.due_date = si_doc.posting_date | ||||
| 			si_doc.insert() | ||||
| 			si = frappe.new_doc('Sales Invoice') | ||||
| 			si.update(doc) | ||||
| 			si.set_posting_time = 1 | ||||
| 			si.customer = get_customer_id(doc) | ||||
| 			si.due_date = doc.get('posting_date') | ||||
| 			si.flags.ignore_mandatory = True | ||||
| 			si.insert(ignore_permissions=True) | ||||
| 			frappe.db.commit() | ||||
| 			name_list.append(name) | ||||
| 	except Exception: | ||||
| 		frappe.log_error(frappe.get_traceback()) | ||||
|  | ||||
| @ -3,8 +3,9 @@ | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import frappe | ||||
| import unittest, copy | ||||
| from frappe.utils import nowdate, add_days, flt, getdate | ||||
| 
 | ||||
| import unittest, copy, time | ||||
| from frappe.utils import nowdate, add_days, flt, getdate, cint | ||||
| from frappe.model.dynamic_links import get_dynamic_link_map | ||||
| from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry, get_qty_after_transaction | ||||
| from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import unlink_payment_on_cancel_of_invoice | ||||
| @ -674,6 +675,47 @@ class TestSalesInvoice(unittest.TestCase): | ||||
| 
 | ||||
| 		self.pos_gl_entry(si, pos, 330) | ||||
| 
 | ||||
| 	def test_make_pos_invoice_in_draft(self): | ||||
| 		from erpnext.accounts.doctype.sales_invoice.pos import make_invoice | ||||
| 		from erpnext.stock.doctype.item.test_item import make_item | ||||
| 
 | ||||
| 		set_perpetual_inventory() | ||||
| 
 | ||||
| 		allow_negative_stock = frappe.db.get_single_value('Stock Settings', 'allow_negative_stock') | ||||
| 		if allow_negative_stock: | ||||
| 			frappe.db.set_value('Stock Settings', None, 'allow_negative_stock', 0) | ||||
| 
 | ||||
| 		make_pos_profile() | ||||
| 		timestamp = cint(time.time()) | ||||
| 
 | ||||
| 		item = make_item("_Test POS Item") | ||||
| 		pos = copy.deepcopy(test_records[1]) | ||||
| 		pos['items'][0]['item_code'] = item.name | ||||
| 		pos["is_pos"] = 1 | ||||
| 		pos["offline_pos_name"] = timestamp | ||||
| 		pos["update_stock"] = 1 | ||||
| 		pos["payments"] = [{'mode_of_payment': 'Bank Draft', 'account': '_Test Bank - _TC', 'amount': 300}, | ||||
| 							{'mode_of_payment': 'Cash', 'account': 'Cash - _TC', 'amount': 330}] | ||||
| 
 | ||||
| 		invoice_data = [{timestamp: pos}] | ||||
| 		si = make_invoice(invoice_data).get('invoice') | ||||
| 		self.assertEquals(si[0], timestamp) | ||||
| 
 | ||||
| 		sales_invoice = frappe.get_all('Sales Invoice', fields =["*"], filters = {'offline_pos_name': timestamp}) | ||||
| 		self.assertEquals(sales_invoice[0].docstatus, 0) | ||||
| 
 | ||||
| 		timestamp = cint(time.time()) | ||||
| 		pos["offline_pos_name"] = timestamp | ||||
| 		invoice_data = [{timestamp: pos}] | ||||
| 		si1 = make_invoice(invoice_data).get('invoice') | ||||
| 		self.assertEquals(si1[0], timestamp) | ||||
| 
 | ||||
| 		sales_invoice1 = frappe.get_all('Sales Invoice', fields =["*"], filters = {'offline_pos_name': timestamp}) | ||||
| 		self.assertEquals(sales_invoice1[0].docstatus, 0) | ||||
| 
 | ||||
| 		if allow_negative_stock: | ||||
| 			frappe.db.set_value('Stock Settings', None, 'allow_negative_stock', 1) | ||||
| 
 | ||||
| 	def pos_gl_entry(self, si, pos, cash_amount): | ||||
| 		# check stock ledger entries | ||||
| 		sle = frappe.db.sql("""select * from `tabStock Ledger Entry` | ||||
|  | ||||
| @ -844,7 +844,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-10-03 17:20:26.919630",  | ||||
|  "modified": "2017-10-10 17:28:10.105561",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Accounts",  | ||||
|  "name": "Subscription",  | ||||
|  | ||||
| @ -205,6 +205,17 @@ def update_doc(new_document, reference_doc, args, schedule_date): | ||||
| 	if new_document.meta.get_field('subscription'): | ||||
| 		new_document.set('subscription', args.name) | ||||
| 
 | ||||
| 	for fieldname in ['naming_series', 'ignore_pricing_rule', 'posting_time' | ||||
| 		'select_print_heading', 'remarks', 'owner']: | ||||
| 		if new_document.meta.get_field(fieldname): | ||||
| 			new_document.set(fieldname, reference_doc.get(fieldname)) | ||||
| 
 | ||||
| 	# copy item fields | ||||
| 	if new_document.meta.get_field('items'): | ||||
| 		for i, item in enumerate(new_document.items): | ||||
| 			for fieldname in ("page_break",): | ||||
| 				item.set(fieldname, reference_doc.items[i].get(fieldname)) | ||||
| 
 | ||||
| 	if args.from_date and args.to_date: | ||||
| 		from_date = get_next_date(args.from_date, mcount) | ||||
| 
 | ||||
|  | ||||
| @ -30,7 +30,7 @@ class TestSubscription(unittest.TestCase): | ||||
| 
 | ||||
| 		new_quotation = frappe.get_doc('Quotation', new_quotation) | ||||
| 
 | ||||
| 		for fieldname in ['customer', 'company', 'order_type', 'total', 'grand_total']: | ||||
| 		for fieldname in ['customer', 'company', 'order_type', 'total', 'net_total']: | ||||
| 			self.assertEquals(quotation.get(fieldname), new_quotation.get(fieldname)) | ||||
| 
 | ||||
| 		for fieldname in ['item_code', 'qty', 'rate', 'amount']: | ||||
|  | ||||
| @ -11,7 +11,10 @@ test_records = frappe.get_test_records('Tax Rule') | ||||
| 
 | ||||
| class TestTaxRule(unittest.TestCase): | ||||
| 	def setUp(self): | ||||
| 		frappe.db.sql("delete from `tabTax Rule` where use_for_shopping_cart <> 1") | ||||
| 		frappe.db.sql("delete from `tabTax Rule`") | ||||
| 
 | ||||
| 	def tearDown(self): | ||||
| 		frappe.db.sql("delete from `tabTax Rule`") | ||||
| 
 | ||||
| 	def test_conflict(self): | ||||
| 		tax_rule1 = make_tax_rule(customer= "_Test Customer", | ||||
|  | ||||
| @ -316,9 +316,9 @@ class ReceivablePayableReport(object): | ||||
| 
 | ||||
| 		return { | ||||
| 			"data": { | ||||
| 				'rows': rows | ||||
| 				'labels': rows | ||||
| 			}, | ||||
| 			"chart_type": 'pie' | ||||
| 			"type": 'percentage' | ||||
| 		} | ||||
| 
 | ||||
| def execute(filters=None): | ||||
|  | ||||
| @ -118,7 +118,7 @@ def check_opening_balance(asset, liability, equity): | ||||
| 	return None,None | ||||
| 
 | ||||
| def get_chart_data(filters, columns, asset, liability, equity): | ||||
| 	x_intervals = ['x'] + [d.get("label") for d in columns[2:]] | ||||
| 	labels = [d.get("label") for d in columns[2:]] | ||||
| 
 | ||||
| 	asset_data, liability_data, equity_data = [], [], [] | ||||
| 
 | ||||
| @ -130,22 +130,24 @@ def get_chart_data(filters, columns, asset, liability, equity): | ||||
| 		if equity: | ||||
| 			equity_data.append(equity[-2].get(p.get("fieldname"))) | ||||
| 
 | ||||
| 	columns = [x_intervals] | ||||
| 	datasets = [] | ||||
| 	if asset_data: | ||||
| 		columns.append(["Assets"] + asset_data) | ||||
| 		datasets.append({'title':'Assets', 'values': asset_data}) | ||||
| 	if liability_data: | ||||
| 		columns.append(["Liabilities"] + liability_data) | ||||
| 		datasets.append({'title':'Liabilities', 'values': liability_data}) | ||||
| 	if equity_data: | ||||
| 		columns.append(["Equity"] + equity_data) | ||||
| 		datasets.append({'title':'Equity', 'values': equity_data}) | ||||
| 
 | ||||
| 	chart = { | ||||
| 		"data": { | ||||
| 			'x': 'x', | ||||
| 			'columns': columns | ||||
| 			'labels': labels, | ||||
| 			'datasets': datasets | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if not filters.accumulated_values: | ||||
| 		chart["chart_type"] = "bar" | ||||
| 		chart["type"] = "bar" | ||||
| 	else: | ||||
| 		chart["type"] = "line" | ||||
| 
 | ||||
| 	return chart | ||||
| @ -107,6 +107,8 @@ class GrossProfitGenerator(object): | ||||
| 
 | ||||
| 	def process(self): | ||||
| 		self.grouped = {} | ||||
| 		self.grouped_data = [] | ||||
| 
 | ||||
| 		for row in self.si_list: | ||||
| 			if self.skip_row(row, self.product_bundles): | ||||
| 				continue | ||||
| @ -150,7 +152,6 @@ class GrossProfitGenerator(object): | ||||
| 
 | ||||
| 	def get_average_rate_based_on_group_by(self): | ||||
| 		# sum buying / selling totals for group | ||||
| 		self.grouped_data = [] | ||||
| 		for key in self.grouped.keys(): | ||||
| 			if self.filters.get("group_by") != "Invoice": | ||||
| 				for i, row in enumerate(self.grouped[key]): | ||||
|  | ||||
| @ -61,7 +61,7 @@ def get_net_profit_loss(income, expense, period_list, company): | ||||
| 
 | ||||
| 
 | ||||
| def get_chart_data(filters, columns, income, expense, net_profit_loss): | ||||
| 	x_intervals = ['x'] + [d.get("label") for d in columns[2:]] | ||||
| 	labels = [d.get("label") for d in columns[2:]] | ||||
| 
 | ||||
| 	income_data, expense_data, net_profit = [], [], [] | ||||
| 
 | ||||
| @ -73,27 +73,24 @@ def get_chart_data(filters, columns, income, expense, net_profit_loss): | ||||
| 		if net_profit_loss: | ||||
| 			net_profit.append(net_profit_loss.get(p.get("fieldname"))) | ||||
| 
 | ||||
| 	columns = [x_intervals] | ||||
| 	datasets = [] | ||||
| 	if income_data: | ||||
| 		columns.append(["Income"] + income_data) | ||||
| 		datasets.append({'title': 'Income', 'values': income_data}) | ||||
| 	if expense_data: | ||||
| 		columns.append(["Expense"] + expense_data) | ||||
| 		datasets.append({'title': 'Expense', 'values': expense_data}) | ||||
| 	if net_profit: | ||||
| 		columns.append(["Net Profit/Loss"] + net_profit) | ||||
| 		datasets.append({'title': 'Net Profit/Loss', 'values': net_profit}) | ||||
| 
 | ||||
| 	chart = { | ||||
| 		"data": { | ||||
| 			'x': 'x', | ||||
| 			'columns': columns, | ||||
| 			'colors': { | ||||
| 				'Income': '#5E64FF', | ||||
| 				'Expense': '#b8c2cc', | ||||
| 				'Net Profit/Loss': '#ff5858' | ||||
| 			} | ||||
| 			'labels': labels, | ||||
| 			'datasets': datasets | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if not filters.accumulated_values: | ||||
| 		chart["chart_type"] = "bar" | ||||
| 		chart["type"] = "bar" | ||||
| 	else: | ||||
| 		chart["type"] = "line" | ||||
| 
 | ||||
| 	return chart | ||||
| @ -816,7 +816,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-07-21 14:06:46.309322",  | ||||
|  "modified": "2017-10-17 17:27:06.281494",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Buying",  | ||||
|  "name": "Request for Quotation",  | ||||
| @ -903,26 +903,6 @@ | ||||
|    "submit": 0,  | ||||
|    "write": 0 | ||||
|   },  | ||||
|   { | ||||
|    "amend": 0,  | ||||
|    "apply_user_permissions": 0,  | ||||
|    "cancel": 0,  | ||||
|    "create": 0,  | ||||
|    "delete": 0,  | ||||
|    "email": 1,  | ||||
|    "export": 0,  | ||||
|    "if_owner": 0,  | ||||
|    "import": 0,  | ||||
|    "permlevel": 0,  | ||||
|    "print": 1,  | ||||
|    "read": 1,  | ||||
|    "report": 1,  | ||||
|    "role": "Supplier",  | ||||
|    "set_user_permissions": 0,  | ||||
|    "share": 0,  | ||||
|    "submit": 0,  | ||||
|    "write": 0 | ||||
|   },  | ||||
|   { | ||||
|    "amend": 0,  | ||||
|    "apply_user_permissions": 0,  | ||||
|  | ||||
| @ -1,3 +1,5 @@ | ||||
| # coding=utf-8 | ||||
| 
 | ||||
| from __future__ import unicode_literals | ||||
| from frappe import _ | ||||
| 
 | ||||
| @ -284,4 +286,12 @@ def get_data(): | ||||
| 			"link": "data-import-tool", | ||||
| 			"label": _("Data Import Tool") | ||||
| 		}, | ||||
| 		{ | ||||
| 			"module_name": "Restaurant", | ||||
| 			"color": "#EA81E8", | ||||
| 			"icon": "🍔", | ||||
| 			"_doctype": "Restaurant", | ||||
| 			"link": "List/Restaurant", | ||||
| 			"label": _("Restaurant") | ||||
| 		} | ||||
| 	] | ||||
|  | ||||
| @ -109,6 +109,9 @@ class AccountsController(TransactionBase): | ||||
| 					self.set(fieldname, today()) | ||||
| 					break | ||||
| 
 | ||||
| 		# set taxes table if missing from `taxes_and_charges` | ||||
| 		self.set_taxes() | ||||
| 
 | ||||
| 	def calculate_taxes_and_totals(self): | ||||
| 		from erpnext.controllers.taxes_and_totals import calculate_taxes_and_totals | ||||
| 		calculate_taxes_and_totals(self) | ||||
|  | ||||
| @ -205,9 +205,10 @@ def copy_attributes_to_variant(item, variant): | ||||
| 
 | ||||
| 	if item.variant_based_on=='Item Attribute': | ||||
| 		if variant.attributes: | ||||
| 			variant.description += "\n" | ||||
| 			for d in variant.attributes: | ||||
| 				variant.description += "<div>" + d.attribute + ": " + cstr(d.attribute_value) + "</div>" | ||||
| 			if not variant.description: | ||||
| 				variant.description += "\n" | ||||
| 				for d in variant.attributes: | ||||
| 					variant.description += "<div>" + d.attribute + ": " + cstr(d.attribute_value) + "</div>" | ||||
| 
 | ||||
| def make_variant_item_code(template_item_code, template_item_name, variant): | ||||
| 	"""Uses template's item code and abbreviations to make variant's item code""" | ||||
|  | ||||
| @ -165,6 +165,7 @@ def item_query(doctype, txt, searchfield, start, page_len, filters, as_dict=Fals | ||||
| 			and (tabItem.`{key}` LIKE %(txt)s | ||||
| 				or tabItem.item_group LIKE %(txt)s | ||||
| 				or tabItem.item_name LIKE %(txt)s | ||||
| 				or tabItem.barcode LIKE %(txt)s | ||||
| 				or tabItem.description LIKE %(txt)s) | ||||
| 			{fcond} {mcond} | ||||
| 		order by | ||||
| @ -172,7 +173,8 @@ def item_query(doctype, txt, searchfield, start, page_len, filters, as_dict=Fals | ||||
| 			if(locate(%(_txt)s, item_name), locate(%(_txt)s, item_name), 99999), | ||||
| 			idx desc, | ||||
| 			name, item_name | ||||
| 		limit %(start)s, %(page_len)s """.format(key=searchfield, | ||||
| 		limit %(start)s, %(page_len)s """.format( | ||||
| 			key=searchfield, | ||||
| 			fcond=get_filters_cond(doctype, filters, conditions).replace('%', '%%'), | ||||
| 			mcond=get_match_cond(doctype).replace('%', '%%')), | ||||
| 			{ | ||||
|  | ||||
| @ -21,23 +21,13 @@ frappe.query_reports["Minutes to First Response for Opportunity"] = { | ||||
| 	get_chart_data: function (columns, result) { | ||||
| 		return { | ||||
| 			data: { | ||||
| 				x: 'Date', | ||||
| 				columns: [ | ||||
| 					['Date'].concat($.map(result, function (d) { return d[0]; })), | ||||
| 					['Mins to first response'].concat($.map(result, function (d) { return d[1]; })) | ||||
| 				] | ||||
| 				// rows: [['Date', 'Mins to first response']].concat(result)
 | ||||
| 				labels: result.map(d => d[0]), | ||||
| 				datasets: [{ | ||||
| 					title: 'Mins to first response', | ||||
| 					values: result.map(d => d[1]) | ||||
| 				}] | ||||
| 			}, | ||||
| 			axis: { | ||||
| 				x: { | ||||
| 					type: 'timeseries', | ||||
| 					tick: { | ||||
| 						format: frappe.ui.py_date_format | ||||
| 					} | ||||
| 				} | ||||
| 			}, | ||||
| 			chart_type: 'line', | ||||
| 
 | ||||
| 			type: 'line', | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								erpnext/docs/assets/img/restaurant/order-entry-bill.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 207 KiB | 
							
								
								
									
										
											BIN
										
									
								
								erpnext/docs/assets/img/restaurant/order-entry.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 218 KiB | 
							
								
								
									
										
											BIN
										
									
								
								erpnext/docs/assets/img/restaurant/reservation-kanban.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 208 KiB | 
							
								
								
									
										
											BIN
										
									
								
								erpnext/docs/assets/img/restaurant/restaurant-invoice.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 195 KiB | 
							
								
								
									
										
											BIN
										
									
								
								erpnext/docs/assets/img/restaurant/restaurant-menu.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 202 KiB | 
							
								
								
									
										
											BIN
										
									
								
								erpnext/docs/assets/img/restaurant/restaurant-reservation.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 223 KiB | 
							
								
								
									
										
											BIN
										
									
								
								erpnext/docs/assets/img/restaurant/restaurant-table.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 201 KiB | 
							
								
								
									
										
											BIN
										
									
								
								erpnext/docs/assets/img/restaurant/restaurant.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 260 KiB | 
| @ -16,7 +16,9 @@ To set credit limit go to Customer - Master | ||||
| 
 | ||||
| <img class="screenshot" alt="Credit Limit" src="/docs/assets/img/accounts/credit-limit-1.png"> | ||||
| 
 | ||||
| Go to the 'More Info section' and enter the amount in the field Credit Limit. | ||||
| Go to the 'CREDIT LIMIT' section and enter the amount in the field Credit Limit. | ||||
| 
 | ||||
| If you leave CREDIT LIMIT as 0.00, it has no effect. | ||||
| 
 | ||||
| In case a need arises to allow more credit to the customer as a good-will, the | ||||
| Credit Controller has access to submit order even if credit limit is crossed. | ||||
| @ -27,6 +29,25 @@ has expired, go to accounting settings and make changes. | ||||
| In the field Credit Controller, select the role who would be authorized to | ||||
| accept orders or raise credit limits of customers. | ||||
| 
 | ||||
| To set credit limit at Customer Group Level go to Selling -> Customers -> Customer Group | ||||
| 
 | ||||
| Go to the 'CREDIT LIMIT' field and enter the amount. | ||||
| If you leave CREDIT LIMIT as 0.00, it has no effect. | ||||
| 
 | ||||
| 
 | ||||
| To set credit limit at Company level go to Account -> Company | ||||
| 
 | ||||
| Go to the 'ACCOUNT SETTINGS' section and enter the amount in the CREDIT LIMIT field. | ||||
| If you leave CREDIT LIMIT as 0.00, it has no effect. | ||||
| 
 | ||||
| For 'CREDIT LIMIT' check functionality, Priority (High to Low) is as below | ||||
| 1) Customer | ||||
| 2) Customer Group | ||||
| 3) Company | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|    | ||||
| #### Figure 2: Credit Controller | ||||
| 
 | ||||
| <img class="screenshot" alt="Credit Limit" src="/docs/assets/img/accounts/credit-limit-2.png"> | ||||
|  | ||||
							
								
								
									
										9
									
								
								erpnext/docs/user/manual/en/hospitality/index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,9 @@ | ||||
| # Hospitality | ||||
| 
 | ||||
| ERPNext Hospitality module is designed to handle workflows for Hotels and Restaurants. This is still in early development stage. | ||||
| 
 | ||||
| ### Manage Restaurants | ||||
| 
 | ||||
| The Restaurant module in ERPNext will help you manage a chain of restaurants. You can create Restaurants, Menus, Tables, Reservations and a manage Order Entry and Billing. | ||||
| 
 | ||||
| {index} | ||||
							
								
								
									
										4
									
								
								erpnext/docs/user/manual/en/hospitality/index.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,4 @@ | ||||
| restaurant | ||||
| restaurant-menu | ||||
| reservations | ||||
| order-entry | ||||
							
								
								
									
										26
									
								
								erpnext/docs/user/manual/en/hospitality/order-entry.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,26 @@ | ||||
| # Restaurant Order Entry | ||||
| 
 | ||||
| The Restaurant Order Entry is the screen where the waiters will punch in orders related to a particular table. | ||||
| 
 | ||||
| This screen makes it easy for the waiters in your restaurant to punch in orders from various tables. | ||||
| 
 | ||||
| When the guest places an order, the waiter will select the table number and add the items in the Order Entry. This can be changed until it is time for the bill. Unless you bill a table, you can change the items and they will automatically appear when you select the table ID. | ||||
| 
 | ||||
| To place an order you can select an item and click the enter key so that the item will be updated in the items table. | ||||
| 
 | ||||
| <img class="screenshot" alt="Order Entry" src="/docs/assets/img/restaurant/order-entry.png"> | ||||
| 
 | ||||
| You can also choose items with the POS style item selector. | ||||
| 
 | ||||
| ### Billing | ||||
| 
 | ||||
| When it is time for billing, you just choose the bill and you can select the customer and mode of payment. On saving, a Sales Invoice is generated and the order section becomes empty. | ||||
| 
 | ||||
| <img class="screenshot" alt="Order Entry" src="/docs/assets/img/restaurant/order-entry-bill.png"> | ||||
| 
 | ||||
| ### Sales Invoice | ||||
| 
 | ||||
| To print the invoice, you can click on the Invoice Link and print the invoice | ||||
| 
 | ||||
| <img class="screenshot" alt="Sales Invoice" src="/docs/assets/img/restaurant/restaurant-invoice.png"> | ||||
| 
 | ||||
							
								
								
									
										13
									
								
								erpnext/docs/user/manual/en/hospitality/reservations.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,13 @@ | ||||
| # Restaurant Reservations | ||||
| 
 | ||||
| Once you have setup the restaurant and tables, you can start taking in reservations for your restaurant. | ||||
| 
 | ||||
| To take a reservation, just make a new Restaurant Reservation from the Restaurant Page and set the time, number of people and name of the guest. | ||||
| 
 | ||||
| <img class="screenshot" alt="Reservation" src="/docs/assets/img/restaurant/reservation.png"> | ||||
| 
 | ||||
| ### Kanban | ||||
| 
 | ||||
| As your guests walk in, You can also manage the reservations by making a simple Kanban board for the same. | ||||
| 
 | ||||
| <img class="screenshot" alt="Reservation Kanban Board" src="/docs/assets/img/restaurant/reservation-kanban.png"> | ||||
| @ -0,0 +1,7 @@ | ||||
| # Restaurant Menu | ||||
| 
 | ||||
| For every restaurant you must set an active Restaurant Menu from which orders can be placed. You can also set the rates for each of the item for the day. | ||||
| 
 | ||||
| When you save the Restaurant Menu, a Price List is created for that Menu and all pricing is linked to that price list. This way you can easily control the items on offer and pricing from the menu. | ||||
| 
 | ||||
| <img class="screenshot" alt="Restaurant Menu" src="/docs/assets/img/restaurant/restaurant-menu.png"> | ||||
							
								
								
									
										19
									
								
								erpnext/docs/user/manual/en/hospitality/restaurant.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,19 @@ | ||||
| # Restaurant | ||||
| 
 | ||||
| The Restaurant record represents one restaurant in your organization. To create a new Restaurant, just set the name, Company and Default Customer. | ||||
| 
 | ||||
| You can set a unique numbering prefix for each of your restaurants. All invoices for that restuarant will follow that numbering prefix. | ||||
| 
 | ||||
| If you have a default Sales Taxes and Charges Template, you can add it so that the same charge + tax will be applicable for all invoices in the restaurant. | ||||
| 
 | ||||
| <img class="screenshot" alt="Restaurant" src="/docs/assets/img/restaurant/restaurant.png"> | ||||
| 
 | ||||
| After your restaurant is created, you can add Tables and Menus for that restaurant | ||||
| 
 | ||||
| ### Adding Tables | ||||
| 
 | ||||
| You can add a Restaurant Table by creating a new Restaurant Table from the dashboard. | ||||
| 
 | ||||
| <img class="screenshot" alt="Restaurant Table" src="/docs/assets/img/restaurant/restaurant-table.png"> | ||||
| 
 | ||||
| 
 | ||||
| @ -1,7 +1,3 @@ | ||||
| # Getting Started With Erpnext | ||||
| 
 | ||||
| <!-- Getting Started with ERPNext--> | ||||
| 
 | ||||
| # Getting Started with ERPNext | ||||
| 
 | ||||
| There are many ways to get started with ERPNext. | ||||
|  | ||||
| @ -1,9 +1,5 @@ | ||||
| # The Champion | ||||
| 
 | ||||
| <!-- no-heading --> | ||||
| 
 | ||||
| <h1 class="white">The Champion</h1> | ||||
| 
 | ||||
| <img alt="Champion" class="screenshot" src="/docs/assets/img/setup/implementation-image.png"> | ||||
| 
 | ||||
| We have seen dozens of ERP implementations over the past few years and we | ||||
|  | ||||
| @ -1,22 +0,0 @@ | ||||
| If you have a contract with the Customer where your organization gives bill to the Customer on a monthly, quarterly, half-yearly or annual basis, you can use subscription feature to make auto invoicing. | ||||
| 
 | ||||
| <img class="screenshot" alt="Subscription" src="{{docs_base_url}}/assets/img/subscription/subscription.png"> | ||||
| 
 | ||||
| #### Scenario | ||||
| 
 | ||||
| Subscription for your hosted ERPNext account requires yearly renewal. We use Sales Invoice for generating proforma invoices. To automate proforma invoicing for renewal, we set original Sales Invoice on the subscription form. Recurring proforma invoice is created automatically just before customer's account is about to expire, and requires renewal. This recurring Proforma Invoice is also emailed automatically to the customer. | ||||
| 
 | ||||
| To set the subscription for the sales invoice | ||||
| Goto Subscription > select base doctype "Sales Invoice" > select base docname "Invoice No" > Save | ||||
| 
 | ||||
| <img class="screenshot" alt="Subscription" src="{{docs_base_url}}/assets/img/subscription/subscription.gif"> | ||||
| 
 | ||||
| **From Date and To Date**: This defines contract period with the customer. | ||||
| 
 | ||||
| **Repeat on Day**: If frequency is set as Monthly, then it will be day of the month on which recurring invoice will be generated. | ||||
| 
 | ||||
| **Notify By Email**: If you want to notify the user about auto recurring invoice. | ||||
| 
 | ||||
| **Print Format**: Select a print format to define document view which should be emailed to customer. | ||||
| 
 | ||||
| **Disabled**: It will stop to make auto recurring documents against the subscription | ||||
							
								
								
									
										18
									
								
								erpnext/domains/distribution.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,18 @@ | ||||
| data = { | ||||
| 	'desktop_icons': [ | ||||
| 		'Item', | ||||
| 		'Customer', | ||||
| 		'Supplier', | ||||
| 		'Lead', | ||||
| 		'Sales Order', | ||||
| 		'Purchase Order', | ||||
| 		'Task', | ||||
| 		'Sales Invoice', | ||||
| 		'CRM', | ||||
| 		'ToDo' | ||||
| 	], | ||||
| 	'set_value': [ | ||||
| 		['Stock Settings', None, 'show_barcode_field', 1] | ||||
| 	], | ||||
| 	'default_portal_role': 'Customer' | ||||
| } | ||||
							
								
								
									
										37
									
								
								erpnext/domains/education.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,37 @@ | ||||
| data = { | ||||
| 	'desktop_icons': [ | ||||
| 		'Student', | ||||
| 		'Program', | ||||
| 		'Course', | ||||
| 		'Student Group', | ||||
| 		'Instructor', | ||||
| 		'Fees', | ||||
| 		'Task', | ||||
| 		'ToDo', | ||||
| 		'Schools' | ||||
| 	], | ||||
| 	'default_portal_role': 'Student', | ||||
| 	'restricted_roles': [ | ||||
| 		'Student', | ||||
| 		'Instructor', | ||||
| 		'Academics User' | ||||
| 	], | ||||
| 	'modules': [ | ||||
| 		'Schools' | ||||
| 	], | ||||
| 	'fixtures': [ | ||||
| 		dict(doctype='Academic Year', academic_year_name='2013-14'), | ||||
| 		dict(doctype='Academic Year', academic_year_name='2014-15'), | ||||
| 		dict(doctype='Academic Year', academic_year_name='2015-16'), | ||||
| 		dict(doctype='Academic Year', academic_year_name='2016-17'), | ||||
| 		dict(doctype='Academic Year', academic_year_name='2017-18'), | ||||
| 		dict(doctype='Academic Year', academic_year_name='2018-19'), | ||||
| 		dict(doctype='Academic Year', academic_year_name='2019-20'), | ||||
| 		dict(doctype='Academic Term', academic_year='2016-17', term_name='Semester 1'), | ||||
| 		dict(doctype='Academic Term', academic_year='2016-17', term_name='Semester 2'), | ||||
| 		dict(doctype='Academic Term', academic_year='2016-17', term_name='Semester 3'), | ||||
| 		dict(doctype='Academic Term', academic_year='2017-18', term_name='Semester 1'), | ||||
| 		dict(doctype='Academic Term', academic_year='2017-18', term_name='Semester 2'), | ||||
| 		dict(doctype='Academic Term', academic_year='2017-18', term_name='Semester 3') | ||||
| 	] | ||||
| } | ||||
							
								
								
									
										29
									
								
								erpnext/domains/healthcare.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,29 @@ | ||||
| data = { | ||||
| 	'desktop_icons': [ | ||||
| 		'Patient', | ||||
| 		'Patient Appointment', | ||||
| 		'Consultation', | ||||
| 		'Lab Test', | ||||
| 		'Healthcare', | ||||
| 		'Accounts', | ||||
| 		'Buying', | ||||
| 		'Stock', | ||||
| 		'HR', | ||||
| 		'ToDo' | ||||
| 	], | ||||
| 	'default_portal_role': 'Patient', | ||||
| 	'restricted_roles': [ | ||||
| 		'Healthcare Administrator', | ||||
| 		'LabTest Approver', | ||||
| 		'Laboratory User', | ||||
| 		'Nursing User', | ||||
| 		'Physician', | ||||
| 		'Patient' | ||||
| 	], | ||||
| 	'custom_fields': { | ||||
| 		'Sales Invoice': dict(fieldname='appointment', label='Patient Appointment', | ||||
| 			fieldtype='Link', options='Patient Appointment', | ||||
| 			insert_after='customer') | ||||
| 	}, | ||||
| 	'on_setup': 'erpnext.healthcare.setup.setup_healthcare' | ||||
| } | ||||
							
								
								
									
										32
									
								
								erpnext/domains/hospitality.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,32 @@ | ||||
| data = { | ||||
| 	'desktop_icons': [ | ||||
| 		'Restaurant', | ||||
| 		'Accounts', | ||||
| 		'Buying', | ||||
| 		'Stock', | ||||
| 		'HR', | ||||
| 		'Project', | ||||
| 		'ToDo' | ||||
| 	], | ||||
| 	'restricted_roles': [ | ||||
| 		'Restaurant Manager' | ||||
| 	], | ||||
| 	'custom_fields': { | ||||
| 		'Sales Invoice': [ | ||||
| 			{ | ||||
| 				'fieldname': 'restaurant', 'fieldtype': 'Link', 'options': 'Restaurant', | ||||
| 				'insert_after': 'customer_name', 'label': 'Restaurant', | ||||
| 			}, | ||||
| 			{ | ||||
| 				'fieldname': 'restaurant_table', 'fieldtype': 'Link', 'options': 'Restaurant Table', | ||||
| 				'insert_after': 'restaurant', 'label': 'Restaurant Table', | ||||
| 			} | ||||
| 		], | ||||
| 		'Price List': [ | ||||
| 			{ | ||||
| 				'fieldname':'restaurant_menu', 'fieldtype':'Link', 'options':'Restaurant Menu', 'label':'Restaurant Menu', | ||||
| 				'insert_after':'currency' | ||||
| 			} | ||||
| 		] | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										25
									
								
								erpnext/domains/manufacturing.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,25 @@ | ||||
| data = { | ||||
| 	'desktop_icons': [ | ||||
| 		'Item', | ||||
| 		'BOM', | ||||
| 		'Customer', | ||||
| 		'Supplier', | ||||
| 		'Sales Order', | ||||
| 		'Purchase Order', | ||||
| 		'Production Order', | ||||
| 		'Task', | ||||
| 		'Accounts', | ||||
| 		'HR', | ||||
| 		'ToDo' | ||||
| 	 ], | ||||
| 	'properties': [ | ||||
| 		{'doctype': 'Item', 'fieldname': 'manufacturing', 'property': 'collapsible_depends_on', 'value': 'is_stock_item'}, | ||||
| 	], | ||||
| 	'set_value': [ | ||||
| 		['Stock Settings', None, 'show_barcode_field', 1] | ||||
| 	], | ||||
| 	'restricted_roles': [ | ||||
| 		'Manufacturing User' | ||||
| 	], | ||||
| 	'default_portal_role': 'Customer' | ||||
| } | ||||
							
								
								
									
										20
									
								
								erpnext/domains/retail.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,20 @@ | ||||
| data = { | ||||
| 	'desktop_icons': [ | ||||
| 		'POS', | ||||
| 		'Item', | ||||
| 		'Customer', | ||||
| 		'Sales Invoice', | ||||
| 		'Purchase Order', | ||||
| 		'Accounts', | ||||
| 		'Task', | ||||
| 		'ToDo' | ||||
| 	], | ||||
| 	'properties': [ | ||||
| 		{'doctype': 'Item', 'fieldname': 'manufacturing', 'property': 'hidden', 'value': 1}, | ||||
| 		{'doctype': 'Customer', 'fieldname': 'credit_limit_section', 'property': 'hidden', 'value': 1}, | ||||
| 	], | ||||
| 	'set_value': [ | ||||
| 		['Stock Settings', None, 'show_barcode_field', 1] | ||||
| 	], | ||||
| 	'default_portal_role': 'Customer' | ||||
| } | ||||
							
								
								
									
										19
									
								
								erpnext/domains/services.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,19 @@ | ||||
| data = { | ||||
| 	'desktop_icons': [ | ||||
| 		'Project', | ||||
| 		'Timesheet', | ||||
| 		'Customer', | ||||
| 		'Sales Order', | ||||
| 		'Sales Invoice', | ||||
| 		'CRM', | ||||
| 		'Task', | ||||
| 		'Expense Claim', | ||||
| 		'Employee', | ||||
| 		'HR', | ||||
| 		'ToDo' | ||||
| 	], | ||||
| 	'set_value': [ | ||||
| 		['Stock Settings', None, 'show_barcode_field', 0] | ||||
| 	], | ||||
| 	'default_portal_role': 'Customer' | ||||
| } | ||||
| @ -22,7 +22,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -62,11 +62,11 @@ | ||||
|    "no_copy": 0,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -83,7 +83,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:46:57.142289",  | ||||
|  "modified": "2017-10-05 11:07:26.369657",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Appointment Type",  | ||||
|  | ||||
| @ -21,7 +21,7 @@ | ||||
|    "fieldname": "medical_code",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -53,7 +53,7 @@ | ||||
|    "fieldtype": "Read Only",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -84,7 +84,7 @@ | ||||
|    "fieldtype": "Read Only",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -116,7 +116,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 14:06:50.281545",  | ||||
|  "modified": "2017-10-04 17:07:22.880451",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Codification Table",  | ||||
|  | ||||
| @ -23,7 +23,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -54,7 +54,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:44:31.848346",  | ||||
|  "modified": "2017-10-05 11:18:42.017864",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Complaint",  | ||||
|  | ||||
| @ -63,11 +63,11 @@ | ||||
|    "options": "C-",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -83,7 +83,7 @@ | ||||
|    "fieldname": "appointment",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -114,7 +114,7 @@ | ||||
|    "fieldname": "type",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 1,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -122,15 +122,15 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Type",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Appointment Type",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -145,12 +145,12 @@ | ||||
|    "fieldname": "patient",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Patient",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -188,11 +188,11 @@ | ||||
|    "options": "",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -219,11 +219,11 @@ | ||||
|    "options": "\nMale\nFemale",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -243,7 +243,7 @@ | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Doctor",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -329,12 +329,12 @@ | ||||
|    "fieldname": "visit_department",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Department",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -347,7 +347,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -430,7 +430,7 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Invoice",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Sales Invoice",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
| @ -493,11 +493,11 @@ | ||||
|    "no_copy": 0,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -542,7 +542,7 @@ | ||||
|    "fieldname": "symptoms_select",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -550,15 +550,15 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Complaints",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Complaint",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -574,14 +574,14 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
| @ -612,14 +612,14 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "In print",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -665,7 +665,7 @@ | ||||
|    "fieldname": "diagnosis_select",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -673,15 +673,15 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Diagnosis",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Diagnosis",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -698,14 +698,14 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
| @ -737,14 +737,14 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "In print",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -943,14 +943,14 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Review Details",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
| @ -1004,7 +1004,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 14:24:59.935498",  | ||||
|  "modified": "2017-10-05 12:13:52.596750",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Consultation",  | ||||
|  | ||||
| @ -78,7 +78,7 @@ def create_invoice(company, patient, physician, consultation_id): | ||||
| 	create_invoice_items(physician, sales_invoice, company) | ||||
| 
 | ||||
| 	sales_invoice.save(ignore_permissions=True) | ||||
| 	frappe.db.sql(_("""update tabConsultation set invoice='{0}' where name='{1}'""").format(sales_invoice.name, consultation_id)) | ||||
| 	frappe.db.sql("""update tabConsultation set invoice=%s where name=%s""", (sales_invoice.name, consultation_id)) | ||||
| 	appointment = frappe.db.get_value("Consultation", consultation_id, "appointment") | ||||
| 	if appointment: | ||||
| 		frappe.db.set_value("Patient Appointment", appointment, "sales_invoice", sales_invoice.name) | ||||
|  | ||||
| @ -23,7 +23,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -54,7 +54,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:40:09.731904",  | ||||
|  "modified": "2017-10-05 11:25:46.107435",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Diagnosis",  | ||||
|  | ||||
| @ -23,7 +23,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -54,7 +54,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:40:19.973532",  | ||||
|  "modified": "2017-10-05 11:24:57.888091",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Dosage Form",  | ||||
|  | ||||
| @ -21,7 +21,7 @@ | ||||
|    "fieldname": "drug_code",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -83,7 +83,7 @@ | ||||
|    "fieldname": "dosage",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -114,7 +114,7 @@ | ||||
|    "fieldname": "period",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -145,7 +145,7 @@ | ||||
|    "fieldname": "dosage_form",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -206,7 +206,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -341,11 +341,11 @@ | ||||
|    "no_copy": 0,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -362,7 +362,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:59:48.222282",  | ||||
|  "modified": "2017-10-04 17:09:54.998517",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Drug Prescription",  | ||||
|  | ||||
| @ -39,7 +39,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -70,7 +70,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -206,7 +206,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:36:52.108407",  | ||||
|  "modified": "2017-10-05 11:26:35.292841",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Fee Validity",  | ||||
|  | ||||
| @ -359,7 +359,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -421,7 +421,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -544,7 +544,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -942,7 +942,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -1002,7 +1002,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -1033,7 +1033,7 @@ | ||||
|  "issingle": 1,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:25:48.193218",  | ||||
|  "modified": "2017-10-05 11:36:44.087182",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Healthcare Settings",  | ||||
|  | ||||
| @ -0,0 +1,8 @@ | ||||
| # -*- coding: utf-8 -*- | ||||
| # Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors | ||||
| # See license.txt | ||||
| from __future__ import unicode_literals | ||||
| import unittest | ||||
| 
 | ||||
| class TestHealthcareSettings(unittest.TestCase): | ||||
| 	pass | ||||
| @ -20,7 +20,7 @@ | ||||
|    "fieldname": "test_code",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -143,7 +143,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -180,14 +180,14 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Test Created",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -204,7 +204,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:47:22.789095",  | ||||
|  "modified": "2017-10-04 17:42:32.976165",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Lab Prescription",  | ||||
|  | ||||
| @ -38,7 +38,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 1,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -61,7 +61,7 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Invoice",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Sales Invoice",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
| @ -84,12 +84,12 @@ | ||||
|    "fieldname": "patient",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Patient",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -131,7 +131,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -161,7 +161,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -192,7 +192,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 1,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 1,  | ||||
| @ -207,7 +207,7 @@ | ||||
|    "fieldname": "physician",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -225,7 +225,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -253,7 +253,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -283,9 +283,9 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -314,7 +314,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -358,7 +358,7 @@ | ||||
|    "fieldname": "department",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -376,7 +376,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -405,9 +405,9 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -435,7 +435,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -465,7 +465,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -480,7 +480,7 @@ | ||||
|    "fieldname": "sample",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -496,7 +496,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -551,7 +551,7 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Lab Technician",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Employee",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
| @ -559,7 +559,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -582,7 +582,7 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Technician Name",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "employee.employee_name",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
| @ -590,7 +590,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -613,7 +613,7 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Designation",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "employee.designation",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
| @ -621,7 +621,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -644,7 +644,7 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "User",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "User",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
| @ -652,7 +652,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -682,7 +682,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -731,7 +731,7 @@ | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Test Name",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 1,  | ||||
| @ -741,9 +741,9 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -785,7 +785,7 @@ | ||||
|    "fieldname": "template",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -801,7 +801,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 1,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 1,  | ||||
| @ -832,7 +832,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -950,7 +950,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -1009,7 +1009,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -1054,7 +1054,7 @@ | ||||
|    "fieldtype": "Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -1114,7 +1114,7 @@ | ||||
|    "fieldtype": "Text Editor",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -1158,7 +1158,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -1189,7 +1189,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -1219,7 +1219,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -1249,7 +1249,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -1279,7 +1279,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -1309,7 +1309,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -1339,7 +1339,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -1362,7 +1362,7 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Prescription",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Lab Prescription",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
| @ -1370,7 +1370,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -1388,7 +1388,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:52:14.180774",  | ||||
|  "modified": "2017-10-05 12:14:57.078823",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Lab Test",  | ||||
|  | ||||
| @ -291,5 +291,5 @@ def create_invoice(company, patient, lab_tests, prescriptions): | ||||
| 
 | ||||
| @frappe.whitelist() | ||||
| def get_lab_test_prescribed(patient): | ||||
| 	return frappe.db.sql(_("""select cp.name, cp.test_code, cp.parent, cp.invoice, ct.physician, ct.consultation_date from tabConsultation ct, | ||||
| 	`tabLab Prescription` cp where ct.patient='{0}' and cp.parent=ct.name and cp.test_created=0""").format(patient)) | ||||
| 	return frappe.db.sql("""select cp.name, cp.test_code, cp.parent, cp.invoice, ct.physician, ct.consultation_date from tabConsultation ct, | ||||
| 	`tabLab Prescription` cp where ct.patient=%s and cp.parent=ct.name and cp.test_created=0""", (patient)) | ||||
|  | ||||
| @ -34,11 +34,11 @@ | ||||
|    "options": "Add Test\nAdd new line",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -54,7 +54,7 @@ | ||||
|    "fieldname": "test_template",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -97,11 +97,11 @@ | ||||
|    "options": "test_template.test_rate",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -117,7 +117,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -149,7 +149,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -179,7 +179,7 @@ | ||||
|    "fieldname": "group_test_uom",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -212,7 +212,7 @@ | ||||
|    "fieldtype": "Long Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -272,7 +272,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 14:07:35.188661",  | ||||
|  "modified": "2017-10-04 16:55:45.081003",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Lab Test Groups",  | ||||
|  | ||||
| @ -26,7 +26,7 @@ | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Test Name",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 1,  | ||||
| @ -69,7 +69,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -113,12 +113,12 @@ | ||||
|    "fieldname": "test_group",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Item Group",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -131,7 +131,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 1,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -144,12 +144,12 @@ | ||||
|    "fieldname": "department",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Department",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -211,7 +211,7 @@ | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Result Format",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -257,7 +257,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -334,7 +334,7 @@ | ||||
|    "fieldname": "test_uom",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -366,7 +366,7 @@ | ||||
|    "fieldtype": "Long Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -670,7 +670,7 @@ | ||||
|    "fieldtype": "Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -729,7 +729,7 @@ | ||||
|    "fieldname": "sample",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -823,7 +823,7 @@ | ||||
|    "fieldtype": "Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -861,14 +861,14 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Change In Item",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -895,11 +895,11 @@ | ||||
|    "no_copy": 0,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -916,7 +916,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:45:27.655822",  | ||||
|  "modified": "2017-10-05 12:12:11.918652",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Lab Test Template",  | ||||
|  | ||||
| @ -22,7 +22,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -52,7 +52,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -83,7 +83,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:41:40.186676",  | ||||
|  "modified": "2017-10-05 11:24:15.687464",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Lab Test UOM",  | ||||
|  | ||||
| @ -21,7 +21,7 @@ | ||||
|    "fieldname": "medical_code_standard",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -53,7 +53,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -83,7 +83,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -114,7 +114,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 14:01:18.817484",  | ||||
|  "modified": "2017-10-04 17:08:11.053418",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Medical Code",  | ||||
|  | ||||
| @ -21,7 +21,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -51,7 +51,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -82,7 +82,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -142,7 +142,7 @@ | ||||
|    "fieldtype": "Long Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -182,11 +182,11 @@ | ||||
|    "no_copy": 0,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -217,7 +217,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -248,7 +248,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -265,7 +265,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:59:33.202695",  | ||||
|  "modified": "2017-10-04 17:13:06.376928",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Normal Test Items",  | ||||
|  | ||||
| @ -21,7 +21,7 @@ | ||||
|    "fieldtype": "Heading",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -51,7 +51,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -80,7 +80,7 @@ | ||||
|    "fieldname": "test_uom",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -112,7 +112,7 @@ | ||||
|    "fieldtype": "Long Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -172,7 +172,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 14:07:11.277187",  | ||||
|  "modified": "2017-10-04 16:58:43.990804",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Normal Test Template",  | ||||
|  | ||||
| @ -67,11 +67,11 @@ | ||||
|    "options": "PID-",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -91,7 +91,7 @@ | ||||
|    "in_filter": 1,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Full Name",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 1,  | ||||
| @ -217,14 +217,14 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Age",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -248,7 +248,7 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Status",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Active\nDormant\nOpen",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
| @ -256,7 +256,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -279,14 +279,14 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Image",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -331,7 +331,7 @@ | ||||
|    "fieldname": "customer",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -374,11 +374,11 @@ | ||||
|    "options": "Company",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -429,7 +429,7 @@ | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Mobile",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -459,7 +459,7 @@ | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Email",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -524,14 +524,14 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Disabled",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -638,14 +638,14 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Allergies",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
| @ -668,7 +668,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -727,7 +727,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -757,7 +757,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -817,11 +817,11 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Occupation",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -937,7 +937,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -967,7 +967,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -997,7 +997,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -1026,7 +1026,7 @@ | ||||
|    "fieldname": "alcohol_current_use",  | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -1086,7 +1086,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -1116,7 +1116,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -1180,7 +1180,7 @@ | ||||
|    "fieldtype": "Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -1240,7 +1240,7 @@ | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 1,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -1251,7 +1251,7 @@ | ||||
|    "options": "Currency",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
| @ -1274,7 +1274,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 50,  | ||||
|  "modified": "2017-08-31 13:50:25.474398",  | ||||
|  "modified": "2017-10-04 17:41:03.219934",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Patient",  | ||||
|  | ||||
| @ -111,10 +111,10 @@ def make_invoice(patient, company): | ||||
| 
 | ||||
| @frappe.whitelist() | ||||
| def get_patient_detail(patient, company=None): | ||||
| 	patient_dict = frappe.db.sql(_("""select * from tabPatient where name='{0}'""").format(patient), as_dict=1) | ||||
| 	patient_dict = frappe.db.sql("""select * from tabPatient where name=%s""", (patient), as_dict=1) | ||||
| 	if not patient_dict: | ||||
| 		frappe.throw("Patient not found") | ||||
| 	vital_sign = frappe.db.sql(_("""select * from `tabVital Signs` where patient='{0}' order by signs_date desc limit 1""").format(patient), as_dict=1) | ||||
| 	vital_sign = frappe.db.sql("""select * from `tabVital Signs` where patient=%s order by signs_date desc limit 1""", (patient), as_dict=1) | ||||
| 
 | ||||
| 	details = patient_dict[0] | ||||
| 	if vital_sign: | ||||
|  | ||||
| @ -22,12 +22,12 @@ | ||||
|    "fieldname": "patient",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Patient",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -53,12 +53,12 @@ | ||||
|    "fieldname": "physician",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Physician",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -89,7 +89,7 @@ | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Date",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -101,7 +101,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 1,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 1,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -206,7 +206,7 @@ | ||||
|    "fieldname": "appointment_type",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -338,11 +338,11 @@ | ||||
|    "no_copy": 0,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
| @ -386,12 +386,12 @@ | ||||
|    "fieldname": "department",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Department",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -404,7 +404,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 1,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -435,7 +435,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -546,15 +546,15 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Gender",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "patient.sex",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -608,15 +608,15 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Company",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Company",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -662,7 +662,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -691,7 +691,7 @@ | ||||
|    "fieldname": "referring_physician",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -734,11 +734,11 @@ | ||||
|    "no_copy": 0,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -755,7 +755,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:27:39.208298",  | ||||
|  "modified": "2017-10-05 12:13:03.204936",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Patient Appointment",  | ||||
|  | ||||
| @ -125,7 +125,7 @@ def create_invoice(company, physician, patient, appointment_id, appointment_date | ||||
| 	create_invoice_items(appointment_id, physician, company, sales_invoice) | ||||
| 
 | ||||
| 	sales_invoice.save(ignore_permissions=True) | ||||
| 	frappe.db.sql(_("""update `tabPatient Appointment` set sales_invoice='{0}' where name='{1}'""").format(sales_invoice.name, appointment_id)) | ||||
| 	frappe.db.sql("""update `tabPatient Appointment` set sales_invoice=%s where name=%s""", (sales_invoice.name, appointment_id)) | ||||
| 	frappe.db.set_value("Fee Validity", fee_validity.name, "ref_invoice", sales_invoice.name) | ||||
| 	consultation = frappe.db.exists({ | ||||
| 			"doctype": "Consultation", | ||||
|  | ||||
| @ -33,11 +33,11 @@ | ||||
|    "options": "PMR-",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -52,7 +52,7 @@ | ||||
|    "fieldname": "patient",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -171,7 +171,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -212,7 +212,7 @@ | ||||
|    "options": "Open\nClose",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
| @ -332,15 +332,15 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Reference Owner",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "reference_name.owner",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -356,7 +356,7 @@ | ||||
|    "fieldname": "user",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 1,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -368,11 +368,11 @@ | ||||
|    "options": "User",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -389,7 +389,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-09-04 14:29:48.679751",  | ||||
|  "modified": "2017-10-04 16:09:55.597866",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Patient Medical Record",  | ||||
|  | ||||
| @ -39,7 +39,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -52,7 +52,7 @@ | ||||
|    "fieldname": "patient",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -84,7 +84,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -115,7 +115,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 14:13:37.497114",  | ||||
|  "modified": "2017-10-04 16:12:45.485333",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Patient Relation",  | ||||
|  | ||||
| @ -26,7 +26,7 @@ | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "First Name",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -119,14 +119,14 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Image",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -203,12 +203,12 @@ | ||||
|    "fieldname": "designation",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Designation",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -234,12 +234,12 @@ | ||||
|    "fieldname": "department",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Department",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -444,7 +444,7 @@ | ||||
|    "fieldname": "physician_schedule",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -633,14 +633,14 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Address HTML",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -692,14 +692,14 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Contact HTML",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -783,15 +783,15 @@ | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Default Currency",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Currency",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -809,7 +809,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:51:28.975120",  | ||||
|  "modified": "2017-10-04 17:35:44.363742",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Physician",  | ||||
|  | ||||
| @ -23,7 +23,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -94,11 +94,11 @@ | ||||
|    "no_copy": 0,  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -115,7 +115,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:42:26.713507",  | ||||
|  "modified": "2017-10-05 11:21:54.488194",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Physician Schedule",  | ||||
|  | ||||
| @ -22,7 +22,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -83,7 +83,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:42:40.305284",  | ||||
|  "modified": "2017-10-05 11:20:47.558464",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Prescription Dosage",  | ||||
|  | ||||
| @ -85,12 +85,12 @@ | ||||
|    "fieldname": "patient",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Patient",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -103,7 +103,7 @@ | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "search_index": 1,  | ||||
|    "set_only_once": 0,  | ||||
|    "unique": 0 | ||||
|   },  | ||||
| @ -219,11 +219,11 @@ | ||||
|    "options": "Company",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -267,12 +267,12 @@ | ||||
|    "fieldname": "sample",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Sample",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -389,7 +389,7 @@ | ||||
|    "fieldname": "collected_by",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -466,7 +466,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -541,7 +541,7 @@ | ||||
|    "fieldtype": "Long Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -572,7 +572,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:30:29.303026",  | ||||
|  "modified": "2017-10-05 11:58:46.016097",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Sample Collection",  | ||||
|  | ||||
| @ -22,7 +22,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -53,7 +53,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:44:07.147326",  | ||||
|  "modified": "2017-10-05 11:19:12.110308",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Sensitivity",  | ||||
|  | ||||
| @ -20,7 +20,7 @@ | ||||
|    "fieldname": "antibiotic",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -51,7 +51,7 @@ | ||||
|    "fieldname": "antibiotic_sensitivity",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
| @ -84,7 +84,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 13:46:40.609983",  | ||||
|  "modified": "2017-10-05 11:08:06.327972",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Sensitivity Test Items",  | ||||
|  | ||||
| @ -22,7 +22,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -53,7 +53,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -99,7 +99,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -130,7 +130,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -147,7 +147,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 14:12:12.623714",  | ||||
|  "modified": "2017-10-04 16:15:12.642699",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Special Test Items",  | ||||
|  | ||||
| @ -21,7 +21,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -53,7 +53,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-08-31 14:08:18.833796",  | ||||
|  "modified": "2017-10-04 16:20:09.565316",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Special Test Template",  | ||||
|  | ||||
| @ -21,12 +21,12 @@ | ||||
|    "fieldname": "patient",  | ||||
|    "fieldtype": "Link",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_user_permissions": 1,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "in_standard_filter": 1,  | ||||
|    "label": "Patient",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -54,21 +54,21 @@ | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_filter": 1,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Appointment",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Patient Appointment",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -85,21 +85,21 @@ | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_filter": 1,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Consultation",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "no_copy": 1,  | ||||
|    "options": "Consultation",  | ||||
|    "permlevel": 0,  | ||||
|    "precision": "",  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide": 1,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "read_only": 1,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "report_hide": 1,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
|    "set_only_once": 0,  | ||||
| @ -266,7 +266,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -297,7 +297,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -328,7 +328,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -387,7 +387,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -418,7 +418,7 @@ | ||||
|    "fieldtype": "Data",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 1,  | ||||
| @ -479,7 +479,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -659,7 +659,7 @@ | ||||
|    "fieldtype": "Small Text",  | ||||
|    "hidden": 0,  | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "ignore_xss_filter": 1,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
| @ -751,7 +751,7 @@ | ||||
|  "issingle": 0,  | ||||
|  "istable": 0,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2017-09-04 14:31:57.851546",  | ||||
|  "modified": "2017-10-04 16:08:36.340607",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "Healthcare",  | ||||
|  "name": "Vital Signs",  | ||||
|  | ||||
| @ -1,10 +1,12 @@ | ||||
| from __future__ import unicode_literals | ||||
| import frappe | ||||
| from frappe.custom.doctype.custom_field.custom_field import create_custom_fields | ||||
| 
 | ||||
| from frappe import _ | ||||
| 
 | ||||
| def setup_healthcare(): | ||||
| 	if frappe.db.exists('Medical Department', 'Cardiology'): | ||||
| 		# already setup | ||||
| 		return | ||||
| 	create_medical_departments() | ||||
| 	create_antibiotics() | ||||
| 	create_test_uom() | ||||
| @ -14,63 +16,55 @@ def setup_healthcare(): | ||||
| 	create_lab_test_items() | ||||
| 	create_lab_test_template() | ||||
| 	create_sensitivity() | ||||
| 	make_custom_fields() | ||||
| 
 | ||||
| def make_custom_fields(): | ||||
| 	custom_fields = { | ||||
| 		'Sales Invoice': [ | ||||
| 			dict(fieldname='appointment', label='Patient Appointment', | ||||
| 				fieldtype='Link', options='Patient Appointment', | ||||
| 				insert_after='customer') | ||||
| 		] | ||||
| 	} | ||||
| 
 | ||||
| 	create_custom_fields(custom_fields) | ||||
| 
 | ||||
| 
 | ||||
| def create_medical_departments(): | ||||
| 	depts = ["Accident and emergency care" ,"Anaesthetics", "Biochemistry", "Cardiology", "Dermatology", | ||||
| 				"Diagnostic imaging", "ENT", "Gastroenterology", "General Surgery", "Gynaecology", | ||||
| 				"Haematology", "Maternity", "Microbiology", "Nephrology", "Neurology", "Oncology", | ||||
| 				 "Orthopaedics", "Pathology", "Physiotherapy", "Rheumatology", "Serology", "Urology"] | ||||
| 	for d in depts: | ||||
| 	departments = [ | ||||
| 		"Accident And Emergency Care" ,"Anaesthetics", "Biochemistry", "Cardiology", "Dermatology", | ||||
| 		"Diagnostic Imaging", "ENT", "Gastroenterology", "General Surgery", "Gynaecology", | ||||
| 		"Haematology", "Maternity", "Microbiology", "Nephrology", "Neurology", "Oncology", | ||||
| 		"Orthopaedics", "Pathology", "Physiotherapy", "Rheumatology", "Serology", "Urology" | ||||
| 	] | ||||
| 	for department in departments: | ||||
| 		mediacal_department = frappe.new_doc("Medical Department") | ||||
| 		mediacal_department.department = d | ||||
| 		mediacal_department.department = _(department) | ||||
| 		try: | ||||
| 			mediacal_department.save() | ||||
| 		except frappe.DuplicateEntryError: | ||||
| 			pass | ||||
| 
 | ||||
| def create_antibiotics(): | ||||
| 	abt = ["Amoxicillin", "Ampicillin", "Bacampicillin", "Carbenicillin", "Cloxacillin", "Dicloxacillin", | ||||
| 	 "Flucloxacillin", "Mezlocillin", "Nafcillin", "Oxacillin", "Penicillin G", "Penicillin V", | ||||
| 	 "Piperacillin", "Pivampicillin", "Pivmecillinam", "Ticarcillin", "Cefacetrile (cephacetrile)", | ||||
| 	 "Cefadroxil (cefadroxyl)", "Cefalexin (cephalexin)", "Cefaloglycin (cephaloglycin)", | ||||
| 	 "Cefalonium (cephalonium)", "Cefaloridine (cephaloradine)", "Cefalotin (cephalothin)", | ||||
| 	 "Cefapirin (cephapirin)", "Cefatrizine", "Cefazaflur", "Cefazedone", "Cefazolin (cephazolin)", | ||||
| 	 "Cefradine (cephradine)", "Cefroxadine", "Ceftezole", "Cefaclor", "Cefamandole", "Cefmetazole", | ||||
| 	 "Cefonicid", "Cefotetan", "Cefoxitin", "Cefprozil (cefproxil)", "Cefuroxime", "Cefuzonam", | ||||
| 	 "Cefcapene", "Cefdaloxime", "Cefdinir", "Cefditoren", "Cefetamet", "Cefixime", "Cefmenoxime", | ||||
| 	 "Cefodizime", "Cefotaxime", "Cefpimizole", "Cefpodoxime", "Cefteram", "Ceftibuten", "Ceftiofur", | ||||
| 	 "Ceftiolene", "Ceftizoxime", "Ceftriaxone", "Cefoperazone", "Ceftazidime", "Cefclidine", "Cefepime", | ||||
| 	 "Cefluprenam", "Cefoselis", "Cefozopran", "Cefpirome", "Cefquinome", "Ceftobiprole", "Ceftaroline", | ||||
| 	 "Cefaclomezine","Cefaloram", "Cefaparole", "Cefcanel", "Cefedrolor", "Cefempidone", "Cefetrizole", | ||||
| 	 "Cefivitril", "Cefmatilen", "Cefmepidium", "Cefovecin", "Cefoxazole", "Cefrotil", "Cefsumide", | ||||
| 	 "Cefuracetime", "Ceftioxide", "Ceftazidime/Avibactam", "Ceftolozane/Tazobactam", "Aztreonam", | ||||
| 	 "Imipenem", "Imipenem/cilastatin", "Doripenem", "Meropenem", "Ertapenem", "Azithromycin", | ||||
| 	 "Erythromycin", "Clarithromycin", "Dirithromycin", "Roxithromycin", "Telithromycin", "Clindamycin", | ||||
| 	 "Lincomycin", "Pristinamycin", "Quinupristin/dalfopristin", "Amikacin", "Gentamicin", "Kanamycin", | ||||
| 	 "Neomycin", "Netilmicin", "Paromomycin", "Streptomycin", "Tobramycin", "Flumequine", "Nalidixic acid", | ||||
| 	 "Oxolinic acid", "Piromidic acid", "Pipemidic acid", "Rosoxacin", "Ciprofloxacin", "Enoxacin", | ||||
| 	 "Lomefloxacin", "Nadifloxacin", "Norfloxacin", "Ofloxacin", "Pefloxacin", "Rufloxacin", "Balofloxacin", | ||||
| 	 "Gatifloxacin", "Grepafloxacin", "Levofloxacin", "Moxifloxacin", "Pazufloxacin", "Sparfloxacin", | ||||
| 	 "Temafloxacin", "Tosufloxacin", "Besifloxacin", "Clinafloxacin", "Gemifloxacin", | ||||
| 	 "Sitafloxacin", "Trovafloxacin", "Prulifloxacin", "Sulfamethizole", "Sulfamethoxazole", | ||||
| 	 "Sulfisoxazole", "Trimethoprim-Sulfamethoxazole", "Demeclocycline", "Doxycycline", "Minocycline", | ||||
| 	 "Oxytetracycline", "Tetracycline", "Tigecycline", "Chloramphenicol", "Metronidazole", | ||||
| 	 "Tinidazole", "Nitrofurantoin", "Vancomycin", "Teicoplanin", "Telavancin", "Linezolid", | ||||
| 	 "Cycloserine 2", "Rifampin", "Rifabutin", "Rifapentine", "Rifalazil", "Bacitracin", "Polymyxin B", | ||||
| 	 "Viomycin", "Capreomycin"] | ||||
| 	abt = [ | ||||
| 		"Amoxicillin", "Ampicillin", "Bacampicillin", "Carbenicillin", "Cloxacillin", "Dicloxacillin", | ||||
| 		"Flucloxacillin", "Mezlocillin", "Nafcillin", "Oxacillin", "Penicillin G", "Penicillin V", | ||||
| 		"Piperacillin", "Pivampicillin", "Pivmecillinam", "Ticarcillin", "Cefacetrile (cephacetrile)", | ||||
| 		"Cefadroxil (cefadroxyl)", "Cefalexin (cephalexin)", "Cefaloglycin (cephaloglycin)", | ||||
| 		"Cefalonium (cephalonium)", "Cefaloridine (cephaloradine)", "Cefalotin (cephalothin)", | ||||
| 		"Cefapirin (cephapirin)", "Cefatrizine", "Cefazaflur", "Cefazedone", "Cefazolin (cephazolin)", | ||||
| 		"Cefradine (cephradine)", "Cefroxadine", "Ceftezole", "Cefaclor", "Cefamandole", "Cefmetazole", | ||||
| 		"Cefonicid", "Cefotetan", "Cefoxitin", "Cefprozil (cefproxil)", "Cefuroxime", "Cefuzonam", | ||||
| 		"Cefcapene", "Cefdaloxime", "Cefdinir", "Cefditoren", "Cefetamet", "Cefixime", "Cefmenoxime", | ||||
| 		"Cefodizime", "Cefotaxime", "Cefpimizole", "Cefpodoxime", "Cefteram", "Ceftibuten", "Ceftiofur", | ||||
| 		"Ceftiolene", "Ceftizoxime", "Ceftriaxone", "Cefoperazone", "Ceftazidime", "Cefclidine", "Cefepime", | ||||
| 		"Cefluprenam", "Cefoselis", "Cefozopran", "Cefpirome", "Cefquinome", "Ceftobiprole", "Ceftaroline", | ||||
| 		"Cefaclomezine","Cefaloram", "Cefaparole", "Cefcanel", "Cefedrolor", "Cefempidone", "Cefetrizole", | ||||
| 		"Cefivitril", "Cefmatilen", "Cefmepidium", "Cefovecin", "Cefoxazole", "Cefrotil", "Cefsumide", | ||||
| 		"Cefuracetime", "Ceftioxide", "Ceftazidime/Avibactam", "Ceftolozane/Tazobactam", "Aztreonam", | ||||
| 		"Imipenem", "Imipenem/cilastatin", "Doripenem", "Meropenem", "Ertapenem", "Azithromycin", | ||||
| 		"Erythromycin", "Clarithromycin", "Dirithromycin", "Roxithromycin", "Telithromycin", "Clindamycin", | ||||
| 		"Lincomycin", "Pristinamycin", "Quinupristin/dalfopristin", "Amikacin", "Gentamicin", "Kanamycin", | ||||
| 		"Neomycin", "Netilmicin", "Paromomycin", "Streptomycin", "Tobramycin", "Flumequine", "Nalidixic acid", | ||||
| 		"Oxolinic acid", "Piromidic acid", "Pipemidic acid", "Rosoxacin", "Ciprofloxacin", "Enoxacin", | ||||
| 		"Lomefloxacin", "Nadifloxacin", "Norfloxacin", "Ofloxacin", "Pefloxacin", "Rufloxacin", "Balofloxacin", | ||||
| 		"Gatifloxacin", "Grepafloxacin", "Levofloxacin", "Moxifloxacin", "Pazufloxacin", "Sparfloxacin", | ||||
| 		"Temafloxacin", "Tosufloxacin", "Besifloxacin", "Clinafloxacin", "Gemifloxacin", | ||||
| 		"Sitafloxacin", "Trovafloxacin", "Prulifloxacin", "Sulfamethizole", "Sulfamethoxazole", | ||||
| 		"Sulfisoxazole", "Trimethoprim-Sulfamethoxazole", "Demeclocycline", "Doxycycline", "Minocycline", | ||||
| 		"Oxytetracycline", "Tetracycline", "Tigecycline", "Chloramphenicol", "Metronidazole", | ||||
| 		"Tinidazole", "Nitrofurantoin", "Vancomycin", "Teicoplanin", "Telavancin", "Linezolid", | ||||
| 		"Cycloserine 2", "Rifampin", "Rifabutin", "Rifapentine", "Rifalazil", "Bacitracin", "Polymyxin B", | ||||
| 		"Viomycin", "Capreomycin" | ||||
| 	] | ||||
| 
 | ||||
| 	for a in abt: | ||||
| 		antibiotic = frappe.new_doc("Antibiotic") | ||||
| 		antibiotic.antibiotic_name = a | ||||
| @ -190,21 +184,21 @@ def create_healthcare_item_groups(): | ||||
| 
 | ||||
| def create_lab_test_items(): | ||||
| 	records = [ | ||||
| 		{"doctype": "Item", "item_code": "MCH", "item_name": "MCH", "item_group": "Laboratory", | ||||
| 		{"doctype": "Item", "item_code": "MCH", "item_name": "MCH", "item_group": _("Laboratory"), | ||||
| 			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1}, | ||||
| 		{"doctype": "Item", "item_code": "LDL", "item_name": "LDL", "item_group": "Laboratory", | ||||
| 		{"doctype": "Item", "item_code": "LDL", "item_name": "LDL", "item_group": _("Laboratory"), | ||||
| 			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1}, | ||||
| 		{"doctype": "Item", "item_code": "GTT", "item_name": "GTT", "item_group": "Laboratory", | ||||
| 		{"doctype": "Item", "item_code": "GTT", "item_name": "GTT", "item_group": _("Laboratory"), | ||||
| 			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1}, | ||||
| 		{"doctype": "Item", "item_code": "HDL", "item_name": "HDL", "item_group": "Laboratory", | ||||
| 		{"doctype": "Item", "item_code": "HDL", "item_name": "HDL", "item_group": _("Laboratory"), | ||||
| 			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1}, | ||||
| 		{"doctype": "Item", "item_code": "BILT", "item_name": "BILT", "item_group": "Laboratory", | ||||
| 		{"doctype": "Item", "item_code": "BILT", "item_name": "BILT", "item_group": _("Laboratory"), | ||||
| 			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1}, | ||||
| 		{"doctype": "Item", "item_code": "BILD", "item_name": "BILD", "item_group": "Laboratory", | ||||
| 		{"doctype": "Item", "item_code": "BILD", "item_name": "BILD", "item_group": _("Laboratory"), | ||||
| 			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1}, | ||||
| 		{"doctype": "Item", "item_code": "BP", "item_name": "BP", "item_group": "Laboratory", | ||||
| 		{"doctype": "Item", "item_code": "BP", "item_name": "BP", "item_group": _("Laboratory"), | ||||
| 			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1}, | ||||
| 		{"doctype": "Item", "item_code": "BS", "item_name": "BS", "item_group": "Laboratory", | ||||
| 		{"doctype": "Item", "item_code": "BS", "item_name": "BS", "item_group": _("Laboratory"), | ||||
| 			"stock_uom": _("Unit"), "is_stock_item": 0, "is_purchase_item": 0, "is_sales_item": 1} | ||||
| 	] | ||||
| 	insert_record(records) | ||||
| @ -212,43 +206,43 @@ def create_lab_test_items(): | ||||
| def create_lab_test_template(): | ||||
| 	records = [ | ||||
| 		{"doctype": "Lab Test Template", "name": "MCH","test_name": "MCH","test_code": "MCH", | ||||
| 		"test_group": "Laboratory","department": "Haematology","item": "MCH", | ||||
| 		"test_group": _("Laboratory"),"department": _("Haematology"),"item": "MCH", | ||||
| 		"test_template_type": "Single","is_billable": 1,"test_rate": 0.0,"test_uom": "Microgram", | ||||
| 		"test_normal_range": "27 - 32 Microgram", | ||||
| 		"sensitivity": 0,"test_description": "Mean Corpuscular Hemoglobin"}, | ||||
| 		{"doctype": "Lab Test Template", "name": "LDL","test_name": "LDL (Serum)","test_code": "LDL", | ||||
| 		"test_group": "Laboratory","department": "Biochemistry", | ||||
| 		"test_group": _("Laboratory"),"department": _("Biochemistry"), | ||||
| 		"item": "LDL","test_template_type": "Single", | ||||
| 		"is_billable": 1,"test_rate": 0.0,"test_uom": "mg / dl","test_normal_range": "70 - 160 mg/dlLow-density Lipoprotein (LDL)", | ||||
| 		"sensitivity": 0,"test_description": "Low-density Lipoprotein (LDL)"}, | ||||
| 		{"doctype": "Lab Test Template", "name": "GTT","test_name": "GTT","test_code": "GTT", | ||||
| 		"test_group": "Laboratory","department": "Haematology", | ||||
| 		"test_group": _("Laboratory"),"department": _("Haematology"), | ||||
| 		"item": "GTT","test_template_type": "Single", | ||||
| 		"is_billable": 1,"test_rate": 0.0,"test_uom": "mg / dl","test_normal_range": "Less than 85 mg/dl", | ||||
| 		"sensitivity": 0,"test_description": "Glucose Tolerance Test"}, | ||||
| 		{"doctype": "Lab Test Template", "name": "HDL","test_name": "HDL (Serum)","test_code": "HDL", | ||||
| 		"test_group": "Laboratory","department": "Biochemistry", | ||||
| 		"test_group": _("Laboratory"),"department": _("Biochemistry"), | ||||
| 		"item": "HDL","test_template_type": "Single", | ||||
| 		"is_billable": 1,"test_rate": 0.0,"test_uom": "mg / dl","test_normal_range": "35 - 65 mg/dl", | ||||
| 		"sensitivity": 0,"test_description": "High-density Lipoprotein (HDL)"}, | ||||
| 		{"doctype": "Lab Test Template", "name": "BILT","test_name": "Bilirubin Total","test_code": "BILT", | ||||
| 		"test_group": "Laboratory","department": "Biochemistry", | ||||
| 		"test_group": _("Laboratory"),"department": _("Biochemistry"), | ||||
| 		"item": "BILT","test_template_type": "Single", | ||||
| 		"is_billable": 1,"test_rate": 0.0,"test_uom": "mg / dl","test_normal_range": "0.2 - 1.2 mg / dl", | ||||
| 		"sensitivity": 0,"test_description": "Bilirubin Total"}, | ||||
| 		{"doctype": "Lab Test Template", "name": "BILD","test_name": "Bilirubin Direct","test_code": "BILD", | ||||
| 		"test_group": "Laboratory","department": "Biochemistry", | ||||
| 		"test_group": _("Laboratory"),"department": _("Biochemistry"), | ||||
| 		"item": "BILD","test_template_type": "Single", | ||||
| 		"is_billable": 1,"test_rate": 0.0,"test_uom": "mg / dl","test_normal_range": "0.4 mg / dl", | ||||
| 		"sensitivity": 0,"test_description": "Bilirubin Direct"}, | ||||
| 
 | ||||
| 		{"doctype": "Lab Test Template", "name": "BP","test_name": "Bile Pigment","test_code": "BP", | ||||
| 		"test_group": "Laboratory","department": "Pathology", | ||||
| 		"test_group": _("Laboratory"),"department": _("Pathology"), | ||||
| 		"item": "BP","test_template_type": "Single", | ||||
| 		"is_billable": 1,"test_rate": 0.0,"test_uom": "","test_normal_range": "", | ||||
| 		"sensitivity": 0,"test_description": "Bile Pigment"}, | ||||
| 		{"doctype": "Lab Test Template", "name": "BS","test_name": "Bile Salt","test_code": "BS", | ||||
| 		"test_group": "Laboratory","department": "Pathology", | ||||
| 		"test_group": _("Laboratory"),"department": _("Pathology"), | ||||
| 		"item": "BS","test_template_type": "Single", | ||||
| 		"is_billable": 1,"test_rate": 0.0,"test_uom": "","test_normal_range": "", | ||||
| 		"sensitivity": 0,"test_description": "Bile Salt"} | ||||
| @ -257,12 +251,12 @@ def create_lab_test_template(): | ||||
| 
 | ||||
| def create_sensitivity(): | ||||
| 	records = [ | ||||
| 		{"doctype": "Sensitivity", "sensitivity": "Low Sensitivity"}, | ||||
| 		{"doctype": "Sensitivity", "sensitivity": "High Sensitivity"}, | ||||
| 		{"doctype": "Sensitivity", "sensitivity": "Moderate Sensitivity"}, | ||||
| 		{"doctype": "Sensitivity", "sensitivity": "Susceptible"}, | ||||
| 		{"doctype": "Sensitivity", "sensitivity": "Resistant"}, | ||||
| 		{"doctype": "Sensitivity", "sensitivity": "Intermediate"} | ||||
| 		{"doctype": "Sensitivity", "sensitivity": _("Low Sensitivity")}, | ||||
| 		{"doctype": "Sensitivity", "sensitivity": _("High Sensitivity")}, | ||||
| 		{"doctype": "Sensitivity", "sensitivity": _("Moderate Sensitivity")}, | ||||
| 		{"doctype": "Sensitivity", "sensitivity": _("Susceptible")}, | ||||
| 		{"doctype": "Sensitivity", "sensitivity": _("Resistant")}, | ||||
| 		{"doctype": "Sensitivity", "sensitivity": _("Intermediate")} | ||||
| 	] | ||||
| 	insert_record(records) | ||||
| 
 | ||||
| @ -53,6 +53,16 @@ calendars = ["Task", "Production Order", "Leave Application", "Sales Order", "Ho | ||||
| 
 | ||||
| fixtures = ["Web Form"] | ||||
| 
 | ||||
| domains = { | ||||
| 	'Distribution': 'erpnext.domains.distribution', | ||||
| 	'Education': 'erpnext.domains.education', | ||||
| 	'Healthcare': 'erpnext.domains.healthcare', | ||||
| 	'Hospitality': 'erpnext.domains.hospitality', | ||||
| 	'Manufacturing': 'erpnext.domains.manufacturing', | ||||
| 	'Retail': 'erpnext.domains.retail', | ||||
| 	'Services': 'erpnext.domains.services', | ||||
| } | ||||
| 
 | ||||
| website_generators = ["Item Group", "Item", "BOM", "Sales Partner", | ||||
| 	"Job Opening", "Student Admission"] | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| { | ||||
|  "allow_copy": 0,  | ||||
|  "allow_guest_to_view": 0,  | ||||
|  "allow_import": 0,  | ||||
|  "allow_rename": 0,  | ||||
|  "beta": 0,  | ||||
| @ -10,16 +11,20 @@ | ||||
|  "editable_grid": 1,  | ||||
|  "fields": [ | ||||
|   { | ||||
|    "allow_bulk_edit": 0,  | ||||
|    "allow_on_submit": 0,  | ||||
|    "bold": 0,  | ||||
|    "collapsible": 0,  | ||||
|    "columns": 0,  | ||||
|    "fieldname": "expense_date",  | ||||
|    "fieldtype": "Date",  | ||||
|    "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": "Expense Date",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -30,6 +35,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "print_width": "150px",  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
| @ -38,16 +44,20 @@ | ||||
|    "width": "150px" | ||||
|   },  | ||||
|   { | ||||
|    "allow_bulk_edit": 0,  | ||||
|    "allow_on_submit": 0,  | ||||
|    "bold": 0,  | ||||
|    "collapsible": 0,  | ||||
|    "columns": 0,  | ||||
|    "fieldname": "column_break_2",  | ||||
|    "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,  | ||||
| @ -55,6 +65,7 @@ | ||||
|    "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,  | ||||
| @ -62,16 +73,20 @@ | ||||
|    "unique": 0 | ||||
|   },  | ||||
|   { | ||||
|    "allow_bulk_edit": 0,  | ||||
|    "allow_on_submit": 0,  | ||||
|    "bold": 0,  | ||||
|    "collapsible": 0,  | ||||
|    "columns": 0,  | ||||
|    "fieldname": "expense_type",  | ||||
|    "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": "Expense Claim Type",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -83,6 +98,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "print_width": "150px",  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 1,  | ||||
|    "search_index": 0,  | ||||
| @ -91,9 +107,11 @@ | ||||
|    "width": "150px" | ||||
|   },  | ||||
|   { | ||||
|    "allow_bulk_edit": 0,  | ||||
|    "allow_on_submit": 0,  | ||||
|    "bold": 0,  | ||||
|    "collapsible": 0,  | ||||
|    "columns": 0,  | ||||
|    "depends_on": "expense_type",  | ||||
|    "fieldname": "default_account",  | ||||
|    "fieldtype": "Link",  | ||||
| @ -101,7 +119,9 @@ | ||||
|    "ignore_user_permissions": 0,  | ||||
|    "ignore_xss_filter": 0,  | ||||
|    "in_filter": 0,  | ||||
|    "in_global_search": 0,  | ||||
|    "in_list_view": 0,  | ||||
|    "in_standard_filter": 0,  | ||||
|    "label": "Default Account",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -111,6 +131,7 @@ | ||||
|    "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,  | ||||
| @ -118,16 +139,20 @@ | ||||
|    "unique": 0 | ||||
|   },  | ||||
|   { | ||||
|    "allow_bulk_edit": 0,  | ||||
|    "allow_on_submit": 0,  | ||||
|    "bold": 0,  | ||||
|    "collapsible": 0,  | ||||
|    "columns": 0,  | ||||
|    "fieldname": "section_break_4",  | ||||
|    "fieldtype": "Section 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,  | ||||
| @ -135,6 +160,7 @@ | ||||
|    "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,  | ||||
| @ -142,26 +168,32 @@ | ||||
|    "unique": 0 | ||||
|   },  | ||||
|   { | ||||
|    "allow_bulk_edit": 0,  | ||||
|    "allow_on_submit": 0,  | ||||
|    "bold": 0,  | ||||
|    "collapsible": 0,  | ||||
|    "columns": 0,  | ||||
|    "fieldname": "description",  | ||||
|    "fieldtype": "Text Editor",  | ||||
|    "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": "Description",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
|    "oldfieldname": "description",  | ||||
|    "oldfieldtype": "Small Text",  | ||||
|    "options": "expense_type.description",  | ||||
|    "permlevel": 0,  | ||||
|    "print_hide": 0,  | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "print_width": "300px",  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
| @ -170,16 +202,20 @@ | ||||
|    "width": "300px" | ||||
|   },  | ||||
|   { | ||||
|    "allow_bulk_edit": 0,  | ||||
|    "allow_on_submit": 0,  | ||||
|    "bold": 0,  | ||||
|    "collapsible": 0,  | ||||
|    "columns": 0,  | ||||
|    "fieldname": "section_break_6",  | ||||
|    "fieldtype": "Section 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,  | ||||
| @ -187,6 +223,7 @@ | ||||
|    "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,  | ||||
| @ -194,16 +231,20 @@ | ||||
|    "unique": 0 | ||||
|   },  | ||||
|   { | ||||
|    "allow_bulk_edit": 0,  | ||||
|    "allow_on_submit": 0,  | ||||
|    "bold": 0,  | ||||
|    "collapsible": 0,  | ||||
|    "columns": 0,  | ||||
|    "fieldname": "claim_amount",  | ||||
|    "fieldtype": "Currency",  | ||||
|    "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": "Claim Amount",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 0,  | ||||
| @ -215,6 +256,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "print_width": "150px",  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 1,  | ||||
|    "search_index": 0,  | ||||
| @ -223,16 +265,20 @@ | ||||
|    "width": "150px" | ||||
|   },  | ||||
|   { | ||||
|    "allow_bulk_edit": 0,  | ||||
|    "allow_on_submit": 0,  | ||||
|    "bold": 0,  | ||||
|    "collapsible": 0,  | ||||
|    "columns": 0,  | ||||
|    "fieldname": "column_break_8",  | ||||
|    "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,  | ||||
| @ -240,6 +286,7 @@ | ||||
|    "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,  | ||||
| @ -247,16 +294,20 @@ | ||||
|    "unique": 0 | ||||
|   },  | ||||
|   { | ||||
|    "allow_bulk_edit": 0,  | ||||
|    "allow_on_submit": 0,  | ||||
|    "bold": 0,  | ||||
|    "collapsible": 0,  | ||||
|    "columns": 0,  | ||||
|    "fieldname": "sanctioned_amount",  | ||||
|    "fieldtype": "Currency",  | ||||
|    "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": "Sanctioned Amount",  | ||||
|    "length": 0,  | ||||
|    "no_copy": 1,  | ||||
| @ -268,6 +319,7 @@ | ||||
|    "print_hide_if_no_value": 0,  | ||||
|    "print_width": "150px",  | ||||
|    "read_only": 0,  | ||||
|    "remember_last_selected_value": 0,  | ||||
|    "report_hide": 0,  | ||||
|    "reqd": 0,  | ||||
|    "search_index": 0,  | ||||
| @ -276,17 +328,17 @@ | ||||
|    "width": "150px" | ||||
|   } | ||||
|  ],  | ||||
|  "has_web_view": 0,  | ||||
|  "hide_heading": 0,  | ||||
|  "hide_toolbar": 0,  | ||||
|  "idx": 1,  | ||||
|  "image_view": 0,  | ||||
|  "in_create": 0,  | ||||
|  "in_dialog": 0,  | ||||
|  "is_submittable": 0,  | ||||
|  "issingle": 0,  | ||||
|  "istable": 1,  | ||||
|  "max_attachments": 0,  | ||||
|  "modified": "2016-07-11 03:28:00.406154",  | ||||
|  "modified": "2017-10-11 12:50:48.606727",  | ||||
|  "modified_by": "Administrator",  | ||||
|  "module": "HR",  | ||||
|  "name": "Expense Claim Detail",  | ||||
| @ -295,7 +347,9 @@ | ||||
|  "quick_entry": 0,  | ||||
|  "read_only": 0,  | ||||
|  "read_only_onload": 0,  | ||||
|  "show_name_in_global_search": 0,  | ||||
|  "sort_field": "modified",  | ||||
|  "sort_order": "DESC",  | ||||
|  "track_changes": 0,  | ||||
|  "track_seen": 0 | ||||
| } | ||||
| @ -70,6 +70,7 @@ class SalarySlip(TransactionBase): | ||||
| 				'default_amount': amount, | ||||
| 				'depends_on_lwp' : struct_row.depends_on_lwp, | ||||
| 				'salary_component' : struct_row.salary_component, | ||||
| 				'abbr' : struct_row.abbr, | ||||
| 				'do_not_include_in_total' : struct_row.do_not_include_in_total | ||||
| 			}) | ||||
| 		else: | ||||
|  | ||||
| @ -13,6 +13,7 @@ QUnit.test("test Salary Structure", function(assert) { | ||||
| 			(r) => { | ||||
| 			// Creating Salary Structure for employees);
 | ||||
| 				return frappe.tests.make('Salary Structure', [ | ||||
| 					{ __newname: 'Test Salary Structure'}, | ||||
| 					{ company: 'For Testing'}, | ||||
| 					{ payroll_frequency: 'Monthly'}, | ||||
| 					{ employees: [ | ||||
| @ -47,11 +48,7 @@ QUnit.test("test Salary Structure", function(assert) { | ||||
| 				]); | ||||
| 			} | ||||
| 		), | ||||
| 		() => frappe.timeout(18), | ||||
| 		() => cur_dialog.set_value('value','Test Salary Structure'), | ||||
| 		() => frappe.timeout(1), | ||||
| 		() => frappe.click_button('Create'), | ||||
| 		() => frappe.timeout(1), | ||||
| 		() => frappe.timeout(3), | ||||
| 		() => { | ||||
| 		// To check if all the fields are correctly set
 | ||||
| 			assert.ok(cur_frm.doc.employees[0].employee_name.includes('Test Employee 1') && | ||||
|  | ||||
| @ -39,6 +39,7 @@ erpnext.hr.AttendanceControlPanel = frappe.ui.form.Controller.extend({ | ||||
| 			args: { | ||||
| 				method: 'erpnext.hr.doctype.upload_attendance.upload_attendance.upload' | ||||
| 			}, | ||||
| 			no_socketio: true, | ||||
| 			sample_url: "e.g. http://example.com/somefile.csv", | ||||
| 			callback: function(attachment, r) { | ||||
| 				var $log_wrapper = $(cur_frm.fields_dict.import_log.wrapper).empty(); | ||||
|  | ||||
| @ -63,19 +63,25 @@ def get_chart_data(data,period_list): | ||||
| 		fueldata.append([period.key,total_fuel_exp]) | ||||
| 		servicedata.append([period.key,total_ser_exp]) | ||||
| 
 | ||||
| 	x_intervals = ['x'] + [period.key for period in period_list] | ||||
| 	labels = [period.key for period in period_list] | ||||
| 	fuel_exp_data= [row[1] for row in fueldata] | ||||
| 	service_exp_data= [row[1] for row in servicedata] | ||||
| 	columns = [x_intervals] | ||||
| 	datasets = [] | ||||
| 	if fuel_exp_data: | ||||
| 		columns.append(["Fuel Expenses"]+ fuel_exp_data) | ||||
| 		datasets.append({ | ||||
| 			'title': 'Fuel Expenses', | ||||
| 			'values': fuel_exp_data | ||||
| 		}) | ||||
| 	if service_exp_data: | ||||
| 		columns.append(["Service Expenses"]+ service_exp_data) | ||||
| 		datasets.append({ | ||||
| 			'title': 'Service Expenses', | ||||
| 			'values': service_exp_data | ||||
| 		}) | ||||
| 	chart = { | ||||
| 		"data": { | ||||
| 			'x': 'x', | ||||
| 			'columns': columns | ||||
| 			'labels': labels, | ||||
| 			'datasets': datasets | ||||
| 		} | ||||
| 	} | ||||
| 	chart["chart_type"] = "line" | ||||
| 	chart["type"] = "line" | ||||
| 	return chart | ||||
| @ -147,22 +147,28 @@ class BOM(WebsiteGenerator): | ||||
| 		if arg.get('scrap_items'): | ||||
| 			rate = self.get_valuation_rate(arg) | ||||
| 		elif arg: | ||||
| 			if self.rm_cost_as_per == 'Valuation Rate': | ||||
| 				rate = self.get_valuation_rate(arg) | ||||
| 			elif self.rm_cost_as_per == 'Last Purchase Rate': | ||||
| 				rate = arg['last_purchase_rate'] \ | ||||
| 					or frappe.db.get_value("Item", arg['item_code'], "last_purchase_rate") | ||||
| 			elif self.rm_cost_as_per == "Price List": | ||||
| 				if not self.buying_price_list: | ||||
| 					frappe.throw(_("Please select Price List")) | ||||
| 				rate = frappe.db.get_value("Item Price", | ||||
| 					{"price_list": self.buying_price_list, "item_code": arg["item_code"]}, "price_list_rate") | ||||
| 				price_list_currency = frappe.db.get_value("Price List", self.buying_price_list, "currency") | ||||
| 				if price_list_currency != self.company_currency(): | ||||
| 					rate = flt(rate * self.conversion_rate) | ||||
| 
 | ||||
| 			if arg['bom_no'] and (not rate or self.set_rate_of_sub_assembly_item_based_on_bom): | ||||
| 			if arg.get('bom_no') and self.set_rate_of_sub_assembly_item_based_on_bom: | ||||
| 				rate = self.get_bom_unitcost(arg['bom_no']) | ||||
| 			else: | ||||
| 				if self.rm_cost_as_per == 'Valuation Rate': | ||||
| 					rate = self.get_valuation_rate(arg) | ||||
| 				elif self.rm_cost_as_per == 'Last Purchase Rate': | ||||
| 					rate = arg.get('last_purchase_rate') \ | ||||
| 						or frappe.db.get_value("Item", arg['item_code'], "last_purchase_rate") | ||||
| 				elif self.rm_cost_as_per == "Price List": | ||||
| 					if not self.buying_price_list: | ||||
| 						frappe.throw(_("Please select Price List")) | ||||
| 					rate = frappe.db.get_value("Item Price", {"price_list": self.buying_price_list, | ||||
| 						"item_code": arg["item_code"]}, "price_list_rate") | ||||
| 
 | ||||
| 					price_list_currency = frappe.db.get_value("Price List", | ||||
| 						self.buying_price_list, "currency") | ||||
| 					if price_list_currency != self.company_currency(): | ||||
| 						rate = flt(rate * self.conversion_rate) | ||||
| 
 | ||||
| 				if not rate: | ||||
| 					frappe.msgprint(_("{0} not found for Item {1}") | ||||
| 						.format(self.rm_cost_as_per, arg["item_code"])) | ||||
| 
 | ||||
| 		return flt(rate) | ||||
| 
 | ||||
|  | ||||
| @ -1,13 +1,6 @@ | ||||
| QUnit.test("test: operation", function (assert) { | ||||
| 	assert.expect(2); | ||||
| 	let done = assert.async(); | ||||
| 	let set_op_name = (text) => { | ||||
| 		$(`input.input-with-feedback.form-control.bold:visible`).val(`${text}`); | ||||
| 	}; | ||||
| 	let click_create = () => { | ||||
| 		$(`.btn-primary:contains("Create"):visible`).click(); | ||||
| 	}; | ||||
| 
 | ||||
| 	frappe.run_serially([ | ||||
| 		// test operation creation
 | ||||
| 		() => frappe.set_route("List", "Operation"), | ||||
| @ -16,14 +9,11 @@ QUnit.test("test: operation", function (assert) { | ||||
| 		() => { | ||||
| 			frappe.tests.make( | ||||
| 				"Operation", [ | ||||
| 					{__newname: "Assemble Keyboard"}, | ||||
| 					{workstation: "Keyboard assembly workstation"} | ||||
| 				] | ||||
| 			); | ||||
| 		}, | ||||
| 		() => frappe.timeout(4), | ||||
| 		() => set_op_name("Assemble Keyboard"), | ||||
| 		() => frappe.timeout(0.5), | ||||
| 		() => click_create(), | ||||
| 		() => frappe.timeout(1), | ||||
| 		() => { | ||||
| 			assert.ok(cur_frm.docname.includes('Assemble Keyboard'), | ||||
| @ -36,28 +26,22 @@ QUnit.test("test: operation", function (assert) { | ||||
| 		() => { | ||||
| 			frappe.tests.make( | ||||
| 				"Operation", [ | ||||
| 					{__newname: 'Assemble Screen'}, | ||||
| 					{workstation: "Screen assembly workstation"} | ||||
| 				] | ||||
| 			); | ||||
| 		}, | ||||
| 		() => frappe.timeout(4), | ||||
| 		() => set_op_name("Assemble Screen"), | ||||
| 		() => frappe.timeout(0.5), | ||||
| 		() => click_create(), | ||||
| 		() => frappe.timeout(1), | ||||
| 
 | ||||
| 		// Create a CPU operation
 | ||||
| 		() => { | ||||
| 			frappe.tests.make( | ||||
| 				"Operation", [ | ||||
| 					{__newname: 'Assemble CPU'}, | ||||
| 					{workstation: "CPU assembly workstation"} | ||||
| 				] | ||||
| 			); | ||||
| 		}, | ||||
| 		() => frappe.timeout(4), | ||||
| 		() => set_op_name("Assemble CPU"), | ||||
| 		() => frappe.timeout(0.5), | ||||
| 		() => click_create(), | ||||
| 		() => frappe.timeout(1), | ||||
| 
 | ||||
| 		() => done() | ||||
|  | ||||
| @ -64,9 +64,10 @@ erpnext.ProductionAnalytics = frappe.views.GridReportWithPlot.extend({ | ||||
| 
 | ||||
| 		var chart_data = this.get_chart_data ? this.get_chart_data() : null; | ||||
| 
 | ||||
| 		this.chart = new frappe.ui.Chart({ | ||||
| 			wrapper: this.chart_area, | ||||
| 			data: chart_data | ||||
| 		this.chart = new frappe.chart.FrappeChart({ | ||||
| 			parent: ".chart", | ||||
| 			data: chart_data, | ||||
| 			type: 'line' | ||||
| 		}); | ||||
| 	}, | ||||
| 	set_default_values: function() { | ||||
|  | ||||
| @ -16,3 +16,4 @@ Maintenance | ||||
| Schools | ||||
| Regional | ||||
| Healthcare | ||||
| Restaurant | ||||
|  | ||||
| @ -452,6 +452,7 @@ erpnext.patches.v9_0.fix_subscription_next_date | ||||
| erpnext.patches.v9_0.set_schedule_date_for_material_request_and_purchase_order | ||||
| erpnext.patches.v9_0.student_admission_childtable_migrate | ||||
| erpnext.patches.v9_0.add_healthcare_domain | ||||
| erpnext.patches.v9_0.set_variant_item_description | ||||
| erpnext.patches.v8_10.add_due_date_to_gle | ||||
| erpnext.patches.v8_10.update_gl_due_date_for_pi_and_si | ||||
| erpnext.patches.v8_10.add_payment_terms_field_to_supplier | ||||
|  | ||||
| @ -4,7 +4,6 @@ | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import frappe | ||||
| from erpnext.setup.setup_wizard import domainify | ||||
| 
 | ||||
| def execute(): | ||||
| 	frappe.reload_doctype('Role') | ||||
| @ -19,6 +18,9 @@ def execute(): | ||||
| 	frappe.get_doc('Portal Settings').sync_menu() | ||||
| 
 | ||||
| 	if 'schools' in frappe.get_installed_apps(): | ||||
| 		domainify.setup_domain('Education') | ||||
| 		domain = frappe.get_doc('Domain', 'Education') | ||||
| 		domain.setup_domain() | ||||
| 	else: | ||||
| 		domainify.setup_sidebar_items(domainify.get_domain('Manufacturing')) | ||||
| 		domain = frappe.get_doc('Domain', 'Manufacturing') | ||||
| 		domain.setup_data() | ||||
| 		domain.setup_sidebar_items() | ||||
|  | ||||
| @ -9,7 +9,7 @@ from frappe.model.mapper import get_mapped_doc | ||||
| 
 | ||||
| def execute(): | ||||
| 	# for converting student batch into student group | ||||
| 	for doctype in ["Student Group", "Student Group Student", | ||||
| 	for doctype in ["Student Group", "Student Group Student", 'Program Enrollment', | ||||
| 		"Student Group Instructor", "Student Attendance", "Student", "Student Batch Name"]: | ||||
| 		frappe.reload_doc("schools", "doctype", frappe.scrub(doctype)) | ||||
| 
 | ||||
|  | ||||
| @ -4,11 +4,6 @@ | ||||
| from __future__ import unicode_literals | ||||
| import frappe | ||||
| 
 | ||||
| from erpnext.setup.setup_wizard.domainify import update_module_def_restrict_to_domain | ||||
| 
 | ||||
| def execute(): | ||||
| 	""" set the restrict to domain in module def """ | ||||
| 
 | ||||
| 	frappe.reload_doc("core", "doctype", "module_def") | ||||
| 	if frappe.db.get_single_value('System Settings', 'setup_complete'): | ||||
| 		update_module_def_restrict_to_domain() | ||||
| 	pass | ||||
| @ -4,5 +4,6 @@ import frappe | ||||
| from erpnext.setup.install import create_print_zero_amount_taxes_custom_field | ||||
| 
 | ||||
| def execute(): | ||||
| 	frappe.reload_doc("printing", "doctype", "print_style") | ||||
| 	frappe.reload_doc('printing', 'doctype', 'print_style') | ||||
| 	frappe.reload_doc('printing', 'doctype', 'print_settings') | ||||
| 	create_print_zero_amount_taxes_custom_field() | ||||
							
								
								
									
										45
									
								
								erpnext/patches/v9_0/set_variant_item_description.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,45 @@ | ||||
| import frappe | ||||
| from frappe.utils import cstr | ||||
| 
 | ||||
| def execute(): | ||||
| 	''' | ||||
| 	Issue: | ||||
| 		While copying data from template item to variant item, | ||||
| 		the system appending description multiple times to the respective variant. | ||||
| 
 | ||||
| 	Purpose: | ||||
| 		Check variant description, | ||||
| 		if variant have user defined description remove all system appended descriptions | ||||
| 		else replace multiple system generated descriptions with single description | ||||
| 
 | ||||
| 	Steps: | ||||
| 		1. Get all variant items | ||||
| 		2. Create system generated variant description | ||||
| 		3. If variant have user defined description, remove all system generated descriptions | ||||
| 		4. If variant description only contains system generated description, | ||||
| 			replace multiple descriptions by new description. | ||||
| 	''' | ||||
| 	for item in frappe.db.sql(""" select name from tabItem | ||||
| 		where ifnull(variant_of, '') != '' """,as_dict=1): | ||||
| 			variant = frappe.get_doc("Item", item.name) | ||||
| 			temp_variant_description = '\n' | ||||
| 
 | ||||
| 			if variant.attributes: | ||||
| 				for d in variant.attributes: | ||||
| 					temp_variant_description += "<div>" + d.attribute + ": " + cstr(d.attribute_value) + "</div>" | ||||
| 
 | ||||
| 				variant_description = variant.description.replace(temp_variant_description, '').rstrip() | ||||
| 				if variant_description: | ||||
| 					splitted_desc = variant.description.strip().split(temp_variant_description) | ||||
| 
 | ||||
| 					if len(splitted_desc) > 2: | ||||
| 						if splitted_desc[0] == '': | ||||
| 							variant_description = temp_variant_description + variant_description | ||||
| 						elif splitted_desc[1] == '' or splitted_desc[1] == '\n': | ||||
| 							variant_description += temp_variant_description | ||||
| 						variant.db_set('description', variant_description, update_modified=False) | ||||
| 					else: | ||||
| 						variant.db_set('description', variant_description, update_modified=False) | ||||
| 
 | ||||
| 				else: | ||||
| 					variant.db_set('description', temp_variant_description, update_modified=False) | ||||