Subversion Repositories SmartDukaan

Rev

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