diff --git a/smart_service/masters/doctype/vehicle/vehicle.js b/smart_service/masters/doctype/vehicle/vehicle.js
index 4b49623..f5c1973 100644
--- a/smart_service/masters/doctype/vehicle/vehicle.js
+++ b/smart_service/masters/doctype/vehicle/vehicle.js
@@ -1,10 +1,11 @@
// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors
// For license information, please see license.txt
-cur_frm.fields_dict['vehicle_segment'].get_query = function(doc, cdt, cdn) {
- return {query:"smart_service.masters.doctype.vehicle.vehicle.vehicle_segment",
- };
+cur_frm.fields_dict['vehicle_segment'].get_query = function (doc, cdt, cdn) {
+ return {
+ query: "smart_service.masters.doctype.vehicle.vehicle.vehicle_segment",
};
+};
var original_display_order = 0;
var vehicle_count = 0;
@@ -12,116 +13,116 @@ var skm_array = [];
var dusted = false;
frappe.ui.form.on('Vehicle', {
- onload: function(frm) {
+ onload: function (frm) {
if (!frm.is_new()) fnLoad_skm_initial_values(frm);
- },
+ },
image: function (frm) {
- var file = frm.doc.image;
- if (frm.doc.image) {
- frappe.call({
- method: "smart_service.masters.doctype.vehicle.vehicle.image_size",
- args: {
- "image": frm.doc.image,
- "doc": frm.doc.name
- },
- callback: function (r) {
- if(r.message){
- if(r.message == frm.doc.image){
- frm.doc.image = '';
- cur_frm.refresh_field('image');
- frappe.show_alert({
- message: __('Max Dimesions are 2048*1080.'),
- indicator: 'yellow'
- }, 10);
- }else{
- frm.doc.image = '';
- cur_frm.refresh_field('image');
- frappe.show_alert({
- message: __('Max Image Size is 10MB.'),
- indicator: 'yellow'
- }, 10);
- }
- }
- }
- })
- }
- },
- refresh: function(frm) {
- if (frm.is_new()){
- frm.set_df_property('display_order', 'read_only', 1);
+ var file = frm.doc.image;
+ if (frm.doc.image) {
+ frappe.call({
+ method: "smart_service.masters.doctype.vehicle.vehicle.image_size",
+ args: {
+ "image": frm.doc.image,
+ "doc": frm.doc.name
+ },
+ callback: function (r) {
+ if (r.message) {
+ if (r.message == frm.doc.image) {
+ frm.doc.image = '';
+ cur_frm.refresh_field('image');
+ frappe.show_alert({
+ message: __('Max Dimesions are 2048*1080.'),
+ indicator: 'yellow'
+ }, 10);
+ } else {
+ frm.doc.image = '';
+ cur_frm.refresh_field('image');
+ frappe.show_alert({
+ message: __('Max Image Size is 10MB.'),
+ indicator: 'yellow'
+ }, 10);
+ }
+ }
+ }
+ })
+ }
+ },
+ refresh: function (frm) {
+ if (frm.is_new()) {
+ frm.set_df_property('display_order', 'read_only', 1);
} else {
- frm.set_df_property('display_order', 'read_only', 0);
+ frm.set_df_property('display_order', 'read_only', 0);
}
if (!frm.is_new()) {
frm.disable_save(); //*** Check Refresh for Save Function
-
- frm.add_custom_button(__('Save'), function(){
+
+ frm.add_custom_button(__('Save'), function () {
fnSave(frm);
- }).addClass("btn-warning").css({'background-color':'#e31a37', 'color':'white'});
+ }).addClass("btn-warning").css({ 'background-color': '#e31a37', 'color': 'white' });
}
- frappe.db.count('Vehicle')
+ frappe.db.count('Vehicle')
.then(count => {
vehicle_count = count + 1;
- if (frm.is_new()){
- frm.set_value("display_order",vehicle_count);
+ if (frm.is_new()) {
+ frm.set_value("display_order", vehicle_count);
} else {
original_display_order = frm.doc.display_order;
}
- });
- },
-
- validate: function(frm) {
- if(frm.doc.vehicle){
- if (frm.doc.vehicle.length>50){
- frappe.msgprint("Vehicle: Only 50 characters are allowed")
-
- validated = false;
- }
- if (frm.doc.vehicle.length == 1){
- frappe.msgprint("Vehicle: Single character not allowed")
- validated = false;
- }
- }
- if (frm.doc.vehicle == "."){
- frappe.throw(__("Just a . is not prescribed!"));
- frappe.validated = false;
- }
+ });
+ },
+
+ validate: function (frm) {
+ if (frm.doc.vehicle) {
+ if (frm.doc.vehicle.length > 50) {
+ frappe.msgprint("Vehicle: Only 50 characters are allowed")
+
+ validated = false;
+ }
+ if (frm.doc.vehicle.length == 1) {
+ frappe.msgprint("Vehicle: Single character not allowed")
+ validated = false;
+ }
+ }
+ if (frm.doc.vehicle == ".") {
+ frappe.throw(__("Just a . is not prescribed!"));
+ frappe.validated = false;
+ }
//var regex = /^[A-Za-z0-9&-()@/,.<>_ ]*$/;
var regex = /[!@#$%^&*()_+\=\[\]{};'`~:"\\|.<>\/?]+/;
- if(frm.doc.vehicle){
- if (regex.test(frm.doc.vehicle) === true){
- frappe.throw(__("Vehicle: Only letters, numbers and -, are allowed."));
- frappe.validated = false;
- } else if(frm.doc.vehicle) {
- if(frm.doc.vehicle.includes("'")) {
+ if (frm.doc.vehicle) {
+ if (regex.test(frm.doc.vehicle) === true) {
frappe.throw(__("Vehicle: Only letters, numbers and -, are allowed."));
frappe.validated = false;
+ } else if (frm.doc.vehicle) {
+ if (frm.doc.vehicle.includes("'")) {
+ frappe.throw(__("Vehicle: Only letters, numbers and -, are allowed."));
+ frappe.validated = false;
+ }
}
}
- }
-
- if (frm.doc.display_order && frm.doc.vehicle && frm.doc.vehicle_segment){
+
+ if (frm.doc.display_order && frm.doc.vehicle && frm.doc.vehicle_segment) {
//*** check if there is same display_order
frappe.db.get_list('Vehicle', {
fields: ['display_order', 'name'],
filters: {
display_order: frm.doc.display_order,
- vehicle:["!=",frm.doc.vehicle]
+ vehicle: ["!=", frm.doc.vehicle]
}
}).then(records => {
- if (records.length){
+ if (records.length) {
frappe.db.set_value('Vehicle', records[0].name, {
display_order: original_display_order
}).then(r => {
let doc = r.message;
frappe.show_alert({
- message:__('Swapped display order with: ' + records[0].name),
- indicator:'green'
+ message: __('Swapped display order with: ' + records[0].name),
+ indicator: 'green'
}, 5);
});
} else {
- if (frm.doc.display_order > vehicle_count){
+ if (frm.doc.display_order >= vehicle_count) {
let display_vehicle_count = vehicle_count - 1;
msgprint('There are only ' + display_vehicle_count + ' vehicle(s)');
frappe.validated = false;
@@ -129,23 +130,23 @@ frappe.ui.form.on('Vehicle', {
}
});
}
- },
+ },
- service_kilometers: function(frm) {
+ service_kilometers: function (frm) {
//*** Check & add any KM got added in Service Kilometers
dusted = true;
frm.doc.service_kilometers.forEach(row => {
let index = skm_array.findIndex(o => o.name === row.name);
- if (index < 0){
+ if (index < 0) {
let index1 = skm_array.findIndex(o => o.skm_initial === row.service_kilometers);
- if (index1 >= 0){
+ if (index1 >= 0) {
skm_array[index1].type = "Initial";
} else {
var valueToPush = {};
valueToPush.type = "New";
valueToPush.name = row.name;
- valueToPush.skm_initial = (row.service_kilometers === undefined ? null:row.service_kilometers);
+ valueToPush.skm_initial = (row.service_kilometers === undefined ? null : row.service_kilometers);
skm_array.push(valueToPush);
}
}
@@ -155,20 +156,20 @@ frappe.ui.form.on('Vehicle', {
var valueToPush = {};
valueToPush.type = "Initial";
valueToPush.name = row.name;
- valueToPush.skm_initial = (row.service_kilometers === undefined ? null:row.service_kilometers);
+ valueToPush.skm_initial = (row.service_kilometers === undefined ? null : row.service_kilometers);
current_skm_array.push(valueToPush);
});
//*** Check & remove any KM got Removed in Service Kilometers
- var idx=0;
+ var idx = 0;
skm_array.forEach(row => {
idx++;
let index = current_skm_array.findIndex(o => o.skm_initial === row.skm_initial);
- if (index < 0){
+ if (index < 0) {
//row.type = row.type === "New" ? "No Action": "Deleted";
- if (row.type == "New"){
- skm_array.splice(idx-1, 1);
- }else{
+ if (row.type == "New") {
+ skm_array.splice(idx - 1, 1);
+ } else {
row.type = "Deleted";
}
}
@@ -177,74 +178,74 @@ frappe.ui.form.on('Vehicle', {
});
frappe.ui.form.on('Vehicle', {
- after_save1: function(frm) {
- frappe.call({
+ after_save1: function (frm) {
+ frappe.call({
"method": "smart_service.masters.doctype.vehicle.vehicle.update_km_mapping",
"args": {
- "doc":frm.doc.name,
+ "doc": frm.doc.name,
"skm_array": skm_array,
"skm": frm.doc.service_kilometers
- },
- freeze: true,
- async:false,
- callback:function(r){}
+ },
+ freeze: true,
+ async: false,
+ callback: function (r) { }
});
-
- }
-
+
+ }
+
});
-function fnLoad_skm_initial_values(frm){
+function fnLoad_skm_initial_values(frm) {
// ***Store the Initial Service Kilometer values
skm_array.length = 0;
frm.doc.service_kilometers.forEach(row => {
var valueToPush = {};
valueToPush.type = "Initial";
valueToPush.name = row.name;
- valueToPush.skm_initial = (row.service_kilometers === undefined ? null:row.service_kilometers);
+ valueToPush.skm_initial = (row.service_kilometers === undefined ? null : row.service_kilometers);
skm_array.push(valueToPush);
});
}
-function fnSave(frm){
- if (dusted){
+function fnSave(frm) {
+ if (dusted) {
frappe.confirm('Changes will impact KM Mapping associated with this vehicle: ' + frm.doc.vehicle + '',
() => {
//*** Change the State to Draft for KM
frm.save();
skm_array.forEach((array_row) => {
-
+
//*** Add Edit Delete the respective Kiolmeter with Updated/Deleted SKM
- if (array_row.type !== "Initial"){
+ if (array_row.type !== "Initial") {
frappe.call({
"method": "smart_service.masters.doctype.vehicle.vehicle.update_km_mapping",
"args": {
"doc": frm.doc.name,
- "vehicle":frm.doc.vehicle,
- "type":array_row.type,
- "skm_initial":array_row.skm_initial
- },
- freeze: true,
- async:false,
- callback:function(r){}
+ "vehicle": frm.doc.vehicle,
+ "type": array_row.type,
+ "skm_initial": array_row.skm_initial
+ },
+ freeze: true,
+ async: false,
+ callback: function (r) { }
});
}
});
frappe.show_alert({
- message:__('Inserted Rows in Respective KM Doc & made as Draft Mode!'),
- indicator:'green'
+ message: __('Inserted Rows in Respective KM Doc & made as Draft Mode!'),
+ indicator: 'green'
}, 5);
fnLoad_skm_initial_values(frm);
}, () => {
// action to perform if No is selected
- });
- } else if(frm.is_dirty()){
+ });
+ } else if (frm.is_dirty()) {
frm.save();
fnLoad_skm_initial_values(frm);
} else {
frappe.show_alert({
- message:__('No updates for Kilometer Mapping... '),
- indicator:'yellow'
+ message: __('No updates for Kilometer Mapping... '),
+ indicator: 'yellow'
}, 5);
}
}
\ No newline at end of file
diff --git a/smart_service/masters/doctype/vehicle_segment/vehicle_segment.js b/smart_service/masters/doctype/vehicle_segment/vehicle_segment.js
index 6cdf017..b04ef4c 100644
--- a/smart_service/masters/doctype/vehicle_segment/vehicle_segment.js
+++ b/smart_service/masters/doctype/vehicle_segment/vehicle_segment.js
@@ -81,7 +81,7 @@ frappe.ui.form.on('Vehicle Segment', {
}, 5);
});
} else {
- if (frm.doc.display_order > vehicle_count){
+ if (frm.doc.display_order >= vehicle_count){
let display_vehicle_count = vehicle_count - 1;
msgprint('There are only ' + display_vehicle_count + ' Vehicle Segment(s)');
frappe.validated = false;