def execute(): # restores back the 2 custom fields that was deleted while removing e-invoicing from v14 company = frappe.get_all("Company", filters={"country": "India"}) if not company: return custom_fields = { "Sales Invoice": [ dict( fieldname="irn_cancelled", label="IRN Cancelled", fieldtype="Check", no_copy=1, print_hide=1, depends_on="eval:(doc.irn_cancelled === 1)", read_only=1, allow_on_submit=1, insert_after="customer", ), dict( fieldname="eway_bill_cancelled", label="E-Way Bill Cancelled", fieldtype="Check", no_copy=1, print_hide=1, depends_on="eval:(doc.eway_bill_cancelled === 1)", read_only=1, allow_on_submit=1, insert_after="customer", ), ] } create_custom_fields(custom_fields, update=True) add_permissions() add_print_formats()
def execute(): company = frappe.get_all("Company", filters={"country": "India"}) if not company: return frappe.reload_doc("regional", "doctype", "lower_deduction_certificate") frappe.reload_doc("regional", "doctype", "gstr_3b_report") add_permissions()
def execute(): company = frappe.get_all('Company', filters={'country': 'India'}) if not company: return frappe.reload_doc("custom", "doctype", "custom_field") frappe.reload_doc("regional", "doctype", "e_invoice_settings") custom_fields = { 'Sales Invoice': [ dict( fieldname='irn', label='IRN', fieldtype='Data', read_only=1, insert_after='customer', no_copy=1, print_hide=1, depends_on= 'eval:in_list(["Registered Regular", "SEZ", "Overseas", "Deemed Export"], doc.gst_category) && doc.irn_cancelled === 0' ), dict(fieldname='ack_no', label='Ack. No.', fieldtype='Data', read_only=1, hidden=1, insert_after='irn', no_copy=1, print_hide=1), dict(fieldname='ack_date', label='Ack. Date', fieldtype='Data', read_only=1, hidden=1, insert_after='ack_no', no_copy=1, print_hide=1), dict(fieldname='irn_cancelled', label='IRN Cancelled', fieldtype='Check', no_copy=1, print_hide=1, depends_on='eval:(doc.irn_cancelled === 1)', read_only=1, allow_on_submit=1, insert_after='customer'), dict(fieldname='eway_bill_cancelled', label='E-Way Bill Cancelled', fieldtype='Check', no_copy=1, print_hide=1, depends_on='eval:(doc.eway_bill_cancelled === 1)', read_only=1, allow_on_submit=1, insert_after='customer'), dict(fieldname='signed_einvoice', fieldtype='Code', options='JSON', hidden=1, no_copy=1, print_hide=1, read_only=1), dict(fieldname='signed_qr_code', fieldtype='Code', options='JSON', hidden=1, no_copy=1, print_hide=1, read_only=1), dict(fieldname='qrcode_image', label='QRCode', fieldtype='Attach Image', hidden=1, no_copy=1, print_hide=1, read_only=1) ] } create_custom_fields(custom_fields, update=True) add_permissions() add_print_formats() einvoice_cond = 'in_list(["Registered Regular", "SEZ", "Overseas", "Deemed Export"], doc.gst_category)' t = { 'mode_of_transport': [{ 'default': None }], 'distance': [{ 'mandatory_depends_on': f'eval:{einvoice_cond} && doc.transporter' }], 'gst_vehicle_type': [{ 'mandatory_depends_on': f'eval:{einvoice_cond} && doc.mode_of_transport == "Road"' }], 'lr_date': [{ 'mandatory_depends_on': f'eval:{einvoice_cond} && in_list(["Air", "Ship", "Rail"], doc.mode_of_transport)' }], 'lr_no': [{ 'mandatory_depends_on': f'eval:{einvoice_cond} && in_list(["Air", "Ship", "Rail"], doc.mode_of_transport)' }], 'vehicle_no': [{ 'mandatory_depends_on': f'eval:{einvoice_cond} && doc.mode_of_transport == "Road"' }], 'ewaybill': [{ 'read_only_depends_on': 'eval:doc.irn && doc.ewaybill' }, { 'depends_on': 'eval:((doc.docstatus === 1 || doc.ewaybill) && doc.eway_bill_cancelled === 0)' }] } for field, conditions in t.items(): for c in conditions: [(prop, value)] = c.items() frappe.db.set_value('Custom Field', {'fieldname': field}, prop, value)
def execute(): company = frappe.get_all("Company", filters={"country": "India"}) if not company: return frappe.reload_doc("custom", "doctype", "custom_field") frappe.reload_doc("regional", "doctype", "e_invoice_settings") custom_fields = { "Sales Invoice": [ dict( fieldname="irn", label="IRN", fieldtype="Data", read_only=1, insert_after="customer", no_copy=1, print_hide=1, depends_on= 'eval:in_list(["Registered Regular", "SEZ", "Overseas", "Deemed Export"], doc.gst_category) && doc.irn_cancelled === 0', ), dict( fieldname="ack_no", label="Ack. No.", fieldtype="Data", read_only=1, hidden=1, insert_after="irn", no_copy=1, print_hide=1, ), dict( fieldname="ack_date", label="Ack. Date", fieldtype="Data", read_only=1, hidden=1, insert_after="ack_no", no_copy=1, print_hide=1, ), dict( fieldname="irn_cancelled", label="IRN Cancelled", fieldtype="Check", no_copy=1, print_hide=1, depends_on="eval:(doc.irn_cancelled === 1)", read_only=1, allow_on_submit=1, insert_after="customer", ), dict( fieldname="eway_bill_cancelled", label="E-Way Bill Cancelled", fieldtype="Check", no_copy=1, print_hide=1, depends_on="eval:(doc.eway_bill_cancelled === 1)", read_only=1, allow_on_submit=1, insert_after="customer", ), dict( fieldname="signed_einvoice", fieldtype="Code", options="JSON", hidden=1, no_copy=1, print_hide=1, read_only=1, ), dict( fieldname="signed_qr_code", fieldtype="Code", options="JSON", hidden=1, no_copy=1, print_hide=1, read_only=1, ), dict( fieldname="qrcode_image", label="QRCode", fieldtype="Attach Image", hidden=1, no_copy=1, print_hide=1, read_only=1, ), ] } create_custom_fields(custom_fields, update=True) add_permissions() add_print_formats() einvoice_cond = ( 'in_list(["Registered Regular", "SEZ", "Overseas", "Deemed Export"], doc.gst_category)' ) t = { "mode_of_transport": [{ "default": None }], "distance": [{ "mandatory_depends_on": f"eval:{einvoice_cond} && doc.transporter" }], "gst_vehicle_type": [{ "mandatory_depends_on": f'eval:{einvoice_cond} && doc.mode_of_transport == "Road"' }], "lr_date": [{ "mandatory_depends_on": f'eval:{einvoice_cond} && in_list(["Air", "Ship", "Rail"], doc.mode_of_transport)' }], "lr_no": [{ "mandatory_depends_on": f'eval:{einvoice_cond} && in_list(["Air", "Ship", "Rail"], doc.mode_of_transport)' }], "vehicle_no": [{ "mandatory_depends_on": f'eval:{einvoice_cond} && doc.mode_of_transport == "Road"' }], "ewaybill": [ { "read_only_depends_on": "eval:doc.irn && doc.ewaybill" }, { "depends_on": "eval:((doc.docstatus === 1 || doc.ewaybill) && doc.eway_bill_cancelled === 0)" }, ], } for field, conditions in t.items(): for c in conditions: [(prop, value)] = c.items() frappe.db.set_value("Custom Field", {"fieldname": field}, prop, value)
def execute(): company = frappe.get_all('Company', filters={'country': 'India'}) if not company: return add_permissions()