fix: Disable tax included prices for internal transfers (#32794)
* fix: Disable tax-included prices for internal transfers
This commit is contained in:
parent
75983ce809
commit
8d30ebb12b
@ -151,6 +151,7 @@ class AccountsController(TransactionBase):
|
|||||||
self.validate_inter_company_reference()
|
self.validate_inter_company_reference()
|
||||||
|
|
||||||
self.disable_pricing_rule_on_internal_transfer()
|
self.disable_pricing_rule_on_internal_transfer()
|
||||||
|
self.disable_tax_included_prices_for_internal_transfer()
|
||||||
self.set_incoming_rate()
|
self.set_incoming_rate()
|
||||||
|
|
||||||
if self.meta.get_field("currency"):
|
if self.meta.get_field("currency"):
|
||||||
@ -398,6 +399,20 @@ class AccountsController(TransactionBase):
|
|||||||
alert=1,
|
alert=1,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def disable_tax_included_prices_for_internal_transfer(self):
|
||||||
|
if self.is_internal_transfer():
|
||||||
|
tax_updated = False
|
||||||
|
for tax in self.get("taxes"):
|
||||||
|
if tax.get("included_in_print_rate"):
|
||||||
|
tax.included_in_print_rate = 0
|
||||||
|
tax_updated = True
|
||||||
|
|
||||||
|
if tax_updated:
|
||||||
|
frappe.msgprint(
|
||||||
|
_("Disabled tax included prices since this {} is an internal transfer").format(self.doctype),
|
||||||
|
alert=1,
|
||||||
|
)
|
||||||
|
|
||||||
def validate_due_date(self):
|
def validate_due_date(self):
|
||||||
if self.get("is_pos"):
|
if self.get("is_pos"):
|
||||||
return
|
return
|
||||||
|
|||||||
@ -1050,9 +1050,22 @@ class TestDeliveryNote(FrappeTestCase):
|
|||||||
do_not_submit=True,
|
do_not_submit=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
dn.append(
|
||||||
|
"taxes",
|
||||||
|
{
|
||||||
|
"charge_type": "On Net Total",
|
||||||
|
"account_head": "_Test Account Service Tax - _TC",
|
||||||
|
"description": "Tax 1",
|
||||||
|
"rate": 14,
|
||||||
|
"cost_center": "_Test Cost Center - _TC",
|
||||||
|
"included_in_print_rate": 1,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
self.assertEqual(dn.items[0].rate, 500) # haven't saved yet
|
self.assertEqual(dn.items[0].rate, 500) # haven't saved yet
|
||||||
dn.save()
|
dn.save()
|
||||||
self.assertEqual(dn.ignore_pricing_rule, 1)
|
self.assertEqual(dn.ignore_pricing_rule, 1)
|
||||||
|
self.assertEqual(dn.taxes[0].included_in_print_rate, 0)
|
||||||
|
|
||||||
# rate should reset to incoming rate
|
# rate should reset to incoming rate
|
||||||
self.assertEqual(dn.items[0].rate, rate)
|
self.assertEqual(dn.items[0].rate, rate)
|
||||||
@ -1063,6 +1076,7 @@ class TestDeliveryNote(FrappeTestCase):
|
|||||||
dn.save()
|
dn.save()
|
||||||
|
|
||||||
self.assertEqual(dn.items[0].rate, rate)
|
self.assertEqual(dn.items[0].rate, rate)
|
||||||
|
self.assertEqual(dn.items[0].net_rate, rate)
|
||||||
|
|
||||||
def test_internal_transfer_precision_gle(self):
|
def test_internal_transfer_precision_gle(self):
|
||||||
from erpnext.selling.doctype.customer.test_customer import create_internal_customer
|
from erpnext.selling.doctype.customer.test_customer import create_internal_customer
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user