Subversion Repositories SmartDukaan

Rev

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

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

$(function () {
    $(document).on('click', ".trial_users", function () {
        loadPendingTrialForms("main-content");
    });
    $(document).on('click', ".verified_trial_users", function () {
        loadVerifiedTrialForms("main-content");
    });

    $(document).on('click', ".mk_trial_create", function () {
        let trialFormId = $(this).closest('tr').data('id');
    });

    $(document).on('click', ".mk_trial_cancel", function () {
        let trialFormId = $(this).closest('tr').data('id');
        cancelTrialForm(trialFormId);
    });
    $(document).on('click', ".approve-trial", function () {
        let trialFormId = $(this).closest('tr').data('id');
        approveTrialForm(trialFormId);
    });
    $(document).on('click', ".converted", function () {
        let trialFormId = $(this).closest('tr').data('id');
        convertedToFranchise(trialFormId);
    });


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

    function trialCreate(trialFormId) {
        doAjaxRequestHandler(`${context}/trial/create/${trialFormId}`, "GET", function (response) {
            $('#main-content').html(response);
        });
    }

    function cancelTrialForm(trialFormId) {
        if (confirm("Are you sure you want to cancel this trial?")) {
            doPostAjaxRequestHandler(`${context}/trial/cancel/${trialFormId}`, function (response) {
                if (response == "true") {
                    $('.modal-backdrop').remove();
                    $('body').removeClass('modal-open');
                    $('body').css('padding-right', '');
                    loadPendingTrialForms("main-content");
                }
            });
        }
    }

    function approveTrialForm(trialFormId) {
        if (confirm("Are you sure you want to approve this trial?")) {
            doPostAjaxRequestHandler(`${context}/trial/approve/${trialFormId}`, function (response) {
                if (response == "true") {
                    $('.modal-backdrop').remove();
                    $('body').removeClass('modal-open');
                    $('body').css('padding-right', '');
                    loadVerifiedTrialForms("main-content");
                }
            });
        }
    }

    function convertedToFranchise(trialFormId) {
        if (confirm("Are you sure you want to mark as converted?")) {
            doPostAjaxRequestHandler(`${context}/trial/convertToFranchise/${trialFormId}`, function (response) {
                if (response == "true") {
                    $('.modal-backdrop').remove();
                    $('body').removeClass('modal-open');
                    $('body').css('padding-right', '');
                    loadVerifiedTrialForms("main-content");
                }
            });
        }
    }
});
$(document).on('click', '.openBrandModal', function () {
    let trialFormId = $(this).data('id');
    console.log("trialFormId sent:", trialFormId);
    $('#brandPotentialForm input[name="trialFormId"]').val(trialFormId);
});
$(document).on('click', '.openUserBrandPotential', function () {
    let trialFormId = $(this).data('id');
    loadUserBrandPotential(trialFormId);
});


function saveBrandPotential() {

    let params = {};

    params["trialFormId"] = $('#brandPotentialForm input[name="trialFormId"]').val();

    let row = 1;
    $('#brandPotentialRows tr').each(function () {
        let brand = $(this).find('input[name="brand_' + row + '"]').val();
        let potential = $(this).find('input[name="potential_' + row + '"]').val();

        if (brand && potential) {
            params["brand_" + row] = brand;
            params["potential_" + row] = potential;
        }
        row++;
    });

    console.log("PARAMS SENT:", params);

    doPostAjaxRequestWithParamsHandler(
        context + "/trial/brand-Potential",
        params,
        function (response) {
            $('#brandPotentialModal').one('hidden.bs.modal', function () {
                $('.modal-backdrop').remove();
                $('body').removeClass('modal-open');
                $('body').css('padding-right', '');
                loadPendingTrialForms("main-content");
                alert("Verified - Brand Potential Saved Successfully");
            });
            $('#brandPotentialModal').modal('hide');
        }
    );

}

function saveAsmBm() {

    let params = {};

    params["trialFormId"] = $('#brandPotentialForm input[name="trialFormId"]').val();

    let abm = $('#asmBmForm select[name="asm"]').val();
    let bm = $('#asmBmForm select[name="bm"]').val();

    if (abm && bm) {
        params["asmId"] = abm;
        params["bmId"] = bm;
    } else {
        alert("Please select both ASM and BM");
        return;
    }

    console.log("PARAMS SENT:", params);

    doPostAjaxRequestWithParamsHandler(
        context + "/trial/asm-bm",
        params,
        function (response) {
            alert("ASM BM Saved Successfully");
        }
    );
}

function loadUserBrandPotential(trialFormId) {

    doGetAjaxRequestHandler(
        context + "/trial/userBrandPotential/" + trialFormId,
        function (res) {

            console.log("RAW RESPONSE:", res);

            // Ensure JSON
            if (typeof res === "string") {
                try {
                    res = JSON.parse(res);
                } catch (e) {
                    console.error("JSON parse failed:", e);
                    return;
                }
            }

            $('#brandPotentialRows').empty();

            let data = res.response;

            if (!Array.isArray(data) || data.length === 0) {
                $('#brandPotentialRows').append(`
                    <tr>
                        <td colspan="4" class="text-center">
                            No Brand Potential Data Available
                        </td>
                    </tr>
                `);
                $('#brandPotentialModal').modal('show');
                return;
            }

            data.forEach(function (item) {
                let createdDate = formatDateArray(item.createdAt);

                let rowHtml = `
                    <tr>
                        <td>${item.trialFormId}</td>
                        <td>${item.brandName}</td>
                        <td>${item.potential}</td>
                        <td>${createdDate}</td>
                    </tr>
                `;

                $('#brandPotentialRows').append(rowHtml);
            });

            $('#brandPotentialModal').modal('show');
        }
    );
}

function formatDateArray(arr) {
    if (!arr || arr.length < 6) return "";

    let year = arr[0];
    let month = arr[1];
    let day = arr[2];
    let hour = arr[3];
    let min = arr[4];
    let sec = arr[5];

    return `${year}-${pad(month)}-${pad(day)} ${pad(hour)}:${pad(min)}:${pad(sec)}`;
}

function pad(v) {
    return (v < 10 ? "0" : "") + v;
}