Subversion Repositories SmartDukaan

Rev

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