Skip to content

Commit

Permalink
Merge pull request #1110 from 8848digital/test_so_blanket_order
Browse files Browse the repository at this point in the history
test: blanket order to sales invoice - TC_S_054
  • Loading branch information
tinadn authored Jan 22, 2025
2 parents 64e708f + 2b5a23b commit 138f9d9
Showing 1 changed file with 54 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -249,6 +249,59 @@ 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_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"

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 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)
Expand Down

0 comments on commit 138f9d9

Please sign in to comment.