Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
35289 amit 1
/*window.alert = function(message) {
33973 tejus.loha 2
    Swal.fire({
3
        text: message,
4
        icon: 'info',
5
        confirmButtonText: 'OK'
6
    });
35289 amit 7
};*/
27711 amit.gupta 8
const MAIN_CONTAINER = "#main-content";
24440 amit.gupta 9
var logosmapping = {
32301 amit.gupta 10
    mobile_insurance_providers: {
11
        "0": context + '/resources/images/icons/provider-logos/iffco.png',
12
        "1": context + '/resources/images/icons/provider-logos/icici.jpg',
13
        "2": context + '/resources/images/icons/provider-logos/tataaig.png',
14
        "3": context + '/resources/images/icons/provider-logos/bharti.jpg',
15
        "4": context + '/resources/images/icons/provider-logos/bharti.jpg',
16
        "5": context + '/resources/images/icons/provider-logos/oneassist.jpeg'
17
    }
24440 amit.gupta 18
}
30414 amit.gupta 19
 
33756 ranu 20
function uuidv4() {
21
    return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, c =>
22
        (+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)
23
    );
24
}
25
 
26
let IdempotencyKey = uuidv4();
27
 
24595 tejbeer 28
function badRequestAlert(response) {
33756 ranu 29
    //console.log(response.responseText);
30
    try {
31
        var errorObject = JSON.parse(response.responseText);
32
        errorObject = errorObject.response;
33
        bootbox.alert('Bad Request\n' + 'rejectedType : '
34
            + errorObject.rejectedType + '\n' + 'rejectedValue : '
35
            + errorObject.rejectedValue + '\n' + 'message : '
36
            + errorObject.message);
37
    } catch (e) {
33765 ranu 38
        console.log("response.responseText", response.responseText);
39
        bootbox.alert("Error occurred! Please contact your manager");
33756 ranu 40
    }
22956 ashik.ali 41
}
24595 tejbeer 42
 
43
function internalServerErrorAlert(response) {
33756 ranu 44
    // console.log(response.responseText);
45
    try {
46
        var errorObject = JSON.parse(response.responseText);
47
        errorObject = errorObject.response;
48
        bootbox.alert('Internal Server Error\n' + 'rejectedType : '
49
            + errorObject.rejectedType + '\n' + 'rejectedValue : '
50
            + errorObject.rejectedValue + '\n' + 'message : '
51
            + errorObject.message);
52
    } catch (e) {
33765 ranu 53
        console.log("response.responseText", response.responseText);
54
        bootbox.alert("Error occurred! Please contact your manager");
33756 ranu 55
    }
22956 ashik.ali 56
}
57
 
32301 amit.gupta 58
$(document).ajaxError(function (event, jqxhr, settings, thrownError) {
35459 amit 59
    if (typeof loaderDialogObj != "undefined") {
32301 amit.gupta 60
        loaderDialogObj.modal('hide');
35459 amit 61
        // $('div.modal-backdrop.fade').remove();
32301 amit.gupta 62
    }
35459 amit 63
    if (jqxhr.status == 400) {
64
        // $('#error-prompt-model').modal();
32301 amit.gupta 65
        badRequestAlert(jqxhr);
66
    } else {
67
        internalServerErrorAlert(jqxhr);
68
    }
22956 ashik.ali 69
});
70
 
33788 ranu 71
$(document).ajaxSend(function (ev, req) {
72
    req.setRequestHeader('IdempotencyKey', IdempotencyKey);
73
});
74
 
35459 amit 75
$(document).ajaxSuccess(function () {
76
    IdempotencyKey = uuidv4();
77
    console.log('succcess handlor');
78
});
79
 
32301 amit.gupta 80
$(document).ajaxComplete(function () {
35459 amit 81
    if (typeof loaderDialogObj != "undefined") {
32301 amit.gupta 82
        loaderDialogObj.modal('hide');
35459 amit 83
        // $('div.modal-backdrop.fade').remove();
32301 amit.gupta 84
    }
33788 ranu 85
    IdempotencyKey = uuidv4();
35459 amit 86
    console.log("idempotency key", IdempotencyKey = uuidv4());
23946 amit.gupta 87
});
30017 amit.gupta 88
 
24992 tejbeer 89
function ajaxStartHandler() {
35459 amit 90
    if (typeof loaderDialogObj != "undefined")
32301 amit.gupta 91
        loaderDialogObj.modal('show');
24976 amit.gupta 92
}
30017 amit.gupta 93
 
24976 amit.gupta 94
$(document).ajaxStart(ajaxStartHandler);
24595 tejbeer 95
 
34859 vikas 96
function doAjaxRequestWithParamsHandler(urlString, httpType, params, callback_function) {
32301 amit.gupta 97
    $.ajax({
98
        url: urlString,
99
        async: true,
100
        cache: false,
101
        data: params,
102
        // dataType:'json',
103
        type: httpType,
104
        success: function (response) {
33790 ranu 105
            IdempotencyKey = uuidv4();
32301 amit.gupta 106
            callback_function(response);
32308 amit.gupta 107
            formatCurrency();
32301 amit.gupta 108
        }
109
    });
23193 ashik.ali 110
}
111
 
24595 tejbeer 112
function doGetAjaxRequestWithParamsHandler(urlString, params, callback_function) {
32301 amit.gupta 113
    doAjaxRequestWithParamsHandler(urlString, "GET", params, callback_function);
23500 ashik.ali 114
}
115
 
33973 tejus.loha 116
function doPostAjaxRequestWithParamsHandler(urlString, params, callback_function) {
32301 amit.gupta 117
    doAjaxRequestWithParamsHandler(urlString, "POST", params, callback_function);
23500 ashik.ali 118
}
119
 
32308 amit.gupta 120
function formatCurrency() {
121
    $('.rcurrency').each(function (index, ele) {
122
        if (!isNaN(parseInt($(ele).html()))) {
123
            $(ele).html(numberToComma($(ele).html(), true));
124
        }
125
    });
126
    $('.currency').each(function (index, ele) {
127
        if (!isNaN(parseInt($(ele).html()))) {
35510 amit 128
            $(ele).html(formatValueInCrore($(ele).html()));
32308 amit.gupta 129
        }
130
    });
131
 
132
}
133
 
33973 tejus.loha 134
function doAjaxRequestWithJsonHandler(urlString, httpType, json, callback_function) {
32301 amit.gupta 135
    $.ajax({
136
        url: urlString,
137
        async: true,
138
        cache: false,
139
        processData: false,
140
        data: json,
141
        contentType: 'application/json',
142
        type: httpType,
143
        success: function (response) {
144
            // console.log("response"+JSON.stringify(data));
145
            callback_function(response);
32308 amit.gupta 146
            formatCurrency();
32301 amit.gupta 147
        }
148
    });
23032 ashik.ali 149
}
150
 
24595 tejbeer 151
function doPostAjaxRequestWithJsonHandler(urlString, json, callback_function) {
32301 amit.gupta 152
    doAjaxRequestWithJsonHandler(urlString, "POST", json, callback_function);
23500 ashik.ali 153
}
23032 ashik.ali 154
 
24595 tejbeer 155
function doPutAjaxRequestWithJsonHandler(urlString, json, callback_function) {
32301 amit.gupta 156
    doAjaxRequestWithJsonHandler(urlString, "PUT", json, callback_function);
23500 ashik.ali 157
}
158
 
24595 tejbeer 159
function doAjaxRequestHandler(urlString, httpType, callback_function) {
32301 amit.gupta 160
    $.ajax({
161
        url: urlString,
162
        async: true,
163
        cache: false,
164
        type: httpType,
165
        success: function (response) {
166
            callback_function(response);
32308 amit.gupta 167
            formatCurrency();
32301 amit.gupta 168
        }
169
    });
22982 ashik.ali 170
}
171
 
24595 tejbeer 172
function doGetAjaxRequestHandler(urlString, callback_function) {
32301 amit.gupta 173
    doAjaxRequestHandler(urlString, "GET", callback_function);
23500 ashik.ali 174
}
175
 
24595 tejbeer 176
function doPutAjaxRequestHandler(urlString, callback_function) {
32301 amit.gupta 177
    doAjaxRequestHandler(urlString, "PUT", callback_function);
23500 ashik.ali 178
}
179
 
24595 tejbeer 180
function doPostAjaxRequestHandler(urlString, callback_function) {
32301 amit.gupta 181
    doAjaxRequestHandler(urlString, "POST", callback_function);
23629 ashik.ali 182
}
183
 
24595 tejbeer 184
function doDeleteAjaxRequestHandler(urlString, callback_function) {
32301 amit.gupta 185
    doAjaxRequestHandler(urlString, "DELETE", callback_function);
23783 ashik.ali 186
}
187
 
24595 tejbeer 188
function doAjaxUploadRequest(urlString, httpType, file) {
32301 amit.gupta 189
    var response;
190
    doAjaxUploadRequestHandler(urlString, httpType, file,
191
        function (ajaxResponse) {
192
            response = ajaxResponse;
193
        });
194
    return response;
23347 ashik.ali 195
}
196
 
34546 vikas.jang 197
function doAjaxUploadRequestHandler(urlString, httpType, file, callback_function) {
32301 amit.gupta 198
    var formData = new FormData();
199
    formData.append("file", file);
200
    $.ajax({
201
        url: urlString,
202
        type: httpType,
203
        data: formData,
204
        dataType: 'json',
205
        async: true,
206
        cache: false,
207
        contentType: false,
208
        enctype: 'multipart/form-data',
209
        processData: false,
210
        success: function (response) {
211
            // console.log("response"+JSON.stringify(data));
212
            callback_function(response);
213
        }
214
    });
22982 ashik.ali 215
}
30017 amit.gupta 216
 
34859 vikas 217
function doAjaxUploadRequestJsonHandler(urlString, httpType, file, json, callback_function) {
32301 amit.gupta 218
    var formData = new FormData();
219
    formData.append("file", file);
220
    formData.append('json', new Blob([json]));
221
    $.ajax({
222
        url: urlString,
223
        type: httpType,
224
        data: formData,
225
        enctype: 'multipart/form-data',
226
        contentType: false,
227
        processData: false,
228
        success: function (response) {
229
            // console.log("response"+JSON.stringify(data));
230
            callback_function(response);
231
        }
232
    });
24171 govind 233
}
22982 ashik.ali 234
 
33508 tejus.loha 235
function uploadDocument(file, callback) {
32301 amit.gupta 236
    var url = context + '/document-upload';
237
    doAjaxUploadRequestHandler(url, 'POST', file, function (response) {
238
        var documentId = response.response.document_id;
33756 ranu 239
        //console.log("documentId : " + documentId);
33508 tejus.loha 240
        callback(documentId);
32301 amit.gupta 241
    });
23347 ashik.ali 242
}
243
 
24595 tejbeer 244
function doAjaxGetDownload(urlString, fileName) {
33756 ranu 245
    // console.log("fileName : " + fileName);
32301 amit.gupta 246
    doAjaxDownload(urlString, "GET", null, fileName);
22982 ashik.ali 247
}
248
 
31702 amit.gupta 249
function doAjaxPostDownload(urlString, data, fileName, callback) {
32301 amit.gupta 250
    doAjaxDownload(urlString, "POST", data, fileName, callback);
21627 kshitij.so 251
}
252
 
31702 amit.gupta 253
function doAjaxDownload(urlString, httpType, data, fileName, callback) {
35459 amit 254
    xhttp = new XMLHttpRequest();
255
    if (typeof loaderDialogObj != "undefined")
32301 amit.gupta 256
        loaderDialogObj.modal('show');
257
    xhttp.onreadystatechange = function () {
35459 amit 258
        var a;
32301 amit.gupta 259
        if (xhttp.readyState === 2) {
35459 amit 260
            if (xhttp.status == 200) {
261
                xhttp.responseType = "blob";
262
            } else {
263
                xhttp.responseType = "text";
264
            }
265
        } else if (xhttp.readyState === 4 && xhttp.status === 200) {
266
            // Trick for making downloadable link
267
            if (typeof loaderDialogObj != "undefined") {
32301 amit.gupta 268
                loaderDialogObj.modal('hide');
35459 amit 269
                // $('div.modal-backdrop.fade').remove();
32301 amit.gupta 270
            }
35459 amit 271
 
272
            a = document.createElement('a');
273
            a.href = window.URL.createObjectURL(xhttp.response);
274
            // Give filename you wish to download
275
            a.download = fileName;
276
            a.style.display = 'none';
277
            document.body.appendChild(a);
278
            a.click();
279
        } else if (xhttp.readyState == 4 && xhttp.status === 400) {
280
            if (typeof loaderDialogObj != "undefined") {
281
                loaderDialogObj.modal('hide');
282
                // $('div.modal-backdrop.fade').remove();
32301 amit.gupta 283
            }
35459 amit 284
            badRequestAlert(xhttp);
285
        } else if (xhttp.readyState == 4 && xhttp.status === 500) {
286
            if (typeof loaderDialogObj != "undefined") {
287
                loaderDialogObj.modal('hide');
288
                // $('div.modal-backdrop.fade').remove();
289
            }
290
            internalServerErrorAlert(xhttp);
32301 amit.gupta 291
        }
292
    };
293
    // Post data to URL which handles post request
294
    xhttp.open(httpType, urlString);
33759 ranu 295
 
296
    // if (IdempotencyKey) {
297
    //     xhttp.setRequestHeader("IdempotencyKey", IdempotencyKey);
298
    // }
299
 
35459 amit 300
    if (httpType == "POST") {
32301 amit.gupta 301
        xhttp.setRequestHeader("Content-Type", "application/json");
302
    }
303
    // You should set responseType as blob for binary responses
304
    // xhttp.responseType = 'blob';
305
    xhttp.send(data);
23405 amit.gupta 306
}
30017 amit.gupta 307
 
27618 tejbeer 308
function loadPaginatedCatalogNextItems(url, params, paginatedIdentifier,
32301 amit.gupta 309
                                       tableIdentifier, detailsContainerIdentifier) {
310
    var start = $("#" + paginatedIdentifier + " .start").text();
23405 amit.gupta 311
 
32301 amit.gupta 312
    var end = $("#" + paginatedIdentifier + " .end").text();
27618 tejbeer 313
 
32301 amit.gupta 314
    url = context + url + "?offset=" + end;
27618 tejbeer 315
 
32301 amit.gupta 316
    if (params != null) {
317
        for (var key in params) {
318
            if (params.hasOwnProperty(key)) {
319
                //console.log(key + " -> " + params[key]);
320
                url = url + "&" + key + "=" + params[key];
321
            }
322
        }
323
    }
27618 tejbeer 324
 
32301 amit.gupta 325
    doGetAjaxRequestHandler(url, function (response) {
326
        var size = $("#" + paginatedIdentifier + " .size").text();
327
        if ((parseInt(end) + 20) > parseInt(size)) {
328
            // console.log("(end + 10) > size == true");
329
            $("#" + paginatedIdentifier + " .end").text(size);
330
        } else {
331
            // console.log("(end + 10) > size == false");
332
            $("#" + paginatedIdentifier + " .end").text(+end + +20);
333
        }
334
        $("#" + paginatedIdentifier + " .start").text(+start + +20);
335
        var last = $("#" + paginatedIdentifier + " .end").text();
336
        var temp = $("#" + paginatedIdentifier + " .size").text();
337
        console.log("last" + last);
338
        if (parseInt(last) >= parseInt(temp)) {
339
            $("#" + paginatedIdentifier + " .next").prop('disabled', true);
340
            // $( "#good-inventory-paginated .end" ).text(temp);
341
        }
342
        $('#' + tableIdentifier).html(response);
343
        if (detailsContainerIdentifier != null) {
344
            $('#' + detailsContainerIdentifier).html('');
345
        }
346
        $("#" + paginatedIdentifier + " .previous").prop('disabled', false);
347
    });
27618 tejbeer 348
 
349
}
30017 amit.gupta 350
 
27618 tejbeer 351
function loadPaginatedCatalogPreviousItem(url, params, paginatedIdentifier,
32301 amit.gupta 352
                                          tableIdentifier, detailsContainerIdentifier) {
353
    var start = $("#" + paginatedIdentifier + " .start").text();
33756 ranu 354
    //console.log("start" + start);
32301 amit.gupta 355
    var end = $("#" + paginatedIdentifier + " .end").text();
33756 ranu 356
    //console.log("Startend" + end);
32301 amit.gupta 357
    var size = $("#" + paginatedIdentifier + " .size").text();
33756 ranu 358
    //console.log("size" + size);
32301 amit.gupta 359
    if (parseInt(end) == parseInt(size) && parseInt(end) % 20 != 0) {
360
        var mod = parseInt(end) % 20;
361
        end = parseInt(end) + (20 - mod);
362
    }
363
    var pre = end - 20;
364
    var lat = pre - 20;
365
    //console.log("preCatalog" +pre);
27618 tejbeer 366
 
32301 amit.gupta 367
    url = context + url + "?offset=" + pre;
27618 tejbeer 368
 
32301 amit.gupta 369
    if (params != null) {
370
        for (var key in params) {
371
            if (params.hasOwnProperty(key)) {
372
                url = url + "&" + key + "=" + params[key];
373
            }
374
        }
375
    }
27618 tejbeer 376
 
32301 amit.gupta 377
    doGetAjaxRequestHandler(url, function (response) {
378
        $("#" + paginatedIdentifier + " .end").text(+end - +20);
379
        $("#" + paginatedIdentifier + " .start").text(+start - +20);
380
        $('#' + tableIdentifier).html(response);
381
        if (detailsContainerIdentifier != null) {
382
            $('#' + detailsContainerIdentifier).html('');
383
        }
384
        $("#" + paginatedIdentifier + " .next").prop('disabled', false);
385
        if (parseInt(lat) == 0) {
386
            $("#" + paginatedIdentifier + " .previous").prop('disabled', true);
387
        }
388
    });
27618 tejbeer 389
 
390
}
391
 
24595 tejbeer 392
function loadPaginatedNextItems(url, params, paginatedIdentifier,
32301 amit.gupta 393
                                tableIdentifier, detailsContainerIdentifier) {
394
    var start = $("#" + paginatedIdentifier + " .start").text();
395
    var end = $("#" + paginatedIdentifier + " .end").text();
396
    url = context + url + "?offset=" + end;
24595 tejbeer 397
 
32301 amit.gupta 398
    if (params != null) {
399
        for (var key in params) {
400
            if (params.hasOwnProperty(key)) {
401
                // console.log(key + " -> " + p[key]);
402
                url = url + "&" + key + "=" + params[key];
403
            }
404
        }
405
    }
24595 tejbeer 406
 
32301 amit.gupta 407
    doGetAjaxRequestHandler(url, function (response) {
408
        var size = $("#" + paginatedIdentifier + " .size").text();
409
        if ((parseInt(end) + 10) > parseInt(size)) {
410
            console.log("(end + 10) > size == true");
411
            $("#" + paginatedIdentifier + " .end").text(size);
412
        } else {
413
            console.log("(end + 10) > size == false");
414
            $("#" + paginatedIdentifier + " .end").text(+end + +10);
415
        }
416
        $("#" + paginatedIdentifier + " .start").text(+start + +10);
417
        var last = $("#" + paginatedIdentifier + " .end").text();
418
        var temp = $("#" + paginatedIdentifier + " .size").text();
419
        if (parseInt(last) >= parseInt(temp)) {
420
            $("#" + paginatedIdentifier + " .next").prop('disabled', true);
421
            // $( "#good-inventory-paginated .end" ).text(temp);
422
        }
423
        $('#' + tableIdentifier).html(response);
424
        if (detailsContainerIdentifier != null) {
425
            $('#' + detailsContainerIdentifier).html('');
426
        }
427
        $("#" + paginatedIdentifier + " .previous").prop('disabled', false);
428
    });
24595 tejbeer 429
 
23629 ashik.ali 430
}
23405 amit.gupta 431
 
24595 tejbeer 432
function loadPaginatedPreviousItems(url, params, paginatedIdentifier,
32301 amit.gupta 433
                                    tableIdentifier, detailsContainerIdentifier) {
434
    var start = $("#" + paginatedIdentifier + " .start").text();
435
    var end = $("#" + paginatedIdentifier + " .end").text();
436
    var size = $("#" + paginatedIdentifier + " .size").text();
437
    if (parseInt(end) == parseInt(size) && parseInt(end) % 10 != 0) {
438
        var mod = parseInt(end) % 10;
439
        end = parseInt(end) + (10 - mod);
440
    }
441
    var pre = end - 10;
24595 tejbeer 442
 
32301 amit.gupta 443
    url = context + url + "?offset=" + pre;
24595 tejbeer 444
 
32301 amit.gupta 445
    if (params != null) {
446
        for (var key in params) {
447
            if (params.hasOwnProperty(key)) {
448
                url = url + "&" + key + "=" + params[key];
449
            }
450
        }
451
    }
24595 tejbeer 452
 
32301 amit.gupta 453
    doGetAjaxRequestHandler(url, function (response) {
454
        $("#" + paginatedIdentifier + " .end").text(+end - +10);
455
        $("#" + paginatedIdentifier + " .start").text(+start - +10);
456
        $('#' + tableIdentifier).html(response);
457
        if (detailsContainerIdentifier != null) {
458
            $('#' + detailsContainerIdentifier).html('');
459
        }
460
        $("#" + paginatedIdentifier + " .next").prop('disabled', false);
461
        if (parseInt(pre) == 0) {
462
            $("#" + paginatedIdentifier + " .previous").prop('disabled', true);
463
        }
464
    });
24595 tejbeer 465
 
23629 ashik.ali 466
}
467
 
32308 amit.gupta 468
function numberToComma(x, rounded) {
32301 amit.gupta 469
    if (isNaN(x)) {
470
        x = x.replaceAll(",", '');
471
    }
472
    x = parseFloat(x);
32308 amit.gupta 473
    if (typeof rounded != "undefined" && rounded) {
474
        x = Math.round(x);
475
    } else {
476
        x = Math.round(x * 100) / 100;
477
    }
32301 amit.gupta 478
    x = x.toString();
479
    x = x.split('.');
480
    var x1 = x[0];
481
    var x2 = x.length > 1 && x[1] != '0' ? '.' + x[1] : '';
482
    var lastThree = x1.substring(x1.length - 3);
483
    var otherNumbers = x1.substring(0, x1.length - 3);
484
    if (x1.charAt(x1.length - 4) == ',' || x1.charAt(x1.length - 4) == '-') {
485
        console.log(lastThree)
486
    } else {
487
        if (otherNumbers != '')
488
            lastThree = ',' + lastThree;
489
    }
490
    return otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + (lastThree)
491
        + x2;
24992 tejbeer 492
 
23786 amit.gupta 493
}
23870 amit.gupta 494
 
35510 amit 495
function formatValueInCrore(value) {
496
    if (isNaN(value)) return value;
497
    value = parseFloat(value);
498
 
499
    if (value >= 10000000) {  // >= 1 Crore
500
        var croreValue = value / 10000000;
501
        // Remove trailing zeros: 1.500 -> 1.5, 1.000 -> 1
502
        var formatted = croreValue.toFixed(3).replace(/\.?0+$/, '');
503
        return formatted + ' Cr';
504
    } else {
505
        // Less than 1 Crore - show full number with Indian comma format
506
        return numberToComma(value);
507
    }
508
}
509
 
30599 amit.gupta 510
function getSingleDatePicker(startMoment) {
32301 amit.gupta 511
    var singleDatePicker = {
512
        "todayHighlight": true,
513
        "startDate": startMoment || moment(),
514
        "autoclose": true,
515
        "autoUpdateInput": true,
516
        "singleDatePicker": true,
517
        "locale": {
518
            'format': 'DD/MM/YYYY'
519
        }
520
    };
521
    return singleDatePicker;
23886 amit.gupta 522
}
523
 
30599 amit.gupta 524
function getDatesFromPicker(pickerElement) {
32301 amit.gupta 525
    return {
526
        startDate: $(pickerElement).data('daterangepicker').startDate.format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS),
527
        endDate: $(pickerElement).data('daterangepicker').endDate.format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS)
528
    }
30599 amit.gupta 529
}
530
 
531
function getReporticoDatesFromPicker(pickerElement) {
32301 amit.gupta 532
    let datePickerData = $(pickerElement).data('daterangepicker');
533
    let formattedEndDate = null;
534
    if (typeof datePickerData.endDate == "object") {
535
        formattedEndDate = datePickerData.endDate.format(moment.HTML5_FMT.DATE);
536
    }
537
    return {
538
        startDate: datePickerData.startDate.format(moment.HTML5_FMT.DATE),
539
        endDate: formattedEndDate
540
    };
30599 amit.gupta 541
}
542
 
33220 amit.gupta 543
function getStartOfFinancialYear(momentObj) {
544
    recentQuarter = momentObj.startOf('quarter').set('quarter', 2);
545
    return momentObj.quarter >= 2 ? recentQuarter : recentQuarter.subtract('year', 1);
546
}
30599 amit.gupta 547
 
33220 amit.gupta 548
function getStatementRanges() {
549
    return {
550
        ranges: {
551
            'This Month': [moment().startOf('month'), moment().startOf('day')],
33927 tejus.loha 552
            'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
553
            'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
554
            'Last 6 Months': [moment().subtract(6, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
33220 amit.gupta 555
            'Current Financial Year': [getStartOfFinancialYear(moment()), getStartOfFinancialYear(moment()).add('year', 1).subtract(1, 'day')],
556
            'Last Financial Year': [getStartOfFinancialYear(moment()).subtract('year', 1), getStartOfFinancialYear(moment()).subtract(1, 'day')]
557
        },
558
        alwaysShowCalendars: false,
559
        showCustomRangeLabel: false,
560
        showDropdowns: true,
561
        locale: {
562
            format: 'DD/MM/YYYY'
563
        }
564
    }
565
}
566
 
34236 ranu 567
function getYearMonthPicker() {
568
    return {
569
        "todayHighlight": true,
570
        "showDropdowns": true,
571
        "opens": "right",
572
        "startDate": moment().startOf('month'),
573
        "endDate": moment().endOf('month'),
574
        "singleDatePicker": true, // Ensures only one month selection
575
        "showCustomRangeLabel": false,
576
        "autoApply": true,
577
        "locale": {
578
            'format': 'YYYY-MM' // Year-Month format
579
        },
580
        "isInvalidDate": function (date) {
581
            return date.date() !== 1; // Only allows selecting the first day of a month
582
        }
583
    };
584
}
585
 
30599 amit.gupta 586
function getRangedDatePicker(showRanges, startMoment, endMoment) {
32301 amit.gupta 587
    if (typeof showRanges == "undefined") {
588
        showRanges = false;
589
    }
590
    var rangedDatePicker = {
591
        "todayHighlight": true,
33220 amit.gupta 592
        "showDropdowns": true,
32301 amit.gupta 593
        "opens": "right",
594
        "startDate": startMoment || moment().startOf('day'),
595
        "endDate": endMoment || moment().endOf('day'),
596
        "autoclose": true,
597
        "alwaysShowCalendars": false,
598
        "autoUpdateInput": true,
599
        "locale": {
600
            'format': 'DD/MM/YYYY'
601
        }
602
    };
603
    if (showRanges) {
604
        rangedDatePicker['ranges'] = {
605
            'Today': [moment(), moment()],
606
            'Yesterday': [moment().subtract(1, 'days'),
607
                moment().subtract(1, 'days')],
608
            'Last 7 Days': [moment().subtract(6, 'days'), moment()],
609
            'Last 30 Days': [moment().subtract(29, 'days'), moment()],
610
            'This Month': [moment().startOf('month'), moment().endOf('month')],
611
            'Last Month': [moment().subtract(1, 'month').startOf('month'),
612
                moment()],
613
            'Last 3 Months': [moment().subtract(3, 'month').startOf('month'),
614
                moment()],
615
            'Last 6 Months': [moment().subtract(6, 'month').startOf('month'),
616
                moment()]
34859 vikas 617
        };
32301 amit.gupta 618
    }
619
    return rangedDatePicker;
23892 amit.gupta 620
}
30017 amit.gupta 621
 
23946 amit.gupta 622
function showPosition(position) {
32301 amit.gupta 623
    if (typeof latitude == "undefined") {
624
        var coords = {
625
            latitude: position.coords.latitude,
626
            longitude: position.coords.longitude
34859 vikas 627
        };
32301 amit.gupta 628
        doAjaxRequestWithJsonHandler('partner/location', 'PUT', JSON
629
            .stringify(coords), function () {
630
            latitude = position.coords.latitude;
631
            longitude = position.coords.longitude;
632
        });
633
    }
634
    // distance = getDistance(latitude, longitude, position.coords.latitude,
635
    // position.coords.longitude);
24168 amit.gupta 636
}
637
 
24595 tejbeer 638
function getAuthorisedWarehouses(callback) {
32301 amit.gupta 639
    bootBoxObj = {
640
        size: "small",
641
        title: "Choose Warehouse",
642
        callback: callback,
643
        inputType: 'select',
34859 vikas 644
        inputOptions: typeof inputOptions == "undefined" ? undefined : inputOptions
645
    };
32301 amit.gupta 646
    if (typeof inputOptions == "undefined") {
647
        doGetAjaxRequestHandler(context + "/authorisedWarehouses", function (
648
            response) {
649
            response = JSON.parse(response);
650
            inputOptions = [];
651
            response.forEach(function (warehouse) {
652
                inputOptions.push({
653
                    text: warehouse.name,
654
                    value: warehouse.id,
655
                });
656
            });
657
            bootBoxObj['inputOptions'] = inputOptions;
658
            bootbox.prompt(bootBoxObj);
659
        });
660
    } else if (inputOptions.length == 1) {
661
        callback(inputOptions[0].warehouse.id);
662
    } else {
663
        bootbox.prompt(bootBoxObj);
664
    }
24595 tejbeer 665
 
24176 amit.gupta 666
}
30017 amit.gupta 667
 
24410 amit.gupta 668
function getColorsForItems(catalogId, itemId, description, callback) {
32301 amit.gupta 669
    colorCheckboxHandler(catalogId, itemId, description, callback);
30017 amit.gupta 670
}
671
 
672
function colorNumberHandler(catalogId, itemId, title, actionText, callback) {
32301 amit.gupta 673
    doGetAjaxRequestHandler(context + "/itemsByCatalogId?catalogId="
674
        + catalogId + "&itemId=" + itemId, function (response) {
675
        let coloredItems = JSON.parse(response);
676
        let modalBody = [];
677
        coloredItems.forEach(function (item) {
678
            modalBody.push(`
30017 amit.gupta 679
                <div class="row">
680
                    <div class="col-sm-2">
681
                        ${item.color}
682
                    </div>
683
                    <div class="col-sm-2">
684
                            <input data-itemid="${item.id}" type="text" class="form-control" />
685
                    </div>
686
                </div>
687
            `);
32301 amit.gupta 688
        });
689
        let dialogBoxHtml = `<div class="modal modal" tabindex="-1" role="dialog">
30017 amit.gupta 690
                              <div class="modal-dialog" >
691
                                <div class="modal-content">
692
                                  <div class="modal-header">
693
                                    <h5 class="modal-title">${title}</h5>
694
                                  </div>
695
                                  <div class="modal-body">
696
                                        ${modalBody.join('')}
697
                                  </div>
698
                                  <div class="modal-footer">
699
                                    <button type="button" class="btn btn-primary number_dialog">${actionText}</button>
700
                                  </div>
701
                                </div>
702
                              </div>
703
                            </div>`;
32301 amit.gupta 704
        let $dialog = $(dialogBoxHtml);
705
        let modalObj = $dialog.modal('show');
706
        modalObj.on('hidden.bs.modal', function (e) {
707
            $dialog.remove();
708
        });
709
        $('button.number_dialog').on('click', function () {
710
            let itemQty = [];
711
            let anySelected = false;
712
            $(modalObj).find('.modal-body').find('input').each(function () {
713
                $input = $(this);
714
                if ($input.val() > 0) {
715
                    itemQty.push({
716
                        itemId: $input.data("itemid"),
717
                        quantity: $input.val()
718
                    });
719
                    anySelected = true;
720
                }
721
            });
722
            if (anySelected && confirm("Are you sure want to notify?")) {
35459 amit 723
                $that = $(this);
32301 amit.gupta 724
                callback(itemQty, function () {
725
                    $that.off('click');
726
                    modalObj.hide();
727
                });
728
            } else {
35459 amit 729
                alert("Pls mention quantity");
32301 amit.gupta 730
            }
731
        });
732
    });
30017 amit.gupta 733
}
734
 
735
 
30021 amit.gupta 736
function colorCheckboxHandler(catalogId, itemId, description, callback) {
32301 amit.gupta 737
    let bootBoxObj = {
738
        size: "small",
739
        className: "item-wrapper",
740
        title: description,
741
        callback: callback,
742
        inputType: 'checkbox',
743
    }
744
    doGetAjaxRequestHandler(context + "/itemsByCatalogId?catalogId="
745
        + catalogId + "&itemId=" + itemId, function (response) {
35459 amit 746
        coloredItems = JSON.parse(response);
747
        inputOptions = [{
32301 amit.gupta 748
            text: "All",
749
            value: "0",
750
            onclick: "toggleAll('itemIds')"
751
        }];
752
        coloredItems.forEach(function (item) {
753
            inputOptions.push({
754
                text: item.color,
755
                value: item.id,
756
                selected: item.active
757
            });
758
        });
759
        bootBoxObj['inputOptions'] = inputOptions;
35459 amit 760
        promptObj = bootbox.prompt(bootBoxObj);
761
        promptObj.modal('show')
32301 amit.gupta 762
        $('.item-wrapper').find("input[type='checkbox']").slice(1).each(
763
            function (index, checkbox) {
764
                checkbox.checked = coloredItems[index].active;
765
            });
766
    });
24406 amit.gupta 767
}
28055 tejbeer 768
 
769
function getHotdealsForItems(catalogId, itemId, description, callback) {
35459 amit 770
    bootBoxObj = {
32301 amit.gupta 771
        size: "small",
772
        className: "item-wrapper",
773
        title: description,
774
        callback: callback,
775
        inputType: 'checkbox',
35459 amit 776
    }
32301 amit.gupta 777
    doGetAjaxRequestHandler(context + "/hotdealsitemsByCatalogId?catalogId="
778
        + catalogId + "&itemId=" + itemId, function (response) {
35459 amit 779
        coloredItems = JSON.parse(response);
780
        inputOptions = [{
32301 amit.gupta 781
            text: "All",
782
            value: "0",
783
            onclick: "toggleAll('itemIds')"
784
        }];
785
        coloredItems.forEach(function (item) {
786
            inputOptions.push({
787
                text: item.color,
788
                value: item.id,
789
                selected: item.hotDeals
790
            });
791
        });
792
        bootBoxObj['inputOptions'] = inputOptions;
35459 amit 793
        promptObj = bootbox.prompt(bootBoxObj);
794
        promptObj.modal('show')
32301 amit.gupta 795
        $('.item-wrapper').find("input[type='checkbox']").slice(1).each(
796
            function (index, checkbox) {
797
                checkbox.checked = coloredItems[index].hotDeals;
798
            });
799
    });
28055 tejbeer 800
}
30017 amit.gupta 801
 
27763 tejbeer 802
$(document).on('change', ".item-wrapper input[type='checkbox']:first",
32301 amit.gupta 803
    function () {
35459 amit 804
        if (this.value == "0") {
32301 amit.gupta 805
            $(this).closest('.item-wrapper').find("input[type='checkbox']")
806
                .slice(1).prop('checked', $(this).prop('checked'));
807
        }
808
    });
30017 amit.gupta 809
 
27618 tejbeer 810
function getItemAheadOptions(jqElement, anyColor, callback) {
35459 amit 811
    console.log(anyColor)
32301 amit.gupta 812
    jqElement.typeahead('destroy').typeahead({
813
        source: function (q, process) {
814
            if (q.length >= 3) {
815
                return $.ajax(context + "/item?anyColor=" + anyColor, {
816
                    global: false,
817
                    data: {
818
                        query: q
819
                    },
33758 ranu 820
                    headers: {
821
                        'IdempotencyKey': IdempotencyKey
822
                    },
32301 amit.gupta 823
                    success: function (data) {
35459 amit 824
                        //IdempotencyKey = uuidv4();
825
                        queryData = JSON.parse(data);
32301 amit.gupta 826
                        process(queryData);
827
                    },
828
                });
829
            }
830
        },
831
        delay: 300,
832
        items: 20,
833
        displayText: function (item) {
834
            return item.itemDescription;
835
        },
836
        autoSelect: true,
837
        afterSelect: callback
838
    });
24176 amit.gupta 839
}
28795 tejbeer 840
 
841
 
32195 tejbeer 842
function getVendorItemAheadOptions(jqElement, vendorId, callback) {
32301 amit.gupta 843
    jqElement.typeahead('destroy').typeahead({
844
        source: function (q, process) {
845
            if (q.length >= 3) {
846
                return $.ajax(context + "/vendorItem?vendorId=" + vendorId, {
847
                    global: false,
848
                    data: {
849
                        query: q
850
                    },
33758 ranu 851
                    headers: {
852
                        'IdempotencyKey': IdempotencyKey
853
                    },
32301 amit.gupta 854
                    success: function (data) {
35459 amit 855
                        //IdempotencyKey = uuidv4();
856
                        queryData = JSON.parse(data);
32301 amit.gupta 857
                        process(queryData);
858
                    },
859
                });
860
            }
861
        },
862
        delay: 300,
863
        items: 20,
864
        displayText: function (item) {
865
            return item.itemDescription;
866
        },
867
        autoSelect: true,
868
        afterSelect: callback
869
    });
32195 tejbeer 870
}
871
 
28795 tejbeer 872
function getImeiAheadOptions(jqElement, fofoId, callback) {
32301 amit.gupta 873
    jqElement.typeahead('destroy').typeahead({
874
            source: function (q, process) {
875
                if (q.length >= 3) {
876
                    return $.ajax(context + "/imei?fofoId=" + fofoId, {
877
                        global: false,
878
                        data: {
879
                            query: q
880
                        },
33758 ranu 881
                        headers: {
882
                            'IdempotencyKey': IdempotencyKey
883
                        },
32301 amit.gupta 884
                        success: function (data) {
35459 amit 885
                            //IdempotencyKey = uuidv4();
886
                            queryData = JSON.parse(data);
32301 amit.gupta 887
                            process(queryData);
888
                        },
889
                    });
890
                }
891
            },
892
            delay: 300,
893
            items: 20,
894
            displayText: function (imei) {
895
                return imei;
896
            },
897
            autoSelect: true,
898
            afterSelect: callback
899
        }
900
    );
31762 tejbeer 901
}
902
 
903
 
904
function getAllImeiAheadOptions(jqElement, callback) {
32301 amit.gupta 905
    jqElement.typeahead('destroy').typeahead({
906
        source: function (q, process) {
907
            if (q.length >= 3) {
908
                return $.ajax(context + "/allimei", {
909
                    global: false,
910
                    data: {
911
                        query: q
912
                    },
33758 ranu 913
                    headers: {
914
                        'IdempotencyKey': IdempotencyKey
915
                    },
32301 amit.gupta 916
                    success: function (data) {
33788 ranu 917
                        //IdempotencyKey = uuidv4();
32301 amit.gupta 918
                        queryData = JSON.parse(data);
919
                        process(queryData);
920
                    },
921
                });
922
            }
923
        },
924
        delay: 300,
925
        items: 20,
926
        displayText: function (imei) {
927
            return imei;
928
        },
929
        autoSelect: true,
930
        afterSelect: callback
931
    });
28795 tejbeer 932
}
933
 
934
 
25394 amit.gupta 935
function getEntityAheadOptions(jqElement, callback) {
32301 amit.gupta 936
    jqElement.typeahead('destroy').typeahead({
937
        source: function (q, process) {
938
            if (q.length >= 3) {
939
                return $.ajax(context + "/entity", {
940
                    global: false,
941
                    data: {
942
                        query: q
943
                    },
33758 ranu 944
                    headers: {
945
                        'IdempotencyKey': IdempotencyKey
946
                    },
32301 amit.gupta 947
                    success: function (data) {
33788 ranu 948
                        //IdempotencyKey = uuidv4();
32301 amit.gupta 949
                        queryData = JSON.parse(data);
950
                        process(queryData);
951
                    },
952
                });
953
            }
954
        },
955
        delay: 300,
956
        items: 30,
957
        displayText: function (entity) {
958
            return entity.title_s + "(" + entity.catalogId_i + ")";
959
        },
960
        autoSelect: true,
961
        afterSelect: callback
962
    });
25394 amit.gupta 963
}
30017 amit.gupta 964
 
24349 amit.gupta 965
function getPartnerAheadOptions(jqElement, callback) {
32301 amit.gupta 966
    jqElement.typeahead('destroy').typeahead({
967
        source: function (q, process) {
968
            if (q.length >= 3) {
969
                return $.ajax(context + "/partners", {
970
                    global: false,
971
                    data: {
972
                        query: q
973
                    },
33758 ranu 974
                    headers: {
975
                        'IdempotencyKey': IdempotencyKey
976
                    },
32301 amit.gupta 977
                    success: function (data) {
33788 ranu 978
                        //IdempotencyKey = uuidv4();
32301 amit.gupta 979
                        queryData = JSON.parse(data);
980
                        process(queryData);
981
                    },
982
                });
983
            }
984
        },
985
        delay: 300,
986
        items: 20,
987
        displayText: function (partner) {
988
            return partner.displayName;
989
        },
990
        autoSelect: true,
991
        afterSelect: callback
992
    });
24349 amit.gupta 993
}
24406 amit.gupta 994
 
32074 tejbeer 995
function getVendorAheadOptions(jqElement, callback) {
32301 amit.gupta 996
    jqElement.typeahead('destroy').typeahead({
997
        source: function (q, process) {
998
            if (q.length >= 3) {
999
                return $.ajax(context + "/vendors", {
1000
                    global: false,
1001
                    data: {
1002
                        query: q
1003
                    },
33758 ranu 1004
                    headers: {
1005
                        'IdempotencyKey': IdempotencyKey
1006
                    },
32301 amit.gupta 1007
                    success: function (data) {
33788 ranu 1008
                        //IdempotencyKey = uuidv4();
32301 amit.gupta 1009
                        queryData = JSON.parse(data);
1010
                        process(queryData);
1011
                    },
1012
                });
1013
            }
1014
        },
1015
        delay: 300,
1016
        items: 20,
1017
        displayText: function (vendor) {
1018
            return vendor.name;
1019
        },
1020
        autoSelect: true,
1021
        afterSelect: callback
1022
    });
32074 tejbeer 1023
}
1024
 
24595 tejbeer 1025
function loadPriceDrop(domId) {
32301 amit.gupta 1026
    doGetAjaxRequestHandler(context + "/getItemDescription",
1027
        function (response) {
1028
            $('#' + domId).html(response);
1029
        });
24406 amit.gupta 1030
}
30017 amit.gupta 1031
 
32301 amit.gupta 1032
$(document).on('click', ".price_drop", function () {
1033
    loadPriceDrop("main-content");
24595 tejbeer 1034
});
25649 tejbeer 1035
 
27618 tejbeer 1036
 
32301 amit.gupta 1037
$(document).on('click', ".closed_pricedrop", function () {
1038
    loadClosedPriceDrop("main-content");
28569 amit.gupta 1039
});
1040
 
1041
function loadClosedPriceDrop(domId) {
32301 amit.gupta 1042
    doGetAjaxRequestHandler(context + "/getClosedPricedropItemDescription",
1043
        function (response) {
1044
            $('#' + domId).html(response);
1045
        });
28569 amit.gupta 1046
}
1047
 
27696 tejbeer 1048
function notifyTypeChange(messageType, $container) {
32301 amit.gupta 1049
    var messageQueryString = "?messageType=" + messageType;
1050
    if (messageType == null) {
1051
        messageQueryString = "";
1052
    }
1053
    doGetAjaxRequestHandler(context + "/notifications" + messageQueryString, function (response) {
1054
        if ($container != null) {
1055
            loaderDialogObj.one('hidden.bs.modal', function () {
1056
                $container.popover({
1057
                    container: $container,
1058
                    template: '<div class="popover popover1" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content popover2"></div></div>',
1059
                    content: response,
1060
                    html: true,
1061
                    placement: "bottom",
1062
                    trigger: "manual",
1063
                    sanitize: false
1064
                }).popover('show');
1065
                setTimeout(function () {
1066
                    $container.focus().one('blur', function () {
1067
                        $container.popover('destroy');
1068
                    });
1069
                }, 100);
1070
            });
1071
        }
1072
    });
25649 tejbeer 1073
}
25651 tejbeer 1074
 
25689 amit.gupta 1075
function downloadNotifyDocument(documentId, cid, documentName) {
32301 amit.gupta 1076
    doAjaxGetDownload(context + "/notifyDocument/download?cid=" + cid,
1077
        documentName);
25651 tejbeer 1078
}
28051 amit.gupta 1079
 
1080
 
1081
/* Create an array with the values of all the input boxes in a column */
32301 amit.gupta 1082
$.fn.dataTable.ext.order['dom-text'] = function (settings, col) {
1083
    return this.api().column(col, {order: 'index'}).nodes().map(function (td, i) {
1084
        return $('input', td).val();
1085
    });
28051 amit.gupta 1086
}
28795 tejbeer 1087
 
28063 amit.gupta 1088
/* Create an array with the values of all the input boxes in a column, parsed as numbers */
32301 amit.gupta 1089
$.fn.dataTable.ext.order['dom-text-numeric'] = function (settings, col) {
1090
    return this.api().column(col, {order: 'index'}).nodes().map(function (td, i) {
1091
        return $('input', td).val() * 1;
1092
    });
28051 amit.gupta 1093
}
28795 tejbeer 1094
 
32301 amit.gupta 1095
$.fn.dataTable.ext.order['dom-stock-numeric'] = function (settings, col) {
1096
    return this.api().column(col, {order: 'index'}).nodes().map(function (td, i) {
1097
        return $(td).html().split("/")[0] * 1;
1098
    });
28870 tejbeer 1099
}
28051 amit.gupta 1100
/* Create an array with the values of all the select options in a column */
32301 amit.gupta 1101
$.fn.dataTable.ext.order['dom-select'] = function (settings, col) {
1102
    return this.api().column(col, {order: 'index'}).nodes().map(function (td, i) {
1103
        return $('select', td).val();
1104
    });
28051 amit.gupta 1105
}
28795 tejbeer 1106
 
28051 amit.gupta 1107
/* Create an array with the values of all the checkboxes in a column */
32301 amit.gupta 1108
$.fn.dataTable.ext.order['dom-checkbox'] = function (settings, col) {
1109
    return this.api().column(col, {
1110
        order: 'index'
1111
    }).nodes().map(function (td, i) {
1112
        return $('input', td).prop('checked') ? '1' : '0';
1113
    });
30414 amit.gupta 1114
}
1115
 
32301 amit.gupta 1116
$.fn.dataTable.Api.register('sum()', function () {
1117
    return this.flatten().reduce(function (a, b) {
1118
        if (typeof a === 'string') {
1119
            a = a.replace(/[^\d.-]/g, '') * 1;
1120
            a = isNaN(a) ? 0 : a;
1121
        }
1122
        if (typeof b === 'string') {
1123
            b = b.replace(/[^\d.-]/g, '') * 1;
1124
            b = isNaN(b) ? 0 : b;
1125
        }
30414 amit.gupta 1126
 
32301 amit.gupta 1127
        return a + b;
1128
    }, 0);
30694 amit.gupta 1129
});
1130
 
1131
const debounce = (func, delay) => {
32301 amit.gupta 1132
    let debounceTimer
1133
    return function () {
1134
        const context = this
1135
        const args = arguments
1136
        clearTimeout(debounceTimer)
1137
        debounceTimer
1138
            = setTimeout(() => func.apply(context, args), delay)
1139
    }
30694 amit.gupta 1140
}
31687 amit.gupta 1141
 
32301 amit.gupta 1142
function parseDate(str) {
1143
    var m = str.match(/^(\d{1,2})[-/](\d{1,2})[-/](\d{4})$/);
1144
    return (m) ? new Date(m[3], m[2] - 1, m[1]) : null;
1145
}
31687 amit.gupta 1146
 
32130 amit.gupta 1147
function ExportToExcel(container, fn) {
32301 amit.gupta 1148
    let tableId = $(container).data('tableid');
1149
    var elt = document.getElementById(tableId);
33220 amit.gupta 1150
    console.log('elt', elt);
32301 amit.gupta 1151
    if ($.fn.DataTable.isDataTable(`#${tableId}`)) {
33220 amit.gupta 1152
        let dataTable = $(`#${tableId}`).DataTable();
1153
        dataTable.page.len(-1).draw();
1154
        elt = dataTable.table(0).container();
32301 amit.gupta 1155
    }
1156
    ExportTableToExcel(elt, fn);
31687 amit.gupta 1157
}
1158
 
32301 amit.gupta 1159
function ExportTableToExcel(tableElt, fn) {
1160
    $table = $(tableElt)
1161
    $table.find('td').each((index, value) => {
1162
        let $tdElement = $(value);
1163
        console.log($tdElement);
1164
        let parsedDate = parseDate($tdElement.html());
1165
        if (parsedDate != null) {
1166
            let days = Math.floor(parsedDate.getTime() / 86400 * 1000);
1167
            $tdElement.data('v', days);
1168
            $tdElement.data("t", "n");
1169
            $tdElement.data("z", "yyyy-mm-dd");
1170
        }
1171
    });
1172
    console.log($table.get(0))
1173
    var wb = XLSX.utils.table_to_book($table.get(0), {sheet: "sheet1"});
1174
    XLSX.writeFile(wb, fn + '.xlsx');
1175
}
31687 amit.gupta 1176
 
32301 amit.gupta 1177
 
1178
$(document).on('click', ".manage-pcm", function () {
1179
    managePCM();
31687 amit.gupta 1180
});
1181
 
1182
function managePCM() {
32301 amit.gupta 1183
    doGetAjaxRequestHandler(`${context}/brand-pcm`, function (response) {
1184
        $('#main-content').html(response);
1185
    });
31687 amit.gupta 1186
}
31786 tejbeer 1187
 
1188
 
32301 amit.gupta 1189
$(document).on('click', ".digify-retailer-login", function () {
31786 tejbeer 1190
 
32301 amit.gupta 1191
    doGetAjaxRequestHandler(context + "/digify/register", function (response) {
32074 tejbeer 1192
 
1193
 
32301 amit.gupta 1194
        $('#main-content').html(response);
32074 tejbeer 1195
 
32301 amit.gupta 1196
    });
1197
    //$('#main-content').html(`<iframe class="wrapper" src="${context}/digify/register" style="width:100%;height:100vh"> </iframe>`);
1198
    //$('#main-content').html(`<a class="wrapper" href="${context}/digify/register" target="_blank" style="width:100%;height:100vh"> </a>`);
32074 tejbeer 1199
 
31786 tejbeer 1200
});
31878 tejbeer 1201
 
32301 amit.gupta 1202
$(document).on('click', '.warehousewise_stock', function () {
1203
    doGetAjaxRequestHandler(`${context}/warehouse/stock-qty`, function (response) {
1204
        $('#main-content').html(response);
1205
    });
32130 amit.gupta 1206
});
31878 tejbeer 1207
 
32567 tejbeer 1208
function loadMainContent(htmlContent) {
1209
    $('#main-content').html(htmlContent);
1210
}
31878 tejbeer 1211
 
1212
 
32979 amit.gupta 1213
function jsonStartDate(dateInputString) {
33220 amit.gupta 1214
    if (dateInputString === '') return null;
33141 amit.gupta 1215
    return moment(dateInputString, "yyyy-MM-DD").format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS);
32979 amit.gupta 1216
}
33220 amit.gupta 1217
 
32979 amit.gupta 1218
function jsonEndDate(dateInputString) {
33220 amit.gupta 1219
    if (dateInputString === '') return null;
33141 amit.gupta 1220
    return moment(dateInputString, "yyyy-MM-DD").endOf('day').format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS);
32979 amit.gupta 1221
}
31878 tejbeer 1222
 
33167 amit.gupta 1223
function showToast(message) {
1224
    Toastify({
1225
        text: message,
1226
        duration: 3000, // 3 seconds
1227
        gravity: "top", // or "bottom"
1228
        position: "right", // "left", "center", "right"
1229
        backgroundColor: "green", // specify the background color
33400 ranu 1230
        offset: {
1231
            x: 20, // Horizontal margin from the right
1232
            y: 70 // Vertical margin from the top
1233
        }
33167 amit.gupta 1234
    }).showToast();
1235
}
31878 tejbeer 1236
 
33612 amit.gupta 1237
function loadHtml(html) {
1238
    $("#main-content").html(html);
1239
}
32130 amit.gupta 1240
 
33612 amit.gupta 1241
 
33508 tejus.loha 1242
function objectifyForm(formArray) {
35459 amit 1243
    //serialize data function
1244
    console.log('Row form  data ', formArray);
1245
    var returnArray = {};
1246
    for (var i = 0; i < formArray.length; i++) {
1247
        var name = formArray[i]['name'];
1248
        var value = formArray[i]['value'];
33927 tejus.loha 1249
        if (typeof returnArray[name] === 'undefined') {
1250
            returnArray[name] = value.trim();
35459 amit 1251
        } else if (typeof returnArray[name] === 'object') {
33927 tejus.loha 1252
            returnArray[name].push(value);
1253
        } else {
35459 amit 1254
            var a = returnArray[name];
1255
            returnArray[name] = [returnArray[name]];
1256
            a.push(value);
1257
            returnArray[name] = a;
33927 tejus.loha 1258
        }
33508 tejus.loha 1259
    }
1260
    return returnArray;
1261
}
32567 tejbeer 1262
 
33780 tejus.loha 1263
function isValidEmail(email) {
1264
    const EMAIL_REGEX = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(com|in|net)$/;
1265
    return EMAIL_REGEX.test(email);
1266
}
32979 amit.gupta 1267
 
34387 vikas.jang 1268
function serializeFormToJson(formId) {
1269
    let formArray = $(formId).serializeArray();
1270
    let formData = {};
1271
    $.map(formArray, function(field) {
1272
        formData[field.name] = field.value;
1273
    });
1274
    return formData;
34813 aman 1275
}
1276
 
1277
function getCookie(name) {
1278
    const cookies = document.cookie.split('; ');
1279
    for (let cookie of cookies) {
1280
        const [key, value] = cookie.split('=');
1281
        if (key === name) return decodeURIComponent(value);
1282
    }
1283
    return null;
34387 vikas.jang 1284
}