def execute():
    frappe.reload_doc("accounts", "doctype", "loyalty_program")
    frappe.reload_doc("accounts", "doctype", "sales_invoice_item")

    if "Healthcare" not in frappe.get_active_domains():
        return

    healthcare_custom_field_in_sales_invoice()
    for si_ref_doc in sales_invoice_referenced_doc:
        if frappe.db.exists("DocType", si_ref_doc):
            frappe.reload_doc(get_doctype_module(si_ref_doc), "doctype",
                              scrub(si_ref_doc))

            if frappe.db.has_column(
                    si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]
            ) and frappe.db.has_column(si_ref_doc, "invoiced"):
                # Set Reference DocType and Reference Docname
                doc_list = frappe.db.sql("""
							select name from `tab{0}`
							where {1} is not null
						""".format(si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]))
                if doc_list:
                    frappe.reload_doc(get_doctype_module("Sales Invoice"),
                                      "doctype", "sales_invoice")
                    for doc_id in doc_list:
                        invoice_id = frappe.db.get_value(
                            si_ref_doc, doc_id[0],
                            sales_invoice_referenced_doc[si_ref_doc])
                        if frappe.db.exists("Sales Invoice", invoice_id):
                            if si_ref_doc == "Lab Test":
                                template = frappe.db.get_value(
                                    "Lab Test", doc_id[0], "template")
                                if template:
                                    item = frappe.db.get_value(
                                        "Lab Test Template", template, "item")
                                    if item:
                                        frappe.db.sql(
                                            """update `tabSales Invoice Item` set reference_dt = '{0}',
										reference_dn = '{1}' where parent = '{2}' and item_code='{3}'""".
                                            format(si_ref_doc, doc_id[0],
                                                   invoice_id, item))
                            else:
                                invoice = frappe.get_doc(
                                    "Sales Invoice", invoice_id)
                                for item_line in invoice.items:
                                    if not item_line.reference_dn:
                                        item_line.db_set({
                                            "reference_dt":
                                            si_ref_doc,
                                            "reference_dn":
                                            doc_id[0]
                                        })
                                        break
                # Documents mark invoiced for submitted sales invoice
                frappe.db.sql("""update `tab{0}` doc, `tabSales Invoice` si
					set doc.invoiced = 1 where si.docstatus = 1 and doc.{1} = si.name
					""".format(si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]))
def execute():
	# rename doctypes
	tables = frappe.db.sql_list("show tables")
	for old_dt, new_dt in [["Journal Voucher Detail", "Journal Entry Account"],
		["Journal Voucher", "Journal Entry"],
		["Budget Distribution Detail", "Monthly Distribution Percentage"],
		["Budget Distribution", "Monthly Distribution"]]:
			if "tab"+new_dt not in tables:
				frappe.rename_doc("DocType", old_dt, new_dt, force=True)

	# reload new child doctypes
	frappe.reload_doc("manufacturing", "doctype", "production_order_operation")
	frappe.reload_doc("manufacturing", "doctype", "workstation_working_hour")
	frappe.reload_doc("stock", "doctype", "item_variant")
	frappe.reload_doc("accounts", "doctype", "party_account")
	frappe.reload_doc("accounts", "doctype", "fiscal_year_company")
	frappe.reload_doc("workflow", "doctype", "workflow")

	#rename table fieldnames
	for dn in rename_map:
		frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

	for dt, field_list in rename_map.items():
		for field in field_list:
			rename_field(dt, field[0], field[1])

	# update voucher type
	for old, new in [["Bank Voucher", "Bank Entry"], ["Cash Voucher", "Cash Entry"],
		["Credit Card Voucher", "Credit Card Entry"], ["Contra Voucher", "Contra Entry"],
		["Write Off Voucher", "Write Off Entry"], ["Excise Voucher", "Excise Entry"]]:
			frappe.db.sql("update `tabJournal Entry` set voucher_type=%s where voucher_type=%s", (new, old))
Пример #3
0
def execute():
    for dt in doc_rename_map:
        if frappe.db.exists('DocType', dt):
            frappe.rename_doc('DocType', dt, doc_rename_map[dt], force=True)

    for dn in field_rename_map:
        if frappe.db.exists('DocType', dn):
            frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

    for dt, field_list in field_rename_map.items():
        if frappe.db.exists('DocType', dt):
            for field in field_list:
                if frappe.db.has_column(dt, field[0]):
                    rename_field(dt, field[0], field[1])

    if frappe.db.exists('DocType', 'Practitioner Service Unit Schedule'):
        if frappe.db.has_column('Practitioner Service Unit Schedule',
                                'parentfield'):
            frappe.db.sql("""
				update `tabPractitioner Service Unit Schedule` set parentfield = 'practitioner_schedules'
				where parentfield = 'physician_schedules' and parenttype = 'Healthcare Practitioner'
			""")

    if frappe.db.exists("DocType", "Healthcare Practitioner"):
        frappe.reload_doc("healthcare", "doctype", "healthcare_practitioner")
        frappe.reload_doc("healthcare", "doctype",
                          "practitioner_service_unit_schedule")
        if frappe.db.has_column('Healthcare Practitioner',
                                'physician_schedule'):
            for doc in frappe.get_all('Healthcare Practitioner'):
                _doc = frappe.get_doc('Healthcare Practitioner', doc.name)
                if _doc.physician_schedule:
                    _doc.append('practitioner_schedules',
                                {'schedule': _doc.physician_schedule})
                    _doc.save()
Пример #4
0
def execute():
    for dn in rename_map:
        frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

    for dt, field_list in rename_map.items():
        for field in field_list:
            rename_field(dt, field[0], field[1])
Пример #5
0
def execute():
	# rename doctypes
	tables = frappe.db.sql_list("show tables")
	for old_dt, new_dt in [["Journal Voucher Detail", "Journal Entry Account"],
		["Journal Voucher", "Journal Entry"],
		["Budget Distribution Detail", "Monthly Distribution Percentage"],
		["Budget Distribution", "Monthly Distribution"]]:
			if "tab"+new_dt not in tables:
				frappe.rename_doc("DocType", old_dt, new_dt, force=True)

	# reload new child doctypes
	frappe.reload_doc("manufacturing", "doctype", "work_order_operation")
	frappe.reload_doc("manufacturing", "doctype", "workstation_working_hour")
	frappe.reload_doc("stock", "doctype", "item_variant")
	frappe.reload_doc("hr", "doctype", "salary_detail")
	frappe.reload_doc("accounts", "doctype", "party_account")
	frappe.reload_doc("accounts", "doctype", "fiscal_year_company")

	#rename table fieldnames
	for dn in rename_map:
		if not frappe.db.exists("DocType", dn):
			continue
		frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

	for dt, field_list in rename_map.items():
		if not frappe.db.exists("DocType", dt):
			continue
		for field in field_list:
			rename_field(dt, field[0], field[1])

	# update voucher type
	for old, new in [["Bank Voucher", "Bank Entry"], ["Cash Voucher", "Cash Entry"],
		["Credit Card Voucher", "Credit Card Entry"], ["Contra Voucher", "Contra Entry"],
		["Write Off Voucher", "Write Off Entry"], ["Excise Voucher", "Excise Entry"]]:
			frappe.db.sql("update `tabJournal Entry` set voucher_type=%s where voucher_type=%s", (new, old))
def execute():
	for dn in rename_map:
		frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

	for dt, field_list in rename_map.items():
		for field in field_list:
			rename_field(dt, field[0], field[1])
Пример #7
0
def get_test_records(doctype):
	from frappe.modules import get_doctype_module, get_module_path
	path = os.path.join(get_module_path(get_doctype_module(doctype)), "doctype", scrub(doctype), "test_records.json")
	if os.path.exists(path):
		with open(path, "r") as f:
			return json.loads(f.read())
	else:
		return []
Пример #8
0
def get_test_records(doctype):
	from frappe.modules import get_doctype_module, get_module_path
	path = os.path.join(get_module_path(get_doctype_module(doctype)), "doctype", scrub(doctype), "test_records.json")
	if os.path.exists(path):
		with open(path, "r") as f:
			return json.loads(f.read())
	else:
		return []
def execute():
    frappe.reload_doc('accounts', 'doctype', 'loyalty_program')
    frappe.reload_doc('accounts', 'doctype', 'sales_invoice_item')

    if "healthcare" not in frappe.get_active_domains():
        return

    healthcare_custom_field_in_sales_invoice()
    for si_ref_doc in sales_invoice_referenced_doc:
        if frappe.db.exists('DocType', si_ref_doc):
            frappe.reload_doc(get_doctype_module(si_ref_doc), 'doctype',
                              scrub(si_ref_doc))

            if frappe.db.has_column(si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]) \
            and frappe.db.has_column(si_ref_doc, 'invoiced'):
                # Set Reference DocType and Reference Docname
                doc_list = frappe.db.sql("""
							select name from `tab{0}`
							where {1} is not null
						""".format(si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]))
                if doc_list:
                    frappe.reload_doc(get_doctype_module("Sales Invoice"),
                                      'doctype', 'sales_invoice')
                    for doc_id in doc_list:
                        invoice_id = frappe.db.get_value(
                            si_ref_doc, doc_id[0],
                            sales_invoice_referenced_doc[si_ref_doc])
                        invoice = frappe.get_doc("Sales Invoice", invoice_id)
                        if invoice.items:
                            marked = False
                            if not marked:
                                for item_line in invoice.items:
                                    marked = True
                                    frappe.db.sql("""
												update `tabSales Invoice Item`
												set reference_dt = '{0}', reference_dn = '{1}'
												where name = '{2}'
											""".format(si_ref_doc, doc_id[0], item_line.name))

                # Documents mark invoiced for submitted sales invoice
                frappe.db.sql("""
							update `tab{0}` doc, `tabSales Invoice` si
							set doc.invoiced = 1
							where si.docstatus = 1 and doc.{1} = si.name
						""".format(si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]))
Пример #10
0
def get_test_records(doctype):
	"""Returns list of objects from `test_records.json` in the given doctype's folder."""
	from frappe.modules import get_doctype_module, get_module_path
	path = os.path.join(get_module_path(get_doctype_module(doctype)), "doctype", scrub(doctype), "test_records.json")
	if os.path.exists(path):
		with open(path, "r") as f:
			return json.loads(f.read())
	else:
		return []
Пример #11
0
def get_test_records(doctype):
	"""Returns list of objects from `test_records.json` in the given doctype's folder."""
	from frappe.modules import get_doctype_module, get_module_path
	path = os.path.join(get_module_path(get_doctype_module(doctype)), "doctype", scrub(doctype), "test_records.json")
	if os.path.exists(path):
		with open(path, "r") as f:
			return json.loads(f.read())
	else:
		return []
def execute():
	frappe.reload_doc('accounts', 'doctype', 'loyalty_program')
	frappe.reload_doc('accounts', 'doctype', 'sales_invoice_item')

	if "Healthcare" not in frappe.get_active_domains():
		return

	healthcare_custom_field_in_sales_invoice()
	for si_ref_doc in sales_invoice_referenced_doc:
		if frappe.db.exists('DocType', si_ref_doc):
			frappe.reload_doc(get_doctype_module(si_ref_doc), 'doctype', scrub(si_ref_doc))

			if frappe.db.has_column(si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]) \
			and frappe.db.has_column(si_ref_doc, 'invoiced'):
				# Set Reference DocType and Reference Docname
				doc_list = frappe.db.sql("""
							select name from `tab{0}`
							where {1} is not null
						""".format(si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]))
				if doc_list:
					frappe.reload_doc(get_doctype_module("Sales Invoice"), 'doctype', 'sales_invoice')
					for doc_id in doc_list:
						invoice_id = frappe.db.get_value(si_ref_doc, doc_id[0], sales_invoice_referenced_doc[si_ref_doc])
						if frappe.db.exists("Sales Invoice", invoice_id):
							if si_ref_doc == "Lab Test":
								template = frappe.db.get_value("Lab Test", doc_id[0], "template")
								if template:
									item = frappe.db.get_value("Lab Test Template", template, "item")
									if item:
										frappe.db.sql("""update `tabSales Invoice Item` set reference_dt = '{0}',
										reference_dn = '{1}' where parent = '{2}' and item_code='{3}'""".format\
										(si_ref_doc, doc_id[0], invoice_id, item))
							else:
								invoice = frappe.get_doc("Sales Invoice", invoice_id)
								for item_line in invoice.items:
									if not item_line.reference_dn:
										item_line.db_set({"reference_dt":si_ref_doc, "reference_dn": doc_id[0]})
										break
				# Documents mark invoiced for submitted sales invoice
				frappe.db.sql("""update `tab{0}` doc, `tabSales Invoice` si
					set doc.invoiced = 1 where si.docstatus = 1 and doc.{1} = si.name
					""".format(si_ref_doc, sales_invoice_referenced_doc[si_ref_doc]))
Пример #13
0
def reload_docs(docs):
    for dn in docs:
        frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

    # reload all standard print formats
    for pf in frappe.db.sql("""select name, module from `tabPrint Format` 
			where ifnull(standard, 'No') = 'Yes'""",
                            as_dict=1):
        try:
            frappe.reload_doc(pf.module, "Print Format", pf.name)
        except Exception, e:
            print e
            pass
Пример #14
0
def reload_docs(docs):
    for dn in docs:
        frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

        # reload all standard print formats
    for pf in frappe.db.sql(
        """select name, module from `tabPrint Format` 
			where ifnull(standard, 'No') = 'Yes'""",
        as_dict=1,
    ):
        try:
            frappe.reload_doc(pf.module, "Print Format", pf.name)
        except Exception, e:
            print e
            pass
Пример #15
0
def execute():
	for doctypes, fields in [[selling_doctypes, selling_renamed_fields], [buying_doctypes, buying_renamed_fields]]:
		for dt in doctypes:
			frappe.reload_doc(get_doctype_module(dt), "doctype", scrub(dt))
			table_columns = frappe.db.get_table_columns(dt)
			base_net_total = frappe.db.sql("select sum(ifnull({0}, 0)) from `tab{1}`".format(fields[0][1], dt))[0][0]
			if not base_net_total:
				for f in fields:
					if f[0] in table_columns:
						rename_field(dt, f[0], f[1])

				# Added new field "total_taxes_and_charges" in buying cycle, updating value
				if dt in ("Supplier Quotation", "Purchase Order", "Purchase Receipt", "Purchase Invoice"):
					frappe.db.sql("""update `tab{0}` set total_taxes_and_charges =
						round(base_total_taxes_and_charges/conversion_rate, 2)""".format(dt))
Пример #16
0
def execute():
    for doctypes, fields in [[selling_doctypes, selling_renamed_fields],
                             [buying_doctypes, buying_renamed_fields]]:
        for dt in doctypes:
            meta = frappe.get_meta(dt)
            frappe.reload_doc(get_doctype_module(dt), "doctype", scrub(dt))
            base_net_total = frappe.db.sql(
                "select sum(ifnull({0}, 0)) from `tab{1}`".format(
                    fields[0][1], dt))[0][0]
            if not base_net_total:
                for f in fields:
                    if meta.get_field(f[0]):
                        rename_field(dt, f[0], f[1])

                # Added new field "total_taxes_and_charges" in buying cycle, updating value
                if dt in ("Supplier Quotation", "Purchase Order",
                          "Purchase Receipt", "Purchase Invoice"):
                    frappe.db.sql(
                        """update `tab{0}` set total_taxes_and_charges =
						round(base_total_taxes_and_charges/conversion_rate, 2)""".format(dt))
Пример #17
0
def execute():
    for dt, field_list in field_rename_map.items():
        if frappe.db.exists('DocType', dt):
            frappe.reload_doc(get_doctype_module(dt), "doctype", scrub(dt))
            for field in field_list:
                if frappe.db.has_column(dt, field[0]):
                    rename_field(dt, field[0], field[1])

    if frappe.db.exists('DocType', 'Lab Prescription'):
        if frappe.db.has_column('Lab Prescription', 'parentfield'):
            frappe.db.sql("""
				update `tabLab Prescription` set parentfield = 'lab_test_prescription'
				where parentfield = 'test_prescription'
			""")

    if frappe.db.exists('DocType', 'Lab Test Groups'):
        if frappe.db.has_column('Lab Test Groups', 'parentfield'):
            frappe.db.sql("""
				update `tabLab Test Groups` set parentfield = 'lab_test_groups'
				where parentfield = 'test_groups'
			""")
Пример #18
0
def execute():
	for dt, field_list in field_rename_map.items():
		if frappe.db.exists('DocType', dt):
			frappe.reload_doc(get_doctype_module(dt), "doctype", scrub(dt))
			for field in field_list:
				if frappe.db.has_column(dt, field[0]):
					rename_field(dt, field[0], field[1])

	if frappe.db.exists('DocType', 'Lab Prescription'):
		if frappe.db.has_column('Lab Prescription', 'parentfield'):
			frappe.db.sql("""
				update `tabLab Prescription` set parentfield = 'lab_test_prescription'
				where parentfield = 'test_prescription'
			""")

	if frappe.db.exists('DocType', 'Lab Test Groups'):
		if frappe.db.has_column('Lab Test Groups', 'parentfield'):
			frappe.db.sql("""
				update `tabLab Test Groups` set parentfield = 'lab_test_groups'
				where parentfield = 'test_groups'
			""")
Пример #19
0
def execute():
    for dt in doc_rename_map:
        if frappe.db.exists('DocType', dt):
            rename_doc('DocType', dt, doc_rename_map[dt], force=True)

    for dn in field_rename_map:
        if frappe.db.exists('DocType', dn):
            frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

    for dt, field_list in field_rename_map.items():
        if frappe.db.exists('DocType', dt):
            for field in field_list:
                if frappe.db.has_column(dt, field[0]):
                    rename_field(dt, field[0], field[1])

    if frappe.db.exists('DocType', 'Practitioner Service Unit Schedule'):
        if frappe.db.has_column('Practitioner Service Unit Schedule',
                                'parentfield'):
            frappe.db.sql("""
				update `tabPractitioner Service Unit Schedule` set parentfield = 'practitioner_schedules'
				where parentfield = 'physician_schedules' and parenttype = 'Healthcare Practitioner'
			""")
Пример #20
0
def load_doctype_module(doctype, module=None, prefix=""):
    if not module:
        module = get_doctype_module(doctype)
    return frappe.get_module(get_module_name(doctype, module, prefix))
Пример #21
0
def get_server_obj(doc, doclist=[], basedoctype=''):
    # for test
    module = get_doctype_module(doc.doctype)
    return load_doctype_module(doc.doctype, module).DocType(doc, doclist)
Пример #22
0
    for dt, field_list in rename_map.items():
        for field in field_list:
            rename_field(dt, field[0], field[1])


def reload_docs(docs):
    for dn in docs:
        frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

    # reload all standard print formats
    for pf in frappe.db.sql("""select name, module from `tabPrint Format` 
			where ifnull(standard, 'No') = 'Yes'""",
                            as_dict=1):
        try:
            frappe.reload_doc(pf.module, "Print Format", pf.name)
        except Exception, e:
            print e
            pass

    # reload all standard reports
    for r in frappe.db.sql("""select name, ref_doctype from `tabReport` 
		where ifnull(is_standard, 'No') = 'Yes'
		and report_type in ('Report Builder', 'Query Report')""",
                           as_dict=1):
        try:
            frappe.reload_doc(get_doctype_module(r.ref_doctype), "Report",
                              r.name)
        except Exception, e:
            print e
            pass
Пример #23
0

def reload_docs(docs):
    for dn in docs:
        frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

        # reload all standard print formats
    for pf in frappe.db.sql(
        """select name, module from `tabPrint Format` 
			where ifnull(standard, 'No') = 'Yes'""",
        as_dict=1,
    ):
        try:
            frappe.reload_doc(pf.module, "Print Format", pf.name)
        except Exception, e:
            print e
            pass

            # reload all standard reports
    for r in frappe.db.sql(
        """select name, ref_doctype from `tabReport` 
		where ifnull(is_standard, 'No') = 'Yes'
		and report_type in ('Report Builder', 'Query Report')""",
        as_dict=1,
    ):
        try:
            frappe.reload_doc(get_doctype_module(r.ref_doctype), "Report", r.name)
        except Exception, e:
            print e
            pass
def execute():
    for dn in field_rename_map:
        if frappe.db.exists('DocType', dn):
            if dn == 'Healthcare Settings':
                frappe.reload_doctype('Healthcare Settings')
            else:
                frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

    for dt, field_list in field_rename_map.items():
        if frappe.db.exists('DocType', dt):
            for field in field_list:
                if dt == 'Healthcare Settings':
                    rename_field(dt, field[0], field[1])
                elif frappe.db.has_column(dt, field[0]):
                    rename_field(dt, field[0], field[1])

    # first name mandatory in Patient
    if frappe.db.exists('DocType', 'Patient'):
        patients = frappe.db.sql("select name, patient_name from `tabPatient`",
                                 as_dict=1)
        frappe.reload_doc('healthcare', 'doctype', 'patient')
        for entry in patients:
            name = entry.patient_name.split(' ')
            frappe.db.set_value('Patient', entry.name, 'first_name', name[0])

    # mark Healthcare Practitioner status as Disabled
    if frappe.db.exists('DocType', 'Healthcare Practitioner'):
        practitioners = frappe.db.sql(
            "select name from `tabHealthcare Practitioner` where 'active'= 0",
            as_dict=1)
        practitioners_lst = [p.name for p in practitioners]
        frappe.reload_doc('healthcare', 'doctype', 'healthcare_practitioner')
        if practitioners_lst:
            frappe.db.sql(
                "update `tabHealthcare Practitioner` set status = 'Disabled' where name IN %(practitioners)s"
                "", {"practitioners": practitioners_lst})

    # set Clinical Procedure status
    if frappe.db.exists('DocType', 'Clinical Procedure'):
        frappe.reload_doc('healthcare', 'doctype', 'clinical_procedure')
        frappe.db.sql("""
			UPDATE
				`tabClinical Procedure`
			SET
				docstatus = (CASE WHEN status = 'Cancelled' THEN 2
								WHEN status = 'Draft' THEN 0
								ELSE 1
							END)
		""")

    # set complaints and diagnosis in table multiselect in Patient Encounter
    if frappe.db.exists('DocType', 'Patient Encounter'):
        field_list = [['visit_department', 'medical_department'],
                      ['type', 'appointment_type']]
        encounter_details = frappe.db.sql(
            """select symptoms, diagnosis, name from `tabPatient Encounter`""",
            as_dict=True)
        frappe.reload_doc('healthcare', 'doctype', 'patient_encounter')
        frappe.reload_doc('healthcare', 'doctype', 'patient_encounter_symptom')
        frappe.reload_doc('healthcare', 'doctype',
                          'patient_encounter_diagnosis')

        for field in field_list:
            if frappe.db.has_column(dt, field[0]):
                rename_field(dt, field[0], field[1])

        for entry in encounter_details:
            doc = frappe.get_doc('Patient Encounter', entry.name)
            symptoms = entry.symptoms.split('\n') if entry.symptoms else []
            for symptom in symptoms:
                if not frappe.db.exists('Complaint', symptom):
                    frappe.get_doc({
                        'doctype': 'Complaint',
                        'complaints': symptom
                    }).insert()
                row = doc.append('symptoms', {'complaint': symptom})
                row.db_update()

            diagnosis = entry.diagnosis.split('\n') if entry.diagnosis else []
            for d in diagnosis:
                if not frappe.db.exists('Diagnosis', d):
                    frappe.get_doc({
                        'doctype': 'Diagnosis',
                        'diagnosis': d
                    }).insert()
                row = doc.append('diagnosis', {'diagnosis': d})
                row.db_update()
            doc.db_update()

    if frappe.db.exists('DocType', 'Fee Validity'):
        # update fee validity status
        frappe.db.sql("""
			UPDATE
				`tabFee Validity`
			SET
				status = (CASE WHEN visited >= max_visits THEN 'Completed'
								ELSE 'Pending'
							END)
		""")
Пример #25
0
def execute():
    for dt in ["Quotation", "Sales Order", "Delivery Note", "Sales Invoice"]:
        frappe.reload_doc(get_doctype_module(dt), "doctype", scrub(dt))
        frappe.db.sql(
            """update `tab{0}` set base_discount_amount=discount_amount,
			discount_amount=discount_amount/conversion_rate""".format(dt))
Пример #26
0
def execute():
	for dt in ["Quotation", "Sales Order", "Delivery Note", "Sales Invoice"]:
		frappe.reload_doc(get_doctype_module(dt), "doctype", scrub(dt))
		frappe.db.sql("""update `tab{0}` set base_discount_amount=discount_amount,
			discount_amount=discount_amount/conversion_rate""".format(dt))
def execute():
    for dn in field_rename_map:
        if frappe.db.exists("DocType", dn):
            if dn == "Healthcare Settings":
                frappe.reload_doctype("Healthcare Settings")
            else:
                frappe.reload_doc(get_doctype_module(dn), "doctype", scrub(dn))

    for dt, field_list in field_rename_map.items():
        if frappe.db.exists("DocType", dt):
            for field in field_list:
                if dt == "Healthcare Settings":
                    rename_field(dt, field[0], field[1])
                elif frappe.db.has_column(dt, field[0]):
                    rename_field(dt, field[0], field[1])

    # first name mandatory in Patient
    if frappe.db.exists("DocType", "Patient"):
        patients = frappe.db.sql("select name, patient_name from `tabPatient`",
                                 as_dict=1)
        frappe.reload_doc("healthcare", "doctype", "patient")
        for entry in patients:
            name = entry.patient_name.split(" ")
            frappe.db.set_value("Patient", entry.name, "first_name", name[0])

    # mark Healthcare Practitioner status as Disabled
    if frappe.db.exists("DocType", "Healthcare Practitioner"):
        practitioners = frappe.db.sql(
            "select name from `tabHealthcare Practitioner` where 'active'= 0",
            as_dict=1)
        practitioners_lst = [p.name for p in practitioners]
        frappe.reload_doc("healthcare", "doctype", "healthcare_practitioner")
        if practitioners_lst:
            frappe.db.sql(
                "update `tabHealthcare Practitioner` set status = 'Disabled' where name IN %(practitioners)s"
                "",
                {"practitioners": practitioners_lst},
            )

    # set Clinical Procedure status
    if frappe.db.exists("DocType", "Clinical Procedure"):
        frappe.reload_doc("healthcare", "doctype", "clinical_procedure")
        frappe.db.sql("""
			UPDATE
				`tabClinical Procedure`
			SET
				docstatus = (CASE WHEN status = 'Cancelled' THEN 2
								WHEN status = 'Draft' THEN 0
								ELSE 1
							END)
		""")

    # set complaints and diagnosis in table multiselect in Patient Encounter
    if frappe.db.exists("DocType", "Patient Encounter"):
        field_list = [["visit_department", "medical_department"],
                      ["type", "appointment_type"]]
        encounter_details = frappe.db.sql(
            """select symptoms, diagnosis, name from `tabPatient Encounter`""",
            as_dict=True)
        frappe.reload_doc("healthcare", "doctype", "patient_encounter")
        frappe.reload_doc("healthcare", "doctype", "patient_encounter_symptom")
        frappe.reload_doc("healthcare", "doctype",
                          "patient_encounter_diagnosis")

        for field in field_list:
            if frappe.db.has_column(dt, field[0]):
                rename_field(dt, field[0], field[1])

        for entry in encounter_details:
            doc = frappe.get_doc("Patient Encounter", entry.name)
            symptoms = entry.symptoms.split("\n") if entry.symptoms else []
            for symptom in symptoms:
                if not frappe.db.exists("Complaint", symptom):
                    frappe.get_doc({
                        "doctype": "Complaint",
                        "complaints": symptom
                    }).insert()
                row = doc.append("symptoms", {"complaint": symptom})
                row.db_update()

            diagnosis = entry.diagnosis.split("\n") if entry.diagnosis else []
            for d in diagnosis:
                if not frappe.db.exists("Diagnosis", d):
                    frappe.get_doc({
                        "doctype": "Diagnosis",
                        "diagnosis": d
                    }).insert()
                row = doc.append("diagnosis", {"diagnosis": d})
                row.db_update()
            doc.db_update()

    if frappe.db.exists("DocType", "Fee Validity"):
        # update fee validity status
        frappe.db.sql("""
			UPDATE
				`tabFee Validity`
			SET
				status = (CASE WHEN visited >= max_visits THEN 'Completed'
								ELSE 'Pending'
							END)
		""")