Subversion Repositories SmartDukaan

Rev

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

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