API Docs for:
Show:

File: Inventory\manageVechile.js

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


// ========================== 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("<span class='k-icon k-edit'></span>");
    $('.k-grid-Delete').text("").removeClass("k-button k-button-icontext").html("<span class='k-icon k-delete'></span>");

    // 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);
        },
        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);
        },
        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 <b> ' + oVehicle.VehicleTypeId + '</b> of Product Variant <b> ' + oVehicle.VehicleTypeTagging + '</b> ?', 'Delete', function (result) {
    jConfirm(MANAGE_FLEET_MESSAGES.confirmDeleteVModel + ' <b> ' + oVehicle.VehicleTypeId + '</b> of Product Variant <b> ' + oVehicle.VehicleTypeTagging + '</b> ?', '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 = true;
    var VehicleTypeName = $("#VehicleTypeName").val();

    $("#spanVehicleTypeId").hide();
    $("#spanVehicleTypeTagging").hide();
    $("#spanVehicleTypeName").hide();
    if (VehicleTypeId == "") {
        $("#spanVehicleTypeId").show();
        returnResult = false;
    }
    else if (typeof VehicleTypeTagging == "undefined" || VehicleTypeTagging == "") {
        $("#spanVehicleTypeTagging").show();
        returnResult = false;
    }
    else if (typeof VehicleTypeName == "") {
        $("#spanVehicleTypeName").show();
        returnResult = false;
    }
    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);
});