/*================================================================================================================\ + + 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); });