Subversion Repositories SmartDukaan

Rev

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