Subversion Repositories SmartDukaan

Rev

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