Subversion Repositories SmartDukaan

Rev

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