fix: bank transction status upon reconciliation
This commit is contained in:
parent
7fa3e82ac7
commit
6de8c18f98
@ -444,6 +444,10 @@ def reconcile_vouchers(bank_transaction_name, vouchers):
|
|||||||
vouchers = json.loads(vouchers)
|
vouchers = json.loads(vouchers)
|
||||||
transaction = frappe.get_doc("Bank Transaction", bank_transaction_name)
|
transaction = frappe.get_doc("Bank Transaction", bank_transaction_name)
|
||||||
transaction.add_payment_entries(vouchers)
|
transaction.add_payment_entries(vouchers)
|
||||||
|
transaction.validate_duplicate_references()
|
||||||
|
transaction.allocate_payment_entries()
|
||||||
|
transaction.update_allocated_amount()
|
||||||
|
transaction.set_status()
|
||||||
transaction.save()
|
transaction.save()
|
||||||
|
|
||||||
return transaction
|
return transaction
|
||||||
|
@ -3,12 +3,11 @@
|
|||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
from frappe.model.document import Document
|
||||||
from frappe.utils import flt
|
from frappe.utils import flt
|
||||||
|
|
||||||
from erpnext.controllers.status_updater import StatusUpdater
|
|
||||||
|
|
||||||
|
class BankTransaction(Document):
|
||||||
class BankTransaction(StatusUpdater):
|
|
||||||
# begin: auto-generated types
|
# begin: auto-generated types
|
||||||
# This code is auto-generated. Do not modify anything in this block.
|
# This code is auto-generated. Do not modify anything in this block.
|
||||||
|
|
||||||
@ -50,6 +49,15 @@ class BankTransaction(StatusUpdater):
|
|||||||
def validate(self):
|
def validate(self):
|
||||||
self.validate_duplicate_references()
|
self.validate_duplicate_references()
|
||||||
|
|
||||||
|
def set_status(self):
|
||||||
|
if self.docstatus == 2:
|
||||||
|
self.db_set("status", "Cancelled")
|
||||||
|
elif self.docstatus == 1:
|
||||||
|
if self.unallocated_amount > 0:
|
||||||
|
self.db_set("status", "Unreconciled")
|
||||||
|
elif self.unallocated_amount <= 0:
|
||||||
|
self.db_set("status", "Reconciled")
|
||||||
|
|
||||||
def validate_duplicate_references(self):
|
def validate_duplicate_references(self):
|
||||||
"""Make sure the same voucher is not allocated twice within the same Bank Transaction"""
|
"""Make sure the same voucher is not allocated twice within the same Bank Transaction"""
|
||||||
if not self.payment_entries:
|
if not self.payment_entries:
|
||||||
@ -88,7 +96,7 @@ class BankTransaction(StatusUpdater):
|
|||||||
for payment_entry in self.payment_entries:
|
for payment_entry in self.payment_entries:
|
||||||
self.clear_linked_payment_entry(payment_entry, for_cancel=True)
|
self.clear_linked_payment_entry(payment_entry, for_cancel=True)
|
||||||
|
|
||||||
self.set_status(update=True)
|
self.set_status()
|
||||||
|
|
||||||
def add_payment_entries(self, vouchers):
|
def add_payment_entries(self, vouchers):
|
||||||
"Add the vouchers with zero allocation. Save() will perform the allocations and clearance"
|
"Add the vouchers with zero allocation. Save() will perform the allocations and clearance"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user