Subversion Repositories SmartDukaan

Rev

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