Subversion Repositories SmartDukaan

Rev

Rev 30599 | Rev 33067 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

$(document).on('click', 'a.list-group-item', function() {
        reportTitle = $(this).find('h4').html();
        reportUrl = this.href;
        $reportModal = $('#report-modal');
        $reportModal.find('h4.modal-title').html(reportTitle);
        if ($(this).data("paramslist") == undefined) {
                return true;
        } else {
                var paramsList = $(this).data("paramslist");
                paramsMap = {};
                renderInputDialog(paramsList);
                $reportModal.modal('show');
                return false;
        }
});



$(document).on('click', ".invoice-scheme-out-report", function() {

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


$(document).on('click', ".price-drop-report", function() {

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

$(document).on('click', ".scheme-payout-report", function() {

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

$(document).on('click', ".pending-indent", function() {

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

$(document).on('click', ".wallet_statement", function() {
        console.log('HELO');
        doGetAjaxRequestHandler(context + "/walletSummaryReport",
                function(response) {
                        $('#' + 'main-content').html(response);
                });
});


$(document).on('click', ".collection-summary", function() {
        console.log('HELO');
        doGetAjaxRequestHandler(context + "/collectionSummary",
                function(response) {
                        $('#' + 'main-content').html(response);
                });
});


$(document).on('click', '.download-collection-summary', function() {
        var startDate = $("#startDate-collection-summary").val();

        var endDate = $("#endDate-collection-summary").val();

        if (startDate == "" || startDate == undefined) {

                alert("start date is not be empty!!");
                return;
        }
        if (endDate == "" || endDate == undefined) {

                alert("end date is not be empty!!");
                return;
        }
        window.location.href = context + "/downloadCollectionSummary?startDate=" + startDate + "&endDate=" + endDate;

});


$(document).on('click', '.download-price-drop-report', function() {
        var startDate = $("#startDate-price-drop-report").val();

        var endDate = $("#endDate-price-drop-report").val();

        if (startDate == "" || startDate == undefined) {

                alert("start date is not be empty!!");
                return;
        }
        if (endDate == "" || endDate == undefined) {

                alert("end date is not be empty!!");
                return;
        }
        window.location.href = context + "/downloadPriceDropReport?startDate=" + startDate + "&endDate=" + endDate;

});




$(document).on('click', ".smartdukaan-billing-statement", function() {
        console.log('HELO');
        doGetAjaxRequestHandler(context + "/selectPartnerBillingSummaryReport",
                function(response) {
                        $('#' + 'main-content').html(response);
                });
});


$(document).on('click', '.download-invoicewise-scheme-out-report', function() {

        window.location.href = context + "/downloadInvoiceSchemeOutSummaryReport";

});

$(document).on('click', ".download-pending-indent-report", function() {

        window.location.href = context + "/pendingIndentReportDownload";
});

$(document).on('click', ".download-scheme-payout-report", function() {

        var startDate = $("#startDate-scheme-payout").val();

        var endDate = $("#endDate-scheme-payout").val();

        if (startDate == "" || startDate == undefined) {
                alert("start date is not be empty!!");
                return;
        }
        if (endDate == "" || endDate == undefined) {

                alert("end date is not be empty!!");
                return;
        }

        window.location.href = context + "/schemePayoutReportDownload?startDate=" + startDate + "&endDate=" + endDate;
});

$(document).on('click', ".franchisee_sales", function() {
        console.log('HELO');
        doGetAjaxRequestHandler(context + "/franchiseeSalesReport",
                function(response) {
                        $('#' + 'main-content').html(response);
                });
});

$(document).on('click', '.download-wallet-summary-report', function() {
        var startDate = $("#startDate-wallet-summary-report").val();

        var endDate = $("#endDate-wallet-summary-report").val();

        if (startDate == "" || startDate == undefined) {
                alert("start date is not be empty!!");
                return;
        }
        if (endDate == "" || endDate == undefined) {

                alert("end date is not be empty!!");
                return;
        }
        window.location.href = context + "/downloadWalletSummaryReport?startDate=" + startDate + "&endDate=" + endDate;
});


$(document).on('click', '.download-partner-billing-report', function() {
        var startDate = $("#startDate-partner-billing-report").val();

        var endDate = $("#endDate-partner-billing-report").val();

        if (startDate == "" || startDate == undefined) {

                alert("start date is not be empty!!");
                return;
        }
        if (endDate == "" || endDate == undefined) {

                alert("end date is not be empty!!");
                return;
        }
        window.location.href = context + "/downloadPartnerBillingSummaryReport?startDate=" + startDate + "&endDate=" + endDate;
});

$(document).on('click', '.download-franchisee-sales', function() {
        var startDate = $("#startDate-franchisee-sales").val();

        var endDate = $("#endDate-franchisee-sales").val();

        if (startDate == "" || startDate == undefined) {

                alert("start date is not be empty!!");
                return;
        }
        if (endDate == "" || endDate == undefined) {

                alert("end date is not be empty!!");
                return;
        }
        window.location.href = context + "/downloadFranchiseeSales?startDate=" + startDate + "&endDate=" + endDate;
});


$(document).on('click', 'button.download-report', function() {
        var reportParams = {};
        var validated = true;
        $inputContainer.find("input.param,select.param").each(function(idx, inputElement) {
                var inputName = $(inputElement).attr("name");
                if (typeof inputName === "undefined" || !(inputName in paramsMap)) {
                        console.log(inputName);
                        return;
                }
                param = paramsMap[inputName];
                if ($(inputElement).val() == "") {
                        bootbox.alert(`${param.displayName} is required`);
                        validated = false;
                        return false;
                }
                if (param.type == 'DATE') {
                        reportParams[`MANUAL_${inputName}`] = getReporticoDatesFromPicker(inputElement).startDate;
                } else if (param.type == 'DATE_RANGE') {
                        reportParams[`MANUAL_${inputName}_FROMDATE`] = getReporticoDatesFromPicker(inputElement).startDate;
                        reportParams[`MANUAL_${inputName}_TODATE`] = getReporticoDatesFromPicker(inputElement).endDate;
                } else {
                        if (['code', 'warehouseId'].indexOf(param.name) >= 0) {
                                if (typeof $(inputElement).val() == "string") {
                                        reportParams[`${inputName}`] = $(inputElement).val();
                                } else {
                                        reportParams[`${inputName}`] = $(inputElement).val().join(",");
                                }

                        } else {
                                reportParams[`MANUAL_${inputName}`] = $(inputElement).val();
                        }
                }
        });
        if (validated) {
                var jsonParams = JSON.stringify(reportParams);
                doAjaxPostDownload(reportUrl, jsonParams, `${reportTitle}.csv`);
        }

});
function renderInputDialog(paramsList) {
        $reportModal = $('div#report-modal');
        $inputContainer = $reportModal.find('div.modal-body');
        //Clear container first
        $inputContainer.html('');
        paramsList.forEach(function(value) {
                paramsMap[value.name] = value;
                renderInput($inputContainer, value);
        });
}

function renderInput($inputContainer, param) {
        console.log(param.type);
        switch (param.type) {
                case "DATE": {
                        $inputContainer.append(`<div class="form-group">
                                                                        <label>${param.displayText}</label> 
                                                                        <input name="${param.name}" type="text" value="" class="param form-control input-sm">
                                                                </div>`);
                        $inputContainer.find(`input[name="${param.name}"]`).daterangepicker(getSingleDatePicker());
                        return;
                }
                case "DATE_RANGE": {
                        $inputContainer.append(`<div class="form-group">
                                        <label>${param.displayText}</label> 
                                        <input name="${param.name}" type="text" value="" class="param form-control input-sm">
                        </div>`);
                        $inputContainer.find(`input[name="${param.name}"]`).daterangepicker(getRangedDatePicker(true));
                        return;
                }
                case "STRING": {
                        if (param.name == "authId") {
                                $inputContainer.append(`
                                                <input type="hidden" name="${param.name}" type="text" value="${authId}" class="param form-control input-sm">`);
                        } else {
                                $inputContainer.append(`<div class="form-group">
                                                <label>${param.displayText}</label> 
                                                <input name="${param.name}" type="text" value="" class="param form-control input-sm">
                                        </div>`);
                        }
                        return;
                }
                case "LIST": {
                        if (param.name == "code") {
                                var arr = [];
                                if (retailers.length == 1) {
                                        $inputContainer.append(`<input type="hidden" name="${param.name}" type="text" value="${authId}" class="param form-control input-sm">`)
                                } else {
                                        for (var i in retailers) {
                                                arr.push(`<option value="${retailers[i].code}">${retailers[i].displayName}-${retailers[i].code}</option>`);
                                        }
                                        var options = arr.join("");
                                        $inputContainer.append(`<div class="col-lg-2 form-group">
                                                        <label>${param.displayText}</label> 
                                                        <select class="param form-control input-sm" id="code" multiple="multiple" name="${param.name}">
                                                        <option value="" disabled selected>Select Franchisee</option>
                                                        ${options}
                                                        </select>
                                        </div>`);

                                        $('#code').multiselect({
                                                includeSelectAllOption: true,
                                                multiple: true,
                                                maxHeight: 200,
                                                buttonWidth: '180px',
                                                numberDisplayed: 1,
                                                nonSelectedText: 'Franchisee',
                                                nSelectedText: ' - Franchisees Selected',
                                                allSelectedText: 'All Franchisees',
                                                enableFiltering: true,
                                                enableCaseInsensitiveFiltering: true
                                        });
                                }
                        } else if (param.name == "warehouseId") {
                                var arr = [];
                                for (var i in warehouses) {
                                        arr.push(`<option value="${i}">${warehouses[i]}</option>`);
                                }
                                var options = arr.join("");
                                $inputContainer.append(`<div class="col-lg-2 form-group">
                                                <label>${param.displayText}</label> 
                                                <select class="param form-control input-sm" id="code" multiple="multiple" name="${param.name}">
                                                <option value="" disabled selected>Select Warehouses</option>
                                                ${options}
                                                </select>
                                </div>`);

                                $('#code').multiselect({
                                        includeSelectAllOption: true,
                                        multiple: true,
                                        maxHeight: 200,
                                        buttonWidth: '180px',
                                        numberDisplayed: 1,
                                        nonSelectedText: 'Warehouses',
                                        nSelectedText: ' - Warehouse Selected',
                                        allSelectedText: 'All Warehouses',
                                        enableFiltering: true,
                                        enableCaseInsensitiveFiltering: true
                                });
                        } else {
                                $inputContainer.append(`<div class="form-group">
                                                <label>${param.displayText}(Comma Separated)</label> 
                                                <input name="${param.name}" type="text" value="" class="param form-control input-sm">
                                </div>`);
                        }
                        return;
                }
        }
}