def test_delivery_note_gl_entry_packing_item(self): self.clear_stock_account_balance() set_perpetual_inventory() self._insert_purchase_receipt() self._insert_purchase_receipt("_Test Item Home Desktop 100") dn = webnotes.bean(copy=test_records[0]) dn.doclist[1].item_code = "_Test Sales BOM Item" dn.doclist[1].qty = 1 stock_in_hand_account = webnotes.conn.get_value("Account", {"master_name": dn.doclist[1].warehouse}) from accounts.utils import get_balance_on prev_bal = get_balance_on(stock_in_hand_account, dn.doc.posting_date) dn.insert() dn.submit() gl_entries = get_gl_entries("Delivery Note", dn.doc.name) self.assertTrue(gl_entries) expected_values = {stock_in_hand_account: [0.0, 525], "Cost of Goods Sold - _TC": [525.0, 0.0]} for i, gle in enumerate(gl_entries): self.assertEquals([gle.debit, gle.credit], expected_values.get(gle.account)) # check stock in hand balance bal = get_balance_on(stock_in_hand_account, dn.doc.posting_date) self.assertEquals(bal, prev_bal - 525.0) dn.cancel() self.assertFalse(get_gl_entries("Delivery Note", dn.doc.name)) set_perpetual_inventory(0)
def test_delivery_note_gl_entry(self): self.clear_stock_account_balance() set_perpetual_inventory() self.assertEqual(cint(webnotes.defaults.get_global_default("auto_accounting_for_stock")), 1) webnotes.conn.set_value("Item", "_Test Item", "valuation_method", "FIFO") _insert_purchase_receipt() dn = webnotes.bean(copy=test_records[0]) dn.doclist[1].expense_account = "Cost of Goods Sold - _TC" dn.doclist[1].cost_center = "Main - _TC" stock_in_hand_account = webnotes.conn.get_value("Account", {"master_name": dn.doclist[1].warehouse}) from accounts.utils import get_balance_on prev_bal = get_balance_on(stock_in_hand_account, dn.doc.posting_date) dn.insert() dn.submit() gl_entries = get_gl_entries("Delivery Note", dn.doc.name) self.assertTrue(gl_entries) expected_values = { stock_in_hand_account: [0.0, 375.0], "Cost of Goods Sold - _TC": [375.0, 0.0] } for i, gle in enumerate(gl_entries): self.assertEquals([gle.debit, gle.credit], expected_values.get(gle.account)) # check stock in hand balance bal = get_balance_on(stock_in_hand_account, dn.doc.posting_date) self.assertEquals(bal, prev_bal - 375.0) # back dated purchase receipt pr = webnotes.bean(copy=pr_test_records[0]) pr.doc.posting_date = "2013-01-01" pr.doclist[1].import_rate = 100 pr.doclist[1].amount = 100 pr.insert() pr.submit() gl_entries = get_gl_entries("Delivery Note", dn.doc.name) self.assertTrue(gl_entries) expected_values = { stock_in_hand_account: [0.0, 666.65], "Cost of Goods Sold - _TC": [666.65, 0.0] } for i, gle in enumerate(gl_entries): self.assertEquals([gle.debit, gle.credit], expected_values.get(gle.account)) dn.cancel() self.assertFalse(get_gl_entries("Delivery Note", dn.doc.name)) set_perpetual_inventory(0)
def test_delivery_note_no_gl_entry(self): self.clear_stock_account_balance() set_perpetual_inventory(0) self.assertEqual( cint( webnotes.defaults.get_global_default( "auto_accounting_for_stock")), 0) _insert_purchase_receipt() dn = webnotes.bean(copy=test_records[0]) dn.insert() dn.submit() stock_value, stock_value_difference = webnotes.conn.get_value( "Stock Ledger Entry", { "voucher_type": "Delivery Note", "voucher_no": dn.doc.name, "item_code": "_Test Item" }, ["stock_value", "stock_value_difference"]) self.assertEqual(stock_value, 0) self.assertEqual(stock_value_difference, -375) gl_entries = webnotes.conn.sql("""select account, debit, credit from `tabGL Entry` where voucher_type='Delivery Note' and voucher_no=%s order by account desc""", dn.doc.name, as_dict=1) self.assertFalse(get_gl_entries("Delivery Note", dn.doc.name))
def test_delivery_note_no_gl_entry(self): self.clear_stock_account_balance() set_perpetual_inventory(0) self.assertEqual(cint(webnotes.defaults.get_global_default("auto_accounting_for_stock")), 0) self._insert_purchase_receipt() dn = webnotes.bean(copy=test_records[0]) dn.insert() dn.submit() stock_value, stock_value_difference = webnotes.conn.get_value( "Stock Ledger Entry", {"voucher_type": "Delivery Note", "voucher_no": dn.doc.name, "item_code": "_Test Item"}, ["stock_value", "stock_value_difference"], ) self.assertEqual(stock_value, 0) self.assertEqual(stock_value_difference, -375) gl_entries = webnotes.conn.sql( """select account, debit, credit from `tabGL Entry` where voucher_type='Delivery Note' and voucher_no=%s order by account desc""", dn.doc.name, as_dict=1, ) self.assertFalse(get_gl_entries("Delivery Note", dn.doc.name))
def test_delivery_note_gl_entry_packing_item(self): self.clear_stock_account_balance() set_perpetual_inventory() _insert_purchase_receipt() _insert_purchase_receipt("_Test Item Home Desktop 100") dn = webnotes.bean(copy=test_records[0]) dn.doclist[1].item_code = "_Test Sales BOM Item" dn.doclist[1].qty = 1 stock_in_hand_account = webnotes.conn.get_value( "Account", {"master_name": dn.doclist[1].warehouse}) from accounts.utils import get_balance_on prev_bal = get_balance_on(stock_in_hand_account, dn.doc.posting_date) dn.insert() dn.submit() gl_entries = get_gl_entries("Delivery Note", dn.doc.name) self.assertTrue(gl_entries) expected_values = { stock_in_hand_account: [0.0, 525], "Cost of Goods Sold - _TC": [525.0, 0.0] } for i, gle in enumerate(gl_entries): self.assertEquals([gle.debit, gle.credit], expected_values.get(gle.account)) # check stock in hand balance bal = get_balance_on(stock_in_hand_account, dn.doc.posting_date) self.assertEquals(bal, prev_bal - 525.0) dn.cancel() self.assertFalse(get_gl_entries("Delivery Note", dn.doc.name)) set_perpetual_inventory(0)
def test_delivery_note_no_gl_entry(self): self.clear_stock_account_balance() set_perpetual_inventory(0) self.assertEqual(cint(webnotes.defaults.get_global_default("auto_accounting_for_stock")), 0) _insert_purchase_receipt() dn = webnotes.bean(copy=test_records[0]) dn.insert() dn.submit() stock_value, stock_value_difference = webnotes.conn.get_value("Stock Ledger Entry", {"voucher_type": "Delivery Note", "voucher_no": dn.doc.name, "item_code": "_Test Item"}, ["stock_value", "stock_value_difference"]) self.assertEqual(stock_value, 0) self.assertEqual(stock_value_difference, -375) self.assertFalse(get_gl_entries("Delivery Note", dn.doc.name))
def test_delivery_note_gl_entry(self): self.clear_stock_account_balance() set_perpetual_inventory() self.assertEqual( cint( webnotes.defaults.get_global_default( "auto_accounting_for_stock")), 1) webnotes.conn.set_value("Item", "_Test Item", "valuation_method", "FIFO") _insert_purchase_receipt() dn = webnotes.bean(copy=test_records[0]) dn.doclist[1].expense_account = "Cost of Goods Sold - _TC" dn.doclist[1].cost_center = "Main - _TC" stock_in_hand_account = webnotes.conn.get_value( "Account", {"master_name": dn.doclist[1].warehouse}) from accounts.utils import get_balance_on prev_bal = get_balance_on(stock_in_hand_account, dn.doc.posting_date) dn.insert() dn.submit() gl_entries = get_gl_entries("Delivery Note", dn.doc.name) self.assertTrue(gl_entries) expected_values = { stock_in_hand_account: [0.0, 375.0], "Cost of Goods Sold - _TC": [375.0, 0.0] } for i, gle in enumerate(gl_entries): self.assertEquals([gle.debit, gle.credit], expected_values.get(gle.account)) # check stock in hand balance bal = get_balance_on(stock_in_hand_account, dn.doc.posting_date) self.assertEquals(bal, prev_bal - 375.0) # back dated purchase receipt pr = webnotes.bean(copy=pr_test_records[0]) pr.doc.posting_date = "2013-01-01" pr.doclist[1].import_rate = 100 pr.doclist[1].amount = 100 pr.insert() pr.submit() gl_entries = get_gl_entries("Delivery Note", dn.doc.name) self.assertTrue(gl_entries) expected_values = { stock_in_hand_account: [0.0, 666.65], "Cost of Goods Sold - _TC": [666.65, 0.0] } for i, gle in enumerate(gl_entries): self.assertEquals([gle.debit, gle.credit], expected_values.get(gle.account)) dn.cancel() self.assertFalse(get_gl_entries("Delivery Note", dn.doc.name)) set_perpetual_inventory(0)