From b90a134d91109befa36031bd47617e1679ca06c9 Mon Sep 17 00:00:00 2001 From: Sagar Vora Date: Fri, 25 Feb 2022 11:29:21 +0530 Subject: [PATCH] fix: remove patches --- erpnext/patches.txt | 26 ------- .../v11_0/add_permissions_in_gst_settings.py | 13 ---- .../v11_0/ewaybill_fields_gst_india.py | 11 --- .../v11_0/inter_state_field_for_gst.py | 72 ------------------- .../patches/v11_0/set_missing_gst_hsn_code.py | 45 ------------ .../add_company_link_to_einvoice_settings.py | 18 ----- .../v12_0/add_einvoice_status_field.py | 72 ------------------- ...add_einvoice_summary_report_permissions.py | 20 ------ .../v12_0/add_eway_bill_in_delivery_note.py | 20 ------ .../v12_0/add_ewaybill_validity_field.py | 18 ----- .../add_export_type_field_in_party_master.py | 41 ----------- .../add_gst_category_in_delivery_note.py | 19 ----- erpnext/patches/v12_0/set_gst_category.py | 52 -------------- .../patches/v12_0/setup_einvoice_fields.py | 59 --------------- .../show_einvoice_irn_cancelled_field.py | 14 ---- .../update_address_template_for_india.py | 14 ---- .../v12_0/update_ewaybill_field_position.py | 27 ------- erpnext/patches/v12_0/update_gst_category.py | 19 ----- .../v13_0/create_gst_payment_entry_fields.py | 37 ---------- .../v13_0/create_pan_field_for_india.py | 29 -------- .../v13_0/gst_fields_for_pos_invoice.py | 42 ----------- .../v13_0/update_export_type_for_gst.py | 33 --------- .../v13_0/update_tax_category_for_rcm.py | 31 -------- .../patches/v14_0/restore_einvoice_fields.py | 24 ------- ...oles_from_gst_report_non_indian_account.py | 19 ----- erpnext/patches/v8_1/setup_gst_india.py | 53 -------------- .../patches/v8_7/sync_india_custom_fields.py | 35 --------- 27 files changed, 863 deletions(-) delete mode 100644 erpnext/patches/v11_0/add_permissions_in_gst_settings.py delete mode 100644 erpnext/patches/v11_0/ewaybill_fields_gst_india.py delete mode 100644 erpnext/patches/v11_0/inter_state_field_for_gst.py delete mode 100644 erpnext/patches/v11_0/set_missing_gst_hsn_code.py delete mode 100644 erpnext/patches/v12_0/add_company_link_to_einvoice_settings.py delete mode 100644 erpnext/patches/v12_0/add_einvoice_status_field.py delete mode 100644 erpnext/patches/v12_0/add_einvoice_summary_report_permissions.py delete mode 100644 erpnext/patches/v12_0/add_eway_bill_in_delivery_note.py delete mode 100644 erpnext/patches/v12_0/add_ewaybill_validity_field.py delete mode 100644 erpnext/patches/v12_0/add_export_type_field_in_party_master.py delete mode 100644 erpnext/patches/v12_0/add_gst_category_in_delivery_note.py delete mode 100644 erpnext/patches/v12_0/set_gst_category.py delete mode 100644 erpnext/patches/v12_0/setup_einvoice_fields.py delete mode 100644 erpnext/patches/v12_0/show_einvoice_irn_cancelled_field.py delete mode 100644 erpnext/patches/v12_0/update_address_template_for_india.py delete mode 100644 erpnext/patches/v12_0/update_ewaybill_field_position.py delete mode 100644 erpnext/patches/v12_0/update_gst_category.py delete mode 100644 erpnext/patches/v13_0/create_gst_payment_entry_fields.py delete mode 100644 erpnext/patches/v13_0/create_pan_field_for_india.py delete mode 100644 erpnext/patches/v13_0/gst_fields_for_pos_invoice.py delete mode 100644 erpnext/patches/v13_0/update_export_type_for_gst.py delete mode 100644 erpnext/patches/v13_0/update_tax_category_for_rcm.py delete mode 100644 erpnext/patches/v14_0/restore_einvoice_fields.py delete mode 100644 erpnext/patches/v8_1/removed_roles_from_gst_report_non_indian_account.py delete mode 100644 erpnext/patches/v8_1/setup_gst_india.py delete mode 100644 erpnext/patches/v8_7/sync_india_custom_fields.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 7560f2f599ee..1908faa4a764 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -10,9 +10,6 @@ erpnext.patches.v4_2.update_requested_and_ordered_qty #2021-03-31 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.check_buying_selling_in_currency_exchange 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", "sales-analytics") 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 @@ execute:frappe.delete_doc("DocType", "Project Task") 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.replace_accounting_with_accounts_in_home_settings 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.v12_0.set_italian_import_supplier_invoice_permissions 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_youtube_video_id 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.v12_0.add_state_code_for_ladakh 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.update_job_card_details 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", "TaxJar Settings") 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.make_homepage_products_website_items 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.healthcare_deprecation_warning 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.v14_0.migrate_crm_settings 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_hospitality_doctypes # 20-01-2022 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 9df1b586e305..000000000000 --- 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 5974e27059ee..000000000000 --- 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 a1f159483bdf..000000000000 --- 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 ec75d454aa87..000000000000 --- 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 e498b673fbfa..000000000000 --- 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 aeff9ca8413b..000000000000 --- 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 e837786138ff..000000000000 --- 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 973da895623d..000000000000 --- 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 247140d21d07..000000000000 --- 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 dc9e88491894..000000000000 --- 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 6316bb3da94c..000000000000 --- 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 094e2a3134b5..000000000000 --- 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 c17666add188..000000000000 --- 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 3f90a03020f6..000000000000 --- 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 64a2e41587f1..000000000000 --- 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 132fd900bd18..000000000000 --- 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 8b15370b09d4..000000000000 --- 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 416694559cb5..000000000000 --- 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 6df6e1eb329b..000000000000 --- 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 76f8b274999e..000000000000 --- 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 de578612f7dd..000000000000 --- 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 7af2366bf0a4..000000000000 --- 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 c4431fb9dbe0..000000000000 --- 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 ed1dffe75c82..000000000000 --- 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 ff9e6a48e834..000000000000 --- 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, - -

ERPNext is now GST Ready!

- -

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.

- -

Please refer {gst_document_link} to know more about how to setup and implement GST in ERPNext.

- -

Please contact us at support@erpnext.com, if you have any questions.

- -

Thanks,

-ERPNext Team. - """.format(gst_document_link=" ERPNext GST Document ") - - 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 808c833f6fcf..000000000000 --- 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 - """)