コード例 #1
0
    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)
コード例 #2
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)
コード例 #3
0
ファイル: test_delivery_note.py プロジェクト: pdvyas/erpnext
    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))
コード例 #4
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)

        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))
コード例 #5
0
ファイル: test_delivery_note.py プロジェクト: pdvyas/erpnext
    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)
コード例 #6
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))
コード例 #7
0
ファイル: test_delivery_note.py プロジェクト: pdvyas/erpnext
    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)