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