Merge pull request #32522 from deepeshgarg007/tax_withholding_related_fixes

fix: Tax withholding related fixes
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
index 3020e6d..1e47777 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
@@ -1430,6 +1430,7 @@
    "fieldname": "tax_withheld_vouchers",
    "fieldtype": "Table",
    "label": "Tax Withheld Vouchers",
+   "no_copy": 1,
    "options": "Tax Withheld Vouchers",
    "read_only": 1
   }
@@ -1438,7 +1439,7 @@
  "idx": 204,
  "is_submittable": 1,
  "links": [],
- "modified": "2022-09-27 11:07:55.766844",
+ "modified": "2022-10-07 14:19:14.214157",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Purchase Invoice",
diff --git a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
index 84c2c9a..7eddd81 100644
--- a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
+++ b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
@@ -249,6 +249,9 @@
 				)
 			else:
 				tax_amount = net_total * tax_details.rate / 100 if net_total > 0 else 0
+
+			# once tds is deducted, not need to add vouchers in the invoice
+			voucher_wise_amount = {}
 		else:
 			tax_amount = get_tds_amount(ldc, parties, inv, tax_details, tax_deducted, vouchers)
 
@@ -425,7 +428,10 @@
 		):
 			# Get net total again as TDS is calculated on net total
 			# Grand is used to just check for threshold breach
-			net_total = frappe.db.get_value("Purchase Invoice", invoice_filters, "sum(net_total)") or 0.0
+			net_total = 0
+			if vouchers:
+				net_total = frappe.db.get_value("Purchase Invoice", invoice_filters, "sum(net_total)")
+
 			net_total += inv.net_total
 			supp_credit_amt = net_total - cumulative_threshold