Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
28474 tejbeer 1
<script src="https://cdn.datatables.net/plug-ins/1.10.19/api/sum().js"></script>
2
 
30080 amit.gupta 3
<style>
4
    .table td.text {
5
        max-width: 150px;
6
    }
28474 tejbeer 7
 
30080 amit.gupta 8
    .table td.text span {
9
        white-space: nowrap;
10
        overflow: hidden;
11
        text-overflow: ellipsis;
12
        display: inline-block;
13
        max-width: 100%;
14
    }
28474 tejbeer 15
 
30080 amit.gupta 16
</style>
17
<button type="submit" class="btn btn-primary mk_fetch_plan">Download Plan Statement</button>
29103 tejbeer 18
 
19
 
28005 tejbeer 20
<div class="row">
21
 
22
 
30080 amit.gupta 23
    #if(!$inStocksMap.isEmpty())
24
        <div class="col-lg-12">
25
            <table
26
                    class="table table-striped table-advance table-hover partner-planning-details">
27
                <thead>
28474 tejbeer 28
 
30080 amit.gupta 29
                <tr>
30
                    <th rowspan="3">Warehouse</th>
31
                    <th rowspan="3">Category</th>
32
                    <th rowspan="3">Partner Name</th>
33
                    <th rowspan="3">Terrirory Manager</th>
34
                    #foreach($catalog in
35
                        $catalogItemMap.entrySet())
36
                        <th colspan="3">
30082 amit.gupta 37
                            <span title="Width of Distribution">WOD : <span class="wod"></span></span>,
38
                            <span title="Total Stock">TS:<span class="ts"></span></span>,
39
                            <span title="Width of Sales">WOS: <span class="wos"></span></span>,
40
                            <span title="Total Sale">TSale: <span class="sts"> </span></span>
30080 amit.gupta 41
                        </th>
42
                    #end
43
                    <th rowspan="3">PO</th>
44
                    <th rowspan="3">last Po Entry</th>
28474 tejbeer 45
 
30080 amit.gupta 46
                </tr>
28474 tejbeer 47
 
30080 amit.gupta 48
                <tr>
49
                    #foreach($catalog in $catalogItemMap.entrySet())
50
                        <th colspan="3">$catalog.getValue().get(0).getBrand()
28474 tejbeer 51
						$catalog.getValue().get(0).getModelName()
30085 amit.gupta 52
						$catalog.getValue().get(0).getModelNumber()</th>
53
                    #end
30080 amit.gupta 54
                </tr>
55
                <tr>
56
                    #foreach($catalog in $catalogItemMap.entrySet())
57
                        <th>Stock</th>
58
                        <th>Sale</th>
59
                        <th>SD Stock</th> #end
28474 tejbeer 60
 
30080 amit.gupta 61
                </tr>
28005 tejbeer 62
 
28474 tejbeer 63
 
30080 amit.gupta 64
                </thead>
65
                <tbody>
66
                    #foreach($customRetailerEntry in $customRetailers.entrySet())
67
                    <tr>
68
                        <td>$warehouseMap.get($customRetailerEntry.getValue().getWarehouseId())</td>
69
                        <td>$fofoIdPartnerTypeMap.get($customRetailerEntry.getKey())</td>
28474 tejbeer 70
 
30080 amit.gupta 71
                        <td class="text"><span
72
                                title="$customRetailerEntry.getValue().getBusinessName()-$customRetailerEntry.getValue().getCode()">$customRetailerEntry.getValue().getBusinessName()</span>
73
                        </td>
74
                        <td class="text"><span
75
                                title="$salesHeadersMap.get($customRetailerEntry.getKey()).getTerritoryManager()">$salesHeadersMap.get($customRetailerEntry.getKey()).getTerritoryManager()</span>
76
                        </td>
28474 tejbeer 77
 
30080 amit.gupta 78
                        #foreach($catalog in $catalogItemMap.entrySet())
79
                            #set($inStock=0)
80
                            #set($pendingIndent=0)
81
                            #if($inStocksMap.get($customRetailerEntry.getKey()).get($catalog.getKey()))
82
                                #set($inStock = $inStocksMap.get($customRetailerEntry.getKey()).get($catalog.getKey()))
83
                            #end
84
                            #if($pendingIndentMap.get($customRetailerEntry.getKey()).get($catalog.getKey()))
85
                                #set($pendingIndent = $pendingIndentMap.get($customRetailerEntry.getKey()).get($catalog.getKey()))
86
                            #end
87
                            #set($totalStock = $inStock + $pendingIndent)
88
                            <td class="instockItem" data-fofoid="$customRetailerEntry.getKey()"
89
                                data-catalogid="$catalog.getKey()" data-toggle="modal"
90
                                data-target="#inStockQtyModel">
91
                                $totalStock</td>
28053 tejbeer 92
 
30080 amit.gupta 93
                            #if($fofoSalesMap.get($customRetailerEntry.getKey()).get($catalog.getKey()))
28474 tejbeer 94
 
30080 amit.gupta 95
                                <td class="inSaleItem"
96
                                    data-fofoid="$customRetailerEntry.getValue().getFofoId()" data-toggle="modal"
97
                                    data-target="#inSaleItemModel">$fofoSalesMap.get($customRetailerEntry.getKey()).get($catalog.getKey())</td>
98
                            #else
99
                                <td>0</td> #end
100
                            #if($warehouseStockMap.get($customRetailerEntry.getValue().getWarehouseId()).get($catalog.getKey()))
28474 tejbeer 101
 
30080 amit.gupta 102
                                <td class="warehouseStockItem"
103
                                    data-warehouseid="$customRetailerEntry.getValue().getWarehouseId()"
104
                                    data-catalogid="$customRetailerEntry.getValue().getWarehouseId()"
105
                                    data-toggle="modal"
106
                                    data-target="#warehouseStockItemModel">$warehouseStockMap.get($customRetailerEntry.getValue().getWarehouseId()).get($catalog.getKey())</td>
107
                            #else
108
                                <td>0</td> #end #end
109
                        <td><a class="selctItemQty" data-toggle="modal"
110
                               data-fofoid="$customRetailerEntry.getKey()" data-target="#selectModelItems">
111
                            Add to po </a></td> #if($suggestedPoEntry.get($customRetailerEntry))
28474 tejbeer 112
 
30080 amit.gupta 113
                        <td><a class="podetails" data-fofoid="$customRetailerEntry.getKey()"
114
                               data-datetime="$suggestedPoEntry.get($customRetailerEntry.getKey())"
115
                               data-toggle="modal"
116
                               data-target="#ItemsPo">$suggestedPoEntry.get($customRetailerEntry.getKey()).format($dateTimeFormatter)</a>
117
                        </td>
118
                    #else
119
                        <td></td> #end
28053 tejbeer 120
 
30080 amit.gupta 121
                    </tr>
122
                    #end
28053 tejbeer 123
 
30080 amit.gupta 124
                </tbody>
125
            </table>
126
        </div>
127
    #else
28005 tejbeer 128
 
30080 amit.gupta 129
        <div class="col-lg-6">
130
            <table
131
                    class="table table-striped table-advance table-hover partner-planning-details">
132
                <thead>
133
                <tr>
134
                    <th>Warehouse</th>
135
                    <th>Category</th>
136
                    <th>Partner Name</th>
137
                    <th>Item</th>
138
                    <th>Stock</th>
139
                    <th>Sale</th>
140
                    <th>Warehouse Stock</th>
141
                    <th>PO</th>
142
                    <th>last Po Entry</th>
28005 tejbeer 143
 
144
 
30080 amit.gupta 145
                </tr>
146
                </thead>
147
                <tbody>
148
                    #foreach($keyvalue in $inStockItemMap.entrySet())
149
                    <tr>
150
                        <td>$warehouseMap.get($keyvalue.getValue().getWarehouseId())</td>
151
                        <td>$fofoIdPartnerTypeMap.get($keyvalue.getKey().getFofoId())</td>
28085 tejbeer 152
 
30080 amit.gupta 153
                        <td>$customRetailers.get($keyvalue.getKey().getFofoId()).getBusinessName()</td>
154
                        <td>$keyvalue.getValue().getBrand()
28005 tejbeer 155
						$keyvalue.getValue().getModelName()
156
						$keyvalue.getValue().getModelNumber()</td>
30080 amit.gupta 157
                        <td>$keyvalue.getValue().getQty()</td>
158
                        #if($fofoSaleItem.get($keyvalue.getKey()))
159
                            <td>$fofoSaleItem.get($keyvalue.getKey()).getQty()</td>
160
                        #else
161
                            <td>0</td>
162
                        #end
28053 tejbeer 163
 
30080 amit.gupta 164
                        <td>$keyvalue.getValue().getWarehouseQty()</td>
165
                        <td><a class="selctItemQty" data-toggle="modal"
166
                               data-fofoid="$keyvalue.getValue().getFofoId()"
167
                               data-target="#selectModelItems"> Add to po </a></td>
168
                        #if($suggestedPoEntry.get($keyvalue.getKey().getFofoId()))
28053 tejbeer 169
 
30080 amit.gupta 170
                            <td><a class="podetails"
171
                                   data-fofoid="$keyvalue.getKey().getFofoId()" data-toggle="modal"
172
                                   data-target="#ItemsPo"
173
                                   data-datetime="$suggestedPoEntry.get($keyvalue.getValue().getFofoId())">
174
                                $suggestedPoEntry.get($keyvalue.getKey().getFofoId()).format($dateTimeFormatter)
175
                            </a></td> #else
176
                            <td></td> #end
28053 tejbeer 177
 
30080 amit.gupta 178
                    </tr>
179
                    #end
28085 tejbeer 180
 
30080 amit.gupta 181
                </tbody>
182
            </table>
183
        </div>
28005 tejbeer 184
 
30080 amit.gupta 185
    #end
28005 tejbeer 186
</div>
187
 
188
 
28032 tejbeer 189
<div id="inStockItemModel" class="modal" role="dialog">
30080 amit.gupta 190
    <div class="modal-dialog">
191
        <div class="modal-content"></div>
192
    </div>
28032 tejbeer 193
</div>
194
 
28486 tejbeer 195
<div id="inStockQtyModel" class="modal" role="dialog">
30080 amit.gupta 196
    <div class="modal-dialog">
197
        <div class="modal-content"></div>
198
    </div>
28486 tejbeer 199
</div>
28032 tejbeer 200
 
201
<div id="inSaleItemModel" class="modal" role="dialog">
30080 amit.gupta 202
    <div class="modal-dialog">
203
        <div class="modal-content"></div>
204
    </div>
28032 tejbeer 205
</div>
28053 tejbeer 206
 
207
<div id="warehouseStockItemModel" class="modal" role="dialog">
30080 amit.gupta 208
    <div class="modal-dialog">
209
        <div class="modal-content"></div>
210
    </div>
28053 tejbeer 211
</div>
28085 tejbeer 212
 
213
 
214
<div id="selectModelItems" class="modal" role="dialog">
30080 amit.gupta 215
    <div class="modal-dialog">
216
        <div class="modal-content"></div>
217
    </div>
28085 tejbeer 218
</div>
219
 
220
<div id="ItemsPo" class="modal" role="dialog">
30080 amit.gupta 221
    <div class="modal-dialog">
222
        <div class="modal-content"></div>
223
    </div>
28085 tejbeer 224
</div>
28005 tejbeer 225
<script type="text/javascript">
30080 amit.gupta 226
    var table
28020 tejbeer 227
 
30080 amit.gupta 228
    $(document).ready(function () {
229
        var targetArray = [];
28020 tejbeer 230
 
28523 tejbeer 231
 
30080 amit.gupta 232
        targetArray = Array.apply(null, Array($catalogItemMap.size())).map(function (_, i) {
233
            return 3 + (i * 3);
234
        });
235
        table = $('.partner-planning-details').DataTable({
28523 tejbeer 236
 
30080 amit.gupta 237
            "lengthMenu": [10, 25, 50, 75, 100, 250],
238
            "scrollX": true,
239
            "pageLength": 250,
240
            "orderCellsTop": true,
241
            "fixedHeader": true,
242
            "fixedColumns": {
243
                leftColumns: 4
28032 tejbeer 244
 
30080 amit.gupta 245
            },
28474 tejbeer 246
 
30080 amit.gupta 247
            "columnDefs": [
248
                {"targets": targetArray, "orderDataType": "dom-stock-numeric", "type": "number"},
249
            ]
28474 tejbeer 250
 
30080 amit.gupta 251
        });
28474 tejbeer 252
 
253
 
30080 amit.gupta 254
        datatableSum();
28477 tejbeer 255
 
30080 amit.gupta 256
        table.on('search.dt', function () {
257
            console.log('Currently applied global search: ' + table.search());
28474 tejbeer 258
 
30080 amit.gupta 259
            datatableSum();
28486 tejbeer 260
 
30080 amit.gupta 261
        });
262
    });
28486 tejbeer 263
 
30080 amit.gupta 264
    function datatableSum() {
265
        let wod = [];
266
        let wos = [];
267
        let sos = [];
268
        let sts = [];
269
        table.rows({
270
            "search": "applied"
271
        }).every(function () {
272
            var data = this.data();
28474 tejbeer 273
 
30080 amit.gupta 274
            for (let i = 4; i < data.length - 2; i = i + 3) {
275
                console.log("Iloop");
276
                console.log(data[i]);
277
                j = Math.floor(i / 3);
278
                if (wod[j] == undefined) {
279
                    wod[j] = 0;
280
                }
281
                if (parseInt(data[i]) > 0) {
282
                    wod[j]++;
283
                }
28474 tejbeer 284
 
30080 amit.gupta 285
                if (sos[j] == undefined) {
286
                    sos[j] = parseInt(data[i]);
287
                } else {
288
                    sos[j] += parseInt(data[i]);
28474 tejbeer 289
 
30080 amit.gupta 290
                }
291
            }
28474 tejbeer 292
 
30080 amit.gupta 293
            for (let h = 5; h < data.length - 2; h = h + 3) {
294
                console.log("Hloop");
295
                console.log(data[h]);
296
                g = Math.floor(h / 3)
28474 tejbeer 297
 
30080 amit.gupta 298
                if (wos[g] == undefined) {
299
                    wos[g] = 0;
300
                }
301
                if (parseInt(data[h]) > 0) {
302
                    wos[g]++;
303
                }
28032 tejbeer 304
 
30080 amit.gupta 305
                if (sts[g] == undefined) {
306
                    sts[g] = parseInt(data[h]);
307
                } else {
308
                    sts[g] += parseInt(data[h]);
309
                }
28032 tejbeer 310
 
30080 amit.gupta 311
            }
28486 tejbeer 312
 
30080 amit.gupta 313
        });
28486 tejbeer 314
 
30080 amit.gupta 315
        console.log(wod);
316
        console.log(wos);
317
        console.log(sos);
318
        console.log(sts);
319
        for (let m = 1; m < wod.length; m++) {
320
            let indexNum = m + 4;
321
            var stockHeader = $(`.partner-planning-details thead tr th:nth-child(${indexNum})`)
322
            stockHeader.find('.wod').html(wod[m]);
323
            stockHeader.find('.ts').html(sos[m]);
324
            stockHeader.find('.wos').html(wos[m]);
325
            stockHeader.find('.sts').html(sts[m]);
326
        }
28486 tejbeer 327
 
30080 amit.gupta 328
    }
28032 tejbeer 329
 
30080 amit.gupta 330
    /*$('.partner-planning-details').on(
331
            'click',
332
            '.instockItem',
333
            function() {
334
                var fofoId = $(this).data('fofoid');
335
                var catalogIds = $('.criteria-item-catalogids').val();
336
                console.log(catalogIds);
28032 tejbeer 337
 
30080 amit.gupta 338
                doGetAjaxRequestHandler(context
339
                        + "/getInStockItembyFofoId?fofoId=" + fofoId
340
                        + "&catalogItemIds=" + catalogIds, function(response) {
341
                    console.log(response)
342
                    $('#inStockItemModel .modal-content').html(response);
28032 tejbeer 343
 
30080 amit.gupta 344
                });
345
            });*/
28053 tejbeer 346
 
30080 amit.gupta 347
    $('.partner-planning-details').on(
348
            'click',
349
            '.instockItem',
350
            function () {
351
                var fofoId = $(this).data('fofoid');
352
                var catalogId = $(this).data('catalogid');
353
                console.log(catalogId);
28053 tejbeer 354
 
30080 amit.gupta 355
                doGetAjaxRequestHandler(context + "/getInStockItemQty?fofoId="
356
                        + fofoId + "&catalogItemId=" + catalogId, function (
357
                        response) {
358
                    console.log(response)
359
                    $('#inStockQtyModel .modal-content').html(response);
28053 tejbeer 360
 
30080 amit.gupta 361
                });
362
            });
28085 tejbeer 363
 
30080 amit.gupta 364
    $('.partner-planning-details').on(
365
            'click',
366
            '.inSaleItem',
367
            function () {
368
                var fofoId = $(this).data('fofoid');
369
                var catalogIds = $('.criteria-item-catalogids').val();
370
                console.log(catalogIds);
28085 tejbeer 371
 
30080 amit.gupta 372
                doGetAjaxRequestHandler(context
373
                        + "/getSaleItembyCatalogFofoId?fofoId=" + fofoId
374
                        + "&catalogItemIds=" + catalogIds + "&date="
375
                        + startDate, function (response) {
376
                    console.log(response)
377
                    $('#inSaleItemModel .modal-content').html(response);
28085 tejbeer 378
 
30080 amit.gupta 379
                });
380
            });
28085 tejbeer 381
 
30080 amit.gupta 382
    $('.partner-planning-details').on(
383
            'click',
384
            '.warehouseStockItem',
385
            function () {
386
                var warehouseId = $(this).data('warehouseid');
387
                var catalogIds = $('.criteria-item-catalogids').val();
388
                console.log(catalogIds);
28085 tejbeer 389
 
30080 amit.gupta 390
                doGetAjaxRequestHandler(context
391
                        + "/getWarehouseStockItem?warehouseId=" + warehouseId
392
                        + "&catalogItemIds=" + catalogIds,
393
                        function (response) {
394
                            console.log(response)
395
                            $('#warehouseStockItemModel .modal-content').html(
396
                                    response);
28085 tejbeer 397
 
30080 amit.gupta 398
                        });
399
            });
28085 tejbeer 400
 
30080 amit.gupta 401
    $('.partner-planning-details').on(
402
            'click',
403
            '.selctItemQty',
404
            function () {
405
                var catalogIds = $('.criteria-item-catalogids').val();
406
                console.log(catalogIds);
407
                var fofoId = $(this).data('fofoid');
28085 tejbeer 408
 
30080 amit.gupta 409
                doGetAjaxRequestHandler(context
410
                        + "/selectItemColorByCatalog?catalogIds=" + catalogIds
28085 tejbeer 411
 
30080 amit.gupta 412
                        + "&fofoId=" + fofoId, function (response) {
413
                    console.log(response)
414
                    $('#selectModelItems .modal-content').html(response);
28085 tejbeer 415
 
30080 amit.gupta 416
                });
417
            });
28085 tejbeer 418
 
30080 amit.gupta 419
    $(document).on(
420
            "click",
421
            ".submit-item-po",
422
            function (e) {
423
                var seletedIds;
424
                var jsonObject = {};
425
                var seletedIdsJson = [];
426
                var fofoId = $(this).data('fofoid');
28085 tejbeer 427
 
30080 amit.gupta 428
                $('#select-item').find('tr').each(function () {
429
                    var row = $(this);
28085 tejbeer 430
 
30080 amit.gupta 431
                    console.log(row);
432
                    if (row.find('input[type="checkbox"]').is(':checked')) {
433
                        var currentRow = $(this).closest("tr");
28085 tejbeer 434
 
30080 amit.gupta 435
                        var itemId = currentRow.find("td:eq(1)").html();
436
                        var name = currentRow.find("td:eq(2)").html();
437
                        var quantity = currentRow.find("td:eq(3) input").val();
438
                        console.log(quantity)
439
                        if (quantity == "") {
440
                            alert("Select the Quantity");
441
                            return false;
28085 tejbeer 442
 
30080 amit.gupta 443
                        }
28085 tejbeer 444
 
30080 amit.gupta 445
                        seletedIds = {
446
                            "itemId": itemId,
447
                            "qty": quantity
448
                        }
449
                        seletedIdsJson.push(seletedIds)
28085 tejbeer 450
 
30080 amit.gupta 451
                    }
28085 tejbeer 452
 
30080 amit.gupta 453
                });
28085 tejbeer 454
 
30080 amit.gupta 455
                console.log(fofoId)
456
                if (fofoId == null) {
457
                    alert("fofoId is required");
458
                    return false;
459
                }
460
                if (seletedIdsJson.length === 0) {
461
                    alert("Atleast one Item selected");
462
                    return false;
463
                }
464
                console.log(seletedIdsJson);
28085 tejbeer 465
 
30080 amit.gupta 466
                jsonObject['poIds'] = seletedIdsJson;
467
                jsonObject['fofoId'] = fofoId;
468
                console.log(jsonObject)
469
                if (confirm("Are you sure you want to create po") == true) {
470
 
471
                    doPostAjaxRequestWithJsonHandler(context + "/createPo",
472
                            JSON.stringify(jsonObject), function (response) {
473
                                if (response == 'true') {
474
                                    alert("successfully create");
475
 
476
                                    $("#selectModelItems").modal("hide");
477
                                    $("button.search-partner-stock").click();
478
                                }
479
                            });
480
                }
481
 
482
            });
483
 
484
    $('.partner-planning-details').on(
485
            'click',
486
            '.podetails',
487
            function () {
488
                var fofoId = $(this).data('fofoid');
489
                var datetime = $(this).data('datetime');
490
 
491
                doGetAjaxRequestHandler(context
492
                        + "/getSuggestedPoDetail?fofoId=" + fofoId
493
                        + "&datetime=" + datetime, function (response) {
494
                    console.log(response)
495
                    $('#ItemsPo .modal-content').html(response);
496
 
497
                });
498
            });
499
 
500
 
28005 tejbeer 501
</script>