Subversion Repositories SmartDukaan

Rev

Rev 35391 | Rev 35499 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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