示例#1
0
    def test_reserved_qty_for_over_delivery(self):
        make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100)
        # set over-delivery tolerance
        frappe.db.set_value('Item', "_Test Item", 'tolerance', 50)

        existing_reserved_qty = get_reserved_qty()

        so = make_sales_order()
        self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)

        dn = create_dn_against_so(so.name, 15)
        self.assertEqual(get_reserved_qty(), existing_reserved_qty)

        total_projected_qty = get_total_projected_qty('_Test Item')
        item_doc_before_cancel = frappe.get_doc('Item', '_Test Item')
        self.assertEqual(total_projected_qty,
                         item_doc_before_cancel.total_projected_qty)

        dn.cancel()
        self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)

        total_projected_qty = get_total_projected_qty('_Test Item')
        item_doc_after_cancel = frappe.get_doc('Item', '_Test Item')
        self.assertEqual(total_projected_qty,
                         item_doc_after_cancel.total_projected_qty)
示例#2
0
	def test_reserved_qty_for_over_delivery_via_sales_invoice(self):
		# set over-delivery tolerance
		frappe.db.set_value('Item', "_Test Item", 'tolerance', 50)

		existing_reserved_qty = get_reserved_qty()

		so = make_sales_order()
		self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)

		si = make_sales_invoice(so.name)
		si.update_stock = 1
		si.get("items")[0].qty = 12
		si.insert()
		si.submit()

		total_projected_qty = get_total_projected_qty('_Test Item')
		item_doc = frappe.get_doc('Item', '_Test Item')
		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)
		
		self.assertEqual(get_reserved_qty(), existing_reserved_qty)
		
		so.load_from_db()
		self.assertEqual(so.get("items")[0].delivered_qty, 12)
		self.assertEqual(so.per_delivered, 100)

		si.cancel()
		self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)
		total_projected_qty = get_total_projected_qty('_Test Item')
		item_doc = frappe.get_doc('Item', '_Test Item')
		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)
		
		so.load_from_db()
		self.assertEqual(so.get("items")[0].delivered_qty, 0)
		self.assertEqual(so.per_delivered, 0)
示例#3
0
    def test_reserved_qty_for_over_delivery_via_sales_invoice(self):
        # set over-delivery tolerance
        frappe.db.set_value('Item', "_Test Item", 'tolerance', 50)

        existing_reserved_qty = get_reserved_qty()

        so = make_sales_order()
        self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)

        si = make_sales_invoice(so.name)
        si.update_stock = 1
        si.get("items")[0].qty = 12
        si.insert()
        si.submit()

        total_projected_qty = get_total_projected_qty('_Test Item')
        item_doc = frappe.get_doc('Item', '_Test Item')
        self.assertEqual(total_projected_qty, item_doc.total_projected_qty)

        self.assertEqual(get_reserved_qty(), existing_reserved_qty)

        so.load_from_db()
        self.assertEqual(so.get("items")[0].delivered_qty, 12)
        self.assertEqual(so.per_delivered, 100)

        si.cancel()
        self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)
        total_projected_qty = get_total_projected_qty('_Test Item')
        item_doc = frappe.get_doc('Item', '_Test Item')
        self.assertEqual(total_projected_qty, item_doc.total_projected_qty)

        so.load_from_db()
        self.assertEqual(so.get("items")[0].delivered_qty, 0)
        self.assertEqual(so.per_delivered, 0)
示例#4
0
	def test_reserved_qty_for_over_delivery_with_packing_list(self):
		make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100)
		make_stock_entry(item="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", qty=10, rate=100)
		
		# set over-delivery tolerance
		frappe.db.set_value('Item', "_Test Product Bundle Item", 'tolerance', 50)

		existing_reserved_qty_item1 = get_reserved_qty("_Test Item")
		existing_reserved_qty_item2 = get_reserved_qty("_Test Item Home Desktop 100")

		so = make_sales_order(item_code="_Test Product Bundle Item")

		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1 + 50)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
			existing_reserved_qty_item2 + 20)

		dn = create_dn_against_so(so.name, 15)

		total_projected_qty = get_total_projected_qty('_Test Item')
		item_doc = frappe.get_doc('Item', '_Test Item')
		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)

		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
			existing_reserved_qty_item2)

		dn.cancel()
		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1 + 50)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
			existing_reserved_qty_item2 + 20)
示例#5
0
	def test_reserved_qty_for_over_delivery_with_packing_list(self):
		make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100)
		make_stock_entry(item="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", qty=10, rate=100)

		# set over-delivery tolerance
		frappe.db.set_value('Item', "_Test Product Bundle Item", 'tolerance', 50)

		existing_reserved_qty_item1 = get_reserved_qty("_Test Item")
		existing_reserved_qty_item2 = get_reserved_qty("_Test Item Home Desktop 100")

		so = make_sales_order(item_code="_Test Product Bundle Item")

		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1 + 50)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
			existing_reserved_qty_item2 + 20)

		dn = create_dn_against_so(so.name, 15)

		total_projected_qty = get_total_projected_qty('_Test Item')
		item_doc = frappe.get_doc('Item', '_Test Item')
		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)

		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
			existing_reserved_qty_item2)

		dn.cancel()
		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1 + 50)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
			existing_reserved_qty_item2 + 20)
示例#6
0
    def test_reserved_qty_for_partial_delivery_with_packing_list(self):
        make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100)
        make_stock_entry(item="_Test Item Home Desktop 100",
                         target="_Test Warehouse - _TC",
                         qty=10,
                         rate=100)

        existing_reserved_qty_item1 = get_reserved_qty("_Test Item")
        existing_reserved_qty_item2 = get_reserved_qty(
            "_Test Item Home Desktop 100")

        so = make_sales_order(item_code="_Test Product Bundle Item")

        self.assertEqual(get_reserved_qty("_Test Item"),
                         existing_reserved_qty_item1 + 50)
        self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
                         existing_reserved_qty_item2 + 20)

        dn = create_dn_against_so(so.name)

        self.assertEqual(get_reserved_qty("_Test Item"),
                         existing_reserved_qty_item1 + 25)
        self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
                         existing_reserved_qty_item2 + 10)

        # close so
        so.load_from_db()
        so.update_status("Closed")

        self.assertEqual(get_reserved_qty("_Test Item"),
                         existing_reserved_qty_item1)
        self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
                         existing_reserved_qty_item2)

        total_projected_qty = get_total_projected_qty('_Test Item')
        item_doc = frappe.get_doc('Item', '_Test Item')
        self.assertEqual(total_projected_qty, item_doc.total_projected_qty)

        # unclose so
        so.load_from_db()
        so.update_status('Draft')

        self.assertEqual(get_reserved_qty("_Test Item"),
                         existing_reserved_qty_item1 + 25)
        self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
                         existing_reserved_qty_item2 + 10)

        dn.cancel()
        self.assertEqual(get_reserved_qty("_Test Item"),
                         existing_reserved_qty_item1 + 50)
        self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
                         existing_reserved_qty_item2 + 20)

        so.load_from_db()
        so.cancel()
        self.assertEqual(get_reserved_qty("_Test Item"),
                         existing_reserved_qty_item1)
        self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
                         existing_reserved_qty_item2)
示例#7
0
	def test_reserved_qty_for_over_delivery(self):
		make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100)
		# set over-delivery tolerance
		frappe.db.set_value('Item', "_Test Item", 'tolerance', 50)

		existing_reserved_qty = get_reserved_qty()

		so = make_sales_order()
		self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)

		dn = create_dn_against_so(so.name, 15)
		self.assertEqual(get_reserved_qty(), existing_reserved_qty)

		total_projected_qty = get_total_projected_qty('_Test Item')
		item_doc_before_cancel = frappe.get_doc('Item', '_Test Item')
		self.assertEqual(total_projected_qty,  item_doc_before_cancel.total_projected_qty)

		dn.cancel()
		self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)

		total_projected_qty = get_total_projected_qty('_Test Item')
		item_doc_after_cancel = frappe.get_doc('Item', '_Test Item')
		self.assertEqual(total_projected_qty,  item_doc_after_cancel.total_projected_qty)
示例#8
0
	def test_reserved_qty_for_partial_delivery_with_packing_list(self):
		make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100)
		make_stock_entry(item="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", qty=10, rate=100)
		
		
		existing_reserved_qty_item1 = get_reserved_qty("_Test Item")
		existing_reserved_qty_item2 = get_reserved_qty("_Test Item Home Desktop 100")

		so = make_sales_order(item_code="_Test Product Bundle Item")

		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1 + 50)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
			existing_reserved_qty_item2 + 20)

		dn = create_dn_against_so(so.name)

		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1 + 25)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
			existing_reserved_qty_item2 + 10)

		# close so
		so.load_from_db()
		so.update_status("Closed")

		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"), existing_reserved_qty_item2)

		total_projected_qty = get_total_projected_qty('_Test Item')
		item_doc = frappe.get_doc('Item', '_Test Item')
		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)

		# unclose so
		so.load_from_db()
		so.update_status('Draft')

		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1 + 25)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
			existing_reserved_qty_item2 + 10)

		dn.cancel()
		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1 + 50)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
			existing_reserved_qty_item2 + 20)

		so.load_from_db()
		so.cancel()
		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"), existing_reserved_qty_item2)
示例#9
0
    def test_projected_qty_for_production_and_sales_order(self):
        before_production_order = get_bin(self.item, self.warehouse)
        before_production_order.update_reserved_qty_for_production()

        self.pro_order = make_prod_order_test_record(item="_Test FG Item", qty=2, source_warehouse=self.warehouse)

        after_production_order = get_bin(self.item, self.warehouse)

        sales_order = make_sales_order(item=self.item, qty=2)
        after_sales_order = get_bin(self.item, self.warehouse)

        self.assertEqual(
            cint(before_production_order.reserved_qty_for_production) + 2,
            cint(after_sales_order.reserved_qty_for_production),
        )
        self.assertEqual(cint(before_production_order.projected_qty), cint(after_sales_order.projected_qty) + 2)

        total_projected_qty = get_total_projected_qty(self.item)

        item_doc = frappe.get_doc("Item", self.item)
        self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
	def test_projected_qty_for_production_and_sales_order(self):
		before_production_order = get_bin(self.item, self.warehouse)
		before_production_order.update_reserved_qty_for_production()

		self.pro_order = make_prod_order_test_record(item="_Test FG Item", qty=2,
			source_warehouse=self.warehouse)

		after_production_order = get_bin(self.item, self.warehouse)

		sales_order = make_sales_order(item = self.item, qty = 2)
		after_sales_order = get_bin(self.item, self.warehouse)

		self.assertEqual(cint(before_production_order.reserved_qty_for_production) + 2,
			cint(after_sales_order.reserved_qty_for_production))
		self.assertEqual(cint(before_production_order.projected_qty),
			cint(after_sales_order.projected_qty) + 2)

		total_projected_qty = get_total_projected_qty(self.item)

		item_doc = frappe.get_doc('Item', self.item)
		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)
示例#11
0
    def test_total_projected_qty_against_sales_order(self):
        so = make_sales_order(item='_Test Item')
        total_projected_qty = get_total_projected_qty('_Test Item')

        item_doc = frappe.get_doc('Item', '_Test Item')
        self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
示例#12
0
	def test_total_projected_qty_against_sales_order(self):
		so = make_sales_order(item = '_Test Item')
		total_projected_qty = get_total_projected_qty('_Test Item')

		item_doc = frappe.get_doc('Item', '_Test Item')
		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)