test case added for multiple stock entry for same datetime
This commit is contained in:
parent
93ba4fbaa4
commit
2cca0e7620
@ -101,7 +101,7 @@ class TestStockEntry(unittest.TestCase):
|
||||
|
||||
self.save_stock_entry('Material Transfer')
|
||||
mtn = get_obj('Stock Entry', stock_entry.mtn[0].name, with_children=1)
|
||||
tn = self.submit_stock_entry(mtn)
|
||||
mtn = self.submit_stock_entry(mtn)
|
||||
|
||||
# stock ledger entry
|
||||
print "Checking stock ledger entry........."
|
||||
@ -202,7 +202,53 @@ class TestStockEntry(unittest.TestCase):
|
||||
[{'doctype': 'Serial No', 'item_code': 'it', 'warehouse': 'wh1', 'status': 'In Store', 'docstatus': 0}, 10]
|
||||
])
|
||||
|
||||
#===========================================================================
|
||||
def test_entries_on_same_datetime(self):
|
||||
print "Test Case: Multiple entries on same datetime, cancel first one"
|
||||
|
||||
# submitted 1st MR
|
||||
self.save_stock_entry('Material Receipt')
|
||||
mr = get_obj('Stock Entry', stock_entry.mr[0].name, with_children=1)
|
||||
mr = self.submit_stock_entry(mr)
|
||||
|
||||
# submitted 2nd MR
|
||||
for each in stock_entry.mr1:
|
||||
each.save(1)
|
||||
for t in stock_entry.mr1[1:]:
|
||||
sql("update `tabStock Entry Detail` set parent = '%s' where name = '%s'" % (stock_entry.mr1[0].name, t.name))
|
||||
|
||||
mr1 = get_obj('Stock Entry', stock_entry.mr1[0].name, with_children=1)
|
||||
mr1 = self.submit_stock_entry(mr1)
|
||||
|
||||
|
||||
# submitted MTN
|
||||
self.save_stock_entry('Material Transfer')
|
||||
mtn = get_obj('Stock Entry', stock_entry.mtn[0].name, with_children=1)
|
||||
mtn = self.submit_stock_entry(mtn)
|
||||
|
||||
# cancel prev MR
|
||||
mr.on_cancel()
|
||||
mr.doc.cancel_reason = "testing"
|
||||
mr.doc.docstatus = 2
|
||||
mr.doc.save()
|
||||
|
||||
|
||||
# stock ledger entry
|
||||
print "Checking stock ledger entry........."
|
||||
self.assertDoc(self.get_expected_sle('entries_on_same_datetime'))
|
||||
|
||||
# bin qty
|
||||
print "Checking Bin qty........."
|
||||
self.assertDoc([
|
||||
{'doctype':'Bin', 'actual_qty':0, 'item_code':'it', 'warehouse':'wh1'},
|
||||
{'doctype':'Bin', 'actual_qty':5, 'item_code':'it', 'warehouse':'wh2'}
|
||||
])
|
||||
|
||||
# serial no
|
||||
self.assertCount([
|
||||
[{'doctype': 'Serial No', 'item_code': 'it', 'warehouse': 'wh1', 'status': 'In Store', 'docstatus': 0}, 0],
|
||||
[{'doctype': 'Serial No', 'item_code': 'it', 'warehouse': 'wh2', 'status': 'In Store', 'docstatus': 0}, 5]
|
||||
])
|
||||
|
||||
#===========================================================================
|
||||
def save_stock_entry(self, t):
|
||||
@ -373,8 +419,58 @@ class TestStockEntry(unittest.TestCase):
|
||||
'ifnull(bin_aqat, 0)': 0,
|
||||
'ifnull(valuation_rate, 0)': 0,
|
||||
"ifnull(is_cancelled, 'No')": 'Yes'
|
||||
}],
|
||||
'entries_on_same_datetime': [{
|
||||
'doctype': 'Stock Ledger Entry',
|
||||
'item_code':'it',
|
||||
'warehouse':'wh1',
|
||||
'voucher_type': 'Stock Entry',
|
||||
'voucher_no': stock_entry.mr[0].name,
|
||||
'actual_qty': 10,
|
||||
'bin_aqat': 10,
|
||||
'valuation_rate': 100,
|
||||
'is_cancelled': 'Yes'
|
||||
}, {
|
||||
'doctype': 'Stock Ledger Entry',
|
||||
'item_code':'it',
|
||||
'warehouse':'wh1',
|
||||
'voucher_type': 'Stock Entry',
|
||||
'voucher_no': stock_entry.mr[0].name,
|
||||
'actual_qty': -10,
|
||||
'ifnull(bin_aqat, 0)': 0,
|
||||
'ifnull(valuation_rate, 0)': 0,
|
||||
"ifnull(is_cancelled, 'No')": 'Yes'
|
||||
}, {
|
||||
'doctype': 'Stock Ledger Entry',
|
||||
'item_code':'it',
|
||||
'warehouse':'wh1',
|
||||
'voucher_type': 'Stock Entry',
|
||||
'voucher_no': stock_entry.mr1[0].name,
|
||||
'actual_qty': 5,
|
||||
'bin_aqat': 5,
|
||||
'valuation_rate': 400,
|
||||
'is_cancelled': 'No'
|
||||
}, {
|
||||
'doctype': 'Stock Ledger Entry',
|
||||
'item_code':'it',
|
||||
'warehouse':'wh1',
|
||||
'voucher_type': 'Stock Entry',
|
||||
'voucher_no': stock_entry.mtn[0].name,
|
||||
'actual_qty': -5,
|
||||
'bin_aqat': 0,
|
||||
'valuation_rate': 400,
|
||||
'is_cancelled': 'No'
|
||||
}, {
|
||||
'doctype': 'Stock Ledger Entry',
|
||||
'item_code':'it',
|
||||
'warehouse':'wh2',
|
||||
'voucher_type': 'Stock Entry',
|
||||
'voucher_no': stock_entry.mtn[0].name,
|
||||
'actual_qty': 5,
|
||||
'bin_aqat': 5,
|
||||
'valuation_rate': 100,
|
||||
'is_cancelled': 'No'
|
||||
}]
|
||||
|
||||
}
|
||||
|
||||
return expected_sle[action]
|
||||
|
32
erpnext/sandbox/testdata/stock_entry.py
vendored
32
erpnext/sandbox/testdata/stock_entry.py
vendored
@ -34,6 +34,38 @@ mr = [
|
||||
)
|
||||
]
|
||||
|
||||
mr1 = [
|
||||
Document(
|
||||
fielddata = {
|
||||
'doctype': 'Stock Entry',
|
||||
'posting_date': '2011-09-01',
|
||||
'transfer_date': '2011-09-01',
|
||||
'posting_time': '12:00',
|
||||
'company': 'comp',
|
||||
'fiscal_year' : '2011-2012',
|
||||
'purpose': 'Material Receipt',
|
||||
'name': 'mr1'
|
||||
}
|
||||
),
|
||||
Document(
|
||||
fielddata ={
|
||||
'doctype': 'Stock Entry Detail',
|
||||
'parenttype': 'Stock Entry',
|
||||
'parentfield' : 'mtn_details',
|
||||
'parent' : 'mr1',
|
||||
'item_code' : 'it',
|
||||
't_warehouse' : 'wh1',
|
||||
'qty' : 5,
|
||||
'transfer_qty' : 5,
|
||||
'incoming_rate': 400,
|
||||
'stock_uom': 'Nos',
|
||||
'conversion_factor': 1,
|
||||
'serial_no': 'srno11, srno12, srno13, srno14, srno15'
|
||||
}
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
# Material Transfer
|
||||
#--------------------
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user