fix: update accounts on change of mode of payment in sales invoice payment (backport #47381) (#47400)

* fix: update accounts on change of mode of payment in sales invoice payment (#47381)

* fix: update accounts on change of mode of payment in sales invoice payment

* test: fixed tests

(cherry picked from commit 8067799692)

# Conflicts:
#	erpnext/accounts/doctype/mode_of_payment/test_mode_of_payment.py
#	erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py
#	erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py

* chore: resolve conflict

* chore: remove unused library

* chore: resolve conflict

* chore: resolve conflict

* chore: resolve linter issue

---------

Co-authored-by: Diptanil Saha <diptanil@frappe.io>
This commit is contained in:
mergify[bot]
2025-05-05 16:35:31 +05:30
committed by GitHub
parent 4f6aee3f22
commit afb44a677c
8 changed files with 110 additions and 84 deletions

View File

@@ -7,6 +7,9 @@ import frappe
from frappe.utils import add_months, getdate from frappe.utils import add_months, getdate
from erpnext.accounts.doctype.cost_center.test_cost_center import create_cost_center from erpnext.accounts.doctype.cost_center.test_cost_center import create_cost_center
from erpnext.accounts.doctype.mode_of_payment.test_mode_of_payment import (
set_default_account_for_mode_of_payment,
)
from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry
from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
@@ -191,11 +194,13 @@ def make_pos_sales_invoice():
customer = make_customer(customer="_Test Customer") customer = make_customer(customer="_Test Customer")
mode_of_payment = frappe.get_doc("Mode of Payment", "Wire Transfer")
set_default_account_for_mode_of_payment(mode_of_payment, "_Test Company", "_Test Bank Clearance - _TC")
si = create_sales_invoice(customer=customer, item="_Test Item", is_pos=1, qty=1, rate=1000, do_not_save=1) si = create_sales_invoice(customer=customer, item="_Test Item", is_pos=1, qty=1, rate=1000, do_not_save=1)
si.set("payments", []) si.set("payments", [])
si.append( si.append("payments", {"mode_of_payment": "Wire Transfer", "amount": 1000})
"payments", {"mode_of_payment": "Cash", "account": "_Test Bank Clearance - _TC", "amount": 1000}
)
si.insert() si.insert()
si.submit() si.submit()

View File

@@ -12,6 +12,9 @@ from erpnext.accounts.doctype.bank_reconciliation_tool.bank_reconciliation_tool
get_linked_payments, get_linked_payments,
reconcile_vouchers, reconcile_vouchers,
) )
from erpnext.accounts.doctype.mode_of_payment.test_mode_of_payment import (
set_default_account_for_mode_of_payment,
)
from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry
from erpnext.accounts.doctype.pos_profile.test_pos_profile import make_pos_profile from erpnext.accounts.doctype.pos_profile.test_pos_profile import make_pos_profile
from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice
@@ -434,15 +437,13 @@ def add_vouchers(gl_account="_Test Bank - _TC"):
except frappe.DuplicateEntryError: except frappe.DuplicateEntryError:
pass pass
mode_of_payment = frappe.get_doc({"doctype": "Mode of Payment", "name": "Cash"}) mode_of_payment = frappe.get_doc({"doctype": "Mode of Payment", "name": "Wire Transfer"})
if not frappe.db.get_value("Mode of Payment Account", {"company": "_Test Company", "parent": "Cash"}): set_default_account_for_mode_of_payment(mode_of_payment, "_Test Company", gl_account)
mode_of_payment.append("accounts", {"company": "_Test Company", "default_account": gl_account})
mode_of_payment.save()
si = create_sales_invoice(customer="Fayva", qty=1, rate=109080, do_not_save=1) si = create_sales_invoice(customer="Fayva", qty=1, rate=109080, do_not_save=1)
si.is_pos = 1 si.is_pos = 1
si.append("payments", {"mode_of_payment": "Cash", "account": gl_account, "amount": 109080}) si.append("payments", {"mode_of_payment": "Wire Transfer", "amount": 109080})
si.insert() si.insert()
si.submit() si.submit()

View File

@@ -3,8 +3,25 @@
import unittest import unittest
# test_records = frappe.get_test_records('Mode of Payment') import frappe
class TestModeofPayment(unittest.TestCase): class TestModeofPayment(unittest.TestCase):
pass pass
def set_default_account_for_mode_of_payment(mode_of_payment, company, account):
mode_of_payment.reload()
if frappe.db.exists(
"Mode of Payment Account", {"parent": mode_of_payment.mode_of_payment, "company": company}
):
frappe.db.set_value(
"Mode of Payment Account",
{"parent": mode_of_payment.mode_of_payment, "company": company},
"default_account",
account,
)
return
mode_of_payment.append("accounts", {"company": company, "default_account": account})
mode_of_payment.save()

View File

@@ -323,3 +323,15 @@ frappe.ui.form.on("POS Invoice", {
}); });
}, },
}); });
frappe.ui.form.on("Sales Invoice Payment", {
mode_of_payment: function (frm) {
frappe.call({
doc: frm.doc,
method: "set_account_for_mode_of_payment",
callback: function (r) {
refresh_field("payments");
},
});
},
});

View File

@@ -7,6 +7,9 @@ import unittest
import frappe import frappe
from frappe import _ from frappe import _
from erpnext.accounts.doctype.mode_of_payment.test_mode_of_payment import (
set_default_account_for_mode_of_payment,
)
from erpnext.accounts.doctype.pos_invoice.pos_invoice import PartialPaymentValidationError, make_sales_return from erpnext.accounts.doctype.pos_invoice.pos_invoice import PartialPaymentValidationError, make_sales_return
from erpnext.accounts.doctype.pos_profile.test_pos_profile import make_pos_profile from erpnext.accounts.doctype.pos_profile.test_pos_profile import make_pos_profile
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
@@ -31,6 +34,8 @@ class TestPOSInvoice(unittest.TestCase):
cls.test_user, cls.pos_profile = init_user_and_profile() cls.test_user, cls.pos_profile = init_user_and_profile()
create_opening_entry(cls.pos_profile, cls.test_user) create_opening_entry(cls.pos_profile, cls.test_user)
mode_of_payment = frappe.get_doc("Mode of Payment", "Bank Draft")
set_default_account_for_mode_of_payment(mode_of_payment, "_Test Company", "_Test Bank - _TC")
def tearDown(self): def tearDown(self):
if frappe.session.user != "Administrator": if frappe.session.user != "Administrator":
@@ -233,12 +238,8 @@ class TestPOSInvoice(unittest.TestCase):
pos = create_pos_invoice(qty=10, do_not_save=True) pos = create_pos_invoice(qty=10, do_not_save=True)
pos.set("payments", []) pos.set("payments", [])
pos.append( pos.append("payments", {"mode_of_payment": "Bank Draft", "amount": 500})
"payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - _TC", "amount": 500} pos.append("payments", {"mode_of_payment": "Cash", "amount": 500, "default": 1})
)
pos.append(
"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 500, "default": 1}
)
pos.insert() pos.insert()
pos.submit() pos.submit()
@@ -276,9 +277,7 @@ class TestPOSInvoice(unittest.TestCase):
do_not_save=1, do_not_save=1,
) )
pos.append( pos.append("payments", {"mode_of_payment": "Cash", "amount": 1000, "default": 1})
"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 1000, "default": 1}
)
pos.insert() pos.insert()
pos.submit() pos.submit()
@@ -318,9 +317,7 @@ class TestPOSInvoice(unittest.TestCase):
do_not_save=1, do_not_save=1,
) )
pos.append( pos.append("payments", {"mode_of_payment": "Cash", "amount": 2000, "default": 1})
"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 2000, "default": 1}
)
pos.insert() pos.insert()
pos.submit() pos.submit()
@@ -331,9 +328,7 @@ class TestPOSInvoice(unittest.TestCase):
# partial return 1 # partial return 1
pos_return1.get("items")[0].qty = -1 pos_return1.get("items")[0].qty = -1
pos_return1.set("payments", []) pos_return1.set("payments", [])
pos_return1.append( pos_return1.append("payments", {"mode_of_payment": "Cash", "amount": -1000, "default": 1})
"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": -1000, "default": 1}
)
pos_return1.paid_amount = -1000 pos_return1.paid_amount = -1000
pos_return1.submit() pos_return1.submit()
pos_return1.reload() pos_return1.reload()
@@ -350,9 +345,7 @@ class TestPOSInvoice(unittest.TestCase):
# partial return 2 # partial return 2
pos_return2 = make_sales_return(pos.name) pos_return2 = make_sales_return(pos.name)
pos_return2.set("payments", []) pos_return2.set("payments", [])
pos_return2.append( pos_return2.append("payments", {"mode_of_payment": "Cash", "amount": -1000, "default": 1})
"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": -1000, "default": 1}
)
pos_return2.paid_amount = -1000 pos_return2.paid_amount = -1000
pos_return2.submit() pos_return2.submit()
@@ -372,10 +365,8 @@ class TestPOSInvoice(unittest.TestCase):
) )
pos.set("payments", []) pos.set("payments", [])
pos.append("payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - _TC", "amount": 50}) pos.append("payments", {"mode_of_payment": "Bank Draft", "amount": 50})
pos.append( pos.append("payments", {"mode_of_payment": "Cash", "amount": 60, "default": 1})
"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 60, "default": 1}
)
pos.insert() pos.insert()
pos.submit() pos.submit()
@@ -393,7 +384,7 @@ class TestPOSInvoice(unittest.TestCase):
pos_inv = create_pos_invoice(rate=10000, do_not_save=1) pos_inv = create_pos_invoice(rate=10000, do_not_save=1)
pos_inv.append( pos_inv.append(
"payments", "payments",
{"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 9000}, {"mode_of_payment": "Cash", "amount": 9000},
) )
pos_inv.insert() pos_inv.insert()
self.assertRaises(PartialPaymentValidationError, pos_inv.submit) self.assertRaises(PartialPaymentValidationError, pos_inv.submit)
@@ -424,9 +415,7 @@ class TestPOSInvoice(unittest.TestCase):
do_not_save=1, do_not_save=1,
) )
pos.append( pos.append("payments", {"mode_of_payment": "Bank Draft", "amount": 1000})
"payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - _TC", "amount": 1000}
)
pos.insert() pos.insert()
pos.submit() pos.submit()
@@ -445,9 +434,7 @@ class TestPOSInvoice(unittest.TestCase):
do_not_save=1, do_not_save=1,
) )
pos2.append( pos2.append("payments", {"mode_of_payment": "Bank Draft", "amount": 1000})
"payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - _TC", "amount": 1000}
)
pos2.insert() pos2.insert()
self.assertRaises(frappe.ValidationError, pos2.submit) self.assertRaises(frappe.ValidationError, pos2.submit)
@@ -496,9 +483,7 @@ class TestPOSInvoice(unittest.TestCase):
do_not_save=1, do_not_save=1,
) )
pos2.append( pos2.append("payments", {"mode_of_payment": "Bank Draft", "amount": 1000})
"payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - _TC", "amount": 1000}
)
pos2.insert() pos2.insert()
self.assertRaises(frappe.ValidationError, pos2.submit) self.assertRaises(frappe.ValidationError, pos2.submit)
@@ -561,9 +546,7 @@ class TestPOSInvoice(unittest.TestCase):
) )
pos.get("items")[0].has_serial_no = 1 pos.get("items")[0].has_serial_no = 1
pos.set("payments", []) pos.set("payments", [])
pos.append( pos.append("payments", {"mode_of_payment": "Cash", "amount": 1000, "default": 1})
"payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 1000, "default": 1}
)
pos = pos.save().submit() pos = pos.save().submit()
# make a return # make a return
@@ -609,7 +592,7 @@ class TestPOSInvoice(unittest.TestCase):
inv = create_pos_invoice(customer="Test Loyalty Customer", rate=10000, do_not_save=1) inv = create_pos_invoice(customer="Test Loyalty Customer", rate=10000, do_not_save=1)
inv.append( inv.append(
"payments", "payments",
{"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 10000}, {"mode_of_payment": "Cash", "amount": 10000},
) )
inv.insert() inv.insert()
inv.submit() inv.submit()
@@ -641,7 +624,7 @@ class TestPOSInvoice(unittest.TestCase):
pos_inv = create_pos_invoice(customer="Test Loyalty Customer", rate=10000, do_not_save=1) pos_inv = create_pos_invoice(customer="Test Loyalty Customer", rate=10000, do_not_save=1)
pos_inv.append( pos_inv.append(
"payments", "payments",
{"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 10000}, {"mode_of_payment": "Cash", "amount": 10000},
) )
pos_inv.paid_amount = 10000 pos_inv.paid_amount = 10000
pos_inv.submit() pos_inv.submit()
@@ -656,7 +639,7 @@ class TestPOSInvoice(unittest.TestCase):
inv.loyalty_amount = inv.loyalty_points * before_lp_details.conversion_factor inv.loyalty_amount = inv.loyalty_points * before_lp_details.conversion_factor
inv.append( inv.append(
"payments", "payments",
{"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 10000 - inv.loyalty_amount}, {"mode_of_payment": "Cash", "amount": 10000 - inv.loyalty_amount},
) )
inv.paid_amount = 10000 inv.paid_amount = 10000
inv.submit() inv.submit()
@@ -677,12 +660,12 @@ class TestPOSInvoice(unittest.TestCase):
frappe.db.sql("delete from `tabPOS Invoice`") frappe.db.sql("delete from `tabPOS Invoice`")
test_user, pos_profile = init_user_and_profile() test_user, pos_profile = init_user_and_profile()
pos_inv = create_pos_invoice(rate=300, additional_discount_percentage=10, do_not_submit=1) pos_inv = create_pos_invoice(rate=300, additional_discount_percentage=10, do_not_submit=1)
pos_inv.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 270}) pos_inv.append("payments", {"mode_of_payment": "Cash", "amount": 270})
pos_inv.save() pos_inv.save()
pos_inv.submit() pos_inv.submit()
pos_inv2 = create_pos_invoice(rate=3200, do_not_submit=1) pos_inv2 = create_pos_invoice(rate=3200, do_not_submit=1)
pos_inv2.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 3200}) pos_inv2.append("payments", {"mode_of_payment": "Cash", "amount": 3200})
pos_inv2.save() pos_inv2.save()
pos_inv2.submit() pos_inv2.submit()
@@ -703,7 +686,7 @@ class TestPOSInvoice(unittest.TestCase):
frappe.db.sql("delete from `tabPOS Invoice`") frappe.db.sql("delete from `tabPOS Invoice`")
test_user, pos_profile = init_user_and_profile() test_user, pos_profile = init_user_and_profile()
pos_inv = create_pos_invoice(rate=300, do_not_submit=1) pos_inv = create_pos_invoice(rate=300, do_not_submit=1)
pos_inv.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 300}) pos_inv.append("payments", {"mode_of_payment": "Cash", "amount": 300})
pos_inv.append( pos_inv.append(
"taxes", "taxes",
{ {
@@ -720,7 +703,7 @@ class TestPOSInvoice(unittest.TestCase):
pos_inv2 = create_pos_invoice(rate=300, qty=2, do_not_submit=1) pos_inv2 = create_pos_invoice(rate=300, qty=2, do_not_submit=1)
pos_inv2.additional_discount_percentage = 10 pos_inv2.additional_discount_percentage = 10
pos_inv2.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 540}) pos_inv2.append("payments", {"mode_of_payment": "Cash", "amount": 540})
pos_inv2.append( pos_inv2.append(
"taxes", "taxes",
{ {
@@ -758,7 +741,7 @@ class TestPOSInvoice(unittest.TestCase):
frappe.db.sql("delete from `tabPOS Invoice`") frappe.db.sql("delete from `tabPOS Invoice`")
test_user, pos_profile = init_user_and_profile() test_user, pos_profile = init_user_and_profile()
pos_inv = create_pos_invoice(item=item, rate=300, do_not_submit=1) pos_inv = create_pos_invoice(item=item, rate=300, do_not_submit=1)
pos_inv.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 300}) pos_inv.append("payments", {"mode_of_payment": "Cash", "amount": 300})
pos_inv.append( pos_inv.append(
"taxes", "taxes",
{ {
@@ -773,7 +756,7 @@ class TestPOSInvoice(unittest.TestCase):
self.assertRaises(frappe.ValidationError, pos_inv.submit) self.assertRaises(frappe.ValidationError, pos_inv.submit)
pos_inv2 = create_pos_invoice(item=item, rate=400, do_not_submit=1) pos_inv2 = create_pos_invoice(item=item, rate=400, do_not_submit=1)
pos_inv2.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 400}) pos_inv2.append("payments", {"mode_of_payment": "Cash", "amount": 400})
pos_inv2.append( pos_inv2.append(
"taxes", "taxes",
{ {
@@ -818,7 +801,7 @@ class TestPOSInvoice(unittest.TestCase):
pos_inv1 = create_pos_invoice(item="_BATCH ITEM Test For Reserve", rate=300, qty=15, do_not_save=1) pos_inv1 = create_pos_invoice(item="_BATCH ITEM Test For Reserve", rate=300, qty=15, do_not_save=1)
pos_inv1.append( pos_inv1.append(
"payments", "payments",
{"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 4500}, {"mode_of_payment": "Cash", "amount": 4500},
) )
pos_inv1.items[0].batch_no = batch_no pos_inv1.items[0].batch_no = batch_no
pos_inv1.save() pos_inv1.save()
@@ -839,7 +822,7 @@ class TestPOSInvoice(unittest.TestCase):
) )
pos_inv2.append( pos_inv2.append(
"payments", "payments",
{"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 3000}, {"mode_of_payment": "Cash", "amount": 3000},
) )
pos_inv2.save() pos_inv2.save()
pos_inv2.submit() pos_inv2.submit()
@@ -879,7 +862,7 @@ class TestPOSInvoice(unittest.TestCase):
) )
pos_inv1.append( pos_inv1.append(
"payments", "payments",
{"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 300}, {"mode_of_payment": "Cash", "amount": 300},
) )
pos_inv1.save() pos_inv1.save()
pos_inv1.submit() pos_inv1.submit()

View File

@@ -1084,6 +1084,18 @@ frappe.ui.form.on("Sales Invoice Timesheet", {
}, },
}); });
frappe.ui.form.on("Sales Invoice Payment", {
mode_of_payment: function (frm) {
frappe.call({
doc: frm.doc,
method: "set_account_for_mode_of_payment",
callback: function (r) {
refresh_field("payments");
},
});
},
});
var set_timesheet_detail_rate = function (cdt, cdn, currency, timelog) { var set_timesheet_detail_rate = function (cdt, cdn, currency, timelog) {
frappe.call({ frappe.call({
method: "erpnext.projects.doctype.timesheet.timesheet.get_timesheet_detail_rate", method: "erpnext.projects.doctype.timesheet.timesheet.get_timesheet_detail_rate",

View File

@@ -751,10 +751,10 @@ class SalesInvoice(SellingController):
self.paid_amount = paid_amount self.paid_amount = paid_amount
self.base_paid_amount = base_paid_amount self.base_paid_amount = base_paid_amount
@frappe.whitelist()
def set_account_for_mode_of_payment(self): def set_account_for_mode_of_payment(self):
for payment in self.payments: for payment in self.payments:
if not payment.account: payment.account = get_bank_cash_account(payment.mode_of_payment, self.company).get("account")
payment.account = get_bank_cash_account(payment.mode_of_payment, self.company).get("account")
def validate_time_sheets_are_submitted(self): def validate_time_sheets_are_submitted(self):
for data in self.timesheets: for data in self.timesheets:

View File

@@ -12,6 +12,9 @@ from frappe.utils import add_days, flt, format_date, getdate, nowdate, today
import erpnext import erpnext
from erpnext.accounts.doctype.account.test_account import create_account, get_inventory_account from erpnext.accounts.doctype.account.test_account import create_account, get_inventory_account
from erpnext.accounts.doctype.mode_of_payment.test_mode_of_payment import (
set_default_account_for_mode_of_payment,
)
from erpnext.accounts.doctype.pos_profile.test_pos_profile import make_pos_profile from erpnext.accounts.doctype.pos_profile.test_pos_profile import make_pos_profile
from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import WarehouseMissingError from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import WarehouseMissingError
from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import ( from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import (
@@ -54,6 +57,11 @@ class TestSalesInvoice(FrappeTestCase):
create_items(["_Test Internal Transfer Item"], uoms=[{"uom": "Box", "conversion_factor": 10}]) create_items(["_Test Internal Transfer Item"], uoms=[{"uom": "Box", "conversion_factor": 10}])
create_internal_parties() create_internal_parties()
setup_accounts() setup_accounts()
mode_of_payment = frappe.get_doc("Mode of Payment", "Bank Draft")
set_default_account_for_mode_of_payment(mode_of_payment, "_Test Company", "_Test Bank - _TC")
set_default_account_for_mode_of_payment(
mode_of_payment, "_Test Company with perpetual inventory", "_Test Bank - TCP1"
)
frappe.db.set_single_value("Accounts Settings", "acc_frozen_upto", None) frappe.db.set_single_value("Accounts Settings", "acc_frozen_upto", None)
def tearDown(self): def tearDown(self):
@@ -964,10 +972,8 @@ class TestSalesInvoice(FrappeTestCase):
pos.is_pos = 1 pos.is_pos = 1
pos.update_stock = 1 pos.update_stock = 1
pos.append( pos.append("payments", {"mode_of_payment": "Bank Draft", "amount": 50})
"payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - TCP1", "amount": 50} pos.append("payments", {"mode_of_payment": "Cash", "amount": 50})
)
pos.append("payments", {"mode_of_payment": "Cash", "account": "Cash - TCP1", "amount": 50})
taxes = get_taxes_and_charges() taxes = get_taxes_and_charges()
pos.taxes = [] pos.taxes = []
@@ -996,10 +1002,8 @@ class TestSalesInvoice(FrappeTestCase):
pos.is_pos = 1 pos.is_pos = 1
pos.pos_profile = pos_profile.name pos.pos_profile = pos_profile.name
pos.append( pos.append("payments", {"mode_of_payment": "Bank Draft", "amount": 500})
"payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - _TC", "amount": 500} pos.append("payments", {"mode_of_payment": "Cash", "amount": 500})
)
pos.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 500})
pos.insert() pos.insert()
pos.submit() pos.submit()
@@ -1042,10 +1046,8 @@ class TestSalesInvoice(FrappeTestCase):
pos.is_pos = 1 pos.is_pos = 1
pos.update_stock = 1 pos.update_stock = 1
pos.append( pos.append("payments", {"mode_of_payment": "Bank Draft", "amount": 50})
"payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - TCP1", "amount": 50} pos.append("payments", {"mode_of_payment": "Cash", "amount": 60})
)
pos.append("payments", {"mode_of_payment": "Cash", "account": "Cash - TCP1", "amount": 60})
pos.write_off_outstanding_amount_automatically = 1 pos.write_off_outstanding_amount_automatically = 1
pos.insert() pos.insert()
@@ -1085,10 +1087,8 @@ class TestSalesInvoice(FrappeTestCase):
pos.is_pos = 1 pos.is_pos = 1
pos.update_stock = 1 pos.update_stock = 1
pos.append( pos.append("payments", {"mode_of_payment": "Bank Draft", "amount": 50})
"payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - TCP1", "amount": 50} pos.append("payments", {"mode_of_payment": "Cash", "amount": 40})
)
pos.append("payments", {"mode_of_payment": "Cash", "account": "Cash - TCP1", "amount": 40})
pos.write_off_outstanding_amount_automatically = 1 pos.write_off_outstanding_amount_automatically = 1
pos.insert() pos.insert()
@@ -1102,7 +1102,7 @@ class TestSalesInvoice(FrappeTestCase):
pos = create_sales_invoice(do_not_save=True) pos = create_sales_invoice(do_not_save=True)
pos.is_pos = 1 pos.is_pos = 1
pos.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 100}) pos.append("payments", {"mode_of_payment": "Cash", "amount": 100})
pos.save().submit() pos.save().submit()
self.assertEqual(pos.outstanding_amount, 0.0) self.assertEqual(pos.outstanding_amount, 0.0)
self.assertEqual(pos.status, "Paid") self.assertEqual(pos.status, "Paid")
@@ -1173,10 +1173,8 @@ class TestSalesInvoice(FrappeTestCase):
for tax in taxes: for tax in taxes:
pos.append("taxes", tax) pos.append("taxes", tax)
pos.append( pos.append("payments", {"mode_of_payment": "Bank Draft", "amount": 50})
"payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - TCP1", "amount": 50} pos.append("payments", {"mode_of_payment": "Cash", "amount": 60})
)
pos.append("payments", {"mode_of_payment": "Cash", "account": "Cash - TCP1", "amount": 60})
pos.insert() pos.insert()
pos.submit() pos.submit()
@@ -3904,10 +3902,8 @@ class TestSalesInvoice(FrappeTestCase):
pos = create_sales_invoice(qty=10, do_not_save=True) pos = create_sales_invoice(qty=10, do_not_save=True)
pos.is_pos = 1 pos.is_pos = 1
pos.pos_profile = pos_profile.name pos.pos_profile = pos_profile.name
pos.append( pos.append("payments", {"mode_of_payment": "Bank Draft", "amount": 500})
"payments", {"mode_of_payment": "Bank Draft", "account": "_Test Bank - _TC", "amount": 500} pos.append("payments", {"mode_of_payment": "Cash", "amount": 500})
)
pos.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": 500})
pos.save().submit() pos.save().submit()
pos_return = make_sales_return(pos.name) pos_return = make_sales_return(pos.name)
@@ -4278,7 +4274,7 @@ class TestSalesInvoice(FrappeTestCase):
pos.is_pos = 1 pos.is_pos = 1
pos.pos_profile = pos_profile.name pos.pos_profile = pos_profile.name
pos.debit_to = "_Test Receivable USD - _TC" pos.debit_to = "_Test Receivable USD - _TC"
pos.append("payments", {"mode_of_payment": "Cash", "account": "_Test Bank - _TC", "amount": 20.35}) pos.append("payments", {"mode_of_payment": "Cash", "amount": 20.35})
pos.save().submit() pos.save().submit()
pos_return = make_sales_return(pos.name) pos_return = make_sales_return(pos.name)