Test Cases Added - Work Pending
This commit is contained in:
parent
f9ced8f28f
commit
6d8f48ff8d
@ -294,9 +294,12 @@ def make_supplier_quotation(source_name, target_doc=None):
|
|||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def make_stock_entry(source_name, target_doc=None):
|
def make_stock_entry(source_name, target_doc=None):
|
||||||
def update_item(obj, target, source_parent):
|
def update_item(obj, target, source_parent):
|
||||||
|
qty = flt(obj.qty) - flt(obj.ordered_qty) \
|
||||||
|
if flt(obj.qty) > flt(obj.ordered_qty) else 0
|
||||||
|
target.qty = qty
|
||||||
|
target.transfer_qty = qty
|
||||||
target.conversion_factor = 1
|
target.conversion_factor = 1
|
||||||
target.qty = flt(obj.qty) - flt(obj.ordered_qty)
|
|
||||||
target.transfer_qty = flt(obj.qty) - flt(obj.ordered_qty)
|
|
||||||
if source_parent.material_request_type == "Material Transfer":
|
if source_parent.material_request_type == "Material Transfer":
|
||||||
target.t_warehouse = obj.warehouse
|
target.t_warehouse = obj.warehouse
|
||||||
else:
|
else:
|
||||||
|
@ -77,7 +77,7 @@ class TestMaterialRequest(unittest.TestCase):
|
|||||||
"stock_uom": "_Test UOM 1",
|
"stock_uom": "_Test UOM 1",
|
||||||
"transfer_qty": qty1,
|
"transfer_qty": qty1,
|
||||||
"uom": "_Test UOM 1",
|
"uom": "_Test UOM 1",
|
||||||
"t_warehouse": "_Test Warehouse 1 - _TC",
|
"t_warehouse": warehouse or "_Test Warehouse 1 - _TC",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"conversion_factor": 1.0,
|
"conversion_factor": 1.0,
|
||||||
@ -89,7 +89,7 @@ class TestMaterialRequest(unittest.TestCase):
|
|||||||
"stock_uom": "_Test UOM 1",
|
"stock_uom": "_Test UOM 1",
|
||||||
"transfer_qty": qty2,
|
"transfer_qty": qty2,
|
||||||
"uom": "_Test UOM 1",
|
"uom": "_Test UOM 1",
|
||||||
"t_warehouse": "_Test Warehouse 1 - _TC",
|
"t_warehouse": warehouse or "_Test Warehouse 1 - _TC",
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
@ -383,6 +383,56 @@ class TestMaterialRequest(unittest.TestCase):
|
|||||||
def _get_requested_qty(self, item_code, warehouse):
|
def _get_requested_qty(self, item_code, warehouse):
|
||||||
return flt(frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": warehouse}, "indented_qty"))
|
return flt(frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": warehouse}, "indented_qty"))
|
||||||
|
|
||||||
|
def test_make_stock_entry_for_Material_Issue(self):
|
||||||
|
from erpnext.stock.doctype.material_request.material_request import make_stock_entry
|
||||||
|
|
||||||
|
mr = frappe.copy_doc(test_records[0]).insert()
|
||||||
|
|
||||||
|
self.assertRaises(frappe.ValidationError, make_stock_entry,
|
||||||
|
mr.name)
|
||||||
|
|
||||||
|
mr = frappe.get_doc("Material Request", mr.name)
|
||||||
|
mr.material_request_type = "Material Issue"
|
||||||
|
mr.submit()
|
||||||
|
se = make_stock_entry(mr.name)
|
||||||
|
|
||||||
|
self.assertEquals(se.doctype, "Stock Entry")
|
||||||
|
self.assertEquals(len(se.get("mtn_details")), len(mr.get("indent_details")))
|
||||||
|
|
||||||
|
def test_compleated_qty_for_issue(self):
|
||||||
|
def _get_requested_qty():
|
||||||
|
return flt(frappe.db.get_value("Bin", {"item_code": "_Test Item Home Desktop 100",
|
||||||
|
"warehouse": "_Test Warehouse - _TC"}, "indented_qty"))
|
||||||
|
|
||||||
|
from erpnext.stock.doctype.material_request.material_request import make_stock_entry
|
||||||
|
|
||||||
|
existing_requested_qty = _get_requested_qty()
|
||||||
|
|
||||||
|
mr = frappe.copy_doc(test_records[0])
|
||||||
|
mr.material_request_type = "Material Issue"
|
||||||
|
mr.submit()
|
||||||
|
|
||||||
|
#testing bin value after material request is submitted
|
||||||
|
self.assertEquals(_get_requested_qty(), existing_requested_qty + 54.0)
|
||||||
|
|
||||||
|
# receive items to allow issue
|
||||||
|
self._insert_stock_entry(60, 6, "_Test Warehouse - _TC")
|
||||||
|
|
||||||
|
# make stock entry against MR
|
||||||
|
|
||||||
|
se_doc = make_stock_entry(mr.name)
|
||||||
|
se_doc.fiscal_year = "_Test Fiscal Year 2014"
|
||||||
|
se_doc.get("mtn_details")[0].qty = 60.0
|
||||||
|
se_doc.insert()
|
||||||
|
se_doc.submit()
|
||||||
|
|
||||||
|
# check if per complete is as expected
|
||||||
|
mr.load_from_db()
|
||||||
|
self.assertEquals(mr.get("indent_details")[0].ordered_qty, 60.0)
|
||||||
|
self.assertEquals(mr.get("indent_details")[1].ordered_qty, 3.0)
|
||||||
|
|
||||||
|
#testing bin requested qty after issuing stock against material request
|
||||||
|
self.assertEquals(_get_requested_qty(), existing_requested_qty)
|
||||||
|
|
||||||
test_dependencies = ["Currency Exchange"]
|
test_dependencies = ["Currency Exchange"]
|
||||||
test_records = frappe.get_test_records('Material Request')
|
test_records = frappe.get_test_records('Material Request')
|
||||||
|
@ -219,7 +219,7 @@ class StockEntry(StockController):
|
|||||||
if not self.posting_date or not self.posting_time:
|
if not self.posting_date or not self.posting_time:
|
||||||
frappe.throw(_("Posting date and posting time is mandatory"))
|
frappe.throw(_("Posting date and posting time is mandatory"))
|
||||||
|
|
||||||
allow_negative_stock = cint(frappe.db.get_default("allow_negative_stock"))
|
allow_negative_stock = cint(frappe.db.get_value("Stock Settings", None, "allow_negative_stock"))
|
||||||
|
|
||||||
for d in self.get('mtn_details'):
|
for d in self.get('mtn_details'):
|
||||||
d.transfer_qty = flt(d.transfer_qty)
|
d.transfer_qty = flt(d.transfer_qty)
|
||||||
|
@ -87,7 +87,7 @@ def update_entries_after(args, allow_zero_rate=False, verbose=1):
|
|||||||
stock_value_difference = 0.0
|
stock_value_difference = 0.0
|
||||||
|
|
||||||
for sle in entries_to_fix:
|
for sle in entries_to_fix:
|
||||||
if sle.serial_no or not cint(frappe.db.get_default("allow_negative_stock")):
|
if sle.serial_no or not cint(frappe.db.get_value("Stock Settings", None, "allow_negative_stock")):
|
||||||
# validate negative stock for serialized items, fifo valuation
|
# validate negative stock for serialized items, fifo valuation
|
||||||
# or when negative stock is not allowed for moving average
|
# or when negative stock is not allowed for moving average
|
||||||
if not validate_negative_stock(qty_after_transaction, sle):
|
if not validate_negative_stock(qty_after_transaction, sle):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user