mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-14 18:51:21 +00:00
Merge pull request #54451 from vorasmit/tds-reports-refactor-backport
This commit is contained in:
@@ -119,8 +119,8 @@ def get_result(filters, tds_accounts, tax_category_map, net_total_map):
|
|||||||
|
|
||||||
row.update(
|
row.update(
|
||||||
{
|
{
|
||||||
"section_code": tax_withholding_category or "",
|
"tax_withholding_category": tax_withholding_category or "",
|
||||||
"entity_type": party_map.get(party, {}).get(party_type),
|
"party_entity_type": party_map.get(party, {}).get(party_type),
|
||||||
"rate": rate,
|
"rate": rate,
|
||||||
"total_amount": total_amount,
|
"total_amount": total_amount,
|
||||||
"grand_total": grand_total,
|
"grand_total": grand_total,
|
||||||
@@ -141,7 +141,7 @@ def get_result(filters, tds_accounts, tax_category_map, net_total_map):
|
|||||||
else:
|
else:
|
||||||
entries[key] = row
|
entries[key] = row
|
||||||
out = list(entries.values())
|
out = list(entries.values())
|
||||||
out.sort(key=lambda x: (x["section_code"], x["transaction_date"], x["ref_no"]))
|
out.sort(key=lambda x: (x["tax_withholding_category"], x["transaction_date"], x["ref_no"]))
|
||||||
|
|
||||||
return out
|
return out
|
||||||
|
|
||||||
@@ -205,9 +205,9 @@ def get_columns(filters):
|
|||||||
pan = "pan" if frappe.db.has_column(filters.party_type, "pan") else "tax_id"
|
pan = "pan" if frappe.db.has_column(filters.party_type, "pan") else "tax_id"
|
||||||
columns = [
|
columns = [
|
||||||
{
|
{
|
||||||
"label": _("Section Code"),
|
"label": _("Tax Withholding Category"),
|
||||||
"options": "Tax Withholding Category",
|
"options": "Tax Withholding Category",
|
||||||
"fieldname": "section_code",
|
"fieldname": "tax_withholding_category",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"width": 90,
|
"width": 90,
|
||||||
},
|
},
|
||||||
@@ -236,7 +236,12 @@ def get_columns(filters):
|
|||||||
|
|
||||||
columns.extend(
|
columns.extend(
|
||||||
[
|
[
|
||||||
{"label": _("Entity Type"), "fieldname": "entity_type", "fieldtype": "Data", "width": 100},
|
{
|
||||||
|
"label": _(f"{filters.get('party_type', 'Party')} Type"),
|
||||||
|
"fieldname": "party_entity_type",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"width": 100,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
if filters.party_type == "Supplier":
|
if filters.party_type == "Supplier":
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ class TestTaxWithholdingDetails(AccountsTestMixin, FrappeTestCase):
|
|||||||
voucher_expected_values = expected_values[i]
|
voucher_expected_values = expected_values[i]
|
||||||
voucher_actual_values = (
|
voucher_actual_values = (
|
||||||
voucher.ref_no,
|
voucher.ref_no,
|
||||||
voucher.section_code,
|
voucher.tax_withholding_category,
|
||||||
voucher.rate,
|
voucher.rate,
|
||||||
voucher.base_tax_withholding_net_total,
|
voucher.base_tax_withholding_net_total,
|
||||||
voucher.base_total,
|
voucher.base_total,
|
||||||
|
|||||||
@@ -48,28 +48,25 @@ def group_by_party_and_category(data, filters):
|
|||||||
party_category_wise_map = {}
|
party_category_wise_map = {}
|
||||||
|
|
||||||
for row in data:
|
for row in data:
|
||||||
|
key = (row.get("party_type"), row.get("party"), row.get("tax_withholding_category"))
|
||||||
party_category_wise_map.setdefault(
|
party_category_wise_map.setdefault(
|
||||||
(row.get("party"), row.get("section_code")),
|
key,
|
||||||
{
|
{
|
||||||
"pan": row.get("pan"),
|
"pan": row.get("pan"),
|
||||||
"tax_id": row.get("tax_id"),
|
"tax_id": row.get("tax_id"),
|
||||||
"party": row.get("party"),
|
"party": row.get("party"),
|
||||||
|
"party_type": row.get("party_type"),
|
||||||
"party_name": row.get("party_name"),
|
"party_name": row.get("party_name"),
|
||||||
"section_code": row.get("section_code"),
|
"tax_withholding_category": row.get("tax_withholding_category"),
|
||||||
"entity_type": row.get("entity_type"),
|
"party_entity_type": row.get("party_entity_type"),
|
||||||
"rate": row.get("rate"),
|
"rate": row.get("rate"),
|
||||||
"total_amount": 0.0,
|
"total_amount": 0.0,
|
||||||
"tax_amount": 0.0,
|
"tax_amount": 0.0,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
party_category_wise_map.get((row.get("party"), row.get("section_code")))["total_amount"] += row.get(
|
party_category_wise_map.get(key)["total_amount"] += row.get("total_amount", 0.0)
|
||||||
"total_amount", 0.0
|
party_category_wise_map.get(key)["tax_amount"] += row.get("tax_amount", 0.0)
|
||||||
)
|
|
||||||
|
|
||||||
party_category_wise_map.get((row.get("party"), row.get("section_code")))["tax_amount"] += row.get(
|
|
||||||
"tax_amount", 0.0
|
|
||||||
)
|
|
||||||
|
|
||||||
final_result = get_final_result(party_category_wise_map)
|
final_result = get_final_result(party_category_wise_map)
|
||||||
|
|
||||||
@@ -110,13 +107,18 @@ def get_columns(filters):
|
|||||||
columns.extend(
|
columns.extend(
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"label": _("Section Code"),
|
"label": _("Tax Withholding Category"),
|
||||||
"options": "Tax Withholding Category",
|
"options": "Tax Withholding Category",
|
||||||
"fieldname": "section_code",
|
"fieldname": "tax_withholding_category",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"width": 180,
|
"width": 180,
|
||||||
},
|
},
|
||||||
{"label": _("Entity Type"), "fieldname": "entity_type", "fieldtype": "Data", "width": 180},
|
{
|
||||||
|
"label": _(f"{filters.get('party_type', 'Party')} Type"),
|
||||||
|
"fieldname": "party_entity_type",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"width": 180,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"label": _("TDS Rate %") if filters.get("party_type") == "Supplier" else _("TCS Rate %"),
|
"label": _("TDS Rate %") if filters.get("party_type") == "Supplier" else _("TCS Rate %"),
|
||||||
"fieldname": "rate",
|
"fieldname": "rate",
|
||||||
|
|||||||
Reference in New Issue
Block a user