Subversion Repositories SmartDukaan

Rev

Rev 35549 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
27187 amit.gupta 1
var customerId;
31083 amit.gupta 2
 
24440 amit.gupta 3
function formLoaded() {
32327 amit.gupta 4
    $("form#cd input").each(function () {
5
        $(this).attr('autocomplete', 'off');
6
    });
7
    $('form#cd').validate({
8
        rules: {
9
            name: {
10
                required: true
11
            },
12
            email: {
13
                required: true,
14
                email: true
15
            },
16
            line1: {
17
                required: true
18
            },
19
            state: {
20
                required: true
21
            },
22
            city: {
23
                required: true
24
            },
25
            pincode: {
26
                required: true,
27
                digits: true,
28
                minlength: 6,
29
                maxlength: 6,
30
            },
31
            phone: {
32
                required: true,
33
                minlength: 10,
34
                maxlength: 10,
35
                digits: true
36
            },
37
        },
38
        messages: {
39
            name: {
40
                required: "Required"
41
            },
42
            line1: {
43
                required: "Required"
44
            },
45
            state: {
46
                required: "State required"
47
            },
48
            city: {
49
                required: "City required"
50
            },
51
            email: {
52
                require: "Required"
53
            },
54
            pincode: {
55
                required: "Required",
56
                digits: "Invalid pin"
57
            },
58
            phone: {
59
                required: "Required",
60
                digits: "Invalid number",
61
                minlength: "Number should be of 10 digits"
62
            }
63
        },
64
        submitHandler: function (form, event) {
65
            event.preventDefault();
66
            var payload = orderDetailsPayload();
67
            if (!validateOrderDetails()) {
68
                alert("Please fix highlighted errors");
69
                return false;
70
            }
71
            doPostAjaxRequestWithJsonHandler(context + "/create-order", payload, function (response) {
72
                emptyBag();
73
                $('#main-content').html(response);
74
            });
75
            return false; // required to block normal submit since you used
76
            // ajax
77
        }
31083 amit.gupta 78
 
32327 amit.gupta 79
    });
28339 tejbeer 80
 
34179 tejus.loha 81
 
32327 amit.gupta 82
    $('form#newaddress').validate({
83
        rules: {
84
            firstName: {
85
                required: true
86
            },
87
            line1: {
88
                required: true
89
            },
90
            state: {
91
                required: true
92
            },
93
            city: {
94
                required: true
95
            },
96
            pinCode: {
97
                required: true,
98
                digits: true,
99
                minlength: 6,
100
                maxlength: 6,
101
            },
102
            alternatePhone: {
103
                required: true,
104
                minlength: 10,
105
                maxlength: 10,
106
                digits: true
107
            },
108
        },
109
        messages: {
110
            firstName: {
111
                required: "Required"
112
            },
113
            line1: {
114
                required: "Required"
115
            },
116
            state: {
117
                required: "State required"
118
            },
119
            city: {
120
                required: "City required"
121
            },
122
            pinCode: {
123
                required: "Required",
124
                digits: "Invalid pin"
125
            },
126
            alternatePhone: {
127
                required: "Required",
128
                digits: "Invalid number",
129
                minlength: "Number should be of 10 digits"
130
            }
131
        },
132
        submitHandler: function (form, event) {
133
            event.preventDefault();
36064 aman 134
            if ($(form).data('submitting')) return;
135
            $(form).data('submitting', true);
32327 amit.gupta 136
            let customerAddress = {};
137
            customerAddress['name'] = $("#firstName").val();
138
            customerAddress['lastName'] = $("#lastName").val();
139
            customerAddress['line1'] = $("#line1").val();
140
            customerAddress['line2'] = $("#line2").val();
141
            customerAddress['landmark'] = $("#landmark").val();
142
            customerAddress['city'] = $("#city").val();
143
            customerAddress['state'] = $('select[name=state] option:selected').val();
144
            customerAddress['pinCode'] = $("#pinCode").val();
145
            customerAddress['phoneNumber'] = $("#alternatePhone").val();
146
            customerAddress['country'] = "India";
147
            doPostAjaxRequestWithJsonHandler(`${context}/customer/address?customerId=${customerId}`, JSON.stringify(customerAddress), function (response) {
148
                $("#address-body").prepend(getAddressTr(response.response));
149
                $('#newaddressModal').modal('toggle');
150
                $("#address-body").find('a.select-address').click();
36064 aman 151
                $(form).data('submitting', false);
32327 amit.gupta 152
            });
153
        }
31083 amit.gupta 154
 
32327 amit.gupta 155
    });
31083 amit.gupta 156
 
32327 amit.gupta 157
    $("input.unitPrice").on('change', function () {
158
        var $element = $(this);
159
        var unitPrice = parseFloat($element.val());
160
        if (!isNaN(unitPrice)) {
161
            var itemType = parseFloat($(this).closest('tr').find('.serialNumber').attr("itemType"));
162
            var mopPrice = parseFloat($(this).attr('mopPrice'));
163
            var isMop = JSON.parse($(this).attr('isMop'));
164
            var dp = parseFloat($(this).attr('dp'));
165
            var mrp = parseFloat($(this).attr('mrp'));
35459 amit 166
            if (mrp != 0 && unitPrice > mrp) {
32327 amit.gupta 167
                alert("Selling Price should not be greater than MRP");
168
                $element.addClass("border-highlight");
169
            } else if (!accessoriesDeals && unitPrice < mopPrice) {
170
                alert("Selling Price must be greater than equal to MOP");
171
                $element.addClass("border-highlight");
35459 amit 172
            } else if (itemType == 'SERIALIZED' && unitPrice < mopPrice) {
32327 amit.gupta 173
                if (isMop) {
174
                    alert("Selling Price must be greater than equal to MOP");
175
                    $element.addClass("border-highlight");
176
                }
35459 amit 177
            } else if (itemType == 'NON_SERIALIZED' && unitPrice < dp) {
32327 amit.gupta 178
                alert("Selling Price must be greater than equal to DP");
179
                $element.addClass("border-highlight");
180
            } else {
181
                $element.removeClass("border-highlight");
182
            }
183
            // Clear insurance values if price changes
184
            $(this).closest('tr').find('.insuranceid').val("");
185
            $(this).closest('tr').find('.insuranceamount').val("0");
186
        }
32468 amit.gupta 187
        //calculateTotalAmount();
32327 amit.gupta 188
    });
189
    customerInfo = $("div.customerinfo").html();
190
    billingInfo = $("div.billinginfo").html();
28339 tejbeer 191
 
32327 amit.gupta 192
    $("input.search-phone").change(function () {
193
        resetInputs();
194
        var mobileNumber = $(this).val();
32468 amit.gupta 195
        console.log(mobileNumber);
32327 amit.gupta 196
        if (mobileNumber.length < 10 || mobileNumber.length > 10) {
197
            alert("Mobile Number is must be 10 digits");
198
            return false;
199
        } else {
200
            writeOldCustomerDetailsByMobileNumber(mobileNumber);
201
        }
202
    });
28339 tejbeer 203
 
32327 amit.gupta 204
    $(document).on('click', 'button.new-address-btn', function () {
205
        $('#newaddressModal').modal({show: true});
206
    });
28339 tejbeer 207
 
32327 amit.gupta 208
    $(document).on('click', 'button.mk_add_email', function () {
209
        let customerObj = {};
210
        customerObj['customerId'] = customerId;
211
        customerObj['emailId'] = $("#emailId").val();
212
        if (validateEmail(customerObj['emailId'])) {
213
            doPostAjaxRequestWithJsonHandler(`${context}/customer/add-email`, JSON.stringify(customerObj), function (response) {
214
                alert("Email added");
215
                $("input.search-phone").val(customerObj['mobileNumber']).change();
216
            });
217
        } else {
218
            alert("Invalid email id");
219
        }
28339 tejbeer 220
 
32327 amit.gupta 221
    });
222
    $(document).on('click', 'button.mk_add_customer', function () {
35459 amit 223
        customerObj = {}
224
        if ($("input.firstName").val().length == 0) {
32327 amit.gupta 225
            alert("First Name is required");
226
            return false;
227
        }
228
        customerObj['firstName'] = $("input.firstName").val();
229
        customerObj['lastName'] = $("input.lastName").val();
230
        customerObj['emailId'] = $("#emailId").val();
35459 amit 231
 
232
        console.log(customerObj['emailId']);
32327 amit.gupta 233
        customerObj['mobileNumber'] = $("input.phone").val();
31855 tejbeer 234
 
32327 amit.gupta 235
        if (customerObj['emailId']) {
236
            if (!validateEmail(customerObj['emailId'])) {
237
                alert("Invalid email id");
238
                return false;
239
            }
240
        }
31855 tejbeer 241
 
242
 
32327 amit.gupta 243
        doPostAjaxRequestWithJsonHandler(`${context}/customer/add`, JSON.stringify(customerObj), function (response) {
244
            alert("Customer added");
245
            $("input.search-phone").change();
246
        });
31855 tejbeer 247
 
28339 tejbeer 248
 
32327 amit.gupta 249
    });
250
    $(document).on('click', 'a.select-address', function () {
251
        $(this).closest('table').data("addressselected", "true").find('td').css("font-weight", "normal");
252
        $(this).closest('tr').find('td').css("font-weight", "bold");
253
        selectedAddressId = $(this).data("addressid");
254
    });
255
    $(document).on('click', 'button.btn-add-address', function () {
36064 aman 256
        var $btn = $(this);
257
        if ($btn.prop('disabled')) return;
258
        $btn.prop('disabled', true);
32327 amit.gupta 259
        $("form#newaddress").submit();
36064 aman 260
        setTimeout(function () {
261
            $btn.prop('disabled', false);
262
        }, 2000);
32327 amit.gupta 263
    });
28339 tejbeer 264
 
36064 aman 265
    $('#newaddressModal').on('hidden.bs.modal', function () {
266
        $('form#newaddress').data('submitting', false);
267
    });
268
 
32327 amit.gupta 269
}
28339 tejbeer 270
 
271
function validateOrderDetails() {
32327 amit.gupta 272
    var sNumbers = [];
273
    var error = false;
274
    $("form#cd input.serialNumber").each(function () {
35232 ranu 275
        var input = $(this).val().trim();
276
        var itemType = $(this).attr("itemType");
277
        $(this).removeClass("border-highlight");
278
 
279
        if (itemType !== 'SERIALIZED') {
280
            return;
281
        }
282
 
283
        // Split multiple serial numbers by comma
284
        var serials = input.split(',').map(s => s.trim()).filter(s => s !== "");
285
 
286
        // Check for empty or duplicate
287
        for (let sn of serials) {
288
            if (!sn || sNumbers.indexOf(sn) !== -1) {
32329 amit.gupta 289
                error = true;
290
                $(this).addClass("border-highlight");
291
            }
35232 ranu 292
            sNumbers.push(sn);
32327 amit.gupta 293
        }
35232 ranu 294
    });
28339 tejbeer 295
 
32327 amit.gupta 296
    $("form#cd input.unitPrice").each(function () {
297
        var input = $(this).val().trim();
298
        $(this).removeClass("border-highlight");
299
        if (!input || parseInt(input) <= 0 || isNaN(input)) {
300
            error = true;
301
            $(this).addClass("border-highlight");
302
        }
303
    });
28339 tejbeer 304
 
32327 amit.gupta 305
    var gstNumber = $("form#cd input[name=gstNumber]").val();
306
    $("form#cd input[name=gstNumber]").removeClass("border-highlight");
35459 amit 307
    if (gstNumber.length > 0 && gstNumber.length != 15) {
32327 amit.gupta 308
        alert("Please provide valid gstNumber");
309
        error = true;
310
        $("form#cd input[name=gstNumber]").addClass("border-highlight");
311
    }
28339 tejbeer 312
 
32327 amit.gupta 313
    var amount = 0;
314
    var netPayableAmount = parseFloat($("form#cd input.netPayableAmount").val());
315
    $("form#cd input.amount").each(function () {
35459 amit 316
        if ($(this).val() == "") {
32327 amit.gupta 317
            $(this).val(0);
318
        }
319
        var tmpAmount = parseFloat($(this).val());
320
        amount = amount + tmpAmount;
321
    });
28339 tejbeer 322
 
35459 amit 323
    console.log(amount);
324
    console.log(netPayableAmount);
325
 
326
    if (amount != netPayableAmount) {
32327 amit.gupta 327
        if (amount < netPayableAmount) {
328
            alert("[" + (netPayableAmount - amount) + "] is more required to complete the payment");
329
        } else {
330
            alert("[" + (amount - netPayableAmount) + "] is extra amount, please reduce the amount");
331
        }
332
        $("form#cd input.netPayableAmount").each(function () {
333
            $(this).addClass("border-highlight");
334
        });
335
        error = true;
336
    }
28339 tejbeer 337
 
32327 amit.gupta 338
    if (error) {
339
        return false;
340
    }
341
    return true;
28339 tejbeer 342
 
23347 ashik.ali 343
}
344
 
27187 amit.gupta 345
 
28339 tejbeer 346
function getSerialNumbersFromOrder($el) {
32327 amit.gupta 347
    var $serialNumberElement = $el.find('.serialNumber');
35459 amit 348
    if ($serialNumberElement.val() == '') {
32327 amit.gupta 349
        return null;
350
    }
351
    var insuranceAmount = parseFloat($el.find('.insuranceamount').val());
35459 amit 352
    if (insuranceAmount > 0) {
353
        insurance = true;
354
        globalInsurace = true;
355
    } else {
356
        insurance = false;
357
    }
358
    return {'serialNumber': $serialNumberElement.val(), 'insurance': insurance, 'amount': insuranceAmount}
23347 ashik.ali 359
}
360
 
28339 tejbeer 361
function orderDetailsPayload() {
32327 amit.gupta 362
    var priceQtyArray = [];
363
    var customerObj = {};
364
    var paymentOptionIdAmount = [];
365
    var globalInsurance = false;
28339 tejbeer 366
 
32327 amit.gupta 367
    $("#order-items").find("tr:not(:first-child)").each(function (index, el) {
35459 amit 368
        console.log("el------------", el);
369
            // console.log(index);
34179 tejus.loha 370
            var $el = $(el);
371
            var $customerOfferItemId = $el.find('.offerSelect');
372
            var $unitPriceElement = $el.find('.unitPrice');
373
            var itemId = parseInt($unitPriceElement.attr("itemId"));
374
            var qty = parseInt($unitPriceElement.attr("quantity"));
375
            var found = false;
32816 ranu 376
            var customSerialNumberEl = $(el).find('.customSerialNumber');
34179 tejus.loha 377
            let tmpObj;
378
            let filteredList = priceQtyArray.filter(x => x.itemId === itemId);
379
            if (filteredList.length === 0) {
380
                var $discountElement = $el.find('.discount');
381
                var $poiId = $el.find('.poiId');
382
                var unitPrice = parseFloat($unitPriceElement.val());
383
                var discount = parseFloat($discountElement.val());
384
                var poiId = $poiId.val();
34805 ranu 385
                var customerOfferItemId = [];
386
                if ($customerOfferItemId && $customerOfferItemId.length > 0) {
387
                    var selectedOption = $customerOfferItemId.find("option:selected");
388
                    var offerIds = selectedOption.data("customeroffer-ids");
389
                    if (offerIds) {
390
                        customerOfferItemId = offerIds.toString().split(",").map(id => id.trim());
391
                    }
34179 tejus.loha 392
                }
33795 ranu 393
 
34179 tejus.loha 394
                if (isNaN(discount)) {
395
                    discount = 0;
396
                }
397
                let customSerialNumbers = [];
32816 ranu 398
 
34179 tejus.loha 399
                if (customSerialNumberEl.val() !== '') {
400
                    customSerialNumbers = customSerialNumberEl.val().split(",").map(function (serial) {
401
                        return serial.trim(); // Trim spaces from each serial number
402
                    });
32816 ranu 403
 
34179 tejus.loha 404
                    if (customSerialNumbers.length !== qty) {
405
                        alert("Please add all serial numbers");
406
                        return false;
407
                    }
32816 ranu 408
                }
409
 
34179 tejus.loha 410
                tmpObj = {
411
                    itemId: itemId,
412
                    poiId: poiId,
413
                    sellingPrice: unitPrice - discount,
414
                    quantity: 0,
415
                    customerOfferItemId: customerOfferItemId,
416
                    discountAmount: discount,
417
                    customSerialNumbers: customSerialNumberEl.val().split(","),
418
                    serialNumberDetails: []
419
                };
32816 ranu 420
 
34179 tejus.loha 421
                priceQtyArray.push(tmpObj);
422
            } else {
423
                tmpObj = filteredList[0];
424
            }
28339 tejbeer 425
 
32816 ranu 426
            tmpObj.quantity += qty;
32328 amit.gupta 427
 
35232 ranu 428
            // Handle serial numbers and insurance per row
429
            var $serialNumberElement = $el.find('.serialNumber');
430
            var serialNumbers = $serialNumberElement.val()
431
                ? $serialNumberElement.val().split(',').map(s => s.trim())
432
                : [];
433
            tmpObj.customSerialNumbers = serialNumbers;
34798 ranu 434
 
35232 ranu 435
// Get insurance details
436
            var insuranceEle = $el.find('.insuranceamount');
437
            var insuranceIds = ($el.find('.insuranceid').val() || "").split(',');
438
            var correlationIds = ($el.find('.correlationid').val() || "").split(',');
439
            var amounts = (insuranceEle.data('all-amounts') || "").toString().split(',');
34798 ranu 440
 
35232 ranu 441
            var ram = $el.find('.ram').val();
442
            var memory = $el.find('.memory').val();
443
            var rawDate = $el.find('.mfgdate').val();
444
            var mfgDate = rawDate ? new Date(rawDate).toISOString().split('.')[0] : "";
32816 ranu 445
 
35232 ranu 446
// Map each serial number to its corresponding insurance
447
            for (let i = 0; i < serialNumbers.length; i++) {
448
                let sn = serialNumbers[i];
449
                if (insuranceIds[i]) {
450
                    for (let j = 0; j < insuranceIds.length; j++) {
451
                        let serialNumberDetail = {
452
                            serialNumber: sn,
453
                            insurance: insuranceIds[j] || "",
454
                            correlationId: correlationIds[i] || "",
455
                            amount: parseFloat(amounts[j] || 0),
456
                            ram: ram,
457
                            memory: memory,
458
                            mfgDate: mfgDate
459
                        };
460
                        tmpObj.serialNumberDetails.push(serialNumberDetail);
461
                    }
462
                } else {
463
                    let serialNumberDetail = {
464
                        serialNumber: sn,
465
                        insurance: insuranceIds[i] || "",
466
                        correlationId: correlationIds[i] || "",
467
                        amount: parseFloat(amounts[i] || 0),
468
                        ram: ram,
469
                        memory: memory,
470
                        mfgDate: mfgDate
471
                    };
472
                    tmpObj.serialNumberDetails.push(serialNumberDetail);
473
                }
474
            }
32327 amit.gupta 475
        }
32816 ranu 476
    )
477
    ;
23873 amit.gupta 478
 
28339 tejbeer 479
 
32327 amit.gupta 480
    customerObj['gstNumber'] = $("form#cd input[name=gstNumber]").val();
35459 amit 481
    if (customerId == undefined) {
32327 amit.gupta 482
        alert("Please choose customer");
483
        return false;
484
    }
35459 amit 485
    if ($("#customer-address").data("addressselected") == "true") {
32327 amit.gupta 486
        alert("Please select address");
487
        return false;
488
    }
489
    customerObj['customerId'] = customerId;
32816 ranu 490
// Check if selectedAddressId is defined and not empty
32627 ranu 491
    if (typeof selectedAddressId !== "undefined" && selectedAddressId !== null && selectedAddressId !== "") {
492
        customerObj['customerAddressId'] = selectedAddressId;
493
    } else {
494
        customerObj['customerAddressId'] = null;
495
    }
496
 
32327 amit.gupta 497
    customerObj['gender'] = $("#gender").val();
35549 ranu 498
    customerObj['dateOfBirth'] = $("#dateOfBirth").val();
28339 tejbeer 499
 
500
 
32327 amit.gupta 501
    var paymentOptionSize = parseInt($('#payment-option-id-amount-container').attr("paymentOptionSize"));
35459 amit 502
// console.log("paymentOptionSize = "+paymentOptionSize);
32327 amit.gupta 503
    for (var index = 0; index < paymentOptionSize; index++) {
504
        var paymentOptionAmount = 0.0;
35459 amit 505
        if ($('#paymentOptionIdAmount' + index).val() != "") {
32327 amit.gupta 506
            paymentOptionAmount = parseFloat($('#paymentOptionIdAmount' + index).val());
507
        }
508
        var paymentOptionId = $('#paymentOptionIdAmount' + index).attr("paymentOptionId");
509
        var paymentOptionIdAmountObject = {};
510
        paymentOptionIdAmountObject['paymentOptionId'] = paymentOptionId;
511
        paymentOptionIdAmountObject['amount'] = paymentOptionAmount;
512
        paymentOptionIdAmount.push(paymentOptionIdAmountObject);
513
    }
514
    var retObj = {};
515
    retObj['fofoOrderItems'] = (priceQtyArray);
516
    retObj['customer'] = (customerObj);
517
    retObj['paymentOptions'] = (paymentOptionIdAmount);
518
    retObj['poId'] = $('#poid').val();
28339 tejbeer 519
 
32327 amit.gupta 520
    retObj['poItemId'] = $('#poItemId').val();
36064 aman 521
    retObj['sendInvoiceOnWhatsApp'] = $('#sendInvoiceOnWhatsApp').is(':checked');
28339 tejbeer 522
 
35459 amit 523
    console.log(retObj);
32327 amit.gupta 524
    return JSON.stringify(retObj);
23347 ashik.ali 525
}
526
 
27187 amit.gupta 527
function resetInputs() {
32327 amit.gupta 528
    $("div.customerinfo").html(customerInfo);
529
    $("div.billinginfo").html(billingInfo).hide();
27187 amit.gupta 530
}
31083 amit.gupta 531
 
28339 tejbeer 532
function writeOldCustomerDetailsByMobileNumber(mobileNumber) {
32327 amit.gupta 533
    doAjaxRequestHandler(context + "/customer/mobileNumber?mobileNumber=" + mobileNumber, "GET", function (response) {
35459 amit 534
        if (response.response == '') {
32327 amit.gupta 535
            return;
536
        }
537
        var customer = response.response;
35459 amit 538
        if (customer == null) {
32327 amit.gupta 539
            $('input.phone').attr('value', mobileNumber).attr('readonly', true);
540
            $('button.mk_add_customer').show();
35459 amit 541
 
32327 amit.gupta 542
            return;
543
        }
544
        $('input.firstName').attr('value', customer.firstName).attr('readonly', true);
545
        $('input.lastName').attr('value', customer.lastName).attr('readonly', true);
546
        $('input.phone').attr('value', customer.mobileNumber).attr('readonly', true);
35459 amit 547
        if (customer.emailId != null && customer.emailId != '') {
32327 amit.gupta 548
            $('#emailId').attr('value', customer.emailId).attr('readonly', true);
35459 amit 549
            console.log('helo');
32327 amit.gupta 550
        } else {
551
            $('button.mk_add_email').show();
552
        }
553
        $('#firstName').val(customer.firstName);
554
        $('#lastName').val(customer.lastName);
555
        $('#alternatePhone').val(customer.mobileNumber);
556
        customerId = customer.customerId;
557
        $("div.billinginfo").show();
35459 amit 558
        trs = [];
559
        if (customer.addresses != null) {
560
            for (address of customer.addresses) {
561
                if (pendingPO != null) {
562
 
563
                    if (pendingPO.customerAddressId == address.id) {
32327 amit.gupta 564
                        trs.push(getAddressTr(address));
565
                    }
566
                } else {
567
                    trs.push(getAddressTr(address));
568
                }
569
            }
570
        }
571
        $("#address-body").html(trs.join(""));
35459 amit 572
 
32327 amit.gupta 573
    });
27187 amit.gupta 574
}
31083 amit.gupta 575
 
27187 amit.gupta 576
function getAddressTr(address) {
32327 amit.gupta 577
    var tr = [];
578
    tr.push(`<tr><td>${address.name} ${address.lastName}</td>`);
579
    tr.push(`<td>${address.line1}, ${address.line2}</td>`);
580
    tr.push(`<td>${address.city}</td>`);
581
    tr.push(`<td>${address.state}</td>`);
582
    tr.push(`<td>${address.pinCode}</td>`);
583
    tr.push(`<td>${address.phoneNumber}</td>`);
584
    tr.push(`<td><a class="select-address" href="javascript:void(0);" data-addressid="${address.id}">Select address</a></td></tr>`);
585
    return tr.join("");
27693 amit.gupta 586
}
31083 amit.gupta 587
 
27693 amit.gupta 588
function validateEmail(email) {
32327 amit.gupta 589
    const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
590
    return re.test(String(email).toLowerCase());
31083 amit.gupta 591
}
34179 tejus.loha 592
function sendInvoiceOnWApp(orderId){
593
    let whatsAppMobile = $('#whatsApp-invoice-number').val();
34204 tejus.loha 594
    if(!whatsAppMobile){
595
        alert('Please enter valid whatsApp number');
596
        return;
597
    }
598
    if(whatsAppMobile.length<10){
599
        alert('Mobile number must be at least 10 digits');
600
        return;
601
    }
602
    if(confirm('Are you sure you want to send invoice on whatsApp?')){
603
        doPutAjaxRequestHandler(`${context}/sendInvoiceOnWhatsApp?orderId=${orderId}&whatsAppMobile=${whatsAppMobile}`, function (response) {
604
            console.log("sendInvoiceOnWhatsApp res - ",response);
605
            if(response){
606
                alert('Invoice send successfully on whatsApp');
607
            }
608
        });
609
    }else {
610
        return;
611
    }
34179 tejus.loha 612
 
34204 tejus.loha 613
 
34179 tejus.loha 614
}