fix: remove patches
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 7560f2f..1908faa 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -10,9 +10,6 @@
erpnext.patches.v5_7.update_item_description_based_on_item_master
erpnext.patches.v4_2.repost_reserved_qty #2021-03-31
execute:frappe.reload_doc("Payroll", "doctype", "salary_slip")
-erpnext.patches.v8_1.setup_gst_india #2017-06-27
-erpnext.patches.v8_1.removed_roles_from_gst_report_non_indian_account #16-08-2018
-erpnext.patches.v8_7.sync_india_custom_fields
erpnext.patches.v10_0.fichier_des_ecritures_comptables_for_france
erpnext.patches.v10_0.rename_price_to_rate_in_pricing_rule
erpnext.patches.v10_0.set_currency_in_pricing_rule
@@ -46,7 +43,6 @@
erpnext.patches.v11_0.move_item_defaults_to_child_table_for_multicompany #02-07-2018 #19-06-2019
erpnext.patches.v11_0.rename_overproduction_percent_field
erpnext.patches.v11_0.update_backflush_subcontract_rm_based_on_bom
-erpnext.patches.v11_0.inter_state_field_for_gst
erpnext.patches.v11_0.rename_members_with_naming_series #04-06-2018
erpnext.patches.v11_0.set_update_field_and_value_in_workflow_state
erpnext.patches.v11_0.update_total_qty_field
@@ -68,20 +64,15 @@
execute:frappe.delete_doc_if_exists("Page", "purchase-analytics")
execute:frappe.delete_doc_if_exists("Page", "stock-analytics")
execute:frappe.delete_doc_if_exists("Page", "production-analytics")
-erpnext.patches.v11_0.ewaybill_fields_gst_india #2018-11-13 #2019-01-09 #2019-04-01 #2019-04-26 #2019-05-03
erpnext.patches.v11_0.drop_column_max_days_allowed
erpnext.patches.v10_0.item_barcode_childtable_migrate # 16-02-2019
erpnext.patches.v11_0.update_delivery_trip_status
-erpnext.patches.v11_0.set_missing_gst_hsn_code
erpnext.patches.v11_0.rename_bom_wo_fields
erpnext.patches.v12_0.set_default_homepage_type
erpnext.patches.v11_0.rename_additional_salary_component_additional_salary
erpnext.patches.v11_0.renamed_from_to_fields_in_project
-erpnext.patches.v11_0.add_permissions_in_gst_settings #2020-04-04
erpnext.patches.v11_1.setup_guardian_role
execute:frappe.delete_doc('DocType', 'Notification Control')
-erpnext.patches.v12_0.set_gst_category
-erpnext.patches.v12_0.update_gst_category
erpnext.patches.v11_0.remove_barcodes_field_from_copy_fields_to_variants
erpnext.patches.v12_0.set_task_status
erpnext.patches.v11_0.make_italian_localization_fields # 26-03-2019
@@ -118,7 +109,6 @@
erpnext.patches.v11_1.update_default_supplier_in_item_defaults
erpnext.patches.v12_0.update_due_date_in_gle
erpnext.patches.v12_0.add_default_buying_selling_terms_in_company
-erpnext.patches.v12_0.update_ewaybill_field_position
erpnext.patches.v12_0.create_accounting_dimensions_in_missing_doctypes #2020-05-11
erpnext.patches.v11_1.set_status_for_material_request_type_manufacture
erpnext.patches.v12_0.move_plaid_settings_to_doctype
@@ -141,14 +131,12 @@
erpnext.patches.v12_0.set_automatically_process_deferred_accounting_in_accounts_settings
erpnext.patches.v12_0.set_payment_entry_status
erpnext.patches.v12_0.update_owner_fields_in_acc_dimension_custom_fields
-erpnext.patches.v12_0.add_export_type_field_in_party_master
erpnext.patches.v12_0.remove_denied_leaves_from_leave_ledger
erpnext.patches.v12_0.update_price_or_product_discount
erpnext.patches.v12_0.set_production_capacity_in_workstation
erpnext.patches.v12_0.set_employee_preferred_emails
erpnext.patches.v12_0.set_against_blanket_order_in_sales_and_purchase_order
erpnext.patches.v12_0.set_cost_center_in_child_table_of_expense_claim
-erpnext.patches.v12_0.add_eway_bill_in_delivery_note
erpnext.patches.v12_0.set_lead_title_field
erpnext.patches.v12_0.set_permission_einvoicing
erpnext.patches.v12_0.set_job_offer_applicant_email
@@ -196,7 +184,6 @@
erpnext.patches.v13_0.update_subscription
erpnext.patches.v12_0.unhide_cost_center_field
erpnext.patches.v13_0.update_sla_enhancements
-erpnext.patches.v12_0.update_address_template_for_india
erpnext.patches.v13_0.update_deferred_settings
erpnext.patches.v12_0.set_multi_uom_in_rfq
erpnext.patches.v13_0.delete_old_sales_reports
@@ -225,7 +212,6 @@
erpnext.patches.v13_0.set_app_name
erpnext.patches.v13_0.print_uom_after_quantity_patch
erpnext.patches.v13_0.set_payment_channel_in_payment_gateway_account
-erpnext.patches.v12_0.setup_einvoice_fields #2020-12-02
erpnext.patches.v13_0.updates_for_multi_currency_payroll
erpnext.patches.v13_0.update_reason_for_resignation_in_employee
execute:frappe.delete_doc("Report", "Quoted Item Comparison")
@@ -245,22 +231,18 @@
erpnext.patches.v13_0.item_reposting_for_incorrect_sl_and_gl
erpnext.patches.v13_0.delete_old_bank_reconciliation_doctypes
erpnext.patches.v13_0.update_vehicle_no_reqd_condition
-erpnext.patches.v12_0.add_einvoice_status_field #2021-03-17
-erpnext.patches.v12_0.add_einvoice_summary_report_permissions
erpnext.patches.v13_0.setup_fields_for_80g_certificate_and_donation
erpnext.patches.v13_0.rename_membership_settings_to_non_profit_settings
erpnext.patches.v13_0.setup_gratuity_rule_for_india_and_uae
erpnext.patches.v13_0.setup_uae_vat_fields
execute:frappe.db.set_value('System Settings', None, 'app_name', 'ERPNext')
erpnext.patches.v12_0.create_taxable_value_field
-erpnext.patches.v12_0.add_gst_category_in_delivery_note
erpnext.patches.v12_0.purchase_receipt_status
erpnext.patches.v13_0.fix_non_unique_represents_company
erpnext.patches.v12_0.add_document_type_field_for_italy_einvoicing
erpnext.patches.v13_0.make_non_standard_user_type #13-04-2021 #17-01-2022
erpnext.patches.v13_0.update_shipment_status
erpnext.patches.v13_0.remove_attribute_field_from_item_variant_setting
-erpnext.patches.v12_0.add_ewaybill_validity_field
erpnext.patches.v13_0.germany_make_custom_fields
erpnext.patches.v13_0.germany_fill_debtor_creditor_number
erpnext.patches.v13_0.set_pos_closing_as_failed
@@ -276,9 +258,7 @@
erpnext.patches.v13_0.add_missing_fg_item_for_stock_entry
erpnext.patches.v13_0.update_subscription_status_in_memberships
erpnext.patches.v13_0.update_amt_in_work_order_required_items
-erpnext.patches.v12_0.show_einvoice_irn_cancelled_field
erpnext.patches.v13_0.delete_orphaned_tables
-erpnext.patches.v13_0.update_export_type_for_gst #2021-08-16
erpnext.patches.v13_0.update_tds_check_field #3
erpnext.patches.v13_0.add_custom_field_for_south_africa #2
erpnext.patches.v13_0.update_recipient_email_digest
@@ -291,7 +271,6 @@
execute:frappe.reload_doc("erpnext_integrations", "doctype", "Product Tax Category")
erpnext.patches.v13_0.custom_fields_for_taxjar_integration #08-11-2021
erpnext.patches.v13_0.set_operation_time_based_on_operating_cost
-erpnext.patches.v13_0.create_gst_payment_entry_fields #27-11-2021
erpnext.patches.v13_0.fix_invoice_statuses
erpnext.patches.v13_0.create_website_items #30-09-2021
erpnext.patches.v13_0.populate_e_commerce_settings
@@ -299,7 +278,6 @@
erpnext.patches.v13_0.replace_supplier_item_group_with_party_specific_item
erpnext.patches.v13_0.update_dates_in_tax_withholding_category
erpnext.patches.v14_0.update_opportunity_currency_fields
-erpnext.patches.v13_0.gst_fields_for_pos_invoice
erpnext.patches.v13_0.create_accounting_dimensions_in_pos_doctypes
erpnext.patches.v13_0.trim_sales_invoice_custom_field_length
erpnext.patches.v13_0.create_custom_field_for_finance_book
@@ -316,7 +294,6 @@
erpnext.patches.v13_0.item_naming_series_not_mandatory
erpnext.patches.v14_0.delete_healthcare_doctypes
erpnext.patches.v13_0.update_category_in_ltds_certificate
-erpnext.patches.v13_0.create_pan_field_for_india #2
erpnext.patches.v13_0.fetch_thumbnail_in_website_items
erpnext.patches.v13_0.update_maintenance_schedule_field_in_visit
erpnext.patches.v13_0.create_ksa_vat_custom_fields # 07-01-2022
@@ -324,7 +301,6 @@
erpnext.patches.v13_0.rename_ksa_qr_field
erpnext.patches.v13_0.wipe_serial_no_field_for_0_qty
erpnext.patches.v13_0.disable_ksa_print_format_for_others # 16-12-2021
-erpnext.patches.v13_0.update_tax_category_for_rcm
execute:frappe.delete_doc_if_exists('Workspace', 'ERPNext Integrations Settings')
erpnext.patches.v14_0.set_payroll_cost_centers
erpnext.patches.v13_0.agriculture_deprecation_warning
@@ -342,9 +318,7 @@
erpnext.patches.v14_0.delete_agriculture_doctypes
erpnext.patches.v14_0.rearrange_company_fields
erpnext.patches.v14_0.update_leave_notification_template
-erpnext.patches.v14_0.restore_einvoice_fields
erpnext.patches.v13_0.update_sane_transfer_against
-erpnext.patches.v12_0.add_company_link_to_einvoice_settings
erpnext.patches.v14_0.migrate_cost_center_allocations
erpnext.patches.v13_0.convert_to_website_item_in_item_card_group_template
erpnext.patches.v13_0.shopping_cart_to_ecommerce
diff --git a/erpnext/patches/v11_0/add_permissions_in_gst_settings.py b/erpnext/patches/v11_0/add_permissions_in_gst_settings.py
deleted file mode 100644
index 9df1b58..0000000
--- a/erpnext/patches/v11_0/add_permissions_in_gst_settings.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import frappe
-
-from erpnext.regional.india.setup import add_permissions
-
-
-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()
diff --git a/erpnext/patches/v11_0/ewaybill_fields_gst_india.py b/erpnext/patches/v11_0/ewaybill_fields_gst_india.py
deleted file mode 100644
index 5974e27..0000000
--- a/erpnext/patches/v11_0/ewaybill_fields_gst_india.py
+++ /dev/null
@@ -1,11 +0,0 @@
-import frappe
-
-from erpnext.regional.india.setup import make_custom_fields
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- make_custom_fields()
diff --git a/erpnext/patches/v11_0/inter_state_field_for_gst.py b/erpnext/patches/v11_0/inter_state_field_for_gst.py
deleted file mode 100644
index a1f1594..0000000
--- a/erpnext/patches/v11_0/inter_state_field_for_gst.py
+++ /dev/null
@@ -1,72 +0,0 @@
-import frappe
-
-from erpnext.regional.india.setup import make_custom_fields
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
- frappe.reload_doc("Payroll", "doctype", "Employee Tax Exemption Declaration")
- frappe.reload_doc("Payroll", "doctype", "Employee Tax Exemption Proof Submission")
- frappe.reload_doc("hr", "doctype", "Employee Grade")
- frappe.reload_doc("hr", "doctype", "Leave Policy")
-
- frappe.reload_doc("accounts", "doctype", "Bank Account")
- frappe.reload_doc("accounts", "doctype", "Tax Withholding Category")
- frappe.reload_doc("accounts", "doctype", "Allowed To Transact With")
- frappe.reload_doc("accounts", "doctype", "Finance Book")
- frappe.reload_doc("accounts", "doctype", "Loyalty Program")
-
- frappe.reload_doc("stock", "doctype", "Item Barcode")
-
- make_custom_fields()
-
- frappe.reload_doc("accounts", "doctype", "sales_taxes_and_charges")
- frappe.reload_doc("accounts", "doctype", "purchase_taxes_and_charges")
- frappe.reload_doc("accounts", "doctype", "sales_taxes_and_charges_template")
- frappe.reload_doc("accounts", "doctype", "purchase_taxes_and_charges_template")
-
- # set is_inter_state in Taxes And Charges Templates
- if frappe.db.has_column("Sales Taxes and Charges Template", "is_inter_state") and\
- frappe.db.has_column("Purchase Taxes and Charges Template", "is_inter_state"):
-
- igst_accounts = set(frappe.db.sql_list('''SELECT igst_account from `tabGST Account` WHERE parent = "GST Settings"'''))
- cgst_accounts = set(frappe.db.sql_list('''SELECT cgst_account FROM `tabGST Account` WHERE parenttype = "GST Settings"'''))
-
- when_then_sales = get_formatted_data("Sales Taxes and Charges", igst_accounts, cgst_accounts)
- when_then_purchase = get_formatted_data("Purchase Taxes and Charges", igst_accounts, cgst_accounts)
-
- if when_then_sales:
- frappe.db.sql('''update `tabSales Taxes and Charges Template`
- set is_inter_state = Case {when_then} Else 0 End
- '''.format(when_then=" ".join(when_then_sales)))
-
- if when_then_purchase:
- frappe.db.sql('''update `tabPurchase Taxes and Charges Template`
- set is_inter_state = Case {when_then} Else 0 End
- '''.format(when_then=" ".join(when_then_purchase)))
-
-def get_formatted_data(doctype, igst_accounts, cgst_accounts):
- # fetch all the rows data from child table
- all_details = frappe.db.sql('''
- select parent, account_head from `tab{doctype}`
- where parenttype="{doctype} Template"'''.format(doctype=doctype), as_dict=True)
-
- # group the data in the form "parent: [list of accounts]""
- group_detail = {}
- for i in all_details:
- if not i['parent'] in group_detail: group_detail[i['parent']] = []
- for j in all_details:
- if i['parent']==j['parent']:
- group_detail[i['parent']].append(j['account_head'])
-
- # form when_then condition based on - if list of accounts for a document
- # matches any account in igst_accounts list and not matches any in cgst_accounts list
- when_then = []
- for i in group_detail:
- temp = set(group_detail[i])
- if not temp.isdisjoint(igst_accounts) and temp.isdisjoint(cgst_accounts):
- when_then.append('''When name='{name}' Then 1'''.format(name=i))
-
- return when_then
diff --git a/erpnext/patches/v11_0/set_missing_gst_hsn_code.py b/erpnext/patches/v11_0/set_missing_gst_hsn_code.py
deleted file mode 100644
index ec75d45..0000000
--- a/erpnext/patches/v11_0/set_missing_gst_hsn_code.py
+++ /dev/null
@@ -1,45 +0,0 @@
-import frappe
-
-from erpnext.controllers.taxes_and_totals import get_itemised_tax_breakup_html
-
-
-def execute():
- company = frappe.db.sql_list("select name from tabCompany where country = 'India'")
- if not company:
- return
-
- doctypes = ["Quotation", "Sales Order", "Delivery Note", "Sales Invoice",
- "Supplier Quotation", "Purchase Order", "Purchase Receipt", "Purchase Invoice"]
-
- for dt in doctypes:
- date_field = "posting_date"
- if dt in ["Quotation", "Sales Order", "Supplier Quotation", "Purchase Order"]:
- date_field = "transaction_date"
-
- transactions = frappe.db.sql("""
- select dt.name, dt_item.name as child_name
- from `tab{dt}` dt, `tab{dt} Item` dt_item
- where dt.name = dt_item.parent
- and dt.`{date_field}` > '2018-06-01'
- and dt.docstatus = 1
- and ifnull(dt_item.gst_hsn_code, '') = ''
- and ifnull(dt_item.item_code, '') != ''
- and dt.company in ({company})
- """.format(dt=dt, date_field=date_field, company=", ".join(['%s']*len(company))), tuple(company), as_dict=1)
-
- if not transactions:
- continue
-
- transaction_rows_name = [d.child_name for d in transactions]
-
- frappe.db.sql("""
- update `tab{dt} Item` dt_item
- set dt_item.gst_hsn_code = (select gst_hsn_code from tabItem where name=dt_item.item_code)
- where dt_item.name in ({rows_name})
- """.format(dt=dt, rows_name=", ".join(['%s']*len(transaction_rows_name))), tuple(transaction_rows_name))
-
- parent = set([d.name for d in transactions])
- for t in list(parent):
- trans_doc = frappe.get_doc(dt, t)
- hsnwise_tax = get_itemised_tax_breakup_html(trans_doc)
- frappe.db.set_value(dt, t, "other_charges_calculation", hsnwise_tax, update_modified=False)
diff --git a/erpnext/patches/v12_0/add_company_link_to_einvoice_settings.py b/erpnext/patches/v12_0/add_company_link_to_einvoice_settings.py
deleted file mode 100644
index e498b67..0000000
--- a/erpnext/patches/v12_0/add_company_link_to_einvoice_settings.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from __future__ import unicode_literals
-
-import frappe
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company or not frappe.db.count('E Invoice User'):
- return
-
- frappe.reload_doc("regional", "doctype", "e_invoice_user")
- for creds in frappe.db.get_all('E Invoice User', fields=['name', 'gstin']):
- company_name = frappe.db.sql("""
- select dl.link_name from `tabAddress` a, `tabDynamic Link` dl
- where a.gstin = %s and dl.parent = a.name and dl.link_doctype = 'Company'
- """, (creds.get('gstin')))
- if company_name and len(company_name) > 0:
- frappe.db.set_value('E Invoice User', creds.get('name'), 'company', company_name[0][0])
diff --git a/erpnext/patches/v12_0/add_einvoice_status_field.py b/erpnext/patches/v12_0/add_einvoice_status_field.py
deleted file mode 100644
index aeff9ca..0000000
--- a/erpnext/patches/v12_0/add_einvoice_status_field.py
+++ /dev/null
@@ -1,72 +0,0 @@
-from __future__ import unicode_literals
-
-import json
-
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- # move hidden einvoice fields to a different section
- custom_fields = {
- 'Sales Invoice': [
- dict(fieldname='einvoice_section', label='E-Invoice Fields', fieldtype='Section Break', insert_after='gst_vehicle_type',
- print_hide=1, hidden=1),
-
- dict(fieldname='ack_no', label='Ack. No.', fieldtype='Data', read_only=1, hidden=1, insert_after='einvoice_section',
- 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_cancel_date', label='Cancel Date', fieldtype='Data', read_only=1, hidden=1, insert_after='ack_date',
- no_copy=1, print_hide=1),
-
- dict(fieldname='signed_einvoice', label='Signed E-Invoice', fieldtype='Code', options='JSON', hidden=1, insert_after='irn_cancel_date',
- no_copy=1, print_hide=1, read_only=1),
-
- dict(fieldname='signed_qr_code', label='Signed QRCode', fieldtype='Code', options='JSON', hidden=1, insert_after='signed_einvoice',
- no_copy=1, print_hide=1, read_only=1),
-
- dict(fieldname='qrcode_image', label='QRCode', fieldtype='Attach Image', hidden=1, insert_after='signed_qr_code',
- no_copy=1, print_hide=1, read_only=1),
-
- dict(fieldname='einvoice_status', label='E-Invoice Status', fieldtype='Select', insert_after='qrcode_image',
- options='\nPending\nGenerated\nCancelled\nFailed', default=None, hidden=1, no_copy=1, print_hide=1, read_only=1),
-
- dict(fieldname='failure_description', label='E-Invoice Failure Description', fieldtype='Code', options='JSON',
- hidden=1, insert_after='einvoice_status', no_copy=1, print_hide=1, read_only=1)
- ]
- }
- create_custom_fields(custom_fields, update=True)
-
- if frappe.db.exists('E Invoice Settings') and frappe.db.get_single_value('E Invoice Settings', 'enable'):
- frappe.db.sql('''
- UPDATE `tabSales Invoice` SET einvoice_status = 'Pending'
- WHERE
- posting_date >= '2021-04-01'
- AND ifnull(irn, '') = ''
- AND ifnull(`billing_address_gstin`, '') != ifnull(`company_gstin`, '')
- AND ifnull(gst_category, '') in ('Registered Regular', 'SEZ', 'Overseas', 'Deemed Export')
- ''')
-
- # set appropriate statuses
- frappe.db.sql('''UPDATE `tabSales Invoice` SET einvoice_status = 'Generated'
- WHERE ifnull(irn, '') != '' AND ifnull(irn_cancelled, 0) = 0''')
-
- frappe.db.sql('''UPDATE `tabSales Invoice` SET einvoice_status = 'Cancelled'
- WHERE ifnull(irn_cancelled, 0) = 1''')
-
- # set correct acknowledgement in e-invoices
- einvoices = frappe.get_all('Sales Invoice', {'irn': ['is', 'set']}, ['name', 'signed_einvoice'])
-
- if einvoices:
- for inv in einvoices:
- signed_einvoice = inv.get('signed_einvoice')
- if signed_einvoice:
- signed_einvoice = json.loads(signed_einvoice)
- frappe.db.set_value('Sales Invoice', inv.get('name'), 'ack_no', signed_einvoice.get('AckNo'), update_modified=False)
- frappe.db.set_value('Sales Invoice', inv.get('name'), 'ack_date', signed_einvoice.get('AckDt'), update_modified=False)
diff --git a/erpnext/patches/v12_0/add_einvoice_summary_report_permissions.py b/erpnext/patches/v12_0/add_einvoice_summary_report_permissions.py
deleted file mode 100644
index e837786..0000000
--- a/erpnext/patches/v12_0/add_einvoice_summary_report_permissions.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from __future__ import unicode_literals
-
-import frappe
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- if frappe.db.exists('Report', 'E-Invoice Summary') and \
- not frappe.db.get_value('Custom Role', dict(report='E-Invoice Summary')):
- frappe.get_doc(dict(
- doctype='Custom Role',
- report='E-Invoice Summary',
- roles= [
- dict(role='Accounts User'),
- dict(role='Accounts Manager')
- ]
- )).insert()
diff --git a/erpnext/patches/v12_0/add_eway_bill_in_delivery_note.py b/erpnext/patches/v12_0/add_eway_bill_in_delivery_note.py
deleted file mode 100644
index 973da89..0000000
--- a/erpnext/patches/v12_0/add_eway_bill_in_delivery_note.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_field
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
-
- if not company:
- return
-
- create_custom_field('Delivery Note', {
- 'fieldname': 'ewaybill',
- 'label': 'E-Way Bill No.',
- 'fieldtype': 'Data',
- 'depends_on': 'eval:(doc.docstatus === 1)',
- 'allow_on_submit': 1,
- 'insert_after': 'customer_name_in_arabic',
- 'translatable': 0,
- 'owner': 'Administrator'
- })
diff --git a/erpnext/patches/v12_0/add_ewaybill_validity_field.py b/erpnext/patches/v12_0/add_ewaybill_validity_field.py
deleted file mode 100644
index 247140d..0000000
--- a/erpnext/patches/v12_0/add_ewaybill_validity_field.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from __future__ import unicode_literals
-
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- custom_fields = {
- 'Sales Invoice': [
- dict(fieldname='eway_bill_validity', label='E-Way Bill Validity', fieldtype='Data', no_copy=1, print_hide=1,
- depends_on='ewaybill', read_only=1, allow_on_submit=1, insert_after='ewaybill')
- ]
- }
- create_custom_fields(custom_fields, update=True)
diff --git a/erpnext/patches/v12_0/add_export_type_field_in_party_master.py b/erpnext/patches/v12_0/add_export_type_field_in_party_master.py
deleted file mode 100644
index dc9e884..0000000
--- a/erpnext/patches/v12_0/add_export_type_field_in_party_master.py
+++ /dev/null
@@ -1,41 +0,0 @@
-import frappe
-
-from erpnext.regional.india.setup import make_custom_fields
-
-
-def execute():
-
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- make_custom_fields()
-
- frappe.reload_doctype('Tax Category')
- frappe.reload_doctype('Sales Taxes and Charges Template')
- frappe.reload_doctype('Purchase Taxes and Charges Template')
-
- # Create tax category with inter state field checked
- tax_category = frappe.db.get_value('Tax Category', {'name': 'OUT OF STATE'}, 'name')
-
- if not tax_category:
- inter_state_category = frappe.get_doc({
- 'doctype': 'Tax Category',
- 'title': 'OUT OF STATE',
- 'is_inter_state': 1
- }).insert()
-
- tax_category = inter_state_category.name
-
- for doctype in ('Sales Taxes and Charges Template', 'Purchase Taxes and Charges Template'):
- if not frappe.get_meta(doctype).has_field('is_inter_state'): continue
-
- template = frappe.db.get_value(doctype, {'is_inter_state': 1, 'disabled': 0}, ['name'])
- if template:
- frappe.db.set_value(doctype, template, 'tax_category', tax_category)
-
- frappe.db.sql("""
- DELETE FROM `tabCustom Field`
- WHERE fieldname = 'is_inter_state'
- AND dt IN ('Sales Taxes and Charges Template', 'Purchase Taxes and Charges Template')
- """)
diff --git a/erpnext/patches/v12_0/add_gst_category_in_delivery_note.py b/erpnext/patches/v12_0/add_gst_category_in_delivery_note.py
deleted file mode 100644
index 6316bb3..0000000
--- a/erpnext/patches/v12_0/add_gst_category_in_delivery_note.py
+++ /dev/null
@@ -1,19 +0,0 @@
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- custom_fields = {
- 'Delivery Note': [
- dict(fieldname='gst_category', label='GST Category',
- fieldtype='Select', insert_after='gst_vehicle_type', print_hide=1,
- options='\nRegistered Regular\nRegistered Composition\nUnregistered\nSEZ\nOverseas\nConsumer\nDeemed Export\nUIN Holders',
- fetch_from='customer.gst_category', fetch_if_empty=1),
- ]
- }
-
- create_custom_fields(custom_fields, update=True)
diff --git a/erpnext/patches/v12_0/set_gst_category.py b/erpnext/patches/v12_0/set_gst_category.py
deleted file mode 100644
index 094e2a3..0000000
--- a/erpnext/patches/v12_0/set_gst_category.py
+++ /dev/null
@@ -1,52 +0,0 @@
-import frappe
-
-from erpnext.regional.india.setup import make_custom_fields
-
-
-def execute():
-
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- frappe.reload_doc('accounts', 'doctype', 'Tax Category')
-
- make_custom_fields()
-
- for doctype in ['Sales Invoice', 'Purchase Invoice']:
- has_column = frappe.db.has_column(doctype,'invoice_type')
-
- if has_column:
- update_map = {
- 'Regular': 'Registered Regular',
- 'Export': 'Overseas',
- 'SEZ': 'SEZ',
- 'Deemed Export': 'Deemed Export',
- }
-
- for old, new in update_map.items():
- frappe.db.sql("UPDATE `tab{doctype}` SET gst_category = %s where invoice_type = %s".format(doctype=doctype), (new, old)) #nosec
-
- frappe.delete_doc('Custom Field', 'Sales Invoice-invoice_type')
- frappe.delete_doc('Custom Field', 'Purchase Invoice-invoice_type')
-
- itc_update_map = {
- "ineligible": "Ineligible",
- "input service": "Input Service Distributor",
- "capital goods": "Import Of Capital Goods",
- "input": "All Other ITC"
- }
-
- has_gst_fields = frappe.db.has_column('Purchase Invoice','eligibility_for_itc')
-
- if has_gst_fields:
- for old, new in itc_update_map.items():
- frappe.db.sql("UPDATE `tabPurchase Invoice` SET eligibility_for_itc = %s where eligibility_for_itc = %s ", (new, old))
-
- for doctype in ["Customer", "Supplier"]:
-
- frappe.db.sql(""" UPDATE `tab{doctype}` t1, `tabAddress` t2, `tabDynamic Link` t3 SET t1.gst_category = "Registered Regular"
- where t3.link_name = t1.name and t3.parent = t2.name and t2.gstin IS NOT NULL and t2.gstin != '' """.format(doctype=doctype)) #nosec
-
- frappe.db.sql(""" UPDATE `tab{doctype}` t1, `tabAddress` t2, `tabDynamic Link` t3 SET t1.gst_category = "Overseas"
- where t3.link_name = t1.name and t3.parent = t2.name and t2.country != 'India' """.format(doctype=doctype)) #nosec
diff --git a/erpnext/patches/v12_0/setup_einvoice_fields.py b/erpnext/patches/v12_0/setup_einvoice_fields.py
deleted file mode 100644
index c17666a..0000000
--- a/erpnext/patches/v12_0/setup_einvoice_fields.py
+++ /dev/null
@@ -1,59 +0,0 @@
-from __future__ import unicode_literals
-
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-from erpnext.regional.india.setup import add_permissions, add_print_formats
-
-
-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)
diff --git a/erpnext/patches/v12_0/show_einvoice_irn_cancelled_field.py b/erpnext/patches/v12_0/show_einvoice_irn_cancelled_field.py
deleted file mode 100644
index 3f90a03..0000000
--- a/erpnext/patches/v12_0/show_einvoice_irn_cancelled_field.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from __future__ import unicode_literals
-
-import frappe
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- irn_cancelled_field = frappe.db.exists('Custom Field', {'dt': 'Sales Invoice', 'fieldname': 'irn_cancelled'})
- if irn_cancelled_field:
- frappe.db.set_value('Custom Field', irn_cancelled_field, 'depends_on', 'eval: doc.irn')
- frappe.db.set_value('Custom Field', irn_cancelled_field, 'read_only', 0)
diff --git a/erpnext/patches/v12_0/update_address_template_for_india.py b/erpnext/patches/v12_0/update_address_template_for_india.py
deleted file mode 100644
index 64a2e41..0000000
--- a/erpnext/patches/v12_0/update_address_template_for_india.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (c) 2020, Frappe and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import frappe
-
-from erpnext.regional.address_template.setup import set_up_address_templates
-
-
-def execute():
- if frappe.db.get_value('Company', {'country': 'India'}, 'name'):
- address_template = frappe.db.get_value('Address Template', 'India', 'template')
- if not address_template or "gstin" not in address_template:
- set_up_address_templates(default_country='India')
diff --git a/erpnext/patches/v12_0/update_ewaybill_field_position.py b/erpnext/patches/v12_0/update_ewaybill_field_position.py
deleted file mode 100644
index 132fd90..0000000
--- a/erpnext/patches/v12_0/update_ewaybill_field_position.py
+++ /dev/null
@@ -1,27 +0,0 @@
-import frappe
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
-
- if not company:
- return
-
- field = frappe.db.get_value("Custom Field", {"dt": "Sales Invoice", "fieldname": "ewaybill"})
-
- if field:
- ewaybill_field = frappe.get_doc("Custom Field", field)
-
- ewaybill_field.flags.ignore_validate = True
-
- ewaybill_field.update({
- 'fieldname': 'ewaybill',
- 'label': 'e-Way Bill No.',
- 'fieldtype': 'Data',
- 'depends_on': 'eval:(doc.docstatus === 1)',
- 'allow_on_submit': 1,
- 'insert_after': 'tax_id',
- 'translatable': 0
- })
-
- ewaybill_field.save()
diff --git a/erpnext/patches/v12_0/update_gst_category.py b/erpnext/patches/v12_0/update_gst_category.py
deleted file mode 100644
index 8b15370..0000000
--- a/erpnext/patches/v12_0/update_gst_category.py
+++ /dev/null
@@ -1,19 +0,0 @@
-import frappe
-
-
-def execute():
-
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- frappe.db.sql(""" UPDATE `tabSales Invoice` set gst_category = 'Unregistered'
- where gst_category = 'Registered Regular'
- and ifnull(customer_gstin, '')=''
- and ifnull(billing_address_gstin,'')=''
- """)
-
- frappe.db.sql(""" UPDATE `tabPurchase Invoice` set gst_category = 'Unregistered'
- where gst_category = 'Registered Regular'
- and ifnull(supplier_gstin, '')=''
- """)
diff --git a/erpnext/patches/v13_0/create_gst_payment_entry_fields.py b/erpnext/patches/v13_0/create_gst_payment_entry_fields.py
deleted file mode 100644
index 4166945..0000000
--- a/erpnext/patches/v13_0/create_gst_payment_entry_fields.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2021, Frappe and Contributors
-# License: GNU General Public License v3. See license.txt
-
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-
-def execute():
- frappe.reload_doc('accounts', 'doctype', 'advance_taxes_and_charges')
- frappe.reload_doc('accounts', 'doctype', 'payment_entry')
-
- if frappe.db.exists('Company', {'country': 'India'}):
- custom_fields = {
- 'Payment Entry': [
- dict(fieldname='gst_section', label='GST Details', fieldtype='Section Break', insert_after='deductions',
- print_hide=1, collapsible=1),
- dict(fieldname='company_address', label='Company Address', fieldtype='Link', insert_after='gst_section',
- print_hide=1, options='Address'),
- dict(fieldname='company_gstin', label='Company GSTIN',
- fieldtype='Data', insert_after='company_address',
- fetch_from='company_address.gstin', print_hide=1, read_only=1),
- dict(fieldname='place_of_supply', label='Place of Supply',
- fieldtype='Data', insert_after='company_gstin',
- print_hide=1, read_only=1),
- dict(fieldname='customer_address', label='Customer Address', fieldtype='Link', insert_after='place_of_supply',
- print_hide=1, options='Address', depends_on = 'eval:doc.party_type == "Customer"'),
- dict(fieldname='customer_gstin', label='Customer GSTIN',
- fieldtype='Data', insert_after='customer_address',
- fetch_from='customer_address.gstin', print_hide=1, read_only=1)
- ]
- }
-
- create_custom_fields(custom_fields, update=True)
- else:
- fields = ['gst_section', 'company_address', 'company_gstin', 'place_of_supply', 'customer_address', 'customer_gstin']
- for field in fields:
- frappe.delete_doc_if_exists("Custom Field", f"Payment Entry-{field}")
\ No newline at end of file
diff --git a/erpnext/patches/v13_0/create_pan_field_for_india.py b/erpnext/patches/v13_0/create_pan_field_for_india.py
deleted file mode 100644
index 6df6e1e..0000000
--- a/erpnext/patches/v13_0/create_pan_field_for_india.py
+++ /dev/null
@@ -1,29 +0,0 @@
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-
-def execute():
- frappe.reload_doc('buying', 'doctype', 'supplier', force=True)
- frappe.reload_doc('selling', 'doctype', 'customer', force=True)
- frappe.reload_doc('core', 'doctype', 'doctype', force=True)
-
- custom_fields = {
- 'Supplier': [
- {
- 'fieldname': 'pan',
- 'label': 'PAN',
- 'fieldtype': 'Data',
- 'insert_after': 'supplier_type'
- }
- ],
- 'Customer': [
- {
- 'fieldname': 'pan',
- 'label': 'PAN',
- 'fieldtype': 'Data',
- 'insert_after': 'customer_type'
- }
- ]
- }
-
- create_custom_fields(custom_fields, update=True)
diff --git a/erpnext/patches/v13_0/gst_fields_for_pos_invoice.py b/erpnext/patches/v13_0/gst_fields_for_pos_invoice.py
deleted file mode 100644
index 76f8b27..0000000
--- a/erpnext/patches/v13_0/gst_fields_for_pos_invoice.py
+++ /dev/null
@@ -1,42 +0,0 @@
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'}, fields=['name'])
- if not company:
- return
-
- hsn_sac_field = dict(fieldname='gst_hsn_code', label='HSN/SAC',
- fieldtype='Data', fetch_from='item_code.gst_hsn_code', insert_after='description',
- allow_on_submit=1, print_hide=1, fetch_if_empty=1)
- nil_rated_exempt = dict(fieldname='is_nil_exempt', label='Is Nil Rated or Exempted',
- fieldtype='Check', fetch_from='item_code.is_nil_exempt', insert_after='gst_hsn_code',
- print_hide=1)
- is_non_gst = dict(fieldname='is_non_gst', label='Is Non GST',
- fieldtype='Check', fetch_from='item_code.is_non_gst', insert_after='is_nil_exempt',
- print_hide=1)
- taxable_value = dict(fieldname='taxable_value', label='Taxable Value',
- fieldtype='Currency', insert_after='base_net_amount', hidden=1, options="Company:company:default_currency",
- print_hide=1)
- sales_invoice_gst_fields = [
- dict(fieldname='billing_address_gstin', label='Billing Address GSTIN',
- fieldtype='Data', insert_after='customer_address', read_only=1,
- fetch_from='customer_address.gstin', print_hide=1),
- dict(fieldname='customer_gstin', label='Customer GSTIN',
- fieldtype='Data', insert_after='shipping_address_name',
- fetch_from='shipping_address_name.gstin', print_hide=1),
- dict(fieldname='place_of_supply', label='Place of Supply',
- fieldtype='Data', insert_after='customer_gstin',
- print_hide=1, read_only=1),
- dict(fieldname='company_gstin', label='Company GSTIN',
- fieldtype='Data', insert_after='company_address',
- fetch_from='company_address.gstin', print_hide=1, read_only=1),
- ]
-
- custom_fields = {
- 'POS Invoice': sales_invoice_gst_fields,
- 'POS Invoice Item': [hsn_sac_field, nil_rated_exempt, is_non_gst, taxable_value],
- }
-
- create_custom_fields(custom_fields, update=True)
\ No newline at end of file
diff --git a/erpnext/patches/v13_0/update_export_type_for_gst.py b/erpnext/patches/v13_0/update_export_type_for_gst.py
deleted file mode 100644
index de57861..0000000
--- a/erpnext/patches/v13_0/update_export_type_for_gst.py
+++ /dev/null
@@ -1,33 +0,0 @@
-import frappe
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- # Update custom fields
- fieldname = frappe.db.get_value('Custom Field', {'dt': 'Customer', 'fieldname': 'export_type'})
- if fieldname:
- frappe.db.set_value('Custom Field', fieldname,
- {
- 'default': '',
- 'mandatory_depends_on': 'eval:in_list(["SEZ", "Overseas", "Deemed Export"], doc.gst_category)'
- })
-
- fieldname = frappe.db.get_value('Custom Field', {'dt': 'Supplier', 'fieldname': 'export_type'})
- if fieldname:
- frappe.db.set_value('Custom Field', fieldname,
- {
- 'default': '',
- 'mandatory_depends_on': 'eval:in_list(["SEZ", "Overseas"], doc.gst_category)'
- })
-
- # Update Customer/Supplier Masters
- frappe.db.sql("""
- UPDATE `tabCustomer` set export_type = '' WHERE gst_category NOT IN ('SEZ', 'Overseas', 'Deemed Export')
- """)
-
- frappe.db.sql("""
- UPDATE `tabSupplier` set export_type = '' WHERE gst_category NOT IN ('SEZ', 'Overseas')
- """)
diff --git a/erpnext/patches/v13_0/update_tax_category_for_rcm.py b/erpnext/patches/v13_0/update_tax_category_for_rcm.py
deleted file mode 100644
index 7af2366..0000000
--- a/erpnext/patches/v13_0/update_tax_category_for_rcm.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-from erpnext.regional.india import states
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- create_custom_fields({
- 'Tax Category': [
- dict(fieldname='is_inter_state', label='Is Inter State',
- fieldtype='Check', insert_after='disabled', print_hide=1),
- dict(fieldname='is_reverse_charge', label='Is Reverse Charge', fieldtype='Check',
- insert_after='is_inter_state', print_hide=1),
- dict(fieldname='tax_category_column_break', fieldtype='Column Break',
- insert_after='is_reverse_charge'),
- dict(fieldname='gst_state', label='Source State', fieldtype='Select',
- options='\n'.join(states), insert_after='company')
- ]
- }, update=True)
-
- tax_category = frappe.qb.DocType("Tax Category")
-
- frappe.qb.update(tax_category).set(
- tax_category.is_reverse_charge, 1
- ).where(
- tax_category.name.isin(['Reverse Charge Out-State', 'Reverse Charge In-State'])
- ).run()
\ No newline at end of file
diff --git a/erpnext/patches/v14_0/restore_einvoice_fields.py b/erpnext/patches/v14_0/restore_einvoice_fields.py
deleted file mode 100644
index c4431fb..0000000
--- a/erpnext/patches/v14_0/restore_einvoice_fields.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import frappe
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-
-from erpnext.regional.india.setup import add_permissions, add_print_formats
-
-
-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()
diff --git a/erpnext/patches/v8_1/removed_roles_from_gst_report_non_indian_account.py b/erpnext/patches/v8_1/removed_roles_from_gst_report_non_indian_account.py
deleted file mode 100644
index ed1dffe..0000000
--- a/erpnext/patches/v8_1/removed_roles_from_gst_report_non_indian_account.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (c) 2017, Frappe and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import frappe
-
-
-def execute():
- frappe.reload_doc('core', 'doctype', 'has_role')
- company = frappe.get_all('Company', filters = {'country': 'India'})
-
- if not company:
- frappe.db.sql("""
- delete from
- `tabHas Role`
- where
- parenttype = 'Report' and parent in('GST Sales Register',
- 'GST Purchase Register', 'GST Itemised Sales Register',
- 'GST Itemised Purchase Register', 'Eway Bill')""")
diff --git a/erpnext/patches/v8_1/setup_gst_india.py b/erpnext/patches/v8_1/setup_gst_india.py
deleted file mode 100644
index ff9e6a4..0000000
--- a/erpnext/patches/v8_1/setup_gst_india.py
+++ /dev/null
@@ -1,53 +0,0 @@
-import frappe
-from frappe.email import sendmail_to_system_managers
-
-
-def execute():
- frappe.reload_doc('stock', 'doctype', 'item')
- frappe.reload_doc("stock", "doctype", "customs_tariff_number")
- frappe.reload_doc("accounts", "doctype", "payment_terms_template")
- frappe.reload_doc("accounts", "doctype", "payment_schedule")
-
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- frappe.reload_doc('regional', 'doctype', 'gst_settings')
- frappe.reload_doc('regional', 'doctype', 'gst_hsn_code')
-
- for report_name in ('GST Sales Register', 'GST Purchase Register',
- 'GST Itemised Sales Register', 'GST Itemised Purchase Register'):
-
- frappe.reload_doc('regional', 'report', frappe.scrub(report_name))
-
- from erpnext.regional.india.setup import setup
- delete_custom_field_tax_id_if_exists()
- setup(patch=True)
- send_gst_update_email()
-
-def delete_custom_field_tax_id_if_exists():
- for field in frappe.db.sql_list("""select name from `tabCustom Field` where fieldname='tax_id'
- and dt in ('Sales Order', 'Sales Invoice', 'Delivery Note')"""):
- frappe.delete_doc("Custom Field", field, ignore_permissions=True)
- frappe.db.commit()
-
-def send_gst_update_email():
- message = """Hello,
-
-<p>ERPNext is now GST Ready!</p>
-
-<p>To start making GST Invoices from 1st of July, you just need to create new Tax Accounts,
-Templates and update your Customer's and Supplier's GST Numbers.</p>
-
-<p>Please refer {gst_document_link} to know more about how to setup and implement GST in ERPNext.</p>
-
-<p>Please contact us at support@erpnext.com, if you have any questions.</p>
-
-<p>Thanks,</p>
-ERPNext Team.
- """.format(gst_document_link="<a href='http://frappe.github.io/erpnext/user/manual/en/regional/india/'> ERPNext GST Document </a>")
-
- try:
- sendmail_to_system_managers("[Important] ERPNext GST updates", message)
- except Exception as e:
- pass
diff --git a/erpnext/patches/v8_7/sync_india_custom_fields.py b/erpnext/patches/v8_7/sync_india_custom_fields.py
deleted file mode 100644
index 808c833..0000000
--- a/erpnext/patches/v8_7/sync_india_custom_fields.py
+++ /dev/null
@@ -1,35 +0,0 @@
-import frappe
-
-from erpnext.regional.india.setup import make_custom_fields
-
-
-def execute():
- company = frappe.get_all('Company', filters = {'country': 'India'})
- if not company:
- return
-
- frappe.reload_doc('Payroll', 'doctype', 'payroll_period')
- frappe.reload_doc('Payroll', 'doctype', 'employee_tax_exemption_declaration')
- frappe.reload_doc('Payroll', 'doctype', 'employee_tax_exemption_proof_submission')
- frappe.reload_doc('Payroll', 'doctype', 'employee_tax_exemption_declaration_category')
- frappe.reload_doc('Payroll', 'doctype', 'employee_tax_exemption_proof_submission_detail')
-
- frappe.reload_doc('accounts', 'doctype', 'tax_category')
-
- for doctype in ["Sales Invoice", "Delivery Note", "Purchase Invoice"]:
- frappe.db.sql("""delete from `tabCustom Field` where dt = %s
- and fieldname in ('port_code', 'shipping_bill_number', 'shipping_bill_date')""", doctype)
-
- make_custom_fields()
-
- frappe.db.sql("""
- update `tabCustom Field`
- set reqd = 0, `default` = ''
- where fieldname = 'reason_for_issuing_document'
- """)
-
- frappe.db.sql("""
- update tabAddress
- set gst_state_number=concat("0", gst_state_number)
- where ifnull(gst_state_number, '') != '' and gst_state_number<10
- """)