From 14e86d9580aa88897dbf230104c03cc10fcaddd4 Mon Sep 17 00:00:00 2001 From: Barathpalanisamy Date: Wed, 22 Jan 2025 15:01:41 +0530 Subject: [PATCH 1/2] test: blanket order to sales invoice - TC_S_054 --- .../blanket_order/test_blanket_order.py | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py b/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py index b84080d203a0..9d5ad68ae236 100644 --- a/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py +++ b/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py @@ -2,7 +2,7 @@ # See license.txt import frappe from frappe.tests.utils import FrappeTestCase -from frappe.utils import add_months, today +from frappe.utils import add_months, today ,add_days,nowdate from erpnext import get_company_currency from erpnext.stock.doctype.item.test_item import make_item @@ -249,6 +249,37 @@ def test_blanket_order_to_po_TC_B_093(self): self.assertEqual(purchase_order.docstatus,1) updated_blanket_order = frappe.get_doc("Blanket Order", blanket_order.name) self.assertEqual(updated_blanket_order.items[0].ordered_qty, 2) + + def test_blanket_order_to_sales_invoice_TC_S_54(self): + from erpnext.selling.doctype.sales_order.sales_order import make_delivery_note + from erpnext.stock.doctype.delivery_note.delivery_note import make_sales_invoice + frappe.flags.args.doctype = "Sales Order" + + bo = make_blanket_order(blanket_order_type="Selling",quantity=50,rate=1000) + so = make_order(bo.name) + so.delivery_date = add_days(nowdate(), 5) + so.submit() + + bo.reload() + self.assertEqual(bo.items[0].ordered_qty, 50) + + dn=make_delivery_note(so.name) + dn.submit() + self.assertEqual(dn.status, "To Bill") + + si = make_sales_invoice(dn.name) + si.submit() + + debtor_account = frappe.db.get_value("Company", "_Test Company", "default_receivable_account") + sales_account = frappe.db.get_value("Company", "_Test Company", "default_income_account") + gl_entries = frappe.get_all("GL Entry", filters={"voucher_no": si.name}, fields=["account", "debit", "credit"]) + gl_debits = {entry.account: entry.debit for entry in gl_entries} + gl_credits = {entry.account: entry.credit for entry in gl_entries} + self.assertAlmostEqual(gl_debits[debtor_account], 50000) + self.assertAlmostEqual(gl_credits[sales_account], 50000) + + + def make_blanket_order(**args): args = frappe._dict(args) From 2b5a23bc4287e03d59b36a29d0c22a2ff14cb5d1 Mon Sep 17 00:00:00 2001 From: Barathpalanisamy Date: Wed, 22 Jan 2025 15:19:50 +0530 Subject: [PATCH 2/2] test: blanket order to sales invoice with update stock - TC_S_055 --- .../blanket_order/test_blanket_order.py | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py b/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py index 9d5ad68ae236..528217cbba25 100644 --- a/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py +++ b/erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py @@ -250,7 +250,7 @@ def test_blanket_order_to_po_TC_B_093(self): updated_blanket_order = frappe.get_doc("Blanket Order", blanket_order.name) self.assertEqual(updated_blanket_order.items[0].ordered_qty, 2) - def test_blanket_order_to_sales_invoice_TC_S_54(self): + def test_blanket_order_to_sales_invoice_TC_S_054(self): from erpnext.selling.doctype.sales_order.sales_order import make_delivery_note from erpnext.stock.doctype.delivery_note.delivery_note import make_sales_invoice frappe.flags.args.doctype = "Sales Order" @@ -278,8 +278,30 @@ def test_blanket_order_to_sales_invoice_TC_S_54(self): self.assertAlmostEqual(gl_debits[debtor_account], 50000) self.assertAlmostEqual(gl_credits[sales_account], 50000) + def test_blanket_order_to_sales_invoice_with_update_stock_TC_S_055(self): + from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice + frappe.flags.args.doctype = "Sales Order" + bo = make_blanket_order(blanket_order_type="Selling",quantity=50,rate=1000) + so = make_order(bo.name) + so.delivery_date = add_days(nowdate(), 5) + so.submit() + bo.reload() + self.assertEqual(bo.items[0].ordered_qty, 50) + + si = make_sales_invoice(so.name) + si.update_stock =1 + si.insert() + si.submit() + + debtor_account = frappe.db.get_value("Company", "_Test Company", "default_receivable_account") + sales_account = frappe.db.get_value("Company", "_Test Company", "default_income_account") + gl_entries = frappe.get_all("GL Entry", filters={"voucher_no": si.name}, fields=["account", "debit", "credit"]) + gl_debits = {entry.account: entry.debit for entry in gl_entries} + gl_credits = {entry.account: entry.credit for entry in gl_entries} + self.assertAlmostEqual(gl_debits[debtor_account], 50000) + self.assertAlmostEqual(gl_credits[sales_account], 50000) def make_blanket_order(**args): args = frappe._dict(args)