Subversion Repositories SmartDukaan

Rev

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

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