Subversion Repositories SmartDukaan

Rev

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

$(function () {
    $(document).on('click', ".placement-plan", function () {
        loadPlacementPlan("main-content");
    });

    $(document).on('click', ".bulk-order", function () {
        loadBulkOrder("main-content");
    });
    $(document).on('click', ".transaction-approval", function () {
        doGetAjaxRequestHandler(context + "/transaction/pendingApprovals", function (response) {
            $("#main-content").html(response);
        });
    });
    $(document).on('click', ".bulk-order-approval-report", function () {
        doGetAjaxRequestHandler(context + "/transaction/bulkOrderApprovalReport", function (response) {
            $("#main-content").html(response);
        });
    });
    $(document).on('click', ".fetch-approval-report", function () {
        var startDate = $('#reportStartDate').val();
        var endDate = $('#reportEndDate').val();
        doGetAjaxRequestHandler(context + "/transaction/bulkOrderApprovalReport?startDate=" + startDate + "&endDate=" + endDate, function (response) {
            $("#main-content").html(response);
        });
    });
    $(document).on('click', ".search-partner-stock",
        function () {
            var primary = $('.criteria-item-catalogids').val() || [];
            var tagged  = $('.criteria-item-tagged-models').val() || [];
            var union = Array.from(new Set(primary.concat(tagged)));

            var addValue = $('#addRange').val();
            var subValue = $('#subNumber').val();
            var startDateTime = getDatesFromPicker('input[name="saleDate"]').startDate;
            var warehouseId = $('#warehouseMap').val();

            doGetAjaxRequestHandler(context
                + "/getPlacementPlanByCatalogId?catalogItemIds=" +
                union.join(",") + "&addValue=" + addValue + "&subValue=" + subValue + "&date=" + startDateTime + "&warehouseId=" + warehouseId,
                function (response) {
                    $('.placement-plan-detail').html(response);
                });
        });


    $(document).on('click', ".mk_fetch_plan",
        function () {
            var primary = $('.criteria-item-catalogids').val() || [];
            var tagged  = $('.criteria-item-tagged-models').val() || [];
            var union = Array.from(new Set(primary.concat(tagged)));

            var addValue = $('#addRange').val();
            var subValue = $('#subNumber').val();
            var startDateTime = getDatesFromPicker('input[name="saleDate"]').startDate;
            var warehouseId = $('#warehouseMap').val();

            window.location.href = context + "/placementPlan/statement?catalogItemIds=" +
                union.join(",") + "&addValue=" + addValue + "&subValue=" + subValue + "&date=" + startDateTime + "&warehouseId=" + warehouseId;
        });


    $(document).on('click', ".resetValue",
        function () {
            $('#addRange').val(0);
            $('#subNumber').val(0);
        });

    $(document).on('change', 'select.criteria-item-brands', function () {
        changed = true;
    });
    $(document).on('click', 'select.criteria-item-catalogids+div > button', function () {
        if (changed) {
            let brands = $('.criteria-item-brands').val();
            $brandsContainer = $(this);
            var url = `${context}/statusWiseCatalogs?activeOnly=true&brands=${brands.join(",")}&categoryId=3&limit=0`;
            var $select = $('.criteria-item-catalogids');
            var $taggedSelect = $('.criteria-item-tagged-models');
            $select.html('');
            $taggedSelect.html('');
            if (brands.length > 0) {
                doGetAjaxRequestHandler(url, function (response) {
                    var data = JSON.parse(response);

                    for (var i = 0; i < data.length; i++) {
                        var d = data[i];
                        var cls = '';
                        if (d.monitor_type === 'focused') cls = 'monitor-focused';
                        else if (d.monitor_type === 'base') cls = 'monitor-base';

                        $select.append(`<option value="${d.catalogId_i}" data-monitor-type="${d.monitor_type || ''}" class="${cls}">${d.title_s}</option>`);

                        if (d.monitor_type === 'focused' || d.monitor_type === 'base') {
                            $taggedSelect.append(
                                `<option value="${d.catalogId_i}" data-monitor-type="${d.monitor_type}" class="${cls}">${d.title_s}</option>`
                            );
                        }
                    }

                    $select.multiselect('rebuild');
                    $taggedSelect.multiselect('rebuild');

                    colorMultiselectRows();
                });
            } else {
                $select.multiselect('rebuild');
                $taggedSelect.multiselect('rebuild');
            }
            changed = !changed;
        }
    });

    // Bootstrap-multiselect renders an <li> per option in a generated dropdown.
    // Re-apply the color class to each rendered <li> after rebuild so tagged options stay colored.
    function colorMultiselectRows() {
        $('.criteria-item-catalogids, .criteria-item-tagged-models').each(function () {
            var $sel = $(this);
            var $btnGroup = $sel.next('.btn-group');
            $btnGroup.find('li').each(function () {
                var $li = $(this);
                var $cb = $li.find('input[type="checkbox"]');
                var val = $cb.val();
                if (val == null) return;
                var $opt = $sel.find('option[value="' + val + '"]');
                var mt = $opt.attr('data-monitor-type');
                $li.removeClass('monitor-focused monitor-base');
                if (mt === 'focused') $li.addClass('monitor-focused');
                else if (mt === 'base') $li.addClass('monitor-base');
            });
        });
    }

    $(document).on('click', '.monitor-type-upload-submit', function () {
        var fileInput = document.getElementById('monitorTypeUploadFile');
        var $status = $('#monitorTypeUploadStatus');
        $status.html('');

        if (!fileInput.files || fileInput.files.length === 0) {
            $status.html('<div class="alert alert-warning">Please choose a CSV file.</div>');
            return;
        }
        var fd = new FormData();
        fd.append('file', fileInput.files[0]);

        $.ajax({
            url: context + '/placementPlan/monitorType/upload',
            type: 'POST',
            data: fd,
            processData: false,
            contentType: false,
            success: function (resp) {
                $status.html('<div class="alert alert-success">Replaced ' + resp.deleted + ' rows, inserted ' + resp.inserted + ' rows.</div>');
            },
            error: function (xhr) {
                var msg = '<div class="alert alert-danger"><strong>Upload failed:</strong><ul>';
                try {
                    var body = JSON.parse(xhr.responseText);
                    if (body && body.errors) {
                        body.errors.forEach(function (e) { msg += '<li>' + $('<div>').text(e).html() + '</li>'; });
                    } else {
                        msg += '<li>' + xhr.statusText + '</li>';
                    }
                } catch (e) {
                    msg += '<li>' + xhr.statusText + '</li>';
                }
                msg += '</ul></div>';
                $status.html(msg);
            }
        });
    });

    $(document).on('change', '.criteria-item-catalogids', function () {
        var value = $('.criteria-item-catalogids ').val();
        console.log(value);

    });


});


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

function loadBulkOrder(domId) {
    doGetAjaxRequestHandler(context + "/getBulkOrder",
        function (response) {
            $('#' + domId).html(response);
        });
}
function addRange() {
    var addValue = $('#addRange').val();
    console.log(addValue);
    addValue = parseInt(addValue) + 500;
    $('#addRange').val(addValue);

}

function subRange() {
    var subValue = $('#subNumber').val();
    console.log(subValue);
    subValue = parseInt(subValue) - 500;
    $('#subNumber').val(subValue);

}