Subversion Repositories SmartDukaan

Rev

Rev 35391 | Rev 35499 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
35360 aman 1
function loadPendingTrialForms(domId) {
2
    doGetAjaxRequestHandler(context + "/trial/pending", function (response) {
3
        $('#' + domId).html(response);
4
    });
5
}
6
 
35289 amit 7
$(function () {
8
    $(document).on('click', ".trial_users", function () {
9
        loadPendingTrialForms("main-content");
10
    });
35340 aman 11
    $(document).on('click', ".verified_trial_users", function () {
12
        loadVerifiedTrialForms("main-content");
13
    });
29598 tejbeer 14
 
35289 amit 15
    $(document).on('click', ".mk_trial_create", function () {
35360 aman 16
        let trialFormId = $(this).closest('tr').data('id');
35289 amit 17
    });
30439 tejbeer 18
 
35289 amit 19
    $(document).on('click', ".mk_trial_cancel", function () {
35360 aman 20
        let trialFormId = $(this).closest('tr').data('id');
35289 amit 21
        cancelTrialForm(trialFormId);
22
    });
35360 aman 23
    $(document).on('click', ".approve-trial", function () {
24
        let trialFormId = $(this).closest('tr').data('id');
25
        approveTrialForm(trialFormId);
26
    });
27
    $(document).on('click', ".converted", function () {
28
        let trialFormId = $(this).closest('tr').data('id');
29
        convertedToFranchise(trialFormId);
30
    });
30439 tejbeer 31
 
29598 tejbeer 32
 
35340 aman 33
    function loadVerifiedTrialForms(domId) {
34
        doGetAjaxRequestHandler(context + "/trial/verified", function (response) {
35
            $('#' + domId).html(response);
36
        });
37
    }
38
 
35289 amit 39
    function trialCreate(trialFormId) {
40
        doAjaxRequestHandler(`${context}/trial/create/${trialFormId}`, "GET", function (response) {
41
            $('#main-content').html(response);
42
        });
43
    }
30439 tejbeer 44
 
35289 amit 45
    function cancelTrialForm(trialFormId) {
35391 aman 46
        if (confirm("Are you sure you want to reject this trial?")) {
47
            doPostAjaxRequestHandler(`${context}/trial/reject/${trialFormId}`, function (response) {
35289 amit 48
                if (response == "true") {
35360 aman 49
                    $('.modal-backdrop').remove();
50
                    $('body').removeClass('modal-open');
51
                    $('body').css('padding-right', '');
35289 amit 52
                    loadPendingTrialForms("main-content");
53
                }
54
            });
55
        }
56
    }
35360 aman 57
 
58
    function approveTrialForm(trialFormId) {
59
        if (confirm("Are you sure you want to approve this trial?")) {
60
            doPostAjaxRequestHandler(`${context}/trial/approve/${trialFormId}`, function (response) {
61
                if (response == "true") {
62
                    $('.modal-backdrop').remove();
63
                    $('body').removeClass('modal-open');
64
                    $('body').css('padding-right', '');
65
                    loadVerifiedTrialForms("main-content");
66
                }
67
            });
68
        }
69
    }
70
 
71
    function convertedToFranchise(trialFormId) {
72
        if (confirm("Are you sure you want to mark as converted?")) {
73
            doPostAjaxRequestHandler(`${context}/trial/convertToFranchise/${trialFormId}`, function (response) {
74
                if (response == "true") {
75
                    $('.modal-backdrop').remove();
76
                    $('body').removeClass('modal-open');
77
                    $('body').css('padding-right', '');
78
                    loadVerifiedTrialForms("main-content");
79
                }
80
            });
81
        }
82
    }
25980 tejbeer 83
});
35340 aman 84
$(document).on('click', '.openBrandModal', function () {
35485 aman 85
    const trialFormId = $(this).data('id');
35340 aman 86
    console.log("trialFormId sent:", trialFormId);
87
    $('#brandPotentialForm input[name="trialFormId"]').val(trialFormId);
35485 aman 88
    asmBmSaved = false;
35340 aman 89
});
35360 aman 90
$(document).on('click', '.openUserBrandPotential', function () {
91
    let trialFormId = $(this).data('id');
92
    loadUserBrandPotential(trialFormId);
93
});
35340 aman 94
 
95
 
96
function saveBrandPotential() {
97
 
98
 
35485 aman 99
    if (!asmBmSaved) {
100
        alert("Please save ASM & BM before adding Brand Potential");
101
        return;
102
    }
35340 aman 103
 
35485 aman 104
    const trialFormId = $('#brandPotentialForm input[name="trialFormId"]').val();
105
    const params = {trialFormId};
35340 aman 106
 
35485 aman 107
    let validRowFound = false;
108
 
109
    $('#brandPotentialRows tr').each(function (index) {
110
        const brand = $(this).find('input[name^="brand_"]').val()?.trim();
111
        const potential = $(this).find('input[name^="potential_"]').val();
112
 
35340 aman 113
        if (brand && potential) {
35485 aman 114
            validRowFound = true;
115
            params[`brand_${index + 1}`] = brand;
116
            params[`potential_${index + 1}`] = potential;
35340 aman 117
        }
118
    });
119
 
35485 aman 120
    if (!validRowFound) {
121
        alert("Please add at least one Brand with Potential");
122
        return;
123
    }
35340 aman 124
 
125
    doPostAjaxRequestWithParamsHandler(
35485 aman 126
        `${context}/trial/brand-Potential`,
35340 aman 127
        params,
35485 aman 128
        function () {
129
            $('#brandPotentialModal')
130
                .one('hidden.bs.modal', cleanupModal)
131
                .modal('hide');
132
 
133
            alert("Verified - Brand Potential Saved Successfully");
35340 aman 134
        }
135
    );
35485 aman 136
}
35340 aman 137
 
35485 aman 138
function cleanupModal() {
139
    $('.modal-backdrop').remove();
140
    $('body').removeClass('modal-open').css('padding-right', '');
141
    loadPendingTrialForms("main-content");
35340 aman 142
}
143
 
35485 aman 144
let asmBmSaved = false;
145
 
35360 aman 146
function saveAsmBm() {
147
 
35485 aman 148
    const trialFormId = $('#brandPotentialForm input[name="trialFormId"]').val();
149
    const asmId = $('#asmBmForm select[name="asm"]').val();
150
    const bmId = $('#asmBmForm select[name="bm"]').val();
35360 aman 151
 
35485 aman 152
    if (!asmId || !bmId) {
35360 aman 153
        alert("Please select both ASM and BM");
154
        return;
155
    }
156
 
157
    doPostAjaxRequestWithParamsHandler(
158
        context + "/trial/asm-bm",
35485 aman 159
        {trialFormId, asmId, bmId},
160
        function () {
161
            asmBmSaved = true;
162
            alert("ASM & BM Saved Successfully");
35360 aman 163
        }
164
    );
165
}
166
 
35485 aman 167
 
35360 aman 168
function loadUserBrandPotential(trialFormId) {
169
    doGetAjaxRequestHandler(
35485 aman 170
        `${context}/trial/userBrandPotential/${trialFormId}`,
35360 aman 171
        function (res) {
172
 
173
            if (typeof res === "string") {
174
                try {
175
                    res = JSON.parse(res);
35485 aman 176
                } catch {
35360 aman 177
                    return;
178
                }
179
            }
180
 
35485 aman 181
            const data = res?.response || [];
182
            const tbody = $('#brandPotentialRows').empty();
35360 aman 183
 
35485 aman 184
            if (!data.length) {
185
                tbody.append(`
35360 aman 186
                    <tr>
187
                        <td colspan="4" class="text-center">
188
                            No Brand Potential Data Available
189
                        </td>
190
                    </tr>
191
                `);
192
                $('#brandPotentialModal').modal('show');
193
                return;
194
            }
195
 
35485 aman 196
            data.forEach(item => {
197
                tbody.append(`
35360 aman 198
                    <tr>
199
                        <td>${item.trialFormId}</td>
200
                        <td>${item.brandName}</td>
201
                        <td>${item.potential}</td>
35485 aman 202
                        <td>${formatDateArray(item.createdAt)}</td>
35360 aman 203
                    </tr>
35485 aman 204
                `);
35360 aman 205
            });
206
 
207
            $('#brandPotentialModal').modal('show');
208
        }
209
    );
210
}
211
 
35485 aman 212
 
35360 aman 213
function formatDateArray(arr) {
214
    if (!arr || arr.length < 6) return "";
215
 
216
    let year = arr[0];
217
    let month = arr[1];
218
    let day = arr[2];
219
    let hour = arr[3];
220
    let min = arr[4];
221
    let sec = arr[5];
222
 
223
    return `${year}-${pad(month)}-${pad(day)} ${pad(hour)}:${pad(min)}:${pad(sec)}`;
224
}
225
 
226
function pad(v) {
227
    return (v < 10 ? "0" : "") + v;
228
}