/*================================================================================================================\
+
+ Project : GODATA Eicher
+ Filename : ManageVechile.js
+ Module Name : Inventory Module
+ Purpose : Manage Vechile Curd.
+ Coded By : Gourav Jhangikhel
+
+================================================================================================================*/
/**
* This Module manage Vechile.
* @module Inventory
*/
/**
* This class contains functions related to show Vechile details and manage CURD.
* @class ManageVechile
* @constructor
*/
var activeRequest, activeRequest_Edit, xhr_exportReport, activeRequest_service, activeRequest_dataSource;
var activeRequest_Organization, Action;
//This Variable is used to check whether the vechile Name is changed or not before insert or update
var VehicleName = '';
var VehicleType = '';
var udanVehicleName ='';
var udanVehicleId ='';
// ========================== Common function ===================================================================
/**
* Add kendow window to given Div id.
* @method addKendoWindowToDiv
* @param divId : id on which kendow wondow will add.
* @param titletext: Title text on window/popup.
* @for ManageVechile
*/
function addKendoWindowToDiv(divId, titleText, width, left) {
$(divId).kendoWindow({
width: width,
title: titleText,
modal: true,
resizable: false,
draggable: true,
position: {
top: 180,
left: left
}
});
}
function SetKendoWindowTitle(divId, titleText) {
var dialog = $(divId).data("kendoWindow");
dialog.title(titleText);
}
/**
* Close the kendo window.
* @method closeWindow
* @param divId : Id which we want to close kendo window.
* @for ManageVechile
*/
function closeWindow(divId) {
$(divId).data("kendoWindow").close();
}
// ========================== End of Common function ===================================================================
//================= Vehicles Details ==============================================================================
/**
* Fired when data bound to grid Vechile.
* @method onRowBoundVechile
* @for ManageVechile
*/
function onRowBoundVechile(e) {
// Add Edit and delete icon.
$('.k-grid-Edit').text("").removeClass("k-button k-button-icontext").html("");
$('.k-grid-Delete').text("").removeClass("k-button k-button-icontext").html("");
// called common file function to show title on mouse hover.
addTitleAttribute();
// show no data available message when grid has no data.
displayNoResult(e)
}
/**
* Show Vechile details to grid.
* @method showVechileDetails
* @for ManageVechile
*/
function showVechileDetails() {
$.post("/Inventory/Vehicle_Detail", null, function (data) {
$("#divVechicleDetails").html(data);
});
}
// ========================== Create Vechile ======================================================================
/**
* This function create a popup for Create Vechile.
* @method createVechile
* @for ManageVechile
*/
function createVehicle() {
// Ajax request
if (activeRequest && activeRequest.readystate != 4) {
activeRequest.abort();
}
activeRequest = $.ajax({
type: "POST",
url: "/Inventory/AddOrEditVehicle",
success: function (data) {
$("#divCreateVechicle").html('');
$("#divCreateVechicle").html('');
$("#divCreateVechicle").html(data);
//$("#VehicleTypeTagging").hide();
//open form in new dialog box
$("#divCreateVechicle").data("kendoWindow").open();
$("#btnCrt").prop('value', 'Create');
SetKendoWindowTitle("#divCreateVechicle", "Create Vehicle Model");
$("#VehicleTypeId").attr('readonly', false);
$("#Action").val(Action);
//This Variable is used to check whether the vechile Name is changed or not before insert or update
VehicleName = $("#VehicleTypeName").val();
//This Variable is used to check whether the vechile type is changed or not before insert or update
VehicleType = $("#ddVehicleTypeTagging").val();
//This Variable is used to check whether the vechile Name is changed or not before insert or update
udanVehicleName = $("#udanVehicleProductName").val();
//This Variable is used to check whether the vechile Name is changed or not before insert or update
udanVehicleId = $("#udanVehicleProductId").val();
},
error: function (data) {
console.log(data);
}
});
}
/**
* This function create a popup for Edit Or Update Vechile.
* @method editVechile
* @for ManageVechile
*/
function editVehicle(e) {
// Get selected row
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
// Create Vechile model
oVehicle = {};
oVehicle.VehicleTypeId = dataItem.VehicleTypeId;
oVehicle.VehicleTypeName = dataItem.VehicleTypeName;
oVehicle.VehicleTypeTagging = dataItem.VehicleTypeTagging;
//// Ajax request for edit ; if exist then kill it.
if (activeRequest_Edit && activeRequest_Edit.readystate != 4) {
activeRequest_Edit.abort();
}
activeRequest_Edit = $.ajax({
type: "GET",
url: "/Inventory/AddOrEditVehicle",
data: oVehicle,
success: function (data) {
$("#divCreateVechicle").html('');
$("#divCreateVechicle").html(data);
//open form in new dialog box
$("#divCreateVechicle").data("kendoWindow").open();
$("#btnCrt").prop('value', 'Update');
//$('#ddVehicleTypeTagging').hide();
//$('#VehicleTypeTagging').show();
SetKendoWindowTitle("#divCreateVechicle", "Edit Vehicle Model");
$("#VehicleTypeId").attr('readonly', true);
VehicleName = $("#VehicleTypeName").val();
//This Variable is used to check whether the vechile type is changed or not before insert or update
VehicleType = $("#ddVehicleTypeTagging").val();
},
error: function (data) {
console.log(data);
}
});
// Create Vehicle model
}
/**
* Delete Vechile entry.
* @method deleteVechile
* @for ManageVechile
*/
function deleteVehicle(e) {
// get row data on which click event fired
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
// Create Vechile model
oVehicle = {};
oVehicle.VehicleTypeId = dataItem.VehicleTypeId;
oVehicle.VehicleTypeName = dataItem.VehicleTypeName;
oVehicle.VehicleTypeTagging = dataItem.VehicleTypeTagging;
oVehicle.IsDeleted = true;
oVehicle.Operation = "update";
//jConfirm('Are you sure that you want to delete the Vehicle model ' + oVehicle.VehicleTypeId + ' of Product Variant ' + oVehicle.VehicleTypeTagging + ' ?', 'Delete', function (result) {
jConfirm(MANAGE_FLEET_MESSAGES.confirmDeleteVModel + ' ' + oVehicle.VehicleTypeId + ' of Product Variant ' + oVehicle.VehicleTypeTagging + ' ?', 'Delete', function (result) {
//again check whether user input is true
if (result) {
//send ajax request to controller to delete connected device entry.
$.ajax({
type: "POST",
url: "/Inventory/InsertVehicleModel/",
data: oVehicle,
success: function (data) {
if (data.success == true) {
var grid = $("#gridVechile").data("kendoGrid");
grid.removeRow(grid.tbody.find("tr")[$(e.currentTarget).closest("tr").index()]);
//jAlert('Vehicle Model deleted successfully!!', 'Message');
jAlert(MANAGE_VEHICLE_MESSAGES.deleteVModelSuccess, 'Message');
}
else {
//alert box to show unsuccess deletion message
//jAlert('Deletion is unsuccessful!!', 'Message');
jAlert(MANAGE_VEHICLE_MESSAGES.deleteVModelFail, 'Message');
}
},
error: function (data) {
console.log(data);
}
});
}
});
}
/**
* Called when submit button clicked on Create Vehicle and Edit Vehicle form.
* and Validate Vehicle form.
* @method onBeginCreateVehicle
* @for ManageVehicle
*/
function onBeginCreateVehicle() {
var VehicleTypeId = $("#VehicleTypeId").val();
var VehicleTypeTagging = $('#ddVehicleTypeTagging :selected').val();
var returnResult = false;
var VehicleTypeName = $("#VehicleTypeName").val();
var udanVehicleTypeId = $("#udanVehicleProductId").val();
var udanVehicleTypeName = $("#udanVehicleProductName").val();
$("#spanVehicleTypeId").hide();
$("#spanVehicleTypeTagging").hide();
$("#spanVehicleTypeName").hide();
if (typeof VehicleTypeTagging == "undefined" || VehicleTypeTagging == "")
$("#spanVehicleTypeTagging").show();
else if (typeof VehicleTypeName == "")
$("#spanVehicleTypeName").show();
else if (VehicleName == $("#VehicleTypeName").val() && VehicleType == $("#ddVehicleTypeTagging").val() && udanVehicleName == udanVehicleTypeName && udanVehicleId == udanVehicleTypeId)
jAlert(MANAGE_VEHICLE_MESSAGES.changeVehicleNameorType, 'message');
else
returnResult = true;
return returnResult;
}
/**
* Called when Vehicle added successfully.
* In case of success close popup otherwise show error message.
* @method onSuccessVehicle
* @for ManageVehicle
*/
function onSuccessVehicle(result) {
if (result.success) {
// close popup for create Vehicle
closeWindow("#divCreateVechicle");
// show updated Vehicle details
showVechileDetails();
}
jAlert(result.message, 'message');
}
//========================== document ready=======================
/**
* To do some initial functionality on page when Document is ready.
* @event document.ready
* @for ManageVehicle
*/
$(document).ready(function () {
addKendoWindowToDiv("#divCreateVechicle", "Create Vehicle Model", "683px", 422);
});