brotherton-erpnext/erpnext/patches/v13_0/check_is_income_tax_component.py
2022-03-28 18:52:46 +05:30

63 lines
2.0 KiB
Python

# Copyright (c) 2019, 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_field
import erpnext
def execute():
doctypes = [
"salary_component",
"Employee Tax Exemption Declaration",
"Employee Tax Exemption Proof Submission",
"Employee Tax Exemption Declaration Category",
"Employee Tax Exemption Proof Submission Detail",
"gratuity_rule",
"gratuity_rule_slab",
"gratuity_applicable_component",
]
for doctype in doctypes:
frappe.reload_doc("Payroll", "doctype", doctype, force=True)
reports = ["Professional Tax Deductions", "Provident Fund Deductions", "E-Invoice Summary"]
for report in reports:
frappe.reload_doc("Regional", "Report", report)
frappe.reload_doc("Regional", "Report", report)
if erpnext.get_region() == "India":
create_custom_field(
"Salary Component",
dict(
fieldname="component_type",
label="Component Type",
fieldtype="Select",
insert_after="description",
options="\nProvident Fund\nAdditional Provident Fund\nProvident Fund Loan\nProfessional Tax",
depends_on='eval:doc.type == "Deduction"',
),
)
if frappe.db.exists("Salary Component", "Income Tax"):
frappe.db.set_value("Salary Component", "Income Tax", "is_income_tax_component", 1)
if frappe.db.exists("Salary Component", "TDS"):
frappe.db.set_value("Salary Component", "TDS", "is_income_tax_component", 1)
components = frappe.db.sql(
"select name from `tabSalary Component` where variable_based_on_taxable_salary = 1", as_dict=1
)
for component in components:
frappe.db.set_value("Salary Component", component.name, "is_income_tax_component", 1)
if erpnext.get_region() == "India":
if frappe.db.exists("Salary Component", "Provident Fund"):
frappe.db.set_value("Salary Component", "Provident Fund", "component_type", "Provident Fund")
if frappe.db.exists("Salary Component", "Professional Tax"):
frappe.db.set_value(
"Salary Component", "Professional Tax", "component_type", "Professional Tax"
)