From 01ca354d52bacc659ae4aa82301f100cc4c241f5 Mon Sep 17 00:00:00 2001 From: Saurabh Date: Tue, 8 Dec 2015 10:09:51 +0530 Subject: [PATCH] [fixes] Drop Shipping - Purchase Order Cancellation - Sales Order Status --- erpnext/buying/doctype/purchase_order/purchase_order.py | 9 ++++++++- erpnext/selling/doctype/sales_order/sales_order.py | 6 +++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py index feb144d0dd9..fcf463b991a 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/purchase_order.py @@ -159,6 +159,8 @@ class PurchaseOrder(BuyingController): 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 @@ class PurchaseOrder(BuyingController): 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 05cb50c5218..6d396bd438f 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -271,13 +271,13 @@ class SalesOrder(SellingController): 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)