[fixes] test case fixes for drop shipping
This commit is contained in:
parent
2f702dcb32
commit
cc8f1afa56
@ -465,17 +465,17 @@
|
|||||||
"allow_on_submit": 0,
|
"allow_on_submit": 0,
|
||||||
"bold": 0,
|
"bold": 0,
|
||||||
"collapsible": 0,
|
"collapsible": 0,
|
||||||
"fieldname": "is_drop_ship",
|
"fieldname": "delivered_by_supplier",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
"in_filter": 0,
|
"in_filter": 0,
|
||||||
"in_list_view": 0,
|
"in_list_view": 0,
|
||||||
"label": "Is Drop Ship",
|
"label": "Delivered By Supplier",
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": "",
|
"precision": "",
|
||||||
"print_hide": 1,
|
"print_hide": 0,
|
||||||
"read_only": 0,
|
"read_only": 0,
|
||||||
"report_hide": 0,
|
"report_hide": 0,
|
||||||
"reqd": 0,
|
"reqd": 0,
|
||||||
@ -2238,7 +2238,7 @@
|
|||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"modified": "2015-10-22 19:03:10.932738",
|
"modified": "2015-10-26 09:09:06.796558",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Buying",
|
"module": "Buying",
|
||||||
"name": "Purchase Order",
|
"name": "Purchase Order",
|
||||||
|
@ -224,7 +224,8 @@ class PurchaseOrder(BuyingController):
|
|||||||
self.status_updater[0].update({
|
self.status_updater[0].update({
|
||||||
"target_parent_dt": "Sales Order",
|
"target_parent_dt": "Sales Order",
|
||||||
"target_dt": "Sales Order Item",
|
"target_dt": "Sales Order Item",
|
||||||
'target_field': 'ordered_qty'
|
'target_field': 'ordered_qty',
|
||||||
|
"target_parent_field": ''
|
||||||
})
|
})
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
|
@ -22,11 +22,12 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
|
|||||||
if(doc.status != 'Stopped' && doc.status != 'Closed') {
|
if(doc.status != 'Stopped' && doc.status != 'Closed') {
|
||||||
|
|
||||||
$.each(cur_frm.doc.items, function(i, item){
|
$.each(cur_frm.doc.items, function(i, item){
|
||||||
if(item.is_delivered_by_supplier == 1 || item.supplier){
|
if((item.delivered_by_supplier == 1 || item.supplier) && (item.qty > item.ordered_qty)){
|
||||||
is_delivered_by_supplier = true;
|
is_delivered_by_supplier = true;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
is_delivery_note = true;
|
if(item.qty > item.delivered_qty)
|
||||||
|
is_delivery_note = true;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -177,11 +178,11 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
|
|||||||
filters: {'parent': cur_frm.doc.name}
|
filters: {'parent': cur_frm.doc.name}
|
||||||
}
|
}
|
||||||
}, "reqd": 1 },
|
}, "reqd": 1 },
|
||||||
{"fieldtype": "Button", "label": __("Proceed"), "fieldname": "proceed"},
|
{"fieldtype": "Button", "label": __("Make Purchase Order"), "fieldname": "make_purchase_order"},
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
dialog.fields_dict.proceed.$input.click(function() {
|
dialog.fields_dict.make_purchase_order.$input.click(function() {
|
||||||
args = dialog.get_values();
|
args = dialog.get_values();
|
||||||
if(!args) return;
|
if(!args) return;
|
||||||
dialog.hide();
|
dialog.hide();
|
||||||
|
@ -302,10 +302,14 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
from erpnext.buying.doctype.purchase_order.purchase_order import delivered_by_supplier
|
from erpnext.buying.doctype.purchase_order.purchase_order import delivered_by_supplier
|
||||||
|
|
||||||
po_item = make_item("_Test Item for Drop Shipping", {"is_stock_item": 1, "is_sales_item": 1,
|
po_item = make_item("_Test Item for Drop Shipping", {"is_stock_item": 1, "is_sales_item": 1,
|
||||||
"is_purchase_item": 1, "delivered_by_supplier": 1, 'default_supplier': '_Test Supplier'})
|
"is_purchase_item": 1, "delivered_by_supplier": 1, 'default_supplier': '_Test Supplier',
|
||||||
|
"expense_account": "_Test Account Cost for Goods Sold - _TC",
|
||||||
|
"cost_center": "_Test Cost Center - _TC"
|
||||||
|
})
|
||||||
|
|
||||||
dn_item = make_item("_Test Regular Item", {"is_stock_item": 1, "is_sales_item": 1,
|
dn_item = make_item("_Test Regular Item", {"is_stock_item": 1, "is_sales_item": 1,
|
||||||
"is_purchase_item": 1})
|
"is_purchase_item": 1, "expense_account": "_Test Account Cost for Goods Sold - _TC",
|
||||||
|
"cost_center": "_Test Cost Center - _TC"})
|
||||||
|
|
||||||
so_items = [
|
so_items = [
|
||||||
{
|
{
|
||||||
@ -326,8 +330,8 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
existing_ordered_qty, existing_reserved_qty = frappe.db.get_value("Bin",
|
bin = frappe.get_all("Bin", filters={"item_code": po_item.item_code, "warehouse": "_Test Warehouse - _TC"},
|
||||||
{"item_code": po_item.item_code, "warehouse": "_Test Warehouse - _TC"}, ["ordered_qty", "reserved_qty"])
|
fields=["ordered_qty", "reserved_qty"])
|
||||||
|
|
||||||
so = make_sales_order(item_list=so_items, do_not_submit=True)
|
so = make_sales_order(item_list=so_items, do_not_submit=True)
|
||||||
so.submit()
|
so.submit()
|
||||||
@ -335,7 +339,7 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
po = make_purchase_order_for_drop_shipment(so.name, '_Test Supplier')
|
po = make_purchase_order_for_drop_shipment(so.name, '_Test Supplier')
|
||||||
po.submit()
|
po.submit()
|
||||||
|
|
||||||
dn = create_dn_against_so(so, delivered_qty=1)
|
dn = create_dn_against_so(so.name, delivered_qty=1)
|
||||||
|
|
||||||
self.assertEquals(so.customer, po.customer)
|
self.assertEquals(so.customer, po.customer)
|
||||||
self.assertEquals(po.items[0].prevdoc_doctype, "Sales Order")
|
self.assertEquals(po.items[0].prevdoc_doctype, "Sales Order")
|
||||||
@ -344,19 +348,29 @@ class TestSalesOrder(unittest.TestCase):
|
|||||||
self.assertEquals(dn.items[0].item_code, dn_item.item_code)
|
self.assertEquals(dn.items[0].item_code, dn_item.item_code)
|
||||||
|
|
||||||
#test ordered_qty and reserved_qty
|
#test ordered_qty and reserved_qty
|
||||||
ordered_qty, reserved_qty = frappe.db.get_value("Bin",
|
ordered_qty, reserved_qty = frappe.db.get_value("Bin",
|
||||||
{"item_code": po_item.item_code, "warehouse": "_Test Warehouse - _TC"}, ["ordered_qty", "reserved_qty"])
|
{"item_code": po_item.item_code, "warehouse": "_Test Warehouse - _TC"}, ["ordered_qty", "reserved_qty"])
|
||||||
|
|
||||||
|
existing_ordered_qty = bin[0].ordered_qty if bin else 0.0
|
||||||
|
existing_reserved_qty = bin[0].reserved_qty if bin else 0.0
|
||||||
|
|
||||||
self.assertEquals(abs(ordered_qty), (existing_ordered_qty + so_items[0]['qty']))
|
self.assertEquals(abs(ordered_qty), existing_ordered_qty + so_items[0]['qty'])
|
||||||
self.assertEquals(abs(reserved_qty), (existing_reserved_qty + so_items[0]['qty']))
|
self.assertEquals(abs(reserved_qty), existing_reserved_qty + so_items[0]['qty'])
|
||||||
|
|
||||||
#test po_item length
|
#test po_item length
|
||||||
self.assertEquals(len(po.items), 1)
|
self.assertEquals(len(po.items), 1)
|
||||||
|
|
||||||
#test per_ordered status
|
#test per_delivered status
|
||||||
delivered_by_supplier(po.name)
|
delivered_by_supplier(po.name)
|
||||||
per_delivered = frappe.db.get_value("Sales Order", so.name, "per_delivered")
|
per_delivered = frappe.db.sql("""select sum(if(qty > ifnull(delivered_qty, 0), delivered_qty, qty))/sum(qty)*100 as per_delivered
|
||||||
self.assertEquals(per_delivered, )
|
from `tabSales Order Item` where parent="{0}" """.format(so.name))
|
||||||
|
|
||||||
|
self.assertEquals(frappe.db.get_value("Sales Order", so.name, "per_delivered"), per_delivered[0][0])
|
||||||
|
|
||||||
|
dn = create_dn_against_so(so.name, delivered_qty=1)
|
||||||
|
|
||||||
|
so.db_set('status', "Closed")
|
||||||
|
so.update_reserved_qty()
|
||||||
|
|
||||||
def test_reserved_qty_for_closing_so(self):
|
def test_reserved_qty_for_closing_so(self):
|
||||||
from erpnext.stock.doctype.item.test_item import make_item
|
from erpnext.stock.doctype.item.test_item import make_item
|
||||||
|
@ -122,7 +122,7 @@ def get_ordered_qty(item_code, warehouse):
|
|||||||
from `tabPurchase Order Item` po_item, `tabPurchase Order` po
|
from `tabPurchase Order Item` po_item, `tabPurchase Order` po
|
||||||
where po_item.item_code=%s and po_item.warehouse=%s
|
where po_item.item_code=%s and po_item.warehouse=%s
|
||||||
and po_item.qty > ifnull(po_item.received_qty, 0) and po_item.parent=po.name
|
and po_item.qty > ifnull(po_item.received_qty, 0) and po_item.parent=po.name
|
||||||
and po.status not in ('Stopped', 'Closed') and po.docstatus=1""", (item_code, warehouse))
|
and po.status not in ('Stopped', 'Closed', 'Delivered') and po.docstatus=1""", (item_code, warehouse))
|
||||||
|
|
||||||
return flt(ordered_qty[0][0]) if ordered_qty else 0
|
return flt(ordered_qty[0][0]) if ordered_qty else 0
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user