fix: fetch party account as discounted receivable account in payment entry
This commit is contained in:
parent
06f992f850
commit
4a5bed5c07
@ -199,4 +199,21 @@ def get_invoices(filters):
|
|||||||
%s
|
%s
|
||||||
and not exists(select di.name from `tabDiscounted Invoice` di
|
and not exists(select di.name from `tabDiscounted Invoice` di
|
||||||
where di.docstatus=1 and di.sales_invoice=si.name)
|
where di.docstatus=1 and di.sales_invoice=si.name)
|
||||||
""" % where_condition, filters, as_dict=1)
|
""" % where_condition, filters, as_dict=1)
|
||||||
|
|
||||||
|
def get_party_account_based_on_invoice_discounting(sales_invoice):
|
||||||
|
party_account = None
|
||||||
|
invoice_discounting = frappe.db.sql("""
|
||||||
|
select par.accounts_receivable_discounted, par.accounts_receivable_unpaid, par.status
|
||||||
|
from `tabInvoice Discounting` par, `tabDiscounted Invoice` ch
|
||||||
|
where par.name=ch.parent
|
||||||
|
and par.docstatus=1
|
||||||
|
and ch.sales_invoice = %s
|
||||||
|
""", (sales_invoice), as_dict=1)
|
||||||
|
if invoice_discounting:
|
||||||
|
if invoice_discounting[0].status == "Disbursed":
|
||||||
|
party_account = invoice_discounting[0].accounts_receivable_discounted
|
||||||
|
elif invoice_discounting[0].status == "Settled":
|
||||||
|
party_account = invoice_discounting[0].accounts_receivable_unpaid
|
||||||
|
|
||||||
|
return party_account
|
||||||
|
@ -10,6 +10,7 @@ from erpnext.accounts.utils import get_balance_on, get_account_currency
|
|||||||
from erpnext.accounts.party import get_party_account
|
from erpnext.accounts.party import get_party_account
|
||||||
from erpnext.hr.doctype.expense_claim.expense_claim import update_reimbursed_amount
|
from erpnext.hr.doctype.expense_claim.expense_claim import update_reimbursed_amount
|
||||||
from erpnext.hr.doctype.loan.loan import update_disbursement_status, update_total_amount_paid
|
from erpnext.hr.doctype.loan.loan import update_disbursement_status, update_total_amount_paid
|
||||||
|
from erpnext.accounts.doctype.invoice_discounting.invoice_discounting import get_party_account_based_on_invoice_discounting
|
||||||
|
|
||||||
from six import string_types, iteritems
|
from six import string_types, iteritems
|
||||||
|
|
||||||
@ -747,23 +748,6 @@ def get_payment_entry_against_invoice(dt, dn, amount=None, debit_in_account_cur
|
|||||||
"journal_entry": journal_entry
|
"journal_entry": journal_entry
|
||||||
})
|
})
|
||||||
|
|
||||||
def get_party_account_based_on_invoice_discounting(sales_invoice):
|
|
||||||
party_account = None
|
|
||||||
invoice_discounting = frappe.db.sql("""
|
|
||||||
select par.accounts_receivable_discounted, par.accounts_receivable_unpaid, par.status
|
|
||||||
from `tabInvoice Discounting` par, `tabDiscounted Invoice` ch
|
|
||||||
where par.name=ch.parent
|
|
||||||
and par.docstatus=1
|
|
||||||
and ch.sales_invoice = %s
|
|
||||||
""", (sales_invoice), as_dict=1)
|
|
||||||
if invoice_discounting:
|
|
||||||
if invoice_discounting[0].status == "Disbursed":
|
|
||||||
party_account = invoice_discounting[0].accounts_receivable_discounted
|
|
||||||
elif invoice_discounting[0].status == "Settled":
|
|
||||||
party_account = invoice_discounting[0].accounts_receivable_unpaid
|
|
||||||
|
|
||||||
return party_account
|
|
||||||
|
|
||||||
def get_payment_entry(ref_doc, args):
|
def get_payment_entry(ref_doc, args):
|
||||||
cost_center = ref_doc.get("cost_center") or frappe.get_cached_value('Company', ref_doc.company, "cost_center")
|
cost_center = ref_doc.get("cost_center") or frappe.get_cached_value('Company', ref_doc.company, "cost_center")
|
||||||
exchange_rate = 1
|
exchange_rate = 1
|
||||||
|
@ -14,6 +14,7 @@ from erpnext.accounts.general_ledger import make_gl_entries
|
|||||||
from erpnext.hr.doctype.expense_claim.expense_claim import update_reimbursed_amount
|
from erpnext.hr.doctype.expense_claim.expense_claim import update_reimbursed_amount
|
||||||
from erpnext.accounts.doctype.bank_account.bank_account import get_party_bank_account, get_bank_account_details
|
from erpnext.accounts.doctype.bank_account.bank_account import get_party_bank_account, get_bank_account_details
|
||||||
from erpnext.controllers.accounts_controller import AccountsController, get_supplier_block_status
|
from erpnext.controllers.accounts_controller import AccountsController, get_supplier_block_status
|
||||||
|
from erpnext.accounts.doctype.invoice_discounting.invoice_discounting import get_party_account_based_on_invoice_discounting
|
||||||
|
|
||||||
from six import string_types, iteritems
|
from six import string_types, iteritems
|
||||||
|
|
||||||
@ -237,7 +238,7 @@ class PaymentEntry(AccountsController):
|
|||||||
|
|
||||||
if d.reference_doctype in ("Sales Invoice", "Purchase Invoice", "Expense Claim", "Fees"):
|
if d.reference_doctype in ("Sales Invoice", "Purchase Invoice", "Expense Claim", "Fees"):
|
||||||
if self.party_type == "Customer":
|
if self.party_type == "Customer":
|
||||||
ref_party_account = ref_doc.debit_to
|
ref_party_account = get_party_account_based_on_invoice_discounting(d.reference_name) or ref_doc.debit_to
|
||||||
elif self.party_type == "Student":
|
elif self.party_type == "Student":
|
||||||
ref_party_account = ref_doc.receivable_account
|
ref_party_account = ref_doc.receivable_account
|
||||||
elif self.party_type=="Supplier":
|
elif self.party_type=="Supplier":
|
||||||
@ -826,7 +827,7 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount=
|
|||||||
|
|
||||||
# party account
|
# party account
|
||||||
if dt == "Sales Invoice":
|
if dt == "Sales Invoice":
|
||||||
party_account = doc.debit_to
|
party_account = get_party_account_based_on_invoice_discounting(dn) or ref_doc.debit_to
|
||||||
elif dt == "Purchase Invoice":
|
elif dt == "Purchase Invoice":
|
||||||
party_account = doc.credit_to
|
party_account = doc.credit_to
|
||||||
elif dt == "Fees":
|
elif dt == "Fees":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user