Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
32352 amit.gupta 1
$(function () {
2
    $(document).on('click', ".warehouse-create-purchase-order", function () {
3
        loadCreatePurchase("main-content");
4
    });
32145 tejbeer 5
 
32352 amit.gupta 6
    $(document).on('click', ".warehouse-receive-new-invoice", function () {
7
        loadNewReceiveInvoice("main-content");
8
    });
32145 tejbeer 9
 
32192 tejbeer 10
 
32352 amit.gupta 11
    $(document).on('click', ".warehouse-grn-request", function () {
12
        loadGrnRequest("main-content");
13
    });
32192 tejbeer 14
 
32300 tejbeer 15
 
32352 amit.gupta 16
    $(document).on('click', ".warehouse-debit-note", function () {
17
        loadDebitNote("main-content");
18
    });
32192 tejbeer 19
 
20
 
32352 amit.gupta 21
    $(document).on('click', ".warehouse-invoices", function () {
22
        loadWarehouseInvoices("main-content");
23
    });
32256 tejbeer 24
 
32300 tejbeer 25
 
32352 amit.gupta 26
    $(document).on('click', '.dateWiseInvoices', function () {
32300 tejbeer 27
 
32352 amit.gupta 28
        var startDate = getDatesFromPicker('input[name="invoice-duration"]').startDate;
29
        var endDate = getDatesFromPicker('input[name="invoice-duration"]').endDate
32300 tejbeer 30
 
32352 amit.gupta 31
        var vendorId = $('#vendorId').val();
32300 tejbeer 32
 
32352 amit.gupta 33
        doGetAjaxRequestHandler(context + "/getWarehouseInvoicesByVendor?vendorId=" + vendorId + "&startDate=" + startDate + "&endDate=" + endDate, function (response) {
34
            $('.invoicesviewcontainer').html(response);
32300 tejbeer 35
 
32352 amit.gupta 36
        });
32300 tejbeer 37
 
38
 
32352 amit.gupta 39
    });
32300 tejbeer 40
 
41
 
32352 amit.gupta 42
    $(document)
43
        .on(
44
            'input',
45
            '#invoice',
46
            function () {
47
                if (confirm('Document has been selected, Do you want to upload ?')) {
48
                    var fileSelector = $('#invoice')[0];
49
                    if (fileSelector != undefined
50
                        && fileSelector.files[0] != undefined) {
51
                        var url = context + '/document-upload';
32300 tejbeer 52
 
32352 amit.gupta 53
                        console.log(url);
54
                        var file = this.files[0];
55
                        doAjaxUploadRequestHandler(
56
                            url,
57
                            'POST',
58
                            file,
59
                            function (response) {
60
                                console.log(response);
61
                                var documentId = response.response.document_id;
62
                                console.log("documentId : "
63
                                    + documentId);
64
                                localStorage.setItem("invoiceDocument",
65
                                    documentId);
32192 tejbeer 66
 
32295 tejbeer 67
 
32352 amit.gupta 68
                            });
32300 tejbeer 69
 
32352 amit.gupta 70
                    }
71
                } else {
72
                    // Do nothing!
73
                }
74
            });
32192 tejbeer 75
 
32352 amit.gupta 76
    $(document).on('click', ".createReceiveInvoice", function () {
32192 tejbeer 77
 
32352 amit.gupta 78
        var invoiceDate = $('#actualDate').val();
32192 tejbeer 79
 
32352 amit.gupta 80
        var warehouseId = $('#warehouseMap').val();
32192 tejbeer 81
 
32352 amit.gupta 82
        var numItems = $('#numberofItems').val();
32192 tejbeer 83
 
32352 amit.gupta 84
        var supplierId = $('#vendorId').val();
32192 tejbeer 85
 
32352 amit.gupta 86
        var totalValue = $('#totalValue').val();
32192 tejbeer 87
 
32352 amit.gupta 88
        var invoiceNumber = $('#invoiceNumber').val();
32192 tejbeer 89
 
90
 
32352 amit.gupta 91
        var invoiceDoc = localStorage
92
            .getItem("invoiceDocument");
32192 tejbeer 93
 
94
 
32352 amit.gupta 95
        console.log(invoiceDoc)
32192 tejbeer 96
 
97
 
32352 amit.gupta 98
        if (invoiceDate === "" && warehouseId === "" && numItems === "" && supplierId === "" && totalValue === "" && invoiceNumber === "" && invoiceDoc === "") {
99
            alert("Field can't be empty");
100
            return false;
101
        }
32192 tejbeer 102
 
103
 
32352 amit.gupta 104
        if (invoiceDate === "") {
105
            alert("please select date");
106
            return false;
107
        }
108
        if (warehouseId === "") {
109
            alert("please choose warehouse");
110
            return false;
111
        }
32192 tejbeer 112
 
32352 amit.gupta 113
        if (numItems === "") {
114
            alert("please fill number of items.");
115
            return false;
116
        }
32192 tejbeer 117
 
118
 
32352 amit.gupta 119
        if (supplierId === "") {
120
            alert("please choose supplier");
121
            return false;
122
        }
32311 tejbeer 123
 
32192 tejbeer 124
 
32352 amit.gupta 125
        if (totalValue === "") {
126
            alert("please fill Total Value.");
127
            return false;
128
        }
32192 tejbeer 129
 
32352 amit.gupta 130
        if (invoiceNumber === "") {
131
            alert("please fill Invoice Number.");
132
            return false;
133
        }
32192 tejbeer 134
 
135
 
32352 amit.gupta 136
        if (invoiceDoc === "") {
137
            alert("please upload invoice.");
138
            return false;
139
        }
140
        var newReceiveInvoice = {};
32192 tejbeer 141
 
32352 amit.gupta 142
        newReceiveInvoice['invoiceDate'] = invoiceDate;
143
        newReceiveInvoice['warehouseId'] = warehouseId
144
        newReceiveInvoice['numItems'] = numItems
145
        newReceiveInvoice['supplierId'] = supplierId
146
        newReceiveInvoice['totalValue'] = totalValue
147
        newReceiveInvoice['invoiceNumber'] = invoiceNumber
148
        newReceiveInvoice['invoiceDoc'] = invoiceDoc
32192 tejbeer 149
 
32352 amit.gupta 150
        console.log()
32192 tejbeer 151
 
32352 amit.gupta 152
        if (confirm("Are you sure you want to add new Invoice") == true) {
32192 tejbeer 153
 
32352 amit.gupta 154
            doPostAjaxRequestWithJsonHandler(context
155
                + "/newReceiveInvoice", JSON
156
                .stringify(newReceiveInvoice), function (response) {
157
                if (response == 'true') {
158
                    alert("successfully added");
159
                    localStorage.removeItem("invoiceDocument");
160
                    loadNewReceiveInvoice("main-content");
161
                }
162
            });
163
        }
32295 tejbeer 164
 
32192 tejbeer 165
 
32352 amit.gupta 166
    });
32192 tejbeer 167
 
168
 
32352 amit.gupta 169
    var purchaseItemIds;
170
    $(document).on('click', ".purchaseorderitemview", function () {
171
        purchaseItemIds = [];
172
        var vendorId = $('#vendorId').val();
173
        var warehouseId = $('#warehouseMap').val();
32192 tejbeer 174
 
32352 amit.gupta 175
        console.log(warehouseId);
32192 tejbeer 176
 
32352 amit.gupta 177
        if (warehouseId === null && vendorId === "") {
178
            alert("Field can't be empty");
179
            return;
180
        }
32192 tejbeer 181
 
182
 
32352 amit.gupta 183
        if (warehouseId === null) {
184
            alert("please select warehouse");
185
            return;
186
        }
187
        if (vendorId === "") {
188
            alert("please select vendor");
189
            return;
190
        }
191
        doGetAjaxRequestHandler(context + "/addPurchaseItemView?warehouseId=" + warehouseId + "&vendorId=" + vendorId, function (response) {
192
            $(".createpurchaseordercontainer").html(response);
193
        });
194
    });
32192 tejbeer 195
 
32145 tejbeer 196
 
32352 amit.gupta 197
    $(document).on('click', ".addRowInPurchaseOrder", function () {
198
        var totalQty = 0;
32145 tejbeer 199
 
32352 amit.gupta 200
        /*$("table > tbody > tr").each(function () {
201
            var itemId = $(this).find(".transferPrice").data('itemid');
202
            var qty = $(this).find(".qty").val();
32145 tejbeer 203
 
32352 amit.gupta 204
            console.log(qty);
32145 tejbeer 205
 
32352 amit.gupta 206
            if (qty !== undefined) {
207
                totalQty += parseInt(qty);
208
            }
32145 tejbeer 209
 
32352 amit.gupta 210
            console.log(totalQty);
32145 tejbeer 211
 
32192 tejbeer 212
 
32352 amit.gupta 213
            if (itemId !== undefined) {
214
                purchaseItemIds.push(itemId);
215
            }
216
        });*/
32192 tejbeer 217
 
32352 amit.gupta 218
        var $html = $('<tr>  <td>  <input type="text" class="form-control typeaheaditem"   autocomplete="off"  placeholder="Search Model"/> </td> <td>  <input type="number" class="form-control qty"  name = "qty" placeholder="Quantity"/> </td><td>  <input type="number" class="form-control transferPrice"  disable placeholder="Transfer Price"/> </td>	<td>  <input type="number" class="form-control totalValue"  disable placeholder="Total Value"/> </td> <td> <input class="form-control btn btn-primary removeInPurchaseOrder" type="button" value="Remove"></td>  </tr> ');
32192 tejbeer 219
 
32352 amit.gupta 220
        var vendorId = $('#vendorId').val();
32192 tejbeer 221
 
32352 amit.gupta 222
        $('tbody').append($html);
223
        getVendorItemAheadOptions($html.find('.typeaheaditem'), vendorId, function (
224
            selectedItem) {
225
            var itemId = selectedItem.itemId;
32192 tejbeer 226
 
32352 amit.gupta 227
            if (purchaseItemIds.indexOf(itemId) > -1) {
228
                alert("item already added");
229
                $html.find('.typeaheaditem').val("");
32192 tejbeer 230
 
32352 amit.gupta 231
                return false;
232
            }
32192 tejbeer 233
 
32352 amit.gupta 234
            addItem(itemId);
32145 tejbeer 235
 
236
 
32352 amit.gupta 237
            doGetAjaxRequestHandler(context + "/getPricing?vendorId=" + vendorId + "&itemId=" + itemId, function (response) {
238
                if (response !== "null") {
239
                    var jsonObj = JSON.parse(response);
240
                    $html.find('.transferPrice').val(jsonObj.transferPrice);
241
                    $html.find('input.qty').focus();
242
                } else {
243
                    $html.find('.typeaheaditem').val("");
244
                }
245
            });
32145 tejbeer 246
 
32352 amit.gupta 247
        });
32145 tejbeer 248
 
32352 amit.gupta 249
    });
32145 tejbeer 250
 
32352 amit.gupta 251
    function addItem(itemId) {
252
        oldItem = $html.find('.transferPrice').data(itemId);
253
        if (typeof (oldItem) === "undefined" || oldItem !== itemId) {
254
            purchaseItemIds.push(itemId);
255
            $html.find('.transferPrice').data('itemId', itemId);
256
        } else {
257
            let oldIndex = purchaseItemIds.indexOf(oldItem);
258
            if (oldIndex > -1) {
259
                purchaseItemIds.splice(oldIndex, 1);
260
            }
261
        }
262
    }
32145 tejbeer 263
 
32352 amit.gupta 264
    $(document).on('click', '.createSendPurchaseOrder', function () {
32145 tejbeer 265
 
32352 amit.gupta 266
        createPurchase(true);
32145 tejbeer 267
 
32352 amit.gupta 268
    });
32145 tejbeer 269
 
270
 
32352 amit.gupta 271
    $(document).on('click', '.createPurchaseOrder', function () {
32145 tejbeer 272
 
273
 
32352 amit.gupta 274
        createPurchase(false);
275
    });
32145 tejbeer 276
 
277
 
32352 amit.gupta 278
    $(document).on('change', '.qty', function () {
32145 tejbeer 279
 
280
 
32352 amit.gupta 281
        var row = $(this).closest("tr");
282
        var qty = $(row).find(".qty").val();
283
        var transferPrice = $(row).find(".transferPrice").val();
32145 tejbeer 284
 
32352 amit.gupta 285
        var totalVal = transferPrice * qty;
32145 tejbeer 286
 
32352 amit.gupta 287
        var totalValue = $(row).find(".totalValue").val(totalVal);
32145 tejbeer 288
 
32352 amit.gupta 289
        var purchaseOrderValue = 0;
32145 tejbeer 290
 
32352 amit.gupta 291
        $("table > tbody > tr").each(function () {
32145 tejbeer 292
 
32352 amit.gupta 293
            var totalValue = $(this).find(".totalValue").val();
294
            purchaseOrderValue += totalValue
32145 tejbeer 295
 
32352 amit.gupta 296
        });
32145 tejbeer 297
 
32352 amit.gupta 298
    });
32145 tejbeer 299
 
300
 
32352 amit.gupta 301
    $(document).on('click', '.warehouse-open-purchase-order', function () {
302
        loadOpenPurchase("main-content");
303
    });
32145 tejbeer 304
 
305
 
32352 amit.gupta 306
    $(document).on('click', '.editViewPurchaseOrder', function () {
307
        var purchaseOrderId = $(this).data('poid');
308
        doGetAjaxRequestHandler(context + "/getEditPOByPurchaseId?purchaseId=" + purchaseOrderId, function (response) {
309
            $('#warehouseEditPurchaseContainer .modal-content').html(response);
310
        });
32145 tejbeer 311
 
32352 amit.gupta 312
    });
32145 tejbeer 313
 
32352 amit.gupta 314
    $(document).on('click', '.editPurchaseOrder', function () {
315
        var purchaseOrderId = $(this).data('poid');
32145 tejbeer 316
 
32352 amit.gupta 317
        editPurchase(false, purchaseOrderId);
32145 tejbeer 318
 
32352 amit.gupta 319
    });
32145 tejbeer 320
 
321
 
32352 amit.gupta 322
    $(document).on('click', '.editSendPurchaseOrder', function () {
323
        var purchaseOrderId = $(this).data('poid');
32145 tejbeer 324
 
325
 
32352 amit.gupta 326
        editPurchase(true, purchaseOrderId);
327
    });
32145 tejbeer 328
 
32352 amit.gupta 329
    $(document).on('click', '.closePurchaseOrder', function () {
330
        var purchaseOrderId = $(this).data('poid');
331
        if (confirm("Are you sure you want to close the PO") == true) {
332
            doPostAjaxRequestHandler(context + "/closePuchaseOrder?purchaseId=" + purchaseOrderId,
333
                function (response) {
32145 tejbeer 334
 
32352 amit.gupta 335
                    console.log(response);
336
                    if (response == 'true') {
337
                        alert("successfully closed");
338
                        loadOpenPurchase("main-content")
339
                    }
340
                });
341
        }
342
    });
32145 tejbeer 343
 
344
 
32352 amit.gupta 345
    $(document).on('click', '.warehouse-view-purchase-order', function () {
346
        doGetAjaxRequestHandler(context + "/viewPurchaseOrder", function (response) {
347
            $('#' + 'main-content').html(response);
348
        });
349
    });
32145 tejbeer 350
 
351
 
32352 amit.gupta 352
    $(document).on('click', '.dateWisePo', function () {
32145 tejbeer 353
 
32352 amit.gupta 354
        var startDate = getDatesFromPicker('input[name="duration"]').startDate;
355
        var endDate = getDatesFromPicker('input[name="duration"]').endDate
32145 tejbeer 356
 
357
 
32352 amit.gupta 358
        doGetAjaxRequestHandler(context + "/getPurchaseOrders?startDate=" + startDate + "&endDate=" + endDate, function (response) {
359
            $('.purchaseorderviewcontainer').html(response);
32145 tejbeer 360
 
32352 amit.gupta 361
        });
32145 tejbeer 362
 
363
 
32352 amit.gupta 364
    });
32145 tejbeer 365
 
366
 
32352 amit.gupta 367
    $(document).on('click', '.viewPurchaseOrderlineItem', function () {
368
        var purchaseOrderId = $(this).data('poid');
32145 tejbeer 369
 
32352 amit.gupta 370
        doGetAjaxRequestHandler(context + "/getWarehouseLineItemByPurchaseId?purchaseId=" + purchaseOrderId, function (response) {
371
            $('#warehouseLineItem .modal-content').html(response);
32145 tejbeer 372
 
32352 amit.gupta 373
        });
374
    });
32145 tejbeer 375
 
376
 
32352 amit.gupta 377
    $(document).on("click", '.removeInPurchaseOrder', function () {
32145 tejbeer 378
 
32352 amit.gupta 379
        var row = $(this).closest("tr");
380
        let itemIndex = purchaseItemIds.indexOf();
381
        if (itemIndex > -1) { // only splice array when item is found
382
            purchaseItemIds.splice(itemIndex, 1); // 2nd parameter means remove one item only
383
        }
384
        row.remove();
385
    });
32192 tejbeer 386
 
387
 
32352 amit.gupta 388
    $(document).on('click', ".addRowForInvoiceItem", function () {
32145 tejbeer 389
 
32352 amit.gupta 390
        var numitems = $(this).data("numitems");
391
        var invoiceId = $(this).data("invoiceid");
392
        var invoiceItemIds = [];
393
        var totalQty = 0
32145 tejbeer 394
 
32352 amit.gupta 395
        $("#invoice-order-table > tbody > tr").each(function () {
396
            var itemId = $(this).find(".rate").data('itemid');
397
            var qty = $(this).find(".qty").val();
32145 tejbeer 398
 
32352 amit.gupta 399
            if (qty != undefined) {
400
                totalQty += qty
401
            }
32145 tejbeer 402
 
32352 amit.gupta 403
            if (itemId != undefined) {
404
                invoiceItemIds.push(itemId)
405
            }
406
        });
32145 tejbeer 407
 
32352 amit.gupta 408
        var $html = $('<tr>  <td>  <input type="text" class="form-control typeaheaditem"   autocomplete="off"  placeholder="Search Model"/> </td>' +
409
            '<td>  <input type="number" class="form-control qty"  name = "qty" placeholder="Quantity"/> </td>' +
410
            '<td>  <input type="number" class="form-control rate"  disable placeholder="Rate"/> </td>' +
411
            '<td> <input class="form-control btn btn-primary removeInInvoiceItem" type="button" value="Remove"></td>  </tr> ');
32145 tejbeer 412
 
413
 
32352 amit.gupta 414
        getItemAheadOptions($html.find('.typeaheaditem'), true, function (
415
            selectedItem) {
416
            var itemId = selectedItem.itemId;
32145 tejbeer 417
 
418
 
32352 amit.gupta 419
            console.log(invoiceItemIds)
32145 tejbeer 420
 
32352 amit.gupta 421
            if (invoiceItemIds.indexOf(itemId) > -1) {
422
                alert("Item already added");
423
                $html.find('.typeaheaditem').val("")
32145 tejbeer 424
 
32352 amit.gupta 425
                return false;
426
            }
427
            $html.find('.rate').data('itemid', itemId)
32145 tejbeer 428
 
32352 amit.gupta 429
            $html.find('.removeInInvoiceItem').data('invoiceid', invoiceId)
430
            $html.find('.removeInInvoiceItem').data('itemid', itemId)
32145 tejbeer 431
 
32352 amit.gupta 432
        });
32145 tejbeer 433
 
32192 tejbeer 434
 
32352 amit.gupta 435
        if (totalQty < numitems) {
32192 tejbeer 436
 
32352 amit.gupta 437
            $('#invoice-order-table tbody').append($html);
438
        }
32192 tejbeer 439
 
32352 amit.gupta 440
    });
32256 tejbeer 441
 
32192 tejbeer 442
 
32352 amit.gupta 443
    $(document).on('click', '.saveInvoiceDetail', function () {
32192 tejbeer 444
 
32352 amit.gupta 445
        var numItems = $(this).data("numitems");
446
        var invoiceId = $(this).data("invoiceid");
447
        var warehouseId = $(this).data("warehouseid");
448
        var supplierId = $(this).data("supplierid");
449
        getInvoiceItemData(numItems, invoiceId, warehouseId, supplierId, false);
32192 tejbeer 450
 
32352 amit.gupta 451
    });
32192 tejbeer 452
 
453
 
32352 amit.gupta 454
    $(document).on('click', '.validateInvoiceDetail', function () {
455
        var numItems = $(this).data("numitems");
456
        var invoiceId = $(this).data("invoiceid");
457
        var warehouseId = $(this).data("warehouseid");
458
        var supplierId = $(this).data("supplierid");
32192 tejbeer 459
 
32352 amit.gupta 460
        getInvoiceItemData(numItems, invoiceId, warehouseId, supplierId, true);
32192 tejbeer 461
 
32352 amit.gupta 462
    });
32192 tejbeer 463
 
464
 
32352 amit.gupta 465
    $(document).on("click", '.removeInInvoiceItem', function () {
32192 tejbeer 466
 
32352 amit.gupta 467
        var row = $(this).closest("tr");
468
        var invoiceId = $(this).data("invoiceid");
469
        var itemId = $(this).data("itemid");
470
        if (invoiceId != undefined && itemId != undefined) {
471
            doDeleteAjaxRequestHandler(context + "/removeInvoiceItem?invoiceId="
472
                + invoiceId + "&itemId=" + itemId, function (response) {
473
                if (response == "true") {
474
                    alert("Item removed successfully");
32192 tejbeer 475
 
32352 amit.gupta 476
                }
477
            });
478
        }
32192 tejbeer 479
 
32352 amit.gupta 480
        row.remove();
32192 tejbeer 481
 
32352 amit.gupta 482
    });
32192 tejbeer 483
 
484
 
32352 amit.gupta 485
    $(document).on('click', '.purchaseGrn', function () {
32192 tejbeer 486
 
32352 amit.gupta 487
        var grnItemArray = [];
32192 tejbeer 488
 
32352 amit.gupta 489
        var invoiceId = $(this).data("invoiceid");
32192 tejbeer 490
 
491
 
32352 amit.gupta 492
        $("#invoice-purchase-validate > tbody > tr").each(function () {
493
            var grnItemJson = {};
32192 tejbeer 494
 
32352 amit.gupta 495
            var itemId = $(this).find(".itemId").text();
496
            var qty = $(this).find(".qty").text();
497
            var poId = $(this).find(".purchaseId").text();
498
            var excessQty = $(this).find(".excessQty").text();
499
            var itemType = $(this).find(".itemType").text();
32192 tejbeer 500
 
32352 amit.gupta 501
            console.log(itemType);
32192 tejbeer 502
 
32352 amit.gupta 503
            if (itemType == "Serialized") {
504
                var serialNumbers = $(this).find(".imeis-to-grn").tagsinput('items');
505
                grnItemJson['serialNumbers'] = serialNumbers
32192 tejbeer 506
 
32352 amit.gupta 507
                if (excessQty > 0) {
508
                    var returnSerialNumbers = $(this).find(".imeis-to-grn-return").tagsinput('items');
509
                    grnItemJson['returnSerialNumbers'] = returnSerialNumbers
510
                }
511
            }
512
            console.log(serialNumbers)
513
            grnItemJson['itemId'] = itemId;
514
            grnItemJson['serialNumbers'] = serialNumbers
515
            grnItemJson['qty'] = qty
516
            grnItemJson['poId'] = poId
517
            grnItemJson['invoiceId'] = invoiceId
518
            grnItemJson['itemType'] = itemType
519
            grnItemJson['excessQty'] = excessQty
32192 tejbeer 520
 
32352 amit.gupta 521
            grnItemJson['returnSerialNumbers'] = returnSerialNumbers
32192 tejbeer 522
 
32352 amit.gupta 523
            grnItemArray.push(grnItemJson)
32192 tejbeer 524
 
32352 amit.gupta 525
            console.log(grnItemArray)
32192 tejbeer 526
 
32352 amit.gupta 527
        });
32192 tejbeer 528
 
32352 amit.gupta 529
        for (var i = 0; i < grnItemArray.length; i++) {
32192 tejbeer 530
 
32352 amit.gupta 531
            var serialNumbers = grnItemArray[i].serialNumbers.length
32192 tejbeer 532
 
32352 amit.gupta 533
            var itemType = grnItemArray[i].itemType
32192 tejbeer 534
 
535
 
32352 amit.gupta 536
            if (itemType == "Serialized") {
537
                var excessQty = grnItemArray[i].excessQty
32192 tejbeer 538
 
539
 
32352 amit.gupta 540
                var serialNumbers = grnItemArray[i].serialNumbers.length
541
                var qty = grnItemArray[i].qty
32192 tejbeer 542
 
32352 amit.gupta 543
                if (serialNumbers != qty) {
544
                    alert("serial number is not matched with qty")
545
                    return false;
546
                }
32192 tejbeer 547
 
32352 amit.gupta 548
                if (excessQty > 0) {
32192 tejbeer 549
 
32352 amit.gupta 550
                    var returnSerialNumbers = grnItemArray[i].returnSerialNumbers.length
32192 tejbeer 551
 
32352 amit.gupta 552
                    if (returnSerialNumbers != excessQty) {
553
                        alert("Return serial number is not matched with excess qty")
554
                        return false;
555
                    }
32192 tejbeer 556
 
32352 amit.gupta 557
                }
558
            }
32192 tejbeer 559
 
32352 amit.gupta 560
        }
32192 tejbeer 561
 
562
 
32352 amit.gupta 563
        console.log(JSON.stringify(grnItemArray))
564
        if (confirm("Are you sure you want to grn purchase order") == true) {
32192 tejbeer 565
 
32352 amit.gupta 566
            doPostAjaxRequestWithJsonHandler(context
567
                + "/createGrn", JSON
568
                .stringify(grnItemArray), function (response) {
569
                if (response == 'true') {
570
                    alert("successfully done");
571
                    loadNewReceiveInvoice("main-content");
572
                }
573
            });
574
        }
32192 tejbeer 575
 
576
 
32352 amit.gupta 577
    });
32256 tejbeer 578
 
579
 
32352 amit.gupta 580
    $(document).on('click', '.grnRequest', function () {
32192 tejbeer 581
 
32352 amit.gupta 582
        var grnRequestJson = {};
583
        var grnRequestItemArray = [];
32192 tejbeer 584
 
32352 amit.gupta 585
        var invoiceId = $(this).data("invoiceid");
32192 tejbeer 586
 
587
 
32352 amit.gupta 588
        $("#invoice-purchase-validate > tbody > tr").each(function () {
589
            var grnItemJson = {};
32192 tejbeer 590
 
32352 amit.gupta 591
            var itemId = $.trim($(this).find(".itemId").text());
592
            var poId = $.trim($(this).find(".purchaseId").text());
32192 tejbeer 593
 
32352 amit.gupta 594
            var qty = parseInt($(this).find(".qty").text());
32256 tejbeer 595
 
32352 amit.gupta 596
            var excessQty = parseInt($(this).find(".excessQty").text());
32256 tejbeer 597
 
32352 amit.gupta 598
            var priceMismatch = $.trim($(this).find(".priceMismatch").text());
599
            console.log(priceMismatch)
32256 tejbeer 600
 
601
 
32352 amit.gupta 602
            if (priceMismatch != null || excessQty > 0) {
603
                console.log(typeof priceMismatch)
604
                console.log(excessQty)
605
                grnItemJson['itemId'] = itemId;
606
                grnItemJson['qty'] = qty;
607
                grnItemJson['excessQty'] = excessQty
608
                grnItemJson['mismatch'] = priceMismatch
609
                grnItemJson['poId'] = poId
32192 tejbeer 610
 
32352 amit.gupta 611
                grnRequestItemArray.push(grnItemJson)
612
            }
613
        });
32256 tejbeer 614
 
32352 amit.gupta 615
        console.log(grnRequestItemArray)
32256 tejbeer 616
 
617
 
32352 amit.gupta 618
        grnRequestJson['invoiceId'] = invoiceId;
619
        grnRequestJson['warehousePurchaseModel'] = grnRequestItemArray
32256 tejbeer 620
 
32352 amit.gupta 621
        if (confirm("Are you sure you want to raise grn request") == true) {
32192 tejbeer 622
 
32352 amit.gupta 623
            doPostAjaxRequestWithJsonHandler(context
624
                + "/grnRequest", JSON
625
                .stringify(grnRequestJson), function (response) {
626
                if (response == 'true') {
627
                    alert("successfully done");
628
                    loadNewReceiveInvoice("main-content");
629
                }
630
            });
631
        }
32192 tejbeer 632
 
633
 
32352 amit.gupta 634
    });
32192 tejbeer 635
 
32256 tejbeer 636
 
32352 amit.gupta 637
    $(document).on('click', '.resolvedPriceMismatchRequest', function () {
638
        var id = $(this).data("id");
32256 tejbeer 639
 
32352 amit.gupta 640
        var invoiceId = $(this).data("invoiceid");
32256 tejbeer 641
 
32352 amit.gupta 642
        var requestId = $(this).data("requestid");
32256 tejbeer 643
 
32352 amit.gupta 644
        var mismatch = $(this).data("mismatch");
32256 tejbeer 645
 
32352 amit.gupta 646
        if (mismatch == "InvoiceMismatch") {
647
            if (confirm("Are you sure you want to resolve invoice mismatch") == true) {
32256 tejbeer 648
 
32352 amit.gupta 649
                doGetAjaxRequestHandler(context + "/resolvedMismatchRequest?id=" + id, function (response) {
650
                    if (response == 'true') {
651
                        getGrnRequestItems(requestId, invoiceId)
652
                    }
653
                });
32256 tejbeer 654
 
32352 amit.gupta 655
            }
656
        } else if (mismatch == "PoMismatch") {
657
            if (confirm("Are you sure you want to resolve Po Mismatch. Discard the current PoLineItem new Po will generate on the invoice date.") == true) {
32256 tejbeer 658
 
32352 amit.gupta 659
                doGetAjaxRequestHandler(context + "/resolvedMismatchRequest?id=" + id, function (response) {
660
                    if (response == 'true') {
661
                        getGrnRequestItems(requestId, invoiceId)
662
                    }
663
                });
32256 tejbeer 664
 
32352 amit.gupta 665
            }
666
        }
32256 tejbeer 667
 
32352 amit.gupta 668
    });
32256 tejbeer 669
 
670
 
32352 amit.gupta 671
    $(document).on('click', '.resolvedQtyMismatchRequest', function () {
672
        var id = $(this).data("id");
32256 tejbeer 673
 
32352 amit.gupta 674
        var invoiceId = $(this).data("invoiceid");
32256 tejbeer 675
 
32352 amit.gupta 676
        var requestId = $(this).data("requestid");
677
        var requestId = $(this).data("requestid");
32256 tejbeer 678
 
679
 
32352 amit.gupta 680
        var mismatch = $(this).data("mismatch");
32256 tejbeer 681
 
32352 amit.gupta 682
        var $row = $(this).closest("tr");
683
        var requiredQty = $row.find(".requiredQty").val();
32256 tejbeer 684
 
32352 amit.gupta 685
        console.log(requiredQty);
32256 tejbeer 686
 
32352 amit.gupta 687
        if (mismatch == "QtyMismatch") {
688
            if (confirm("Are you sure you want to resolve qty mismatch") == true) {
32256 tejbeer 689
 
32352 amit.gupta 690
                doGetAjaxRequestHandler(context + "/resolvedMismatchRequest?id=" + id + "&requiredQty=" + requiredQty, function (response) {
691
                    if (response == 'true') {
692
                        getGrnRequestItems(requestId, invoiceId)
693
                    }
694
                });
32256 tejbeer 695
 
32352 amit.gupta 696
            }
697
        }
32256 tejbeer 698
 
32352 amit.gupta 699
    });
32256 tejbeer 700
 
32192 tejbeer 701
 
32145 tejbeer 702
});
703
 
704
function loadCreatePurchase(domId) {
32352 amit.gupta 705
    doGetAjaxRequestHandler(context + "/warehousePurchaseOrder", function (response) {
706
        $('#' + domId).html(response);
707
    });
32145 tejbeer 708
}
709
 
32192 tejbeer 710
 
32145 tejbeer 711
function loadOpenPurchase(domId) {
712
 
32352 amit.gupta 713
    doGetAjaxRequestHandler(context + "/getOpenPurchaseOrder", function (response) {
714
        $('#' + domId).html(response);
715
    });
32145 tejbeer 716
}
717
 
32192 tejbeer 718
function loadNewReceiveInvoice(domId) {
32352 amit.gupta 719
    doGetAjaxRequestHandler(context + "/newReceiveInvoice", function (response) {
720
        $('#' + domId).html(response);
721
    });
32192 tejbeer 722
}
723
 
32256 tejbeer 724
 
725
function loadGrnRequest(domId) {
32352 amit.gupta 726
    doGetAjaxRequestHandler(context + "/grnRequest", function (response) {
727
        $('#' + domId).html(response);
728
    });
32256 tejbeer 729
}
730
 
731
function loadDebitNote(domId) {
32352 amit.gupta 732
    doGetAjaxRequestHandler(context + "/getDebitNote", function (response) {
733
        $('#' + domId).html(response);
734
    });
32256 tejbeer 735
}
736
 
32300 tejbeer 737
function loadWarehouseInvoices(domId) {
32352 amit.gupta 738
    doGetAjaxRequestHandler(context + "/getWarehouseInvoices", function (response) {
739
        $('#' + domId).html(response);
740
    });
32300 tejbeer 741
}
742
 
32145 tejbeer 743
function createPurchase(sendPo) {
32352 amit.gupta 744
    var purchaseOrder = {};
32145 tejbeer 745
 
32352 amit.gupta 746
    var vendorId = $('#vendorId').val();
32145 tejbeer 747
 
32352 amit.gupta 748
    var warehouseId = $('#warehouseMap').val();
32145 tejbeer 749
 
750
 
32352 amit.gupta 751
    var items = []
752
    $("table > tbody > tr").each(function () {
753
        var purchaseOrderJson = {};
32145 tejbeer 754
 
32352 amit.gupta 755
        var itemId = $(this).find(".transferPrice").data('itemid');
756
        var qty = $(this).find(".qty").val();
757
        var transferPrice = $(this).find(".transferPrice").val();
758
        var totalValue = $(this).find(".totalValue").val();
32145 tejbeer 759
 
760
 
32352 amit.gupta 761
        purchaseOrderJson['itemId'] = itemId;
762
        purchaseOrderJson['amendedQty'] = qty
763
        purchaseOrderJson['totalValue'] = totalValue
764
        purchaseOrderJson['transferPrice'] = transferPrice
32145 tejbeer 765
 
32352 amit.gupta 766
        items.push(purchaseOrderJson)
767
    });
32145 tejbeer 768
 
769
 
32352 amit.gupta 770
    for (var i = 0; i < items.length; i++) {
771
        console.log(items[i])
32145 tejbeer 772
 
32352 amit.gupta 773
        var itemId = items[i].itemId
774
        var qty = items[i].amendedQty
775
        var transferPrice = items[i].transferPrice
776
        var totalValue = items[i].totalValue
32145 tejbeer 777
 
32352 amit.gupta 778
        if (itemId === "" && qty === "" && transferPrice === "" && totalValue === "") {
779
            alert("Field can't be empty");
780
            return false;
781
        }
32145 tejbeer 782
 
783
 
32352 amit.gupta 784
        if (itemId === "") {
785
            alert("please select item");
786
            return false;
787
        }
788
        if (qty === "") {
789
            alert("please choose qty");
790
            return false;
791
        }
32145 tejbeer 792
 
32352 amit.gupta 793
        if (transferPrice === "") {
794
            alert("Transfer Price can't be empty");
795
            return false;
796
        }
797
        if (totalValue === "") {
798
            alert("Total value can't be empty");
799
            return false;
800
        }
32145 tejbeer 801
 
32352 amit.gupta 802
        if (qty <= 0) {
803
            alert("Please fill Qty");
804
            return false;
805
        }
32145 tejbeer 806
 
807
 
32352 amit.gupta 808
    }
32261 tejbeer 809
 
32352 amit.gupta 810
    purchaseOrder['vendorId'] = vendorId;
811
    purchaseOrder['warehouseId'] = warehouseId
812
    purchaseOrder['sendPo'] = sendPo
32145 tejbeer 813
 
32352 amit.gupta 814
    purchaseOrder['items'] = items
32145 tejbeer 815
 
32352 amit.gupta 816
    console.log(purchaseOrder)
32145 tejbeer 817
 
818
 
32352 amit.gupta 819
    if (confirm("Are you sure you want to create purchase order") == true) {
32145 tejbeer 820
 
32352 amit.gupta 821
        doPostAjaxRequestWithJsonHandler(context
822
            + "/createPurchaseOrder", JSON
823
            .stringify(purchaseOrder), function (response) {
824
            if (response == 'true') {
825
                alert("successfully created");
826
                loadCreatePurchase("main-content");
827
            }
828
        });
829
    }
32145 tejbeer 830
 
831
}
832
 
833
 
834
function editPurchase(sendPo, poid) {
32352 amit.gupta 835
    var editpurchaseOrder = {}
836
    var items = []
837
    $("#purchase-edit-lineitem > tbody > tr").each(function () {
838
        var purchaseOrderJson = {};
839
        var itemId = $(this).find("td:eq(0)").text();
32145 tejbeer 840
 
32352 amit.gupta 841
        var qty = $(this).find("td:eq(2)").text();
32145 tejbeer 842
 
32352 amit.gupta 843
        var amendedQty = $(this).find(".editqty").val();
32256 tejbeer 844
 
32352 amit.gupta 845
        var transferPrice = $.trim($(this).find(".transferPrice").html());
32256 tejbeer 846
 
847
 
32352 amit.gupta 848
        purchaseOrderJson['itemId'] = itemId;
849
        purchaseOrderJson['amendedQty'] = parseInt(amendedQty)
850
        purchaseOrderJson['qty'] = parseInt(qty)
851
        purchaseOrderJson['transferPrice'] = transferPrice
32145 tejbeer 852
 
32352 amit.gupta 853
        items.push(purchaseOrderJson)
854
    });
32145 tejbeer 855
 
856
 
32352 amit.gupta 857
    for (var i = 0; i < items.length; i++) {
858
        console.log(items[i])
32145 tejbeer 859
 
32352 amit.gupta 860
        var amendedQty = items[i].amendedQty
861
        var qty = items[i].qty
32145 tejbeer 862
 
32256 tejbeer 863
 
32352 amit.gupta 864
        if (amendedQty === "") {
865
            alert("please choose qty");
866
            return false;
867
        }
32145 tejbeer 868
 
32352 amit.gupta 869
        if (amendedQty < qty) {
870
            alert("Quantity should be greater than existing qty");
871
            return false;
872
        }
32145 tejbeer 873
 
874
 
32352 amit.gupta 875
    }
32145 tejbeer 876
 
32352 amit.gupta 877
    editpurchaseOrder['purchaseOrderId'] = poid;
878
    editpurchaseOrder['sendPo'] = sendPo
879
    editpurchaseOrder['items'] = items
32145 tejbeer 880
 
881
 
32352 amit.gupta 882
    if (confirm("Are you sure you want to edit purchase order") == true) {
32145 tejbeer 883
 
32352 amit.gupta 884
        doPostAjaxRequestWithJsonHandler(context
885
            + "/editPurchaseOrder", JSON
886
            .stringify(editpurchaseOrder), function (response) {
887
            if (response == 'true') {
888
                alert("successfully created");
889
                $('#warehouseEditPurchaseContainer').modal('hide');
890
                $('.modal-backdrop').remove();
32295 tejbeer 891
 
32352 amit.gupta 892
                loadOpenPurchase("main-content")
893
            }
894
        });
895
    }
32145 tejbeer 896
 
897
}
898
 
899
 
32192 tejbeer 900
function getInvoiceItemData(numItems, invoiceId, warehouseId, supplierId, validate) {
901
 
32352 amit.gupta 902
    var invoiceJson = {};
903
    console.log(numItems)
904
    var totalQty = 0;
905
    var invoiceItems = []
906
    $("#invoice-order-table > tbody > tr").each(function () {
907
        var invoiceItemJson = {};
908
        var itemId = $(this).find(".rate").data('itemid');
909
        var qty = $(this).find(".qty").val();
32192 tejbeer 910
 
32352 amit.gupta 911
        if (qty != undefined) {
912
            totalQty += parseInt(qty)
913
        }
914
        var rate = $(this).find(".rate").val();
915
        invoiceItemJson['itemId'] = itemId;
916
        invoiceItemJson['qty'] = qty
917
        invoiceItemJson['rate'] = rate
918
        invoiceItems.push(invoiceItemJson)
919
    });
32192 tejbeer 920
 
921
 
32352 amit.gupta 922
    for (var i = 0; i < invoiceItems.length; i++) {
32192 tejbeer 923
 
32352 amit.gupta 924
        var itemId = invoiceItems[i].itemId
925
        var qty = invoiceItems[i].qty
926
        var rate = invoiceItems[i].rate
927
        if (itemId === "" && qty === "" && rate === "") {
928
            alert("Field can't be empty");
929
            return false;
930
        }
32192 tejbeer 931
 
32352 amit.gupta 932
        if (itemId === "") {
933
            alert("please select item");
934
            return false;
935
        }
936
        if (qty === "") {
937
            alert("please choose qty");
938
            return false;
939
        }
32192 tejbeer 940
 
32352 amit.gupta 941
        if (rate === "") {
942
            alert("Rate can't be empty");
943
            return false;
944
        }
32192 tejbeer 945
 
32352 amit.gupta 946
    }
32192 tejbeer 947
 
32352 amit.gupta 948
    console.log(totalQty)
32192 tejbeer 949
 
32352 amit.gupta 950
    if (totalQty > numItems) {
951
        alert("Qty Should not be more than  Invoice items");
952
        return false;
953
    }
32192 tejbeer 954
 
32352 amit.gupta 955
    if (validate) {
32192 tejbeer 956
 
32352 amit.gupta 957
        if (totalQty != numItems) {
958
            alert("Qty Should not match with Invoice items");
959
            return false;
960
        }
961
    }
32192 tejbeer 962
 
963
 
32352 amit.gupta 964
    invoiceJson['invoiceId'] = invoiceId;
965
    invoiceJson['warehouseId'] = warehouseId;
966
    invoiceJson['supplierId'] = supplierId;
967
    invoiceJson['invoiceItems'] = invoiceItems
968
    if (validate) {
969
        validateInvoiceItems(invoiceJson);
970
    } else {
971
        saveInvoiceItems(invoiceJson)
972
    }
32192 tejbeer 973
}
974
 
975
 
976
function saveInvoiceItems(invoiceJson) {
977
 
978
 
32352 amit.gupta 979
    if (confirm("Are you sure you want to save invoice item") == true) {
32192 tejbeer 980
 
32352 amit.gupta 981
        doPostAjaxRequestWithJsonHandler(context
982
            + "/invoiceItemDetail", JSON
983
            .stringify(invoiceJson), function (response) {
984
            if (response == 'true') {
985
                getInvoiceItems(invoiceJson.invoiceId);
986
            }
987
        });
988
    }
32192 tejbeer 989
 
990
}
991
 
992
 
993
function validateInvoiceItems(invoiceJson) {
994
 
995
 
32352 amit.gupta 996
    if (confirm("Are you sure you want to validate invoice item") == true) {
32192 tejbeer 997
 
32352 amit.gupta 998
        doPostAjaxRequestWithJsonHandler(context
999
            + "/validateInvoiceItemDetail", JSON
1000
            .stringify(invoiceJson), function (response) {
1001
            $('.invoiceadditemcontainer').html(response);
32192 tejbeer 1002
 
32352 amit.gupta 1003
        });
1004
    }
32192 tejbeer 1005
 
1006
}
1007
 
1008
function getOpenPOFromWarehouse() {
1009
 
32352 amit.gupta 1010
    var warehouseId = $('#warehouseMap').val();
1011
    doGetAjaxRequestHandler(context + "/getOpenPurchaseOrderByWarehouseId?warehouseId=" + warehouseId, function (response) {
1012
        $('#warehouseManagePuchaseContainer').html(response);
1013
    });
32192 tejbeer 1014
 
1015
 
1016
}
1017
 
1018
function getPurchaseLineitem(poId) {
1019
 
1020
 
32352 amit.gupta 1021
    doGetAjaxRequestHandler(context + "/getPurchaseOrderItemByPoId?poId=" + poId, function (response) {
1022
        $('#warehouseManagePuchaseItemContainer').html(response);
1023
        $('#warehousepurchaseitemgrn').hide()
1024
    });
32192 tejbeer 1025
 
1026
 
1027
}
1028
 
1029
 
1030
function getInvoiceItems(invoiceId) {
1031
 
32352 amit.gupta 1032
    doGetAjaxRequestHandler(context + "/getInvoiceItems?invoiceId=" + invoiceId, function (response) {
1033
        $('.invoiceadditemcontainer').html(response);
32192 tejbeer 1034
 
32352 amit.gupta 1035
    });
32192 tejbeer 1036
}
1037
 
1038
 
32256 tejbeer 1039
function getGrnRequestItems(requestId, invoiceId) {
1040
 
32352 amit.gupta 1041
    doGetAjaxRequestHandler(context + "/grnRequestItem?requestId=" + requestId + "&invoiceId=" + invoiceId, function (response) {
1042
        $('.grnRequestItemContainer').html(response);
32256 tejbeer 1043
 
32352 amit.gupta 1044
    });
32256 tejbeer 1045
}
1046
 
1047