[fixes] Drop Shipping - Purchase Order Cancellation - Sales Order Status
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py
index feb144d..fcf463b 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.py
@@ -159,6 +159,8 @@
def on_cancel(self):
if self.has_drop_ship_item():
self.update_status_updater()
+ self.reset_received_qty_for_drop_ship_items()
+ self.update_delivered_qty_in_sales_order()
pc_obj = frappe.get_doc('Purchase Common')
self.check_for_stopped_or_closed_status(pc_obj)
@@ -233,7 +235,12 @@
for item in self.items:
if item.delivered_by_supplier == 1:
item.received_qty = item.qty
-
+
+ def reset_received_qty_for_drop_ship_items(self):
+ for item in self.items:
+ if item.delivered_by_supplier == 1:
+ frappe.db.set_value("Purchase Order Item", item.name, "received_qty", 0.0)
+
@frappe.whitelist()
def stop_or_unstop_purchase_orders(names, status):
if not frappe.has_permission("Purchase Order", "write"):
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index 05cb50c..6d396bd 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -271,13 +271,13 @@
for item in self.items:
if item.delivered_by_supplier:
- item_delivered_qty = frappe.db.sql("""select qty
+ item_delivered_qty = frappe.db.sql("""select received_qty
from `tabPurchase Order Item` poi, `tabPurchase Order` po
- where poi.prevdoc_docname = %s
+ where poi.prevdoc_detail_docname = %s
and poi.prevdoc_doctype = 'Sales Order'
and poi.item_code = %s
and poi.parent = po.name
- and po.status = 'Delivered'""", (self.name, item.item_code))
+ and po.status = 'Delivered'""", (item.name, item.item_code))
item_delivered_qty = item_delivered_qty[0][0] if item_delivered_qty else 0
item.db_set("delivered_qty", item_delivered_qty)