fix: removed bug of set_advance_payment_status

This commit is contained in:
Abdeali Chharchhoda
2024-07-22 18:52:00 +05:30
parent cbed1d7826
commit b36fb8b218
3 changed files with 31 additions and 11 deletions

View File

@@ -192,6 +192,7 @@ class PaymentEntry(AccountsController):
self.update_payment_schedule()
self.set_payment_req_outstanding_amount()
self.set_payment_req_status()
self.set_reference_advance_payment_status()
self.set_status()
def set_liability_account(self):
@@ -268,6 +269,7 @@ class PaymentEntry(AccountsController):
self.update_payment_schedule(cancel=1)
self.set_payment_req_outstanding_amount(cancel=True)
self.set_payment_req_status()
self.set_reference_advance_payment_status()
self.set_status()
def set_payment_req_outstanding_amount(self, cancel=False):
@@ -282,6 +284,18 @@ class PaymentEntry(AccountsController):
update_payment_req_status(self, None)
# todo: need to optimize
def set_reference_advance_payment_status(self):
advance_payment_doctypes = frappe.get_hooks("advance_payment_receivable_doctypes") + frappe.get_hooks(
"advance_payment_payable_doctypes"
)
for ref in self.get("references"):
ref_doc = frappe.get_doc(ref.reference_doctype, ref.reference_name)
if ref.reference_doctype in advance_payment_doctypes:
# set advance payment status
ref_doc.set_advance_payment_status()
def update_outstanding_amounts(self):
self.set_missing_ref_details(force=True)
@@ -1744,7 +1758,7 @@ class PaymentEntry(AccountsController):
frappe.msgprint(msg=msg, alert=True, indicator="orange")
# todo: can be optimized
# todo: can be optimize
@frappe.whitelist()
def set_matched_payment_requests(self):
if not self.references:
@@ -1799,7 +1813,7 @@ class PaymentEntry(AccountsController):
)
# todo: can be optimized
# todo: can be optimize
def get_matched_payment_request(reference_doctype, reference_name, outstanding_amount):
payment_requests = frappe.get_all(
doctype="Payment Request",

View File

@@ -154,15 +154,6 @@ class PaymentRequest(Document):
).format(self.grand_total, amount)
)
def on_change(self):
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
advance_payment_doctypes = frappe.get_hooks("advance_payment_receivable_doctypes") + frappe.get_hooks(
"advance_payment_payable_doctypes"
)
if self.reference_doctype in advance_payment_doctypes:
# set advance payment status
ref_doc.set_advance_payment_status()
def before_submit(self):
self.outstanding_amount = self.grand_total
@@ -180,6 +171,9 @@ class PaymentRequest(Document):
self.send_email()
self.make_communication_entry()
def on_submit(self):
self.update_reference_advance_payment_status()
def request_phone_payment(self):
controller = _get_payment_gateway_controller(self.payment_gateway)
request_amount = self.get_request_amount()
@@ -217,6 +211,7 @@ class PaymentRequest(Document):
def on_cancel(self):
self.check_if_payment_entry_exists()
self.set_as_cancelled()
self.update_reference_advance_payment_status()
def make_invoice(self):
from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
@@ -424,6 +419,15 @@ class PaymentRequest(Document):
return create_stripe_subscription(gateway_controller, data)
def update_reference_advance_payment_status(self):
ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
advance_payment_doctypes = frappe.get_hooks("advance_payment_receivable_doctypes") + frappe.get_hooks(
"advance_payment_payable_doctypes"
)
if self.reference_doctype in advance_payment_doctypes:
# set advance payment status
ref_doc.set_advance_payment_status()
@frappe.whitelist(allow_guest=True)
def make_payment_request(**args):

View File

@@ -1943,6 +1943,8 @@ class AccountsController(TransactionBase):
self.set_advance_payment_status()
# todo: need to optimize
# todo: modularize
def set_advance_payment_status(self):
from erpnext.accounts.doctype.payment_request.payment_request import (
get_existing_payment_request_amount as get_paid_amount,