From d88ac29d84ebcd47c9416f47b06413380d5a16ce Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Tue, 12 Sep 2023 23:25:02 +0530 Subject: [PATCH] test: Purchase Receipt Provisional Accounting GL Entries --- .../buying/doctype/supplier/test_supplier.py | 1 + .../purchase_receipt/test_purchase_receipt.py | 41 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/erpnext/buying/doctype/supplier/test_supplier.py b/erpnext/buying/doctype/supplier/test_supplier.py index 7be1d834a651..ee2ada3b6553 100644 --- a/erpnext/buying/doctype/supplier/test_supplier.py +++ b/erpnext/buying/doctype/supplier/test_supplier.py @@ -206,6 +206,7 @@ def create_supplier(**args): { "doctype": "Supplier", "supplier_name": args.supplier_name, + "default_currency": args.default_currency, "supplier_group": args.supplier_group or "Services", "supplier_type": args.supplier_type or "Company", "tax_withholding_category": args.tax_withholding_category, diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py index 6134bfa1f235..38a4011fec66 100644 --- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py @@ -2017,6 +2017,47 @@ def test_purchase_receipt_with_backdated_landed_cost_voucher(self): ste7.reload() self.assertEqual(ste7.items[0].valuation_rate, valuation_rate) + def test_purchase_receipt_provisional_accounting(self): + # Step - 1: Create Supplier + from erpnext.buying.doctype.supplier.test_supplier import create_supplier + + supplier = create_supplier(default_currency="USD") + + # Step - 2: Create Company with Provisional Accounting + from erpnext.accounts.report.trial_balance.test_trial_balance import create_company + + company_name = create_company(company_name="Test Company With Provisional Accounting") + frappe.db.set_value( + "Company", + company_name, + { + "enable_provisional_accounting_for_non_stock_items": 1, + "default_provisional_account": "Stock Received But Not Billed - TCWPA", + }, + ) + + # Step - 3: Create Non-Stock Item + item = make_item(properties={"is_stock_item": 0}) + + # Step - 4: Create Purchase Receipt + pr = make_purchase_receipt( + qty=2, + item_code=item.name, + company=company_name, + supplier=supplier.name, + warehouse="Stores - TCWPA", + currency=supplier.default_currency, + ) + + # Test - 1: Total and Base Total should not be the same as the currency is different + self.assertNotEqual(flt(pr.total, 2), flt(pr.base_total, 2)) + self.assertEqual(flt(pr.total * pr.conversion_rate, 2), flt(pr.base_total, 2)) + + # Test - 2: Sum of Debit or Credit should be equal to PR Base Total + amount = frappe.db.get_value("GL Entry", {"docstatus": 1, "voucher_no": pr.name}, ["sum(debit)"]) + expected_amount = pr.base_total + self.assertEqual(amount, expected_amount) + def prepare_data_for_internal_transfer(): from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_internal_supplier