Subversion Repositories SmartDukaan

Rev

Rev 34329 | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

$(function () {

    $(document).on('click', ".submit-inactive", function () {

        var id = $(this).data('id');
        if (confirm("Are you sure you want to In Active this Supplier")) {

            doPostAjaxRequestHandler(context + "/setStatusInActive?id=" + id,
                function (response) {
                    if (response === "true") {

                        getAllSupplier("main-content");
                    }
                });
        }

    });

    $(document).on('click', ".myFile", function () {

        console.log("hello");
        if (confirm('Confirm upload ?')) {
            var fileSelector = $(this)[0];
            if (fileSelector != undefined) {
                var url = `${context}/csvFileUploader`;
                console.log(url);
                var file = $(".fileTaxation")[0].files[0];
                let fileInput = $(this);
                console.log("file" + file);
                console.log("fileInput" + fileInput);
                doAjaxUploadRequestHandler(
                    url,
                    'POST',
                    file, function (response) {

                        console.log("reponse" + response);
                    });

            }
        } else {
            // Do nothing!
        }
    });


    $(document).on('click', ".submit-active", function () {

        var id = $(this).data('id');
        if (confirm("Are you sure you want to Active this Supplier")) {
            doPostAjaxRequestHandler(context + "/setStatusActive?id=" + id,
                function (response) {
                    if (response === "true") {
                        getAllInActiveSupplier("main-content");
                    }
                });
        }

    });
    //
    $(document).on('click', ".supplier-edit", function () {
        let supplierId = $(this).data('id');
        let formData = objectifyForm($('form#new-supplier-create-form').serializeArray());
        console.log("Form Data: ", formData);
        doGetAjaxRequestHandler(`${context}/supplier/edit/${supplierId}`,
            function (response) {
                loadMainContent(response);
            });

    });

    function objectifyForm(formArray) {
        return formArray.reduce(function (result, item) {
            if (item.name) {
                result[item.name] = item.value;
            }
            return result;
        }, {});
    }

    $(document).on('click', ".submit-supplier-edit", function () {
        const supplierId = $(this).data('dd');
        const form = $('#new-supplier-create-form');
        const formData = new FormData(form[0]);
        const jsonData = {};
        formData.forEach((value, key) => {
            if (key === 'inputWarehouseLocation') {
                jsonData[key] = Array.from(form.find(`[name="${key}"]`)[0].selectedOptions)
                    .map(option => parseInt(option.value));
            } else {
                jsonData[key] = value;
            }
        });

        // Handle internalWarehouseId separately (may be disabled so not in FormData)
        const internalWarehouseSelect = form.find('#internalWarehouseId');
        const internalWarehouseValue = internalWarehouseSelect.val();
        if (internalWarehouseValue && internalWarehouseValue !== '') {
            jsonData['internalWarehouseId'] = parseInt(internalWarehouseValue);
        } else {
            jsonData['internalWarehouseId'] = null;
        }

        doPostAjaxRequestWithJsonHandler(
            `${context}/supplier/update/${supplierId}`,
            JSON.stringify(jsonData),
            function (response) {
                alert("Supplier updated successfully");
                getAllSupplier("main-content");
            }
        );
    });

    $(document).on('click', ".taxation", function () {
        loadTaxation("main-content");
    });


    $(document).on('click', ".create-warehouse", function () {
        loadCreateWarehouse("main-content");
    });

    $(document).on('click', ".warehouses", function () {
        loadWarehouses("main-content");
    });

    $(document).on('click', ".instruction-items", function () {
        getAuthorisedWarehouses(function (warehouseId) {
            loadInstructionItems(warehouseId, "main-content");
        });
    });
    $(document).on('click', ".supplier-inactive", function () {
        getAllInActiveSupplier("main-content");
    });

    $(document).on('click', ".supplier", function () {
        getAllSupplier("main-content");
    });


    $(document).on('click', ".add-remove-warehouse", function () {
        loadAddRemoveWarehouse("main-content");
    });

    $(document).on('click', "#warehouses-paginated .next", function () {
        loadPaginatedNextItems('/getPaginatedWarehouses', null, 'warehouses-paginated', 'warehouses-table', null);
        $(this).blur();
    });

    $(document).on('click', "#warehouses-paginated .previous", function () {
        loadPaginatedPreviousItems('/getPaginatedWarehouses', null, 'warehouses-paginated', 'warehouses-table', null);
        $(this).blur();
    });

    $(document).on('click', ".add-remove-warehouse-button", function () {
        var emailIdOrMobileNumber = $('#emailIdOrMobileNumber').val();
        var warehouseIds = $('#user-warehouses').val();
        addRemoveWarehouses("main-content", emailIdOrMobileNumber, warehouseIds);
    });


    $(document).on('click', "#instructionItemButton", function () {
        var warehouseId = $("#warehouseId").val();
        var userId = $("#instructionItemModel .userId").val();
        var itemIdQuantityMap = {};
        $("#instructionItemsContainer .instruction-item-item-id-quantity").each(function () {
            var $itemIdQuantity = $(this);
            var itemId = $itemIdQuantity.find('.itemId').val();
            console.log('itemId : ' + itemId);
            var quantity = $itemIdQuantity.find('.quantity').val();
            if (quantity === null || quantity <= 0) {
                quantity = 1;
            }
            console.log('quantity : ' + quantity);
            itemIdQuantityMap[itemId] = quantity;
        });
        submitInstructionItem(warehouseId, userId, itemIdQuantityMap);
        return false;
    });

});

function configureUserWarehousesDropDown() {
    $(document).ready(function () {
        $('#user-warehouses').multiselect({
            includeSelectAllOption: true,
            maxHeight: 200,
            buttonWidth: '280px',
            numberDisplayed: 1,
            nonSelectedText: 'Warehouses',
            nSelectedText: ' - Warehouses Selected',
            allSelectedText: 'All Warehouses Selected',
            enableFiltering: true
        });
    });
}

function instructionItemDialog() {
    var warehouseId = $('#admin-warehouses').val();
    var warehouseName = $('#admin-warehouses option:selected').text();
    var itemIdItemDescriptionDiv = '<div>';
    $("#warehouse-instruction-items option:selected").each(function () {
        console.log(this);
        itemIdItemDescriptionDiv = itemIdItemDescriptionDiv + '<div class="row instruction-item-item-id-quantity">';
        itemIdItemDescriptionDiv = itemIdItemDescriptionDiv + '<div class="col-lg-6">';
        itemIdItemDescriptionDiv = itemIdItemDescriptionDiv + '<input class="itemId" hidden value="' + this.value + '"/>';
        itemIdItemDescriptionDiv = itemIdItemDescriptionDiv + '<p class="form-control">' + this.text + '</p>';
        itemIdItemDescriptionDiv = itemIdItemDescriptionDiv + '</div>';
        itemIdItemDescriptionDiv = itemIdItemDescriptionDiv + '<div class="col-lg-2">';
        itemIdItemDescriptionDiv = itemIdItemDescriptionDiv + '<input type="text" class="form-control quantity" placeholder="Quantity" />';
        itemIdItemDescriptionDiv = itemIdItemDescriptionDiv + '</div>';
        itemIdItemDescriptionDiv = itemIdItemDescriptionDiv + '</div>';
    });
    itemIdItemDescriptionDiv = itemIdItemDescriptionDiv + '</div>';

    var userId = $('#fofo-users').val();
    var userEmailId = $('#fofo-users option:selected').text();

    console.log("warehouseId : " + warehouseId);
    console.log("warehouseName : " + warehouseName);
    console.log("userId : " + userId);
    console.log("userEmailId : " + userEmailId);

    $("#instructionItemModel .warehouseId").val(warehouseId);
    $("#instructionItemModel .userId").val(userId);

    //$(".modal-body .warehouseInformation>span").text(warehouseName);
    $(".modal-body .userInformation>span").text(userEmailId);
    $("#instructionItemsContainer").empty();
    $("#instructionItemsContainer").html(itemIdItemDescriptionDiv);

}

function submitInstructionItem(warehouseId, userId, itemIdQuantityMap) {
    var postData = JSON.stringify({
        "warehouseId": parseInt(warehouseId),
        "userId": userId,
        "itemIdQuantityMap": itemIdQuantityMap
    });
    doPostAjaxRequestWithJsonHandler(context + "/instructionItem", postData, function (response) {
        $('#main-content').html(response);
        alert("Instruction created successfully");
    });
}

function configureWarehouseInstructionItemsDropDown() {
    $(document).ready(function () {
        $('#warehouse-instruction-items').multiselect({
            multiple: true,
            includeSelectAllOption: true,
            maxHeight: 200,
            buttonWidth: '200px',
            numberDisplayed: 1,
            nonSelectedText: 'Items',
            nSelectedText: ' - Items Selected',
            allSelectedText: 'All Items Selected',
            enableFiltering: true
        });
    });
}

function configureWarehousesDropDown() {
    $(document).ready(function () {
        $('#admin-warehouses').multiselect({
            multiple: false,
            includeSelectAllOption: true,
            maxHeight: 200,
            buttonWidth: '200px',
            numberDisplayed: 1,
            nonSelectedText: 'Warehouses',
            nSelectedText: ' - Warehouses Selected',
            allSelectedText: 'All Warehouses Selected',
            enableFiltering: true
        });
    });
}

function loadCreateWarehouse(domId) {
    doGetAjaxRequestHandler(context + "/createWarehouse", function (response) {
        loadMainContent(response);
    });
}

function loadTaxation(domId) {
    doGetAjaxRequestHandler(context + "/createTaxation", function (response) {
        loadMainContent(response);
    });
}

function loadWarehouses(domId) {
    doGetAjaxRequestHandler(context + "/getWarehouses", function (response) {
        $('#' + domId).html(response);
    });
}

function loadWarehouseInstructionItemsByWarehouseId(domId, warehouseId) {
    doGetAjaxRequestHandler(context + "/getInstructionItemsByWarehouseId?warehouseId=" + warehouseId, function (response) {
        $('#' + domId).html(response);
        configureWarehouseInstructionItemsDropDown();
    });
}

function loadInstructionItems(warehouseId, domId) {
    doGetAjaxRequestHandler(context + "/getInstructionItems/" + warehouseId, function (response) {
        $('#' + domId).html(response);
    });
}

function loadAddRemoveWarehouse(domId) {
    doGetAjaxRequestHandler(context + "/getAddRemoveWarehouse", function (response) {
        $('#' + domId).html(response);
    });
}

function getAllSupplier(domId) {
    doGetAjaxRequestHandler(context + "/getAllSupplier", function (response) {
        $('#' + domId).html(response);
    });
}

function getAllInActiveSupplier(domId) {
    doGetAjaxRequestHandler(context + "/getAllInActiveSupplier", function (response) {
        $('#' + domId).html(response);
    });
}


function addRemoveWarehouses(domId, emailIdOrMobileNumber, warehouseIds) {
    if (confirm("Are you sure you want to add or remove warehouses!")) {
        doPostAjaxRequestWithJsonHandler(context + "/addRemoveWarehouses?emailIdOrMobileNumber=" + emailIdOrMobileNumber, JSON.stringify(warehouseIds), function (response) {
            $('#' + domId).html(response);
            $('#emailIdOrMobileNumber').val(emailIdOrMobileNumber);
            getWarehousesByEmailIdOrMobileNumber();
        });
    }
}

function getWarehousesByEmailIdOrMobileNumber() {
    var emailIdOrMobileNumber = $('#emailIdOrMobileNumber').val();
    console.log("emailIdOrMobileNumber = " + emailIdOrMobileNumber);
    if (emailIdOrMobileNumber != "") {
        loadWarehousesByEmailIdOrMobileNumber("warehouses-container", emailIdOrMobileNumber);
    }
}

function loadWarehousesByEmailIdOrMobileNumber(domId, emailIdOrMobileNumber) {
    doGetAjaxRequestHandler(context + "/userWarehouses?emailIdOrMobileNumber=" + emailIdOrMobileNumber, function (response) {
        $('#' + domId).html(response);
        configureUserWarehousesDropDown();
    });
}

$(document).on('click', "#new-supplier", function () {

    doGetAjaxRequestHandler(context + "/getCreateNewSupplier", function (response) {
        $("#main-content").html(response);

    });


});


$(document).on('change', '#warehouseCheckbox', function () {
    let warehouseContainer = document.getElementById("warehouseId");
    warehouseContainer.disabled = !this.checked;
});
$(document).on('click', ".create-supplier-submit", function () {
    console.log("hello");
    var name = $("form#new-supplier-create-form input[name=inputName]").val();
    if (name === "") {
        alert("Name is required");
        return false;
    }
    var phone = $("form#new-supplier-create-form input[name=CheinputPhone]").val();
    if (phone === "") {
        alert("phone is required");
        return false;
    }
    var gst = $("form#new-supplier-create-form input[name=inputGst]").val();
    if (gst === "") {
        alert("gst is required");
        return false;
    }
    var pan = $("form#new-supplier-create-form input[name=inputPan]").val();
    if (pan === "") {
        alert("Pan is required");
        return false;
    }
    var headName = $("form#new-supplier-create-form input[name=inputHeadName]").val();
    if (headName === "") {
        alert("Head Name is required");
        return false;
    }
    var headDesign = $("form#new-supplier-create-form input[name=inputHeadDesign]").val();
    if (headDesign === "") {
        alert("Head Designation is required");
        return false;
    }

    var headEmail = $("form#new-supplier-create-form input[name=inputHeadEmail]").val();
    if (headEmail === "") {
        alert("Head Email is required");
        return false;
    }
    var contactPerson = $("form#new-supplier-create-form input[name=inputContactPerson]").val();
    if (contactPerson === "") {
        alert("Contact Person is required");
        return false;
    }
    var contactPhone = $("form#new-supplier-create-form input[name=inputContactPhone]").val();
    if (contactPhone === "") {
        alert("Contact Phone is required");
        return false;
    }
    var registeredAddress = $("form#new-supplier-create-form input[name=inputRegisteredAddress]").val();
    if (registeredAddress === "") {
        alert("Registered Address is required");
        return false;
    }
    var communicationAddress = $("form#new-supplier-create-form input[name=inputCommunicationAddress]").val();

    if (communicationAddress === "") {
        alert("Communication Address  is required");
        return false;
    }
    var warehouseId = $("#warehouseLocation").val();
    if (warehouseId === "") {
        alert("Warehouse Location  is required");
        return false;
    }
    var warehouseName = $("#warehouseId").val();
    if (warehouseName === "") {
        alert("warehouseName  is required");
        return false;
    }

    var state = $("#stateId").val();
    if (state === "") {
        alert("state  is required");
        return false;
    }
    var pOValidityLimit = $("form#new-supplier-create-form input[name=inputPOValidityLimit]").val();
    if (pOValidityLimit === "") {
        alert("pOValidityLimit  is required");
        return false;
    }
    var termConditions = $("form#new-supplier-create-form input[name=inputTermConditions]").val();
    if (termConditions === "") {
        alert("termConditions  is required");
        return false;
    }
    var internalWarehouse = $("#internalWarehouseId").val();
    if (internalWarehouse === "") {
        alert("internalWarehouse  is required");
        return false;
    }

    var json = newSupplierCreateObjectJson();


    if (confirm("Are you sure you want to create supplier")) {
        doAjaxRequestWithJsonHandler(context + "/submitNewSupplier", "POST", json, function (response) {
            if (response) {
                    alert("Supplier created successfully. Its inactive as of now, pls check inactive section");

                    $("#main-content").html(response);
                }
            }
        );
    }
});

function newSupplierCreateObjectJson() {
    let newSupplierCreateObject = {};


    newSupplierCreateObject['name'] = $("form#new-supplier-create-form input[name=inputName]").val();

    newSupplierCreateObject['phone'] = $("form#new-supplier-create-form input[name=inputPhone]").val();
    newSupplierCreateObject['gst'] = $("form#new-supplier-create-form input[name=inputGst]").val();
    newSupplierCreateObject['pan'] = $("form#new-supplier-create-form input[name=inputPan]").val();
    newSupplierCreateObject['fax'] = $("form#new-supplier-create-form input[name=inputFax]").val();
    newSupplierCreateObject['headName'] = $("form#new-supplier-create-form input[name=inputHeadName]").val();
    newSupplierCreateObject['headDesign'] = $("form#new-supplier-create-form input[name=inputHeadDesig]").val();
    newSupplierCreateObject['headEmail'] = $("form#new-supplier-create-form input[name=inputHeadEmail]").val();
    newSupplierCreateObject['contactPerson'] = $("form#new-supplier-create-form input[name=inputContactPerson]").val();
    newSupplierCreateObject['contactPhone'] = $("form#new-supplier-create-form input[name=inputContactPhone]").val();
    newSupplierCreateObject['contactEmail'] = $("form#new-supplier-create-form input[name=inputContactEmail]").val();
    newSupplierCreateObject['contactFax'] = $("form#new-supplier-create-form input[name=inputContactFax]").val();
    newSupplierCreateObject['registeredAddress'] = $("form#new-supplier-create-form input[name=inputRegisteredAddress]").val();
    newSupplierCreateObject['communicationAddress'] = $("form#new-supplier-create-form input[name=inputCommunicationAddress]").val();
    newSupplierCreateObject['termConditions'] = $("form#new-supplier-create-form input[name=inputTermConditions]").val();
    newSupplierCreateObject['warehouseId'] = $("#warehouseLocation").val();
    newSupplierCreateObject['internalWarehouseId'] = $("#internalWarehouse").val();
    newSupplierCreateObject['state'] = $("#stateId").val();
    newSupplierCreateObject['pOValidityLimit'] = $("form#new-supplier-create-form input[name=inputPOValidityLimit]").val();


    return JSON.stringify(newSupplierCreateObject);
}