From 08bce15db546ca228bd591ed6e5086a10891a227 Mon Sep 17 00:00:00 2001 From: Diksha Date: Fri, 31 May 2019 12:53:26 +0530 Subject: [PATCH 1/8] feat(core): start and stop buttons on delivery trip --- bloomstack_core/hooks.py | 3 +- bloomstack_core/public/js/delivery_trip.js | 56 ++++++++++++++++++++++ bloomstack_core/utils.py | 16 ++++++- 3 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 bloomstack_core/public/js/delivery_trip.js diff --git a/bloomstack_core/hooks.py b/bloomstack_core/hooks.py index db0b9eada..e484868a2 100755 --- a/bloomstack_core/hooks.py +++ b/bloomstack_core/hooks.py @@ -58,7 +58,8 @@ "Item": "public/js/item.js", "Batch": "public/js/batch.js", "Quotation": "public/js/quotation.js", - "Contract": "public/js/contract.js" + "Contract": "public/js/contract.js", + "Delivery Trip": "public/js/delivery_trip.js" } # doctype_list_js = {"doctype" : "public/js/doctype_list.js"} # doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"} diff --git a/bloomstack_core/public/js/delivery_trip.js b/bloomstack_core/public/js/delivery_trip.js new file mode 100644 index 000000000..f10cc49b2 --- /dev/null +++ b/bloomstack_core/public/js/delivery_trip.js @@ -0,0 +1,56 @@ +frappe.ui.form.on('Delivery Trip', { + refresh: (frm) => { + if (frm.doc.status == "Scheduled" && frm.doc.odometer_start != 0){ + + frm.add_custom_button(__("Start"), () => { + console.log("yupup") + frappe.prompt([{ + "label": "Initial Reading", + "fieldtype": "Float", + "fieldname": "odometer_start", + "reqd": 1 + }, + ], + function (data) { + console.log("data.odometer_start", data.odometer_start, "docname", frm.docname) + + frappe.call({ + method: "bloomstack_core.utils.update_odometer", + args: { + "start": data.odometer_start, + "dn": frm.docname, + }, + }) + }, + __("Enter Odometer Value")); + + }).addClass("btn-primary"); + } + else { + frm.add_custom_button(__("Stop"), () => { + console.log("yupup") + frappe.prompt([{ + "label": "Final Reading", + "fieldtype": "Float", + "fieldname": "odometer_stop", + "reqd": 1 + }, + ], + function (data) { + console.log("data.odometer_stop", data.odometer_stop, "docname", frm.docname) + + frappe.call({ + method: "bloomstack_core.utils.update_odometer", + args: { + "stop": data.odometer_stop, + "dn": frm.docname, + }, + }) + }, + __("Enter Odometer Value")); + + }).addClass("btn-primary"); + }; + + } +}); \ No newline at end of file diff --git a/bloomstack_core/utils.py b/bloomstack_core/utils.py index 308d03486..8819c2f39 100755 --- a/bloomstack_core/utils.py +++ b/bloomstack_core/utils.py @@ -159,4 +159,18 @@ def create_authorization_request(dt, dn, contact_email, contact_name=None): new_authorization_request.linked_doctype = dt new_authorization_request.linked_docname = dn new_authorization_request.authorizer_email = contact_email - new_authorization_request.save() \ No newline at end of file + new_authorization_request.save() + + +@frappe.whitelist() +def update_odometer(dn, start=None, stop=None): + delivery_trip = frappe.get_doc("Delivery Trip", dn) + if start: + delivery_trip.update({"odometer_start": start}) + else: + print("+++++++=delivery_trip.odometer_start", delivery_trip.odometer_start, "stop", stop) + print("type(delivery_trip.odometer_start)", type(delivery_trip.odometer_start), "stop", type(stop)) + delivery_trip.update({"odometer_stop": stop, "actual-distance-travelled": (stop - delivery_trip.odometer_start)}) + + delivery_trip.save() + print("there!!!!!!!!!!!!",) From 5b64af58685c352cfbbc668f9093a1846046532d Mon Sep 17 00:00:00 2001 From: diksha Date: Tue, 11 Jun 2019 20:04:10 +0530 Subject: [PATCH 2/8] feat(core): calculate actual distance travelled by driver --- bloomstack_core/public/js/delivery_trip.js | 67 ++++++++++------------ bloomstack_core/utils.py | 10 +--- 2 files changed, 33 insertions(+), 44 deletions(-) diff --git a/bloomstack_core/public/js/delivery_trip.js b/bloomstack_core/public/js/delivery_trip.js index f10cc49b2..ab073c1c5 100644 --- a/bloomstack_core/public/js/delivery_trip.js +++ b/bloomstack_core/public/js/delivery_trip.js @@ -1,56 +1,49 @@ frappe.ui.form.on('Delivery Trip', { - refresh: (frm) => { - if (frm.doc.status == "Scheduled" && frm.doc.odometer_start != 0){ - + refresh: (frm) => { + if (frm.doc.docstatus == 1 && frm.doc.status != "Completed" && frm.doc.odometer_start_value == 0) { frm.add_custom_button(__("Start"), () => { - console.log("yupup") frappe.prompt([{ - "label": "Initial Reading", - "fieldtype": "Float", - "fieldname": "odometer_start", + "label": "Odometer Start Value", + "fieldtype": "Int", + "fieldname": "odometer_start_value", "reqd": 1 }, - ], - function (data) { - console.log("data.odometer_start", data.odometer_start, "docname", frm.docname) - - frappe.call({ - method: "bloomstack_core.utils.update_odometer", - args: { - "start": data.odometer_start, - "dn": frm.docname, - }, - }) + ], + function (data) { + frappe.call({ + method: "bloomstack_core.utils.update_odometer", + args: { + "start": data.odometer_start_value, + "dn": frm.docname, + }, + }); }, - __("Enter Odometer Value")); + __("Enter Odometer Value")); }).addClass("btn-primary"); } - else { + else if (frm.doc.docstatus == 1 && frm.doc.status != "Completed" && frm.doc.odometer_start_value > 0 && frm.doc.odometer_stop_value == 0) { frm.add_custom_button(__("Stop"), () => { - console.log("yupup") frappe.prompt([{ - "label": "Final Reading", - "fieldtype": "Float", - "fieldname": "odometer_stop", + "label": "Odometer Stop Value", + "fieldtype": "Int", + "fieldname": "odometer_stop_value", "reqd": 1 }, - ], - function (data) { - console.log("data.odometer_stop", data.odometer_stop, "docname", frm.docname) + ], + function (data) { + frappe.call({ + method: "bloomstack_core.utils.update_odometer", + args: { + "stop": data.odometer_stop_value, + "dn": frm.docname, + }, - frappe.call({ - method: "bloomstack_core.utils.update_odometer", - args: { - "stop": data.odometer_stop, - "dn": frm.docname, - }, - }) + }); }, - __("Enter Odometer Value")); + __("Enter Odometer Value")); }).addClass("btn-primary"); - }; - + } } }); \ No newline at end of file diff --git a/bloomstack_core/utils.py b/bloomstack_core/utils.py index 8819c2f39..17793a189 100755 --- a/bloomstack_core/utils.py +++ b/bloomstack_core/utils.py @@ -7,7 +7,7 @@ import frappe from erpnext.stock.doctype.batch.batch import get_batch_qty from python_metrc import METRC - +from frappe.utils import now_datetime def welcome_email(): return "Welcome to Bloomstack" @@ -166,11 +166,7 @@ def create_authorization_request(dt, dn, contact_email, contact_name=None): def update_odometer(dn, start=None, stop=None): delivery_trip = frappe.get_doc("Delivery Trip", dn) if start: - delivery_trip.update({"odometer_start": start}) + delivery_trip.update({"odometer_start_value": int(start), "odometer_start_time": now_datetime()}) else: - print("+++++++=delivery_trip.odometer_start", delivery_trip.odometer_start, "stop", stop) - print("type(delivery_trip.odometer_start)", type(delivery_trip.odometer_start), "stop", type(stop)) - delivery_trip.update({"odometer_stop": stop, "actual-distance-travelled": (stop - delivery_trip.odometer_start)}) - + delivery_trip.update({"odometer_stop_value": int(stop), "odometer_stop_time": now_datetime(), "actual_distance_travelled": int(stop) - delivery_trip.odometer_start_value}) delivery_trip.save() - print("there!!!!!!!!!!!!",) From d6583fb914d07d15b8ea176be84ce911ee6d0194 Mon Sep 17 00:00:00 2001 From: diksha Date: Thu, 13 Jun 2019 14:48:11 +0530 Subject: [PATCH 3/8] feat(core): refactor code --- bloomstack_core/public/js/delivery_trip.js | 26 +++++++++------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/bloomstack_core/public/js/delivery_trip.js b/bloomstack_core/public/js/delivery_trip.js index ab073c1c5..b9b71854d 100644 --- a/bloomstack_core/public/js/delivery_trip.js +++ b/bloomstack_core/public/js/delivery_trip.js @@ -10,13 +10,10 @@ frappe.ui.form.on('Delivery Trip', { }, ], function (data) { - frappe.call({ - method: "bloomstack_core.utils.update_odometer", - args: { - "start": data.odometer_start_value, - "dn": frm.docname, - }, - }); + frm.set_value('odometer_start_value', data.odometer_start_value); + frm.set_value('odometer_start_time', frappe.datetime.now_datetime()); + frm.dirty(); + frm.save_or_update(); }, __("Enter Odometer Value")); @@ -24,6 +21,7 @@ frappe.ui.form.on('Delivery Trip', { } else if (frm.doc.docstatus == 1 && frm.doc.status != "Completed" && frm.doc.odometer_start_value > 0 && frm.doc.odometer_stop_value == 0) { frm.add_custom_button(__("Stop"), () => { + frappe.prompt([{ "label": "Odometer Stop Value", "fieldtype": "Int", @@ -32,18 +30,16 @@ frappe.ui.form.on('Delivery Trip', { }, ], function (data) { - frappe.call({ - method: "bloomstack_core.utils.update_odometer", - args: { - "stop": data.odometer_stop_value, - "dn": frm.docname, - }, - - }); + frm.set_value('odometer_stop_value', data.odometer_stop_value); + frm.set_value('odometer_stop_time', frappe.datetime.now_datetime()); + frm.set_value('actual_distance_travelled', (data.odometer_stop_value - frm.doc.odometer_start_value)); + frm.dirty(); + frm.save_or_update(); }, __("Enter Odometer Value")); }).addClass("btn-primary"); } + } }); \ No newline at end of file From cb43333099cb7d045e9329c91cc62a7ff5dcde60 Mon Sep 17 00:00:00 2001 From: diksha Date: Thu, 13 Jun 2019 15:07:22 +0530 Subject: [PATCH 4/8] feat(core): validate odometer stop value and time --- bloomstack_core/public/js/delivery_trip.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/bloomstack_core/public/js/delivery_trip.js b/bloomstack_core/public/js/delivery_trip.js index b9b71854d..7671f93cd 100644 --- a/bloomstack_core/public/js/delivery_trip.js +++ b/bloomstack_core/public/js/delivery_trip.js @@ -32,9 +32,14 @@ frappe.ui.form.on('Delivery Trip', { function (data) { frm.set_value('odometer_stop_value', data.odometer_stop_value); frm.set_value('odometer_stop_time', frappe.datetime.now_datetime()); - frm.set_value('actual_distance_travelled', (data.odometer_stop_value - frm.doc.odometer_start_value)); - frm.dirty(); - frm.save_or_update(); + if (data.odometer_stop_value > frm.doc.odometer_start_value && data.frappe.datetime.now_datetime() > frm.doc.odometer_start_time) { + frm.set_value('actual_distance_travelled', (data.odometer_stop_value - frm.doc.odometer_start_value)); + frm.dirty(); + frm.save_or_update(); + } else{ + frappe.throw("Invalid Odometer Stop Value!"); + } + }, __("Enter Odometer Value")); From 56db709b7b1dc93f5fad44c08d60a33e8f4fd5bf Mon Sep 17 00:00:00 2001 From: diksha Date: Fri, 14 Jun 2019 20:00:18 +0530 Subject: [PATCH 5/8] feat(core): Allow the last odometer value in vehicle doctype to be updated with the odometer stop value in delivery trip --- bloomstack_core/hook_events/delivery_trip.py | 10 ++++++++++ bloomstack_core/hooks.py | 3 +++ bloomstack_core/public/js/delivery_trip.js | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 bloomstack_core/hook_events/delivery_trip.py diff --git a/bloomstack_core/hook_events/delivery_trip.py b/bloomstack_core/hook_events/delivery_trip.py new file mode 100644 index 000000000..982e0aafc --- /dev/null +++ b/bloomstack_core/hook_events/delivery_trip.py @@ -0,0 +1,10 @@ +from frappe.model.document import Document +import frappe + + +def set_vehicle_last_odometer_value(self, event): + print("reached here!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") + if self.actual_distance_travelled: + vehicle = frappe.get_doc("Vehicle", self.vehicle) + vehicle.update({"last_odometer": self.odometer_stop_value}) + vehicle.save() diff --git a/bloomstack_core/hooks.py b/bloomstack_core/hooks.py index e484868a2..bf87fdab4 100755 --- a/bloomstack_core/hooks.py +++ b/bloomstack_core/hooks.py @@ -122,6 +122,9 @@ }, "Stock Entry": { "on_submit": "bloomstack_core.compliance.package.create_package" + }, + "Delivery Trip": { + "on_update_after_submit": "bloomstack_core.hook_events.delivery_trip.set_vehicle_last_odometer_value" } } diff --git a/bloomstack_core/public/js/delivery_trip.js b/bloomstack_core/public/js/delivery_trip.js index 7671f93cd..2831554ac 100644 --- a/bloomstack_core/public/js/delivery_trip.js +++ b/bloomstack_core/public/js/delivery_trip.js @@ -32,7 +32,7 @@ frappe.ui.form.on('Delivery Trip', { function (data) { frm.set_value('odometer_stop_value', data.odometer_stop_value); frm.set_value('odometer_stop_time', frappe.datetime.now_datetime()); - if (data.odometer_stop_value > frm.doc.odometer_start_value && data.frappe.datetime.now_datetime() > frm.doc.odometer_start_time) { + if (data.odometer_stop_value > frm.doc.odometer_start_value && frm.doc.odometer_stop_time > frm.doc.odometer_start_time) { frm.set_value('actual_distance_travelled', (data.odometer_stop_value - frm.doc.odometer_start_value)); frm.dirty(); frm.save_or_update(); From d8478c8f1546b2fb26cdd3a1d5f46ece39d56a90 Mon Sep 17 00:00:00 2001 From: diksha Date: Tue, 18 Jun 2019 12:54:55 +0530 Subject: [PATCH 6/8] feat(core): refactor code --- bloomstack_core/hook_events/delivery_trip.py | 10 +-- bloomstack_core/public/js/delivery_trip.js | 80 ++++++++++---------- bloomstack_core/utils.py | 1 - 3 files changed, 44 insertions(+), 47 deletions(-) diff --git a/bloomstack_core/hook_events/delivery_trip.py b/bloomstack_core/hook_events/delivery_trip.py index 982e0aafc..8abc35396 100644 --- a/bloomstack_core/hook_events/delivery_trip.py +++ b/bloomstack_core/hook_events/delivery_trip.py @@ -2,9 +2,7 @@ import frappe -def set_vehicle_last_odometer_value(self, event): - print("reached here!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") - if self.actual_distance_travelled: - vehicle = frappe.get_doc("Vehicle", self.vehicle) - vehicle.update({"last_odometer": self.odometer_stop_value}) - vehicle.save() +def set_vehicle_last_odometer_value(trip, method): + if trip.actual_distance_travelled: + frappe.db.set_value('Vehicle', trip.vehicle, 'last_odometer', trip.odometer_stop_value) + diff --git a/bloomstack_core/public/js/delivery_trip.js b/bloomstack_core/public/js/delivery_trip.js index 2831554ac..ffe82c2f3 100644 --- a/bloomstack_core/public/js/delivery_trip.js +++ b/bloomstack_core/public/js/delivery_trip.js @@ -1,50 +1,50 @@ frappe.ui.form.on('Delivery Trip', { refresh: (frm) => { - if (frm.doc.docstatus == 1 && frm.doc.status != "Completed" && frm.doc.odometer_start_value == 0) { - frm.add_custom_button(__("Start"), () => { - frappe.prompt([{ - "label": "Odometer Start Value", - "fieldtype": "Int", - "fieldname": "odometer_start_value", - "reqd": 1 - }, - ], - function (data) { - frm.set_value('odometer_start_value', data.odometer_start_value); - frm.set_value('odometer_start_time', frappe.datetime.now_datetime()); - frm.dirty(); - frm.save_or_update(); + if (frm.doc.docstatus == 1 && frm.doc.status != "Completed") { + if (frm.doc.odometer_start_value == 0) { + frm.add_custom_button(__("Start"), () => { + frappe.prompt([{ + "label": "Odometer Start Value", + "fieldtype": "Int", + "fieldname": "odometer_start_value", + "reqd": 1 }, - __("Enter Odometer Value")); - - }).addClass("btn-primary"); - } - else if (frm.doc.docstatus == 1 && frm.doc.status != "Completed" && frm.doc.odometer_start_value > 0 && frm.doc.odometer_stop_value == 0) { - frm.add_custom_button(__("Stop"), () => { - - frappe.prompt([{ - "label": "Odometer Stop Value", - "fieldtype": "Int", - "fieldname": "odometer_stop_value", - "reqd": 1 - }, - ], - function (data) { - frm.set_value('odometer_stop_value', data.odometer_stop_value); - frm.set_value('odometer_stop_time', frappe.datetime.now_datetime()); - if (data.odometer_stop_value > frm.doc.odometer_start_value && frm.doc.odometer_stop_time > frm.doc.odometer_start_time) { - frm.set_value('actual_distance_travelled', (data.odometer_stop_value - frm.doc.odometer_start_value)); + ], + function (data) { + frm.set_value('odometer_start_value', data.odometer_start_value); + frm.set_value('odometer_start_time', frappe.datetime.now_datetime()); frm.dirty(); frm.save_or_update(); - } else{ - frappe.throw("Invalid Odometer Stop Value!"); - } - + }, + __("Enter Odometer Value")); + + }).addClass("btn-primary"); + } + else if (frm.doc.odometer_start_value > 0 && frm.doc.odometer_stop_value == 0) { + frm.add_custom_button(__("Stop"), () => { + + frappe.prompt([{ + "label": "Odometer Stop Value", + "fieldtype": "Int", + "fieldname": "odometer_stop_value", + "reqd": 1 }, - __("Enter Odometer Value")); + ], + function (data) { + if (data.odometer_stop_value > frm.doc.odometer_start_value) { + frm.set_value('odometer_stop_value', data.odometer_stop_value); + frm.set_value('odometer_stop_time', frappe.datetime.now_datetime()); + frm.set_value('actual_distance_travelled', (data.odometer_stop_value - frm.doc.odometer_start_value)); + frm.dirty(); + frm.save_or_update(); + } else { + frappe.throw("The stop value is smaller than the start value!"); + } + }, + __("Enter Odometer Value")); - }).addClass("btn-primary"); + }).addClass("btn-primary"); + } } - } }); \ No newline at end of file diff --git a/bloomstack_core/utils.py b/bloomstack_core/utils.py index 17793a189..7a86d4a79 100755 --- a/bloomstack_core/utils.py +++ b/bloomstack_core/utils.py @@ -7,7 +7,6 @@ import frappe from erpnext.stock.doctype.batch.batch import get_batch_qty from python_metrc import METRC -from frappe.utils import now_datetime def welcome_email(): return "Welcome to Bloomstack" From 8018418e32ee5c426e56bff3bcbeefaf68e6aea1 Mon Sep 17 00:00:00 2001 From: Diksha Date: Tue, 25 Jun 2019 15:48:52 +0530 Subject: [PATCH 7/8] feat(core): add custom fields for odometer --- .../bloomstack_core/custom/delivery_stop.json | 185 ++++++ .../bloomstack_core/custom/delivery_trip.json | 565 ++++++++++++++++++ 2 files changed, 750 insertions(+) create mode 100644 bloomstack_core/bloomstack_core/custom/delivery_stop.json create mode 100644 bloomstack_core/bloomstack_core/custom/delivery_trip.json diff --git a/bloomstack_core/bloomstack_core/custom/delivery_stop.json b/bloomstack_core/bloomstack_core/custom/delivery_stop.json new file mode 100644 index 000000000..ad1ddc812 --- /dev/null +++ b/bloomstack_core/bloomstack_core/custom/delivery_stop.json @@ -0,0 +1,185 @@ +{ + "custom_fields": [ + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 1, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2018-11-06 01:17:14.903321", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Stop", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "paid_amount", + "fieldtype": "Currency", + "hidden": 0, + "idx": 12, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "grand_total", + "label": "Paid Amount", + "modified": "2018-11-06 01:17:14.903321", + "modified_by": "Administrator", + "name": "Delivery Stop-paid_amount", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 1, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2018-09-28 22:54:48.552714", + "default": null, + "depends_on": "eval:doc.sales_invoice && doc.docstatus==1 && !doc.visited", + "description": null, + "docstatus": 0, + "dt": "Delivery Stop", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "make_payment_entry", + "fieldtype": "Button", + "hidden": 0, + "idx": 13, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "paid_amount", + "label": "Make Payment Entry", + "modified": "2018-09-28 22:54:48.552714", + "modified_by": "Administrator", + "name": "Delivery Stop-make_payment_entry", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2018-09-28 07:00:48.235318", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Stop", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "sales_invoice", + "fieldtype": "Link", + "hidden": 0, + "idx": 9, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "delivery_note", + "label": "Sales Invoice", + "modified": "2018-09-28 07:00:48.235318", + "modified_by": "Administrator", + "name": "Delivery Stop-sales_invoice", + "no_copy": 0, + "options": "Sales Invoice", + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + } + ], + "custom_perms": [], + "doctype": "Delivery Stop", + "property_setters": [ + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "creation": "2018-11-06 01:17:29.901687", + "default_value": null, + "doc_type": "Delivery Stop", + "docstatus": 0, + "doctype_or_field": "DocType", + "field_name": null, + "idx": 0, + "modified": "2018-11-06 01:17:29.901687", + "modified_by": "Administrator", + "name": "Delivery Stop-read_only_onload", + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "property": "read_only_onload", + "property_type": "Check", + "value": null + } + ], + "sync_on_migrate": 1 +} \ No newline at end of file diff --git a/bloomstack_core/bloomstack_core/custom/delivery_trip.json b/bloomstack_core/bloomstack_core/custom/delivery_trip.json new file mode 100644 index 000000000..6c5e8bc7e --- /dev/null +++ b/bloomstack_core/bloomstack_core/custom/delivery_trip.json @@ -0,0 +1,565 @@ +{ + "custom_fields": [ + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 1, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2019-06-25 03:13:16.371830", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Trip", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "odometer_stop_time", + "fieldtype": "Datetime", + "hidden": 0, + "idx": 20, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "odometer_stop_value", + "label": "Odometer Stop Time", + "modified": "2019-06-25 03:13:16.371830", + "modified_by": "Administrator", + "name": "Delivery Trip-odometer_stop_time", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 1, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2019-06-25 03:13:15.798111", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Trip", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "odometer_stop_value", + "fieldtype": "Int", + "hidden": 0, + "idx": 19, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "column_break_17", + "label": "Odometer Stop Value", + "modified": "2019-06-25 03:13:15.798111", + "modified_by": "Administrator", + "name": "Delivery Trip-odometer_stop_value", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2019-06-25 03:13:15.536284", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Trip", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "column_break_17", + "fieldtype": "Column Break", + "hidden": 0, + "idx": 18, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "actual_distance_travelled", + "label": null, + "modified": "2019-06-25 03:13:15.536284", + "modified_by": "Administrator", + "name": "Delivery Trip-column_break_17", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 1, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2019-06-25 03:13:15.106705", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Trip", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "actual_distance_travelled", + "fieldtype": "Int", + "hidden": 0, + "idx": 17, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "odometer_start_time", + "label": "Actual Distance Travelled", + "modified": "2019-06-25 03:13:15.106705", + "modified_by": "Administrator", + "name": "Delivery Trip-actual_distance_travelled", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 1, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2019-06-25 03:13:14.786408", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Trip", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "odometer_start_time", + "fieldtype": "Datetime", + "hidden": 0, + "idx": 16, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "odometer_start_value", + "label": "Odometer Start Time", + "modified": "2019-06-25 03:13:14.786408", + "modified_by": "Administrator", + "name": "Delivery Trip-odometer_start_time", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 1, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2019-06-25 03:13:14.448372", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Trip", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "odometer_start_value", + "fieldtype": "Int", + "hidden": 0, + "idx": 15, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "odometer", + "label": "Odometer Start Value", + "modified": "2019-06-25 03:13:14.448372", + "modified_by": "Administrator", + "name": "Delivery Trip-odometer_start_value", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2019-06-25 03:13:14.150139", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Trip", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "odometer", + "fieldtype": "Section Break", + "hidden": 0, + "idx": 14, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "departure_time", + "label": "Odometer", + "modified": "2019-06-25 03:13:14.150139", + "modified_by": "Administrator", + "name": "Delivery Trip-odometer", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2018-09-07 02:42:46.433320", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Trip", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "map_embed", + "fieldtype": "Long Text", + "hidden": 1, + "idx": 27, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "map_html", + "label": "Map Embed", + "modified": "2018-09-07 02:42:46.433320", + "modified_by": "Administrator", + "name": "Delivery Trip-map_embed", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2018-09-07 02:42:04.358976", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Trip", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "map_html", + "fieldtype": "HTML", + "hidden": 0, + "idx": 26, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "sb_map", + "label": "Map", + "modified": "2018-09-07 02:42:04.358976", + "modified_by": "Administrator", + "name": "Delivery Trip-map_html", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "collapsible_depends_on": null, + "columns": 0, + "creation": "2018-09-07 02:41:37.771282", + "default": null, + "depends_on": null, + "description": null, + "docstatus": 0, + "dt": "Delivery Trip", + "fetch_from": null, + "fetch_if_empty": 0, + "fieldname": "sb_map", + "fieldtype": "Section Break", + "hidden": 0, + "idx": 25, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "insert_after": "optimize_route", + "label": "Map", + "modified": "2018-09-07 02:41:37.771282", + "modified_by": "Administrator", + "name": "Delivery Trip-sb_map", + "no_copy": 0, + "options": null, + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": null, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "translatable": 0, + "unique": 0, + "width": null + } + ], + "custom_perms": [], + "doctype": "Delivery Trip", + "property_setters": [ + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "creation": "2019-06-25 05:33:50.964282", + "default_value": null, + "doc_type": "Delivery Trip", + "docstatus": 0, + "doctype_or_field": "DocType", + "field_name": null, + "idx": 0, + "modified": "2019-06-25 05:33:50.964282", + "modified_by": "Administrator", + "name": "Delivery Trip-read_only_onload", + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "property": "read_only_onload", + "property_type": "Check", + "value": null + }, + { + "_assign": null, + "_comments": null, + "_liked_by": null, + "_user_tags": null, + "creation": "2018-08-22 02:09:11.677024", + "default_value": null, + "doc_type": "Delivery Trip", + "docstatus": 0, + "doctype_or_field": "DocField", + "field_name": "naming_series", + "idx": 0, + "modified": "2018-09-06 03:22:24.860286", + "modified_by": "Administrator", + "name": "Delivery Trip-naming_series-options", + "owner": "Administrator", + "parent": null, + "parentfield": null, + "parenttype": null, + "property": "options", + "property_type": "Text", + "value": "TOUR-.#####" + } + ], + "sync_on_migrate": 1 +} \ No newline at end of file From 261127daf37e6f50d0a8e328986609b11922ac5e Mon Sep 17 00:00:00 2001 From: Rohan Bansal Date: Wed, 3 Jul 2019 17:40:46 +0530 Subject: [PATCH 8/8] fix: Remove child table changes + minor fixes --- .../bloomstack_core/custom/delivery_stop.json | 185 ------------------ bloomstack_core/hook_events/delivery_trip.py | 6 +- bloomstack_core/public/js/delivery_trip.js | 90 ++++----- bloomstack_core/utils.py | 13 +- 4 files changed, 46 insertions(+), 248 deletions(-) delete mode 100644 bloomstack_core/bloomstack_core/custom/delivery_stop.json diff --git a/bloomstack_core/bloomstack_core/custom/delivery_stop.json b/bloomstack_core/bloomstack_core/custom/delivery_stop.json deleted file mode 100644 index ad1ddc812..000000000 --- a/bloomstack_core/bloomstack_core/custom/delivery_stop.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "custom_fields": [ - { - "_assign": null, - "_comments": null, - "_liked_by": null, - "_user_tags": null, - "allow_on_submit": 1, - "bold": 0, - "collapsible": 0, - "collapsible_depends_on": null, - "columns": 0, - "creation": "2018-11-06 01:17:14.903321", - "default": null, - "depends_on": null, - "description": null, - "docstatus": 0, - "dt": "Delivery Stop", - "fetch_from": null, - "fetch_if_empty": 0, - "fieldname": "paid_amount", - "fieldtype": "Currency", - "hidden": 0, - "idx": 12, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "insert_after": "grand_total", - "label": "Paid Amount", - "modified": "2018-11-06 01:17:14.903321", - "modified_by": "Administrator", - "name": "Delivery Stop-paid_amount", - "no_copy": 0, - "options": null, - "owner": "Administrator", - "parent": null, - "parentfield": null, - "parenttype": null, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "print_width": null, - "read_only": 1, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "translatable": 0, - "unique": 0, - "width": null - }, - { - "_assign": null, - "_comments": null, - "_liked_by": null, - "_user_tags": null, - "allow_on_submit": 1, - "bold": 0, - "collapsible": 0, - "collapsible_depends_on": null, - "columns": 0, - "creation": "2018-09-28 22:54:48.552714", - "default": null, - "depends_on": "eval:doc.sales_invoice && doc.docstatus==1 && !doc.visited", - "description": null, - "docstatus": 0, - "dt": "Delivery Stop", - "fetch_from": null, - "fetch_if_empty": 0, - "fieldname": "make_payment_entry", - "fieldtype": "Button", - "hidden": 0, - "idx": 13, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "insert_after": "paid_amount", - "label": "Make Payment Entry", - "modified": "2018-09-28 22:54:48.552714", - "modified_by": "Administrator", - "name": "Delivery Stop-make_payment_entry", - "no_copy": 0, - "options": null, - "owner": "Administrator", - "parent": null, - "parentfield": null, - "parenttype": null, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "print_width": null, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "translatable": 0, - "unique": 0, - "width": null - }, - { - "_assign": null, - "_comments": null, - "_liked_by": null, - "_user_tags": null, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "collapsible_depends_on": null, - "columns": 0, - "creation": "2018-09-28 07:00:48.235318", - "default": null, - "depends_on": null, - "description": null, - "docstatus": 0, - "dt": "Delivery Stop", - "fetch_from": null, - "fetch_if_empty": 0, - "fieldname": "sales_invoice", - "fieldtype": "Link", - "hidden": 0, - "idx": 9, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "insert_after": "delivery_note", - "label": "Sales Invoice", - "modified": "2018-09-28 07:00:48.235318", - "modified_by": "Administrator", - "name": "Delivery Stop-sales_invoice", - "no_copy": 0, - "options": "Sales Invoice", - "owner": "Administrator", - "parent": null, - "parentfield": null, - "parenttype": null, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "print_width": null, - "read_only": 1, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "translatable": 0, - "unique": 0, - "width": null - } - ], - "custom_perms": [], - "doctype": "Delivery Stop", - "property_setters": [ - { - "_assign": null, - "_comments": null, - "_liked_by": null, - "_user_tags": null, - "creation": "2018-11-06 01:17:29.901687", - "default_value": null, - "doc_type": "Delivery Stop", - "docstatus": 0, - "doctype_or_field": "DocType", - "field_name": null, - "idx": 0, - "modified": "2018-11-06 01:17:29.901687", - "modified_by": "Administrator", - "name": "Delivery Stop-read_only_onload", - "owner": "Administrator", - "parent": null, - "parentfield": null, - "parenttype": null, - "property": "read_only_onload", - "property_type": "Check", - "value": null - } - ], - "sync_on_migrate": 1 -} \ No newline at end of file diff --git a/bloomstack_core/hook_events/delivery_trip.py b/bloomstack_core/hook_events/delivery_trip.py index 8abc35396..dce34c574 100644 --- a/bloomstack_core/hook_events/delivery_trip.py +++ b/bloomstack_core/hook_events/delivery_trip.py @@ -1,8 +1,6 @@ -from frappe.model.document import Document import frappe def set_vehicle_last_odometer_value(trip, method): - if trip.actual_distance_travelled: - frappe.db.set_value('Vehicle', trip.vehicle, 'last_odometer', trip.odometer_stop_value) - + if trip.actual_distance_travelled: + frappe.db.set_value('Vehicle', trip.vehicle, 'last_odometer', trip.odometer_stop_value) diff --git a/bloomstack_core/public/js/delivery_trip.js b/bloomstack_core/public/js/delivery_trip.js index ffe82c2f3..5bff10645 100644 --- a/bloomstack_core/public/js/delivery_trip.js +++ b/bloomstack_core/public/js/delivery_trip.js @@ -1,50 +1,44 @@ frappe.ui.form.on('Delivery Trip', { - refresh: (frm) => { - if (frm.doc.docstatus == 1 && frm.doc.status != "Completed") { - if (frm.doc.odometer_start_value == 0) { - frm.add_custom_button(__("Start"), () => { - frappe.prompt([{ - "label": "Odometer Start Value", - "fieldtype": "Int", - "fieldname": "odometer_start_value", - "reqd": 1 - }, - ], - function (data) { - frm.set_value('odometer_start_value', data.odometer_start_value); - frm.set_value('odometer_start_time', frappe.datetime.now_datetime()); - frm.dirty(); - frm.save_or_update(); - }, - __("Enter Odometer Value")); - - }).addClass("btn-primary"); - } - else if (frm.doc.odometer_start_value > 0 && frm.doc.odometer_stop_value == 0) { - frm.add_custom_button(__("Stop"), () => { - - frappe.prompt([{ - "label": "Odometer Stop Value", - "fieldtype": "Int", - "fieldname": "odometer_stop_value", - "reqd": 1 - }, - ], - function (data) { - if (data.odometer_stop_value > frm.doc.odometer_start_value) { - frm.set_value('odometer_stop_value', data.odometer_stop_value); - frm.set_value('odometer_stop_time', frappe.datetime.now_datetime()); - frm.set_value('actual_distance_travelled', (data.odometer_stop_value - frm.doc.odometer_start_value)); - frm.dirty(); - frm.save_or_update(); - } else { - frappe.throw("The stop value is smaller than the start value!"); - } - }, - __("Enter Odometer Value")); - - }).addClass("btn-primary"); - } - } - } + refresh: (frm) => { + if (frm.doc.docstatus == 1 && frm.doc.status != "Completed") { + if (frm.doc.odometer_start_value == 0) { + frm.add_custom_button(__("Start"), () => { + frappe.prompt({ + "label": "Odometer Start Value", + "fieldtype": "Int", + "fieldname": "odometer_start_value", + "reqd": 1 + }, + (data) => { + frm.set_value('odometer_start_value', data.odometer_start_value); + frm.set_value('odometer_start_time', frappe.datetime.now_datetime()); + frm.dirty(); + frm.save_or_update(); + }, + __("Enter Odometer Value")); + }).addClass("btn-primary"); + } else if (frm.doc.odometer_start_value > 0 && frm.doc.odometer_stop_value == 0) { + frm.add_custom_button(__("Stop"), () => { + frappe.prompt({ + "label": "Odometer Stop Value", + "fieldtype": "Int", + "fieldname": "odometer_stop_value", + "reqd": 1 + }, + (data) => { + if (data.odometer_stop_value > frm.doc.odometer_start_value) { + frm.set_value('odometer_stop_value', data.odometer_stop_value); + frm.set_value('odometer_stop_time', frappe.datetime.now_datetime()); + frm.set_value('actual_distance_travelled', (data.odometer_stop_value - frm.doc.odometer_start_value)); + frm.dirty(); + frm.save_or_update(); + } else { + frappe.throw("The stop value cannot be lower than the start value"); + } + }, + __("Enter Odometer Value")); + }).addClass("btn-primary"); + } + } + } }); \ No newline at end of file diff --git a/bloomstack_core/utils.py b/bloomstack_core/utils.py index 7a86d4a79..e6b2309d4 100755 --- a/bloomstack_core/utils.py +++ b/bloomstack_core/utils.py @@ -8,6 +8,7 @@ from erpnext.stock.doctype.batch.batch import get_batch_qty from python_metrc import METRC + def welcome_email(): return "Welcome to Bloomstack" @@ -140,7 +141,7 @@ def authorize_document(sign=None, signee=None, docname=None): authorized_doc.is_signed = 1 authorized_doc.authorizer_signature = sign authorized_doc.signee = signee - + authorized_doc.submit() @@ -159,13 +160,3 @@ def create_authorization_request(dt, dn, contact_email, contact_name=None): new_authorization_request.linked_docname = dn new_authorization_request.authorizer_email = contact_email new_authorization_request.save() - - -@frappe.whitelist() -def update_odometer(dn, start=None, stop=None): - delivery_trip = frappe.get_doc("Delivery Trip", dn) - if start: - delivery_trip.update({"odometer_start_value": int(start), "odometer_start_time": now_datetime()}) - else: - delivery_trip.update({"odometer_stop_value": int(stop), "odometer_stop_time": now_datetime(), "actual_distance_travelled": int(stop) - delivery_trip.odometer_start_value}) - delivery_trip.save()