mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-25 16:04:46 +00:00
refactor: enabling partial TDS application on partial invoice
(cherry picked from commit 091c5496b2)
This commit is contained in:
@@ -677,7 +677,7 @@ frappe.ui.form.on("Purchase Invoice", {
|
|||||||
if (frm.doc.supplier) {
|
if (frm.doc.supplier) {
|
||||||
frm.doc.apply_tds = frm.doc.__onload.supplier_tds ? 1 : 0;
|
frm.doc.apply_tds = frm.doc.__onload.supplier_tds ? 1 : 0;
|
||||||
}
|
}
|
||||||
if (!frm.doc.__onload.supplier_tds) {
|
if (!frm.doc.__onload.enable_apply_tds) {
|
||||||
frm.set_df_property("apply_tds", "read_only", 1);
|
frm.set_df_property("apply_tds", "read_only", 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _, throw
|
from frappe import _, qb, throw
|
||||||
from frappe.model.mapper import get_mapped_doc
|
from frappe.model.mapper import get_mapped_doc
|
||||||
from frappe.query_builder.functions import Sum
|
from frappe.query_builder.functions import Sum
|
||||||
from frappe.utils import cint, cstr, flt, formatdate, get_link_to_form, getdate, nowdate
|
from frappe.utils import cint, cstr, flt, formatdate, get_link_to_form, getdate, nowdate
|
||||||
@@ -347,6 +347,22 @@ class PurchaseInvoice(BuyingController):
|
|||||||
self.tax_withholding_category = tds_category
|
self.tax_withholding_category = tds_category
|
||||||
self.set_onload("supplier_tds", tds_category)
|
self.set_onload("supplier_tds", tds_category)
|
||||||
|
|
||||||
|
# If Linked Purchase Order has TDS applied, enable 'apply_tds' checkbox
|
||||||
|
if purchase_orders := [x.purchase_order for x in self.items if x.purchase_order]:
|
||||||
|
po = qb.DocType("Purchase Order")
|
||||||
|
po_with_tds = (
|
||||||
|
qb.from_(po)
|
||||||
|
.select(po.name)
|
||||||
|
.where(
|
||||||
|
po.docstatus.eq(1)
|
||||||
|
& (po.name.isin(purchase_orders))
|
||||||
|
& (po.apply_tds.eq(1))
|
||||||
|
& (po.tax_withholding_category.notnull())
|
||||||
|
)
|
||||||
|
.run()
|
||||||
|
)
|
||||||
|
self.set_onload("enable_apply_tds", True if po_with_tds else False)
|
||||||
|
|
||||||
super().set_missing_values(for_validate)
|
super().set_missing_values(for_validate)
|
||||||
|
|
||||||
def validate_credit_to_acc(self):
|
def validate_credit_to_acc(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user