コード例 #1
0
    def test_incorrect_mapping_of_stock_entry(self):
        # submit material request of type Purchase
        mr = webnotes.bean(copy=test_records[0])
        mr.doc.material_request_type = "Transfer"
        mr.insert()
        mr.submit()

        # map a stock entry
        from stock.doctype.material_request.material_request import make_stock_entry

        se_doclist = make_stock_entry(mr.doc.name)
        se_doclist[0].update({
            "posting_date": "2013-03-01",
            "posting_time": "00:00",
            "fiscal_year": "_Test Fiscal Year 2013",
        })
        se_doclist[1].update({
            "qty": 60.0,
            "transfer_qty": 60.0,
            "s_warehouse": "_Test Warehouse - _TC",
            "t_warehouse": "_Test Warehouse 1 - _TC",
            "incoming_rate": 1.0
        })
        se_doclist[2].update({
            "qty": 3.0,
            "transfer_qty": 3.0,
            "s_warehouse": "_Test Warehouse 1 - _TC",
            "incoming_rate": 1.0
        })

        # check for stopped status of Material Request
        se = webnotes.bean(copy=se_doclist)
        self.assertRaises(webnotes.MappingMismatchError, se.insert)
コード例 #2
0
	def test_incorrect_mapping_of_stock_entry(self):
		# submit material request of type Purchase
		mr = webnotes.bean(copy=test_records[0])
		mr.doc.material_request_type = "Transfer"
		mr.insert()
		mr.submit()

		# map a stock entry
		from stock.doctype.material_request.material_request import make_stock_entry
		
		se_doclist = make_stock_entry(mr.doc.name)
		se_doclist[0].update({
			"posting_date": "2013-03-01",
			"posting_time": "00:00",
			"fiscal_year": "_Test Fiscal Year 2013",
		})
		se_doclist[1].update({
			"qty": 60.0,
			"transfer_qty": 60.0,
			"s_warehouse": "_Test Warehouse - _TC",
			"t_warehouse": "_Test Warehouse 1 - _TC",
			"incoming_rate": 1.0
		})
		se_doclist[2].update({
			"qty": 3.0,
			"transfer_qty": 3.0,
			"s_warehouse": "_Test Warehouse 1 - _TC",
			"incoming_rate": 1.0
		})
		
		# check for stopped status of Material Request
		se = webnotes.bean(copy=se_doclist)
		self.assertRaises(webnotes.MappingMismatchError, se.insert)
コード例 #3
0
    def test_make_stock_entry(self):
        from stock.doctype.material_request.material_request import make_stock_entry

        mr = webnotes.bean(copy=test_records[0]).insert()

        self.assertRaises(webnotes.ValidationError, make_stock_entry,
                          mr.doc.name)

        mr = webnotes.bean("Material Request", mr.doc.name)
        mr.doc.material_request_type = "Transfer"
        mr.submit()
        se = make_stock_entry(mr.doc.name)

        self.assertEquals(se[0]["doctype"], "Stock Entry")
        self.assertEquals(len(se), len(mr.doclist))
コード例 #4
0
	def test_make_stock_entry(self):
		from stock.doctype.material_request.material_request import make_stock_entry

		mr = webnotes.bean(copy=test_records[0]).insert()

		self.assertRaises(webnotes.ValidationError, make_stock_entry, 
			mr.doc.name)

		mr = webnotes.bean("Material Request", mr.doc.name)
		mr.doc.material_request_type = "Transfer"
		mr.submit()
		se = make_stock_entry(mr.doc.name)
		
		self.assertEquals(se[0]["doctype"], "Stock Entry")
		self.assertEquals(len(se), len(mr.doclist))
コード例 #5
0
    def test_completed_qty_for_over_transfer(self):
        webnotes.conn.sql("""delete from `tabBin`""")
        webnotes.conn.sql("""delete from `tabStock Ledger Entry`""")

        # submit material request of type Purchase
        mr = webnotes.bean(copy=test_records[0])
        mr.doc.material_request_type = "Transfer"
        mr.insert()
        mr.submit()

        # check if per complete is None
        self._test_expected(mr.doclist, [{
            "per_ordered": None
        }, {
            "ordered_qty": None
        }, {
            "ordered_qty": None
        }])

        self._test_requested_qty(54.0, 3.0)

        # map a stock entry
        from stock.doctype.material_request.material_request import make_stock_entry

        se_doclist = make_stock_entry(mr.doc.name)
        se_doclist[0].update({
            "posting_date": "2013-03-01",
            "posting_time": "00:00",
            "fiscal_year": "_Test Fiscal Year 2013",
        })
        se_doclist[1].update({
            "qty": 60.0,
            "transfer_qty": 60.0,
            "s_warehouse": "_Test Warehouse 1 - _TC",
            "incoming_rate": 1.0
        })
        se_doclist[2].update({
            "qty": 3.0,
            "transfer_qty": 3.0,
            "s_warehouse": "_Test Warehouse 1 - _TC",
            "incoming_rate": 1.0
        })

        # make available the qty in _Test Warehouse 1 before transfer
        self._insert_stock_entry(60.0, 3.0)

        # check for stopped status of Material Request
        se = webnotes.bean(copy=se_doclist)
        se.insert()
        mr.obj.update_status('Stopped')
        self.assertRaises(webnotes.ValidationError, se.submit)
        self.assertRaises(webnotes.ValidationError, se.cancel)

        mr.obj.update_status('Submitted')
        se = webnotes.bean(copy=se_doclist)
        se.insert()
        se.submit()

        # check if per complete is as expected
        mr.load_from_db()
        self._test_expected(mr.doclist, [{
            "per_ordered": 100
        }, {
            "ordered_qty": 60.0
        }, {
            "ordered_qty": 3.0
        }])
        self._test_requested_qty(0.0, 0.0)

        # check if per complete is as expected for Stock Entry cancelled
        se.cancel()
        mr.load_from_db()
        self._test_expected(mr.doclist, [{
            "per_ordered": 0
        }, {
            "ordered_qty": 0
        }, {
            "ordered_qty": 0
        }])
        self._test_requested_qty(54.0, 3.0)
コード例 #6
0
	def test_completed_qty_for_over_transfer(self):
		webnotes.conn.sql("""delete from `tabBin`""")
		webnotes.conn.sql("""delete from `tabStock Ledger Entry`""")
		
		# submit material request of type Purchase
		mr = webnotes.bean(copy=test_records[0])
		mr.doc.material_request_type = "Transfer"
		mr.insert()
		mr.submit()

		# check if per complete is None
		self._test_expected(mr.doclist, [{"per_ordered": None}, {"ordered_qty": None}, {"ordered_qty": None}])
		
		self._test_requested_qty(54.0, 3.0)
		
		# map a stock entry
		from stock.doctype.material_request.material_request import make_stock_entry

		se_doclist = make_stock_entry(mr.doc.name)
		se_doclist[0].update({
			"posting_date": "2013-03-01",
			"posting_time": "00:00",
			"fiscal_year": "_Test Fiscal Year 2013",
		})
		se_doclist[1].update({
			"qty": 60.0,
			"transfer_qty": 60.0,
			"s_warehouse": "_Test Warehouse 1 - _TC",
			"incoming_rate": 1.0
		})
		se_doclist[2].update({
			"qty": 3.0,
			"transfer_qty": 3.0,
			"s_warehouse": "_Test Warehouse 1 - _TC",
			"incoming_rate": 1.0
		})

		# make available the qty in _Test Warehouse 1 before transfer
		self._insert_stock_entry(60.0, 3.0)
		
		# check for stopped status of Material Request
		se = webnotes.bean(copy=se_doclist)
		se.insert()
		mr.obj.update_status('Stopped')
		self.assertRaises(webnotes.ValidationError, se.submit)
		self.assertRaises(webnotes.ValidationError, se.cancel)
		
		mr.obj.update_status('Submitted')
		se = webnotes.bean(copy=se_doclist)
		se.insert()
		se.submit()
		
		# check if per complete is as expected
		mr.load_from_db()
		self._test_expected(mr.doclist, [{"per_ordered": 100}, {"ordered_qty": 60.0}, {"ordered_qty": 3.0}])
		self._test_requested_qty(0.0, 0.0)
		
		# check if per complete is as expected for Stock Entry cancelled
		se.cancel()
		mr.load_from_db()
		self._test_expected(mr.doclist, [{"per_ordered": 0}, {"ordered_qty": 0}, {"ordered_qty": 0}])
		self._test_requested_qty(54.0, 3.0)