Subversion Repositories SmartDukaan

Rev

Rev 35340 | Rev 35391 | 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) {
46
        if (confirm("Are you sure you want to cancel this trial?")) {
35340 aman 47
            doPostAjaxRequestHandler(`${context}/trial/cancel/${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 () {
85
    let trialFormId = $(this).data('id');
86
    console.log("trialFormId sent:", trialFormId);
87
    $('#brandPotentialForm input[name="trialFormId"]').val(trialFormId);
88
});
35360 aman 89
$(document).on('click', '.openUserBrandPotential', function () {
90
    let trialFormId = $(this).data('id');
91
    loadUserBrandPotential(trialFormId);
92
});
35340 aman 93
 
94
 
95
function saveBrandPotential() {
96
 
97
    let params = {};
98
 
99
    params["trialFormId"] = $('#brandPotentialForm input[name="trialFormId"]').val();
100
 
101
    let row = 1;
102
    $('#brandPotentialRows tr').each(function () {
103
        let brand = $(this).find('input[name="brand_' + row + '"]').val();
104
        let potential = $(this).find('input[name="potential_' + row + '"]').val();
105
 
106
        if (brand && potential) {
107
            params["brand_" + row] = brand;
108
            params["potential_" + row] = potential;
109
        }
110
        row++;
111
    });
112
 
113
    console.log("PARAMS SENT:", params);
114
 
115
    doPostAjaxRequestWithParamsHandler(
116
        context + "/trial/brand-Potential",
117
        params,
118
        function (response) {
35360 aman 119
            $('#brandPotentialModal').one('hidden.bs.modal', function () {
120
                $('.modal-backdrop').remove();
121
                $('body').removeClass('modal-open');
122
                $('body').css('padding-right', '');
123
                loadPendingTrialForms("main-content");
124
                alert("Verified - Brand Potential Saved Successfully");
125
            });
35340 aman 126
            $('#brandPotentialModal').modal('hide');
127
        }
128
    );
129
 
130
}
131
 
35360 aman 132
function saveAsmBm() {
133
 
134
    let params = {};
135
 
136
    params["trialFormId"] = $('#brandPotentialForm input[name="trialFormId"]').val();
137
 
138
    let abm = $('#asmBmForm select[name="asm"]').val();
139
    let bm = $('#asmBmForm select[name="bm"]').val();
140
 
141
    if (abm && bm) {
142
        params["asmId"] = abm;
143
        params["bmId"] = bm;
144
    } else {
145
        alert("Please select both ASM and BM");
146
        return;
147
    }
148
 
149
    console.log("PARAMS SENT:", params);
150
 
151
    doPostAjaxRequestWithParamsHandler(
152
        context + "/trial/asm-bm",
153
        params,
154
        function (response) {
155
            alert("ASM BM Saved Successfully");
156
        }
157
    );
158
}
159
 
160
function loadUserBrandPotential(trialFormId) {
161
 
162
    doGetAjaxRequestHandler(
163
        context + "/trial/userBrandPotential/" + trialFormId,
164
        function (res) {
165
 
166
            console.log("RAW RESPONSE:", res);
167
 
168
            // Ensure JSON
169
            if (typeof res === "string") {
170
                try {
171
                    res = JSON.parse(res);
172
                } catch (e) {
173
                    console.error("JSON parse failed:", e);
174
                    return;
175
                }
176
            }
177
 
178
            $('#brandPotentialRows').empty();
179
 
180
            let data = res.response;
181
 
182
            if (!Array.isArray(data) || data.length === 0) {
183
                $('#brandPotentialRows').append(`
184
                    <tr>
185
                        <td colspan="4" class="text-center">
186
                            No Brand Potential Data Available
187
                        </td>
188
                    </tr>
189
                `);
190
                $('#brandPotentialModal').modal('show');
191
                return;
192
            }
193
 
194
            data.forEach(function (item) {
195
                let createdDate = formatDateArray(item.createdAt);
196
 
197
                let rowHtml = `
198
                    <tr>
199
                        <td>${item.trialFormId}</td>
200
                        <td>${item.brandName}</td>
201
                        <td>${item.potential}</td>
202
                        <td>${createdDate}</td>
203
                    </tr>
204
                `;
205
 
206
                $('#brandPotentialRows').append(rowHtml);
207
            });
208
 
209
            $('#brandPotentialModal').modal('show');
210
        }
211
    );
212
}
213
 
214
function formatDateArray(arr) {
215
    if (!arr || arr.length < 6) return "";
216
 
217
    let year = arr[0];
218
    let month = arr[1];
219
    let day = arr[2];
220
    let hour = arr[3];
221
    let min = arr[4];
222
    let sec = arr[5];
223
 
224
    return `${year}-${pad(month)}-${pad(day)} ${pad(hour)}:${pad(min)}:${pad(sec)}`;
225
}
226
 
227
function pad(v) {
228
    return (v < 10 ? "0" : "") + v;
229
}