From da3762700ceb27b582f6c60be4e23038e091d4fc Mon Sep 17 00:00:00 2001 From: Anurag Mishra Date: Mon, 20 May 2019 12:38:33 +0530 Subject: [PATCH 1/3] fix(Revert): sales order status for order type 'Maintenance --- erpnext/controllers/status_updater.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py index b7d2bad17ab..cb505189bdc 100644 --- a/erpnext/controllers/status_updater.py +++ b/erpnext/controllers/status_updater.py @@ -34,8 +34,8 @@ status_map = { ], "Sales Order": [ ["Draft", None], - ["To Deliver and Bill", "eval:self.per_delivered < 100 and self.per_billed < 100 and self.docstatus == 1 and self.order_type in ['Sales', 'Shopping Cart']"], - ["To Bill", "eval:self.per_delivered == 100 or self.order_type == 'Maintenance' and self.per_billed < 100 and self.docstatus == 1"], + ["To Deliver and Bill", "eval:self.per_delivered < 100 and self.per_billed < 100 and self.docstatus == 1"], + ["To Bill", "eval:self.per_delivered == 100 and self.per_billed < 100 and self.docstatus == 1"], ["To Deliver", "eval:self.per_delivered < 100 and self.per_billed == 100 and self.docstatus == 1"], ["Completed", "eval:self.per_delivered == 100 and self.per_billed == 100 and self.docstatus == 1"], ["Completed", "eval:self.order_type == 'Maintenance' and self.per_billed == 100 and self.docstatus == 1"], From ab52a4db753b176e0cb36256cf77e8194983517e Mon Sep 17 00:00:00 2001 From: Anurag Mishra Date: Tue, 21 May 2019 13:09:47 +0530 Subject: [PATCH 2/3] fix: refactor sales_order_list.js --- erpnext/selling/doctype/sales_order/sales_order.js | 2 ++ .../selling/doctype/sales_order/sales_order_list.js | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index 8532a9433b1..ae34dc9c4fa 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -181,6 +181,8 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend( // maintenance if(flt(doc.per_delivered, 2) < 100 && ["Sales", "Shopping Cart"].indexOf(doc.order_type)===-1) { + this.frm.add_custom_button(__('Delivery'), + function() { me.make_delivery_note_based_on_delivery_date(); }, __("Make")); this.frm.add_custom_button(__('Maintenance Visit'), function() { me.make_maintenance_visit() }, __("Make")); this.frm.add_custom_button(__('Maintenance Schedule'), diff --git a/erpnext/selling/doctype/sales_order/sales_order_list.js b/erpnext/selling/doctype/sales_order/sales_order_list.js index 69c2100862a..cefc758a6d2 100644 --- a/erpnext/selling/doctype/sales_order/sales_order_list.js +++ b/erpnext/selling/doctype/sales_order/sales_order_list.js @@ -31,17 +31,23 @@ frappe.listview_settings['Sales Order'] = { "per_delivered,<,100|per_billed,=,100|status,!=,Closed"]; } - } else if ((doc.order_type === "Maintenance" || flt(doc.per_delivered, 6) == 100) + } else if ((flt(doc.per_delivered, 6) == 100) && flt(doc.grand_total) !== 0 && flt(doc.per_billed, 6) < 100 && doc.status !== "Closed") { // to bill return [__("To Bill"), "orange", "per_delivered,=,100|per_billed,<,100|status,!=,Closed"]; - } else if ((doc.order_type === "Maintenance" || flt(doc.per_delivered, 6) == 100) + } else if ((flt(doc.per_delivered, 6) === 100) && (flt(doc.grand_total) === 0 || flt(doc.per_billed, 6) == 100) && doc.status !== "Closed") { - return [__("Completed"), "green", "per_delivered,=,100|per_billed,=,100|status,!=,Closed"]; + + }else if (doc.order_type === "Maintenance" && flt(doc.per_delivered, 6) < 100 && flt(doc.per_billed, 6) < 100 && doc.status !== "Closed"){ + return [__("To Deliver and Bill"), "orange", "per_delivered,=,100|per_billed,=,100|status,!=,Closed"]; + + }else if (doc.order_type === "Maintenance" && flt(doc.per_delivered, 6) < 100 && flt(doc.per_billed, 6) == 100 && doc.status !== "Closed"){ + return [__("To Deliver"), "orange", "per_delivered,=,100|per_billed,=,100|status,!=,Closed"]; } + }, onload: function(listview) { var method = "erpnext.selling.doctype.sales_order.sales_order.close_or_unclose_sales_orders"; From a01869bb20fffeae412237518682f920d98978cb Mon Sep 17 00:00:00 2001 From: Anurag Mishra Date: Tue, 21 May 2019 15:41:05 +0530 Subject: [PATCH 3/3] style: refactor --- erpnext/selling/doctype/sales_order/sales_order.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index ae34dc9c4fa..6cdb4f88840 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -140,12 +140,15 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend( } // delivery note - if(flt(doc.per_delivered, 6) < 100 && ["Sales", "Shopping Cart"].indexOf(doc.order_type)!==-1 && allow_delivery) { + if(flt(doc.per_delivered, 6) < 100 && allow_delivery) { this.frm.add_custom_button(__('Delivery'), function() { me.make_delivery_note_based_on_delivery_date(); }, __("Make")); - this.frm.add_custom_button(__('Work Order'), - function() { me.make_work_order() }, __("Make")); + if(["Sales", "Shopping Cart"].indexOf(doc.order_type)!==-1){ + this.frm.add_custom_button(__('Work Order'), + function() { me.make_work_order() }, __("Make")); + + } this.frm.page.set_inner_btn_group_as_primary(__("Make")); } @@ -181,8 +184,6 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend( // maintenance if(flt(doc.per_delivered, 2) < 100 && ["Sales", "Shopping Cart"].indexOf(doc.order_type)===-1) { - this.frm.add_custom_button(__('Delivery'), - function() { me.make_delivery_note_based_on_delivery_date(); }, __("Make")); this.frm.add_custom_button(__('Maintenance Visit'), function() { me.make_maintenance_visit() }, __("Make")); this.frm.add_custom_button(__('Maintenance Schedule'),