fix: remove validation for negative outstanding invoices
This commit is contained in:
parent
47f913abcb
commit
3d9938221a
@ -83,7 +83,6 @@ class PaymentEntry(AccountsController):
|
|||||||
self.apply_taxes()
|
self.apply_taxes()
|
||||||
self.set_amounts_after_tax()
|
self.set_amounts_after_tax()
|
||||||
self.clear_unallocated_reference_document_rows()
|
self.clear_unallocated_reference_document_rows()
|
||||||
self.validate_payment_against_negative_invoice()
|
|
||||||
self.validate_transaction_reference()
|
self.validate_transaction_reference()
|
||||||
self.set_title()
|
self.set_title()
|
||||||
self.set_remarks()
|
self.set_remarks()
|
||||||
@ -952,35 +951,6 @@ class PaymentEntry(AccountsController):
|
|||||||
self.name,
|
self.name,
|
||||||
)
|
)
|
||||||
|
|
||||||
def validate_payment_against_negative_invoice(self):
|
|
||||||
if (self.payment_type != "Pay" or self.party_type != "Customer") and (
|
|
||||||
self.payment_type != "Receive" or self.party_type != "Supplier"
|
|
||||||
):
|
|
||||||
return
|
|
||||||
|
|
||||||
total_negative_outstanding = sum(
|
|
||||||
abs(flt(d.outstanding_amount)) for d in self.get("references") if flt(d.outstanding_amount) < 0
|
|
||||||
)
|
|
||||||
|
|
||||||
paid_amount = self.paid_amount if self.payment_type == "Receive" else self.received_amount
|
|
||||||
additional_charges = sum(flt(d.amount) for d in self.deductions)
|
|
||||||
|
|
||||||
if not total_negative_outstanding:
|
|
||||||
if self.party_type == "Customer":
|
|
||||||
msg = _("Cannot pay to Customer without any negative outstanding invoice")
|
|
||||||
else:
|
|
||||||
msg = _("Cannot receive from Supplier without any negative outstanding invoice")
|
|
||||||
|
|
||||||
frappe.throw(msg, InvalidPaymentEntry)
|
|
||||||
|
|
||||||
elif paid_amount - additional_charges > total_negative_outstanding:
|
|
||||||
frappe.throw(
|
|
||||||
_("Paid Amount cannot be greater than total negative outstanding amount {0}").format(
|
|
||||||
fmt_money(total_negative_outstanding)
|
|
||||||
),
|
|
||||||
InvalidPaymentEntry,
|
|
||||||
)
|
|
||||||
|
|
||||||
def set_title(self):
|
def set_title(self):
|
||||||
if frappe.flags.in_import and self.title:
|
if frappe.flags.in_import and self.title:
|
||||||
# do not set title dynamically if title exists during data import.
|
# do not set title dynamically if title exists during data import.
|
||||||
@ -1083,9 +1053,7 @@ class PaymentEntry(AccountsController):
|
|||||||
item=self,
|
item=self,
|
||||||
)
|
)
|
||||||
|
|
||||||
dr_or_cr = (
|
dr_or_cr = "credit" if self.payment_type == "Receive" else "debit"
|
||||||
"credit" if erpnext.get_party_account_type(self.party_type) == "Receivable" else "debit"
|
|
||||||
)
|
|
||||||
|
|
||||||
for d in self.get("references"):
|
for d in self.get("references"):
|
||||||
cost_center = self.cost_center
|
cost_center = self.cost_center
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user