mirror of
https://github.com/frappe/erpnext.git
synced 2026-10-29 22:57:42 +00:00
test(accounts): enable perpetual inventory through its cached flag
Earlier tests cache the flag as off on frappe.local, so setting it on the Company alone did not reach get_valuation_rate.
This commit is contained in:
@@ -6,6 +6,7 @@ from contextlib import contextmanager
|
||||
import frappe
|
||||
from frappe.utils import flt
|
||||
|
||||
import erpnext
|
||||
from erpnext.accounts.doctype.coupon_code.test_coupon_code import test_create_test_data
|
||||
from erpnext.accounts.doctype.mode_of_payment.test_mode_of_payment import (
|
||||
set_default_account_for_mode_of_payment,
|
||||
@@ -37,6 +38,16 @@ def rounding_method(method):
|
||||
frappe.local.system_settings = None
|
||||
|
||||
|
||||
@contextmanager
|
||||
def perpetual_inventory(company):
|
||||
previous = erpnext.is_perpetual_inventory_enabled(company)
|
||||
frappe.local.enable_perpetual_inventory[company] = 1
|
||||
try:
|
||||
yield
|
||||
finally:
|
||||
frappe.local.enable_perpetual_inventory[company] = previous
|
||||
|
||||
|
||||
def sell_over_the_counter(lines, discount_percentage=0):
|
||||
item_code, qty, rate = lines[0]
|
||||
sale = create_pos_invoice(item_code=item_code, qty=qty, rate=rate, do_not_save=True)
|
||||
@@ -666,20 +677,18 @@ class TestPOSInvoiceMergeLog(ERPNextTestSuite):
|
||||
def test_consolidating_standalone_return_without_stock_history(self):
|
||||
from erpnext.stock.doctype.item.test_item import make_item
|
||||
|
||||
frappe.db.set_value(
|
||||
"Company",
|
||||
"_Test Company",
|
||||
{"enable_perpetual_inventory": 1, "default_inventory_account": "Stock In Hand - _TC"},
|
||||
)
|
||||
frappe.db.set_value("Company", "_Test Company", "default_inventory_account", "Stock In Hand - _TC")
|
||||
item_code = make_item("_Test Standalone POS Return Item", {"is_stock_item": 1}).name
|
||||
pos_return = create_pos_invoice(item_code=item_code, qty=-1, rate=100, is_return=1, do_not_save=1)
|
||||
pos_return.append("payments", {"mode_of_payment": "Cash", "account": "Cash - _TC", "amount": -100})
|
||||
pos_return.paid_amount = pos_return.base_paid_amount = -100
|
||||
self.assertRaises(frappe.ValidationError, pos_return.insert)
|
||||
|
||||
pos_return.items[0].incoming_rate = 80
|
||||
pos_return.insert().submit()
|
||||
self.make_closing_entry()
|
||||
with perpetual_inventory("_Test Company"):
|
||||
self.assertRaises(frappe.ValidationError, pos_return.insert)
|
||||
|
||||
pos_return.items[0].incoming_rate = 80
|
||||
pos_return.insert().submit()
|
||||
self.make_closing_entry()
|
||||
|
||||
pos_return.load_from_db()
|
||||
credit_note = frappe.get_doc("Sales Invoice", pos_return.consolidated_invoice)
|
||||
|
||||
Reference in New Issue
Block a user