Subversion Repositories SmartDukaan

Rev

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