Subversion Repositories SmartDukaan

Rev

Rev 35510 | Rev 35544 | 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
    }
32301 amit.gupta 473
    x = x.toString();
474
    x = x.split('.');
475
    var x1 = x[0];
476
    var x2 = x.length > 1 && x[1] != '0' ? '.' + x[1] : '';
477
    var lastThree = x1.substring(x1.length - 3);
478
    var otherNumbers = x1.substring(0, x1.length - 3);
479
    if (x1.charAt(x1.length - 4) == ',' || x1.charAt(x1.length - 4) == '-') {
480
        console.log(lastThree)
481
    } else {
482
        if (otherNumbers != '')
483
            lastThree = ',' + lastThree;
484
    }
485
    return otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + (lastThree)
486
        + x2;
24992 tejbeer 487
 
23786 amit.gupta 488
}
23870 amit.gupta 489
 
35510 amit 490
function formatValueInCrore(value) {
491
    if (isNaN(value)) return value;
492
    value = parseFloat(value);
35533 amit 493
    return numberToComma(value);
494
    /*if (value >= 10000000) {  // >= 1 Crore
35510 amit 495
        var croreValue = value / 10000000;
496
        // Remove trailing zeros: 1.500 -> 1.5, 1.000 -> 1
497
        var formatted = croreValue.toFixed(3).replace(/\.?0+$/, '');
498
        return formatted + ' Cr';
499
    } else {
500
        // Less than 1 Crore - show full number with Indian comma format
501
        return numberToComma(value);
35533 amit 502
    }*/
35510 amit 503
}
504
 
30599 amit.gupta 505
function getSingleDatePicker(startMoment) {
32301 amit.gupta 506
    var singleDatePicker = {
507
        "todayHighlight": true,
508
        "startDate": startMoment || moment(),
509
        "autoclose": true,
510
        "autoUpdateInput": true,
511
        "singleDatePicker": true,
512
        "locale": {
513
            'format': 'DD/MM/YYYY'
514
        }
515
    };
516
    return singleDatePicker;
23886 amit.gupta 517
}
518
 
30599 amit.gupta 519
function getDatesFromPicker(pickerElement) {
32301 amit.gupta 520
    return {
521
        startDate: $(pickerElement).data('daterangepicker').startDate.format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS),
522
        endDate: $(pickerElement).data('daterangepicker').endDate.format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS)
523
    }
30599 amit.gupta 524
}
525
 
526
function getReporticoDatesFromPicker(pickerElement) {
32301 amit.gupta 527
    let datePickerData = $(pickerElement).data('daterangepicker');
528
    let formattedEndDate = null;
529
    if (typeof datePickerData.endDate == "object") {
530
        formattedEndDate = datePickerData.endDate.format(moment.HTML5_FMT.DATE);
531
    }
532
    return {
533
        startDate: datePickerData.startDate.format(moment.HTML5_FMT.DATE),
534
        endDate: formattedEndDate
535
    };
30599 amit.gupta 536
}
537
 
33220 amit.gupta 538
function getStartOfFinancialYear(momentObj) {
539
    recentQuarter = momentObj.startOf('quarter').set('quarter', 2);
540
    return momentObj.quarter >= 2 ? recentQuarter : recentQuarter.subtract('year', 1);
541
}
30599 amit.gupta 542
 
33220 amit.gupta 543
function getStatementRanges() {
544
    return {
545
        ranges: {
546
            'This Month': [moment().startOf('month'), moment().startOf('day')],
33927 tejus.loha 547
            'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
548
            'Last 3 Months': [moment().subtract(3, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
549
            'Last 6 Months': [moment().subtract(6, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
33220 amit.gupta 550
            'Current Financial Year': [getStartOfFinancialYear(moment()), getStartOfFinancialYear(moment()).add('year', 1).subtract(1, 'day')],
551
            'Last Financial Year': [getStartOfFinancialYear(moment()).subtract('year', 1), getStartOfFinancialYear(moment()).subtract(1, 'day')]
552
        },
553
        alwaysShowCalendars: false,
554
        showCustomRangeLabel: false,
555
        showDropdowns: true,
556
        locale: {
557
            format: 'DD/MM/YYYY'
558
        }
559
    }
560
}
561
 
34236 ranu 562
function getYearMonthPicker() {
563
    return {
564
        "todayHighlight": true,
565
        "showDropdowns": true,
566
        "opens": "right",
567
        "startDate": moment().startOf('month'),
568
        "endDate": moment().endOf('month'),
569
        "singleDatePicker": true, // Ensures only one month selection
570
        "showCustomRangeLabel": false,
571
        "autoApply": true,
572
        "locale": {
573
            'format': 'YYYY-MM' // Year-Month format
574
        },
575
        "isInvalidDate": function (date) {
576
            return date.date() !== 1; // Only allows selecting the first day of a month
577
        }
578
    };
579
}
580
 
30599 amit.gupta 581
function getRangedDatePicker(showRanges, startMoment, endMoment) {
32301 amit.gupta 582
    if (typeof showRanges == "undefined") {
583
        showRanges = false;
584
    }
585
    var rangedDatePicker = {
586
        "todayHighlight": true,
33220 amit.gupta 587
        "showDropdowns": true,
32301 amit.gupta 588
        "opens": "right",
589
        "startDate": startMoment || moment().startOf('day'),
590
        "endDate": endMoment || moment().endOf('day'),
591
        "autoclose": true,
592
        "alwaysShowCalendars": false,
593
        "autoUpdateInput": true,
594
        "locale": {
595
            'format': 'DD/MM/YYYY'
596
        }
597
    };
598
    if (showRanges) {
599
        rangedDatePicker['ranges'] = {
600
            'Today': [moment(), moment()],
601
            'Yesterday': [moment().subtract(1, 'days'),
602
                moment().subtract(1, 'days')],
603
            'Last 7 Days': [moment().subtract(6, 'days'), moment()],
604
            'Last 30 Days': [moment().subtract(29, 'days'), moment()],
605
            'This Month': [moment().startOf('month'), moment().endOf('month')],
606
            'Last Month': [moment().subtract(1, 'month').startOf('month'),
607
                moment()],
608
            'Last 3 Months': [moment().subtract(3, 'month').startOf('month'),
609
                moment()],
610
            'Last 6 Months': [moment().subtract(6, 'month').startOf('month'),
611
                moment()]
34859 vikas 612
        };
32301 amit.gupta 613
    }
614
    return rangedDatePicker;
23892 amit.gupta 615
}
30017 amit.gupta 616
 
23946 amit.gupta 617
function showPosition(position) {
32301 amit.gupta 618
    if (typeof latitude == "undefined") {
619
        var coords = {
620
            latitude: position.coords.latitude,
621
            longitude: position.coords.longitude
34859 vikas 622
        };
32301 amit.gupta 623
        doAjaxRequestWithJsonHandler('partner/location', 'PUT', JSON
624
            .stringify(coords), function () {
625
            latitude = position.coords.latitude;
626
            longitude = position.coords.longitude;
627
        });
628
    }
629
    // distance = getDistance(latitude, longitude, position.coords.latitude,
630
    // position.coords.longitude);
24168 amit.gupta 631
}
632
 
24595 tejbeer 633
function getAuthorisedWarehouses(callback) {
32301 amit.gupta 634
    bootBoxObj = {
635
        size: "small",
636
        title: "Choose Warehouse",
637
        callback: callback,
638
        inputType: 'select',
34859 vikas 639
        inputOptions: typeof inputOptions == "undefined" ? undefined : inputOptions
640
    };
32301 amit.gupta 641
    if (typeof inputOptions == "undefined") {
642
        doGetAjaxRequestHandler(context + "/authorisedWarehouses", function (
643
            response) {
644
            response = JSON.parse(response);
645
            inputOptions = [];
646
            response.forEach(function (warehouse) {
647
                inputOptions.push({
648
                    text: warehouse.name,
649
                    value: warehouse.id,
650
                });
651
            });
652
            bootBoxObj['inputOptions'] = inputOptions;
653
            bootbox.prompt(bootBoxObj);
654
        });
655
    } else if (inputOptions.length == 1) {
656
        callback(inputOptions[0].warehouse.id);
657
    } else {
658
        bootbox.prompt(bootBoxObj);
659
    }
24595 tejbeer 660
 
24176 amit.gupta 661
}
30017 amit.gupta 662
 
24410 amit.gupta 663
function getColorsForItems(catalogId, itemId, description, callback) {
32301 amit.gupta 664
    colorCheckboxHandler(catalogId, itemId, description, callback);
30017 amit.gupta 665
}
666
 
667
function colorNumberHandler(catalogId, itemId, title, actionText, callback) {
32301 amit.gupta 668
    doGetAjaxRequestHandler(context + "/itemsByCatalogId?catalogId="
669
        + catalogId + "&itemId=" + itemId, function (response) {
670
        let coloredItems = JSON.parse(response);
671
        let modalBody = [];
672
        coloredItems.forEach(function (item) {
673
            modalBody.push(`
30017 amit.gupta 674
                <div class="row">
675
                    <div class="col-sm-2">
676
                        ${item.color}
677
                    </div>
678
                    <div class="col-sm-2">
679
                            <input data-itemid="${item.id}" type="text" class="form-control" />
680
                    </div>
681
                </div>
682
            `);
32301 amit.gupta 683
        });
684
        let dialogBoxHtml = `<div class="modal modal" tabindex="-1" role="dialog">
30017 amit.gupta 685
                              <div class="modal-dialog" >
686
                                <div class="modal-content">
687
                                  <div class="modal-header">
688
                                    <h5 class="modal-title">${title}</h5>
689
                                  </div>
690
                                  <div class="modal-body">
691
                                        ${modalBody.join('')}
692
                                  </div>
693
                                  <div class="modal-footer">
694
                                    <button type="button" class="btn btn-primary number_dialog">${actionText}</button>
695
                                  </div>
696
                                </div>
697
                              </div>
698
                            </div>`;
32301 amit.gupta 699
        let $dialog = $(dialogBoxHtml);
700
        let modalObj = $dialog.modal('show');
701
        modalObj.on('hidden.bs.modal', function (e) {
702
            $dialog.remove();
703
        });
704
        $('button.number_dialog').on('click', function () {
705
            let itemQty = [];
706
            let anySelected = false;
707
            $(modalObj).find('.modal-body').find('input').each(function () {
708
                $input = $(this);
709
                if ($input.val() > 0) {
710
                    itemQty.push({
711
                        itemId: $input.data("itemid"),
712
                        quantity: $input.val()
713
                    });
714
                    anySelected = true;
715
                }
716
            });
717
            if (anySelected && confirm("Are you sure want to notify?")) {
35459 amit 718
                $that = $(this);
32301 amit.gupta 719
                callback(itemQty, function () {
720
                    $that.off('click');
721
                    modalObj.hide();
722
                });
723
            } else {
35459 amit 724
                alert("Pls mention quantity");
32301 amit.gupta 725
            }
726
        });
727
    });
30017 amit.gupta 728
}
729
 
730
 
30021 amit.gupta 731
function colorCheckboxHandler(catalogId, itemId, description, callback) {
32301 amit.gupta 732
    let bootBoxObj = {
733
        size: "small",
734
        className: "item-wrapper",
735
        title: description,
736
        callback: callback,
737
        inputType: 'checkbox',
738
    }
739
    doGetAjaxRequestHandler(context + "/itemsByCatalogId?catalogId="
740
        + catalogId + "&itemId=" + itemId, function (response) {
35459 amit 741
        coloredItems = JSON.parse(response);
742
        inputOptions = [{
32301 amit.gupta 743
            text: "All",
744
            value: "0",
745
            onclick: "toggleAll('itemIds')"
746
        }];
747
        coloredItems.forEach(function (item) {
748
            inputOptions.push({
749
                text: item.color,
750
                value: item.id,
751
                selected: item.active
752
            });
753
        });
754
        bootBoxObj['inputOptions'] = inputOptions;
35459 amit 755
        promptObj = bootbox.prompt(bootBoxObj);
756
        promptObj.modal('show')
32301 amit.gupta 757
        $('.item-wrapper').find("input[type='checkbox']").slice(1).each(
758
            function (index, checkbox) {
759
                checkbox.checked = coloredItems[index].active;
760
            });
761
    });
24406 amit.gupta 762
}
28055 tejbeer 763
 
764
function getHotdealsForItems(catalogId, itemId, description, callback) {
35459 amit 765
    bootBoxObj = {
32301 amit.gupta 766
        size: "small",
767
        className: "item-wrapper",
768
        title: description,
769
        callback: callback,
770
        inputType: 'checkbox',
35459 amit 771
    }
32301 amit.gupta 772
    doGetAjaxRequestHandler(context + "/hotdealsitemsByCatalogId?catalogId="
773
        + catalogId + "&itemId=" + itemId, function (response) {
35459 amit 774
        coloredItems = JSON.parse(response);
775
        inputOptions = [{
32301 amit.gupta 776
            text: "All",
777
            value: "0",
778
            onclick: "toggleAll('itemIds')"
779
        }];
780
        coloredItems.forEach(function (item) {
781
            inputOptions.push({
782
                text: item.color,
783
                value: item.id,
784
                selected: item.hotDeals
785
            });
786
        });
787
        bootBoxObj['inputOptions'] = inputOptions;
35459 amit 788
        promptObj = bootbox.prompt(bootBoxObj);
789
        promptObj.modal('show')
32301 amit.gupta 790
        $('.item-wrapper').find("input[type='checkbox']").slice(1).each(
791
            function (index, checkbox) {
792
                checkbox.checked = coloredItems[index].hotDeals;
793
            });
794
    });
28055 tejbeer 795
}
30017 amit.gupta 796
 
27763 tejbeer 797
$(document).on('change', ".item-wrapper input[type='checkbox']:first",
32301 amit.gupta 798
    function () {
35459 amit 799
        if (this.value == "0") {
32301 amit.gupta 800
            $(this).closest('.item-wrapper').find("input[type='checkbox']")
801
                .slice(1).prop('checked', $(this).prop('checked'));
802
        }
803
    });
30017 amit.gupta 804
 
27618 tejbeer 805
function getItemAheadOptions(jqElement, anyColor, callback) {
35459 amit 806
    console.log(anyColor)
32301 amit.gupta 807
    jqElement.typeahead('destroy').typeahead({
808
        source: function (q, process) {
809
            if (q.length >= 3) {
810
                return $.ajax(context + "/item?anyColor=" + anyColor, {
811
                    global: false,
812
                    data: {
813
                        query: q
814
                    },
33758 ranu 815
                    headers: {
816
                        'IdempotencyKey': IdempotencyKey
817
                    },
32301 amit.gupta 818
                    success: function (data) {
35459 amit 819
                        //IdempotencyKey = uuidv4();
820
                        queryData = JSON.parse(data);
32301 amit.gupta 821
                        process(queryData);
822
                    },
823
                });
824
            }
825
        },
826
        delay: 300,
827
        items: 20,
828
        displayText: function (item) {
829
            return item.itemDescription;
830
        },
831
        autoSelect: true,
832
        afterSelect: callback
833
    });
24176 amit.gupta 834
}
28795 tejbeer 835
 
836
 
32195 tejbeer 837
function getVendorItemAheadOptions(jqElement, vendorId, callback) {
32301 amit.gupta 838
    jqElement.typeahead('destroy').typeahead({
839
        source: function (q, process) {
840
            if (q.length >= 3) {
841
                return $.ajax(context + "/vendorItem?vendorId=" + vendorId, {
842
                    global: false,
843
                    data: {
844
                        query: q
845
                    },
33758 ranu 846
                    headers: {
847
                        'IdempotencyKey': IdempotencyKey
848
                    },
32301 amit.gupta 849
                    success: function (data) {
35459 amit 850
                        //IdempotencyKey = uuidv4();
851
                        queryData = JSON.parse(data);
32301 amit.gupta 852
                        process(queryData);
853
                    },
854
                });
855
            }
856
        },
857
        delay: 300,
858
        items: 20,
859
        displayText: function (item) {
860
            return item.itemDescription;
861
        },
862
        autoSelect: true,
863
        afterSelect: callback
864
    });
32195 tejbeer 865
}
866
 
28795 tejbeer 867
function getImeiAheadOptions(jqElement, fofoId, callback) {
32301 amit.gupta 868
    jqElement.typeahead('destroy').typeahead({
869
            source: function (q, process) {
870
                if (q.length >= 3) {
871
                    return $.ajax(context + "/imei?fofoId=" + fofoId, {
872
                        global: false,
873
                        data: {
874
                            query: q
875
                        },
33758 ranu 876
                        headers: {
877
                            'IdempotencyKey': IdempotencyKey
878
                        },
32301 amit.gupta 879
                        success: function (data) {
35459 amit 880
                            //IdempotencyKey = uuidv4();
881
                            queryData = JSON.parse(data);
32301 amit.gupta 882
                            process(queryData);
883
                        },
884
                    });
885
                }
886
            },
887
            delay: 300,
888
            items: 20,
889
            displayText: function (imei) {
890
                return imei;
891
            },
892
            autoSelect: true,
893
            afterSelect: callback
894
        }
895
    );
31762 tejbeer 896
}
897
 
898
 
899
function getAllImeiAheadOptions(jqElement, callback) {
32301 amit.gupta 900
    jqElement.typeahead('destroy').typeahead({
901
        source: function (q, process) {
902
            if (q.length >= 3) {
903
                return $.ajax(context + "/allimei", {
904
                    global: false,
905
                    data: {
906
                        query: q
907
                    },
33758 ranu 908
                    headers: {
909
                        'IdempotencyKey': IdempotencyKey
910
                    },
32301 amit.gupta 911
                    success: function (data) {
33788 ranu 912
                        //IdempotencyKey = uuidv4();
32301 amit.gupta 913
                        queryData = JSON.parse(data);
914
                        process(queryData);
915
                    },
916
                });
917
            }
918
        },
919
        delay: 300,
920
        items: 20,
921
        displayText: function (imei) {
922
            return imei;
923
        },
924
        autoSelect: true,
925
        afterSelect: callback
926
    });
28795 tejbeer 927
}
928
 
929
 
25394 amit.gupta 930
function getEntityAheadOptions(jqElement, callback) {
32301 amit.gupta 931
    jqElement.typeahead('destroy').typeahead({
932
        source: function (q, process) {
933
            if (q.length >= 3) {
934
                return $.ajax(context + "/entity", {
935
                    global: false,
936
                    data: {
937
                        query: q
938
                    },
33758 ranu 939
                    headers: {
940
                        'IdempotencyKey': IdempotencyKey
941
                    },
32301 amit.gupta 942
                    success: function (data) {
33788 ranu 943
                        //IdempotencyKey = uuidv4();
32301 amit.gupta 944
                        queryData = JSON.parse(data);
945
                        process(queryData);
946
                    },
947
                });
948
            }
949
        },
950
        delay: 300,
951
        items: 30,
952
        displayText: function (entity) {
953
            return entity.title_s + "(" + entity.catalogId_i + ")";
954
        },
955
        autoSelect: true,
956
        afterSelect: callback
957
    });
25394 amit.gupta 958
}
30017 amit.gupta 959
 
24349 amit.gupta 960
function getPartnerAheadOptions(jqElement, callback) {
32301 amit.gupta 961
    jqElement.typeahead('destroy').typeahead({
962
        source: function (q, process) {
963
            if (q.length >= 3) {
964
                return $.ajax(context + "/partners", {
965
                    global: false,
966
                    data: {
967
                        query: q
968
                    },
33758 ranu 969
                    headers: {
970
                        'IdempotencyKey': IdempotencyKey
971
                    },
32301 amit.gupta 972
                    success: function (data) {
33788 ranu 973
                        //IdempotencyKey = uuidv4();
32301 amit.gupta 974
                        queryData = JSON.parse(data);
975
                        process(queryData);
976
                    },
977
                });
978
            }
979
        },
980
        delay: 300,
981
        items: 20,
982
        displayText: function (partner) {
983
            return partner.displayName;
984
        },
985
        autoSelect: true,
986
        afterSelect: callback
987
    });
24349 amit.gupta 988
}
24406 amit.gupta 989
 
32074 tejbeer 990
function getVendorAheadOptions(jqElement, callback) {
32301 amit.gupta 991
    jqElement.typeahead('destroy').typeahead({
992
        source: function (q, process) {
993
            if (q.length >= 3) {
994
                return $.ajax(context + "/vendors", {
995
                    global: false,
996
                    data: {
997
                        query: q
998
                    },
33758 ranu 999
                    headers: {
1000
                        'IdempotencyKey': IdempotencyKey
1001
                    },
32301 amit.gupta 1002
                    success: function (data) {
33788 ranu 1003
                        //IdempotencyKey = uuidv4();
32301 amit.gupta 1004
                        queryData = JSON.parse(data);
1005
                        process(queryData);
1006
                    },
1007
                });
1008
            }
1009
        },
1010
        delay: 300,
1011
        items: 20,
1012
        displayText: function (vendor) {
1013
            return vendor.name;
1014
        },
1015
        autoSelect: true,
1016
        afterSelect: callback
1017
    });
32074 tejbeer 1018
}
1019
 
24595 tejbeer 1020
function loadPriceDrop(domId) {
32301 amit.gupta 1021
    doGetAjaxRequestHandler(context + "/getItemDescription",
1022
        function (response) {
1023
            $('#' + domId).html(response);
1024
        });
24406 amit.gupta 1025
}
30017 amit.gupta 1026
 
32301 amit.gupta 1027
$(document).on('click', ".price_drop", function () {
1028
    loadPriceDrop("main-content");
24595 tejbeer 1029
});
25649 tejbeer 1030
 
27618 tejbeer 1031
 
32301 amit.gupta 1032
$(document).on('click', ".closed_pricedrop", function () {
1033
    loadClosedPriceDrop("main-content");
28569 amit.gupta 1034
});
1035
 
1036
function loadClosedPriceDrop(domId) {
32301 amit.gupta 1037
    doGetAjaxRequestHandler(context + "/getClosedPricedropItemDescription",
1038
        function (response) {
1039
            $('#' + domId).html(response);
1040
        });
28569 amit.gupta 1041
}
1042
 
27696 tejbeer 1043
function notifyTypeChange(messageType, $container) {
32301 amit.gupta 1044
    var messageQueryString = "?messageType=" + messageType;
1045
    if (messageType == null) {
1046
        messageQueryString = "";
1047
    }
1048
    doGetAjaxRequestHandler(context + "/notifications" + messageQueryString, function (response) {
1049
        if ($container != null) {
1050
            loaderDialogObj.one('hidden.bs.modal', function () {
1051
                $container.popover({
1052
                    container: $container,
1053
                    template: '<div class="popover popover1" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content popover2"></div></div>',
1054
                    content: response,
1055
                    html: true,
1056
                    placement: "bottom",
1057
                    trigger: "manual",
1058
                    sanitize: false
1059
                }).popover('show');
1060
                setTimeout(function () {
1061
                    $container.focus().one('blur', function () {
1062
                        $container.popover('destroy');
1063
                    });
1064
                }, 100);
1065
            });
1066
        }
1067
    });
25649 tejbeer 1068
}
25651 tejbeer 1069
 
25689 amit.gupta 1070
function downloadNotifyDocument(documentId, cid, documentName) {
32301 amit.gupta 1071
    doAjaxGetDownload(context + "/notifyDocument/download?cid=" + cid,
1072
        documentName);
25651 tejbeer 1073
}
28051 amit.gupta 1074
 
1075
 
1076
/* Create an array with the values of all the input boxes in a column */
32301 amit.gupta 1077
$.fn.dataTable.ext.order['dom-text'] = function (settings, col) {
1078
    return this.api().column(col, {order: 'index'}).nodes().map(function (td, i) {
1079
        return $('input', td).val();
1080
    });
28051 amit.gupta 1081
}
28795 tejbeer 1082
 
28063 amit.gupta 1083
/* Create an array with the values of all the input boxes in a column, parsed as numbers */
32301 amit.gupta 1084
$.fn.dataTable.ext.order['dom-text-numeric'] = function (settings, col) {
1085
    return this.api().column(col, {order: 'index'}).nodes().map(function (td, i) {
1086
        return $('input', td).val() * 1;
1087
    });
28051 amit.gupta 1088
}
28795 tejbeer 1089
 
32301 amit.gupta 1090
$.fn.dataTable.ext.order['dom-stock-numeric'] = function (settings, col) {
1091
    return this.api().column(col, {order: 'index'}).nodes().map(function (td, i) {
1092
        return $(td).html().split("/")[0] * 1;
1093
    });
28870 tejbeer 1094
}
28051 amit.gupta 1095
/* Create an array with the values of all the select options in a column */
32301 amit.gupta 1096
$.fn.dataTable.ext.order['dom-select'] = function (settings, col) {
1097
    return this.api().column(col, {order: 'index'}).nodes().map(function (td, i) {
1098
        return $('select', td).val();
1099
    });
28051 amit.gupta 1100
}
28795 tejbeer 1101
 
28051 amit.gupta 1102
/* Create an array with the values of all the checkboxes in a column */
32301 amit.gupta 1103
$.fn.dataTable.ext.order['dom-checkbox'] = function (settings, col) {
1104
    return this.api().column(col, {
1105
        order: 'index'
1106
    }).nodes().map(function (td, i) {
1107
        return $('input', td).prop('checked') ? '1' : '0';
1108
    });
30414 amit.gupta 1109
}
1110
 
32301 amit.gupta 1111
$.fn.dataTable.Api.register('sum()', function () {
1112
    return this.flatten().reduce(function (a, b) {
1113
        if (typeof a === 'string') {
1114
            a = a.replace(/[^\d.-]/g, '') * 1;
1115
            a = isNaN(a) ? 0 : a;
1116
        }
1117
        if (typeof b === 'string') {
1118
            b = b.replace(/[^\d.-]/g, '') * 1;
1119
            b = isNaN(b) ? 0 : b;
1120
        }
30414 amit.gupta 1121
 
32301 amit.gupta 1122
        return a + b;
1123
    }, 0);
30694 amit.gupta 1124
});
1125
 
1126
const debounce = (func, delay) => {
32301 amit.gupta 1127
    let debounceTimer
1128
    return function () {
1129
        const context = this
1130
        const args = arguments
1131
        clearTimeout(debounceTimer)
1132
        debounceTimer
1133
            = setTimeout(() => func.apply(context, args), delay)
1134
    }
30694 amit.gupta 1135
}
31687 amit.gupta 1136
 
32301 amit.gupta 1137
function parseDate(str) {
1138
    var m = str.match(/^(\d{1,2})[-/](\d{1,2})[-/](\d{4})$/);
1139
    return (m) ? new Date(m[3], m[2] - 1, m[1]) : null;
1140
}
31687 amit.gupta 1141
 
32130 amit.gupta 1142
function ExportToExcel(container, fn) {
32301 amit.gupta 1143
    let tableId = $(container).data('tableid');
1144
    var elt = document.getElementById(tableId);
33220 amit.gupta 1145
    console.log('elt', elt);
32301 amit.gupta 1146
    if ($.fn.DataTable.isDataTable(`#${tableId}`)) {
33220 amit.gupta 1147
        let dataTable = $(`#${tableId}`).DataTable();
1148
        dataTable.page.len(-1).draw();
1149
        elt = dataTable.table(0).container();
32301 amit.gupta 1150
    }
1151
    ExportTableToExcel(elt, fn);
31687 amit.gupta 1152
}
1153
 
32301 amit.gupta 1154
function ExportTableToExcel(tableElt, fn) {
1155
    $table = $(tableElt)
1156
    $table.find('td').each((index, value) => {
1157
        let $tdElement = $(value);
1158
        console.log($tdElement);
1159
        let parsedDate = parseDate($tdElement.html());
1160
        if (parsedDate != null) {
1161
            let days = Math.floor(parsedDate.getTime() / 86400 * 1000);
1162
            $tdElement.data('v', days);
1163
            $tdElement.data("t", "n");
1164
            $tdElement.data("z", "yyyy-mm-dd");
1165
        }
1166
    });
1167
    console.log($table.get(0))
1168
    var wb = XLSX.utils.table_to_book($table.get(0), {sheet: "sheet1"});
1169
    XLSX.writeFile(wb, fn + '.xlsx');
1170
}
31687 amit.gupta 1171
 
32301 amit.gupta 1172
 
1173
$(document).on('click', ".manage-pcm", function () {
1174
    managePCM();
31687 amit.gupta 1175
});
1176
 
1177
function managePCM() {
32301 amit.gupta 1178
    doGetAjaxRequestHandler(`${context}/brand-pcm`, function (response) {
1179
        $('#main-content').html(response);
1180
    });
31687 amit.gupta 1181
}
31786 tejbeer 1182
 
1183
 
32301 amit.gupta 1184
$(document).on('click', ".digify-retailer-login", function () {
31786 tejbeer 1185
 
32301 amit.gupta 1186
    doGetAjaxRequestHandler(context + "/digify/register", function (response) {
32074 tejbeer 1187
 
1188
 
32301 amit.gupta 1189
        $('#main-content').html(response);
32074 tejbeer 1190
 
32301 amit.gupta 1191
    });
1192
    //$('#main-content').html(`<iframe class="wrapper" src="${context}/digify/register" style="width:100%;height:100vh"> </iframe>`);
1193
    //$('#main-content').html(`<a class="wrapper" href="${context}/digify/register" target="_blank" style="width:100%;height:100vh"> </a>`);
32074 tejbeer 1194
 
31786 tejbeer 1195
});
31878 tejbeer 1196
 
32301 amit.gupta 1197
$(document).on('click', '.warehousewise_stock', function () {
1198
    doGetAjaxRequestHandler(`${context}/warehouse/stock-qty`, function (response) {
1199
        $('#main-content').html(response);
1200
    });
32130 amit.gupta 1201
});
31878 tejbeer 1202
 
32567 tejbeer 1203
function loadMainContent(htmlContent) {
1204
    $('#main-content').html(htmlContent);
1205
}
31878 tejbeer 1206
 
1207
 
32979 amit.gupta 1208
function jsonStartDate(dateInputString) {
33220 amit.gupta 1209
    if (dateInputString === '') return null;
33141 amit.gupta 1210
    return moment(dateInputString, "yyyy-MM-DD").format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS);
32979 amit.gupta 1211
}
33220 amit.gupta 1212
 
32979 amit.gupta 1213
function jsonEndDate(dateInputString) {
33220 amit.gupta 1214
    if (dateInputString === '') return null;
33141 amit.gupta 1215
    return moment(dateInputString, "yyyy-MM-DD").endOf('day').format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS);
32979 amit.gupta 1216
}
31878 tejbeer 1217
 
33167 amit.gupta 1218
function showToast(message) {
1219
    Toastify({
1220
        text: message,
1221
        duration: 3000, // 3 seconds
1222
        gravity: "top", // or "bottom"
1223
        position: "right", // "left", "center", "right"
1224
        backgroundColor: "green", // specify the background color
33400 ranu 1225
        offset: {
1226
            x: 20, // Horizontal margin from the right
1227
            y: 70 // Vertical margin from the top
1228
        }
33167 amit.gupta 1229
    }).showToast();
1230
}
31878 tejbeer 1231
 
33612 amit.gupta 1232
function loadHtml(html) {
1233
    $("#main-content").html(html);
1234
}
32130 amit.gupta 1235
 
33612 amit.gupta 1236
 
33508 tejus.loha 1237
function objectifyForm(formArray) {
35459 amit 1238
    //serialize data function
1239
    console.log('Row form  data ', formArray);
1240
    var returnArray = {};
1241
    for (var i = 0; i < formArray.length; i++) {
1242
        var name = formArray[i]['name'];
1243
        var value = formArray[i]['value'];
33927 tejus.loha 1244
        if (typeof returnArray[name] === 'undefined') {
1245
            returnArray[name] = value.trim();
35459 amit 1246
        } else if (typeof returnArray[name] === 'object') {
33927 tejus.loha 1247
            returnArray[name].push(value);
1248
        } else {
35459 amit 1249
            var a = returnArray[name];
1250
            returnArray[name] = [returnArray[name]];
1251
            a.push(value);
1252
            returnArray[name] = a;
33927 tejus.loha 1253
        }
33508 tejus.loha 1254
    }
1255
    return returnArray;
1256
}
32567 tejbeer 1257
 
33780 tejus.loha 1258
function isValidEmail(email) {
1259
    const EMAIL_REGEX = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(com|in|net)$/;
1260
    return EMAIL_REGEX.test(email);
1261
}
32979 amit.gupta 1262
 
34387 vikas.jang 1263
function serializeFormToJson(formId) {
1264
    let formArray = $(formId).serializeArray();
1265
    let formData = {};
1266
    $.map(formArray, function(field) {
1267
        formData[field.name] = field.value;
1268
    });
1269
    return formData;
34813 aman 1270
}
1271
 
1272
function getCookie(name) {
1273
    const cookies = document.cookie.split('; ');
1274
    for (let cookie of cookies) {
1275
        const [key, value] = cookie.split('=');
1276
        if (key === name) return decodeURIComponent(value);
1277
    }
1278
    return null;
34387 vikas.jang 1279
}