Browse Source

fix: Replace section code with tax withholding category in LDC

develop
Deepesh Garg 3 years ago
parent
commit
bf13d183d8
  1. 1
      erpnext/patches.txt
  2. 10
      erpnext/patches/v13_0/update_category_in_ltds_certificate.py
  3. 20
      erpnext/regional/doctype/lower_deduction_certificate/lower_deduction_certificate.json
  4. 12
      erpnext/regional/doctype/lower_deduction_certificate/lower_deduction_certificate.py

1
erpnext/patches.txt

@ -310,3 +310,4 @@ erpnext.patches.v13_0.enable_scheduler_job_for_item_reposting
erpnext.patches.v13_0.requeue_failed_reposts
erpnext.patches.v13_0.healthcare_deprecation_warning
erpnext.patches.v14_0.delete_healthcare_doctypes
erpnext.patches.v13_0.update_category_in_ltds_certificate

10
erpnext/patches/v13_0/update_category_in_ltds_certificate.py

@ -0,0 +1,10 @@
import frappe
def execute():
frappe.db.sql("""
UPDATE `tabLower Deduction Certificate` l, `tabSupplier` s
SET l.tax_withholding_category = s.tax_withholding_category
WHERE l.supplier = s.name
""")

20
erpnext/regional/doctype/lower_deduction_certificate/lower_deduction_certificate.json

@ -7,7 +7,7 @@
"engine": "InnoDB",
"field_order": [
"certificate_details_section",
"section_code",
"tax_withholding_category",
"fiscal_year",
"column_break_3",
"certificate_no",
@ -33,13 +33,6 @@
"reqd": 1,
"unique": 1
},
{
"fieldname": "section_code",
"fieldtype": "Select",
"label": "Section Code",
"options": "192\n193\n194\n194A\n194C\n194D\n194H\n194I\n194J\n194LA\n194LBB\n194LBC\n195",
"reqd": 1
},
{
"fieldname": "section_break_3",
"fieldtype": "Section Break",
@ -123,13 +116,22 @@
"label": "Fiscal Year",
"options": "Fiscal Year",
"reqd": 1
},
{
"fieldname": "tax_withholding_category",
"fieldtype": "Link",
"label": "Tax Withholding Category",
"options": "Tax Withholding Category",
"reqd": 1
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2020-04-23 23:04:41.203721",
"modified": "2021-10-23 18:33:38.962622",
"modified_by": "Administrator",
"module": "Regional",
"name": "Lower Deduction Certificate",
"naming_rule": "By fieldname",
"owner": "Administrator",
"permissions": [],
"sort_field": "modified",

12
erpnext/regional/doctype/lower_deduction_certificate/lower_deduction_certificate.py

@ -15,7 +15,7 @@ from erpnext.accounts.utils import get_fiscal_year
class LowerDeductionCertificate(Document):
def validate(self):
self.validate_dates()
self.validate_supplier_against_section_code()
self.validate_supplier_against_tax_category()
def validate_dates(self):
if getdate(self.valid_upto) < getdate(self.valid_from):
@ -31,12 +31,14 @@ class LowerDeductionCertificate(Document):
<= fiscal_year.year_end_date):
frappe.throw(_("Valid Upto date not in Fiscal Year {0}").format(frappe.bold(self.fiscal_year)))
def validate_supplier_against_section_code(self):
duplicate_certificate = frappe.db.get_value('Lower Deduction Certificate', {'supplier': self.supplier, 'section_code': self.section_code}, ['name', 'valid_from', 'valid_upto'], as_dict=True)
def tax_withholding_category(self):
duplicate_certificate = frappe.db.get_value('Lower Deduction Certificate',
{'supplier': self.supplier, 'tax_withholding_category': self.tax_withholding_category, 'name': ("!=", self.name)},
['name', 'valid_from', 'valid_upto'], as_dict=True)
if duplicate_certificate and self.are_dates_overlapping(duplicate_certificate):
certificate_link = get_link_to_form('Lower Deduction Certificate', duplicate_certificate.name)
frappe.throw(_("There is already a valid Lower Deduction Certificate {0} for Supplier {1} against Section Code {2} for this time period.")
.format(certificate_link, frappe.bold(self.supplier), frappe.bold(self.section_code)))
frappe.throw(_("There is already a valid Lower Deduction Certificate {0} for Supplier {1} against category {2} for this time period.")
.format(certificate_link, frappe.bold(self.supplier), frappe.bold(self.tax_withholding_category)))
def are_dates_overlapping(self,duplicate_certificate):
valid_from = duplicate_certificate.valid_from

Loading…
Cancel
Save