Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
30044 tejbeer 1
<style>
2
 
3
   h5 { text-align: center;
4
    background-color: lightgray;
5
    padding: 5px;
6
    font-size: 16px;
7
    }
34437 ranu 8
 
9
   .mrt-0 {
10
	   margin-top: 0;
11
   }
30044 tejbeer 12
 
13
  #brand-instock tr.hide-table-padding td {
14
  padding: 0;
15
}
16
 
34095 ranu 17
 
18
   .expand-button {
30044 tejbeer 19
	position: relative;
20
}
21
 
22
.accordion-toggle .expand-button:after
23
{
24
  position: absolute;
25
  left:.75rem;
26
  top: 50%;
27
  transform: translate(0, -50%);
28
  content: '-';
29
}
30
.accordion-toggle.collapsed .expand-button:after
31
{
32
  content: '+';
33
}
34035 ranu 34
 
35
 
36
</style>
34397 ranu 37
 
38
<style>
39
	.well {
40
		background-color: #f9f9f9;
41
		border: 1px solid #ddd;
42
		border-radius: 12px;
43
		padding: 5px 20px;
44
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
45
	}
46
 
47
	.well h4 {
48
		margin-bottom: 10px;
49
		font-weight: 500;
50
		border-bottom: 1px solid #ccc;
51
		padding-bottom: 6px;
52
	}
53
 
54
	.well ul li {
34412 ranu 55
		list-style: decimal;
34397 ranu 56
		padding: 4px 0;
57
		font-weight: 400;
58
		font-size: 16px;
59
		border-bottom: 1px dashed #eee;
60
	}
61
 
34404 ranu 62
	.well .currency {
63
		font-weight: 500
64
	}
65
 
34437 ranu 66
	li.brandFocusedStockDetail a {
67
		padding: 8px 10px !important;
68
	}
69
 
35765 ranu 70
	.out-of-stock-row a {
71
		text-decoration: none;
72
	}
73
 
74
	.out-of-stock-row a:hover {
75
		text-decoration: underline;
76
	}
77
 
78
	.oos-toggle-icon {
79
		display: inline-block;
80
		width: 16px;
81
		font-weight: bold;
82
	}
83
 
84
	.oos-content table {
85
		background-color: #fff;
86
	}
87
 
88
	.our-stock-detail-row td {
89
		border-top: none !important;
90
	}
91
 
92
	.our-stock-detail-row table {
93
		margin: 0;
94
		background-color: #fff;
95
	}
96
 
34397 ranu 97
</style>
98
 
30044 tejbeer 99
 
100
 
101
 
102
 
30003 tejbeer 103
 <div class="modal-header">
31897 tejbeer 104
	        <button type="button" class="close" style="margin:-10px" data-dismiss="modal">&times;</button>
35502 ranu 105
	 <h4 class="modal-title"><b class="fofo-stock-info">Stock Info</b> ($customRetailer.getBusinessName())
34437 ranu 106
				<input type="hidden" id="fofo-id" value="$customRetailer.getPartnerId()">
34490 ranu 107
				<a id="mobileAppId" href="${rc.contextPath}/mobileapp?emailId=$customRetailer.getEmail()"
108
				   class="btn btn-default" target="_blank">Franchise App</a>
34437 ranu 109
 
35501 ranu 110
				<a class="btn btn-default today-fofo-offer" data-fofoid="$sdCreditRequirement.getFofoId()">Today
111
					Offer</a>
35771 ranu 112
         <a class="btn btn-default scheme-imei-history-btn" data-fofoid="$sdCreditRequirement.getFofoId()">IMEI
113
             Margin</a>
35501 ranu 114
 
34437 ranu 115
			</h4>
30003 tejbeer 116
       </div>
34425 ranu 117
<div class="modal-body" style="max-height:75vh;overflow:auto;">
34389 ranu 118
	<div class="row">
35501 ranu 119
		<div class="col-md-8 today-fofo-offer-view" style="max-height: 70vh;overflow: auto;display: none;">
120
 
35771 ranu 121
        </div>
122
        <div class="col-md-8 scheme-imei-history-view" style="max-height: 70vh;overflow: auto;display: none;">
123
 
35501 ranu 124
		</div>
125
		<div class="col-md-8 fofo-summry-view" style="max-height: 70vh;overflow: auto;">
34397 ranu 126
			<div class="well row" style="margin: 0;">
34425 ranu 127
				<h4>Summary
34505 ranu 128
                    <a href="#" class="dashboard-view" data-fofoid="$sdCreditRequirement.getFofoId()">More Info</a>
34425 ranu 129
				</h4>
34412 ranu 130
				<div class="col-md-4">
131
					<h5>Fund Detail</h5>
34397 ranu 132
					<ul>
34412 ranu 133
						<li>Total Limit <span class="currency"> $sdCreditRequirement.getLimit()</span></li>
134
						<li>Utilization <span class="currency"> $sdCreditRequirement.getUtilizedAmount()</span></li>
135
						<li>Available Limit <span class="currency"> $sdCreditRequirement.getAvailableLimit()</span></li>
136
						<li>Wallet Amount <span class="currency"> $userWallet.getAmount()</span></li>
35771 ranu 137
 
34412 ranu 138
					</ul>
139
				</div>
140
				<div class="col-md-4">
141
					<h5>Investment Detail</h5>
142
					<ul>
34402 ranu 143
						#if($shortInvest > 0)
35771 ranu 144
                            <li>Short Investment -: <span class="currency"> $shortInvest</span></li>
34402 ranu 145
						#end
34412 ranu 146
 
147
						<li>DRR / Today Purchase <span class="currency"> $purchaseTargetFtd </span> /
34397 ranu 148
							#if($purchasedFtd < $purchaseTargetFtd)
149
								<span style="color: red;"> <span class="currency"> $purchasedFtd</span> </span>
150
							#else
151
								<span style="color: green;"> <span class="currency"> $purchasedFtd</span> </span>
152
							#end
153
						</li>
154
 
155
					</ul>
34412 ranu 156
 
157
					<h5>Recoverable Amount </h5>
158
					<ul>
35774 ranu 159
						<li>Short Invest <span class="currency">$shortInvest</span></li>
160
						<li>Overdue (with intr.) <span class="currency"> $totalDueWithInterest</span></li>
161
						<li>Interest <span class="currency"> $interestDue</span></li>
34412 ranu 162
					</ul>
163
 
34397 ranu 164
				</div>
34412 ranu 165
 
166
				<div class="col-md-4">
167
					<h5>Target</h5>
34397 ranu 168
					<ul>
34412 ranu 169
						<li>Monthly Target -: <span class="currency">$monthlyTarget.purchaseTarget</span></li>
170
						<li>Purchase Mtd -: <span class="currency">$purchaseMtd</span></li>
171
						<li>Sale Mtd -: <span class="currency">$saleMtd</span></li>
172
					</ul>
34397 ranu 173
 
174
				</div>
175
 
176
 
177
			</div>
34437 ranu 178
			<div class="clearfix"></div>
34389 ranu 179
			#if($brand != "undefined")
34397 ranu 180
				<hr style="margin-top:25px; margin-bottom: 10px;">
34389 ranu 181
				<div class="row">
182
					<div class="col-md-12">
183
						<ul class="nav nav-pills">
184
							#foreach($bnd in $brands)
34412 ranu 185
								<li class="brandFocusedStockDetail" data-brand="$bnd" data-fofoid="$fofoId">
34683 ranu 186
									#if(!$brandsWithPartnerStock.contains($bnd))
34412 ranu 187
										<a style="color: red;" href="#tab_$bnd">$bnd</a>
188
									#else
189
										<a href="#tab_$bnd">$bnd</a>
190
									#end
34389 ranu 191
								</li>
192
							#end
34412 ranu 193
							<li><a href="#collapse1" data-toggle="collapse"
194
								   style="background-color: #ccc;color: black;">In Stock </a></li>
195
							<li><a href="#collapse2" data-toggle="collapse"
196
								   style="background-color: #ccc;color: black;">Sales </a></li>
197
 
198
 
34389 ranu 199
						</ul>
34412 ranu 200
						<hr>
201
						<div class="col-md-12 well panel-collapse collapse" id="collapse1">
202
							<h4>In Stock </h4>
203
							<div id="itemWiseBrandStockDetail"></div>
204
						</div>
205
						<div id="collapse2" class="panel-collapse collapse col-md-12 well">
206
							<h4>Seven Days Sales</h4>
207
							<table class="table table-striped table-advance table-hover" style="width:100%">
208
								<thead>
209
								<tr>
210
									<th style="width: 25%;">Item</th>
211
									<th style="width: 9%;">Brand</th>
212
									<th style="width: 15%;">Sold Qty</th>
213
								</tr>
214
								</thead>
215
								<tbody>
216
									#foreach($catalog in $sevenDayAboveSoldsCatalogs)
217
									<tr>
218
										<td>$catalog.getModelNumber()</td>
219
										<td>$catalog.getBrand()</td>
220
										<td>$catalog.getSoldQty()</td>
221
									</tr>
222
									#end
223
								</tbody>
224
							</table>
225
							<h4>14 Days Sales</h4>
226
							<table class="table table-striped table-advance table-hover" style="width:100%">
227
								<thead>
228
								<tr>
229
									<th style="width: 25%;">Item</th>
230
									<th style="width: 9%;">Brand</th>
231
									<th style="width: 15%;">Sold Qty</th>
232
								</tr>
233
								</thead>
234
								<tbody>
235
									#foreach($catalog in $fourteenDayAboveSoldsCatalogs)
236
									<tr>
237
										<td>$catalog.getModelNumber()</td>
238
										<td>$catalog.getBrand()</td>
239
										<td>$catalog.getSoldQty()</td>
240
									</tr>
241
									#end
242
								</tbody>
243
							</table>
244
							<h4>21 Days Sales</h4>
245
							<table class="table table-striped table-advance table-hover" style="width:100%">
246
								<thead>
247
								<tr>
248
									<th style="width: 25%;">Item</th>
249
									<th style="width: 9%;">Brand</th>
250
									<th style="width: 15%;">Sold Qty</th>
251
								</tr>
252
								</thead>
253
								<tbody>
254
									#foreach($catalog in $twentyOneDayAboveSoldsCatalogs)
255
									<tr>
256
										<td>$catalog.getModelNumber()</td>
257
										<td>$catalog.getBrand()</td>
258
										<td>$catalog.getSoldQty()</td>
259
									</tr>
260
									#end
261
								</tbody>
262
							</table>
263
							<h4>28 Days Sales</h4>
264
							<table class="table table-striped table-advance table-hover" style="width:100%">
265
								<thead>
266
								<tr>
267
									<th style="width: 25%;">Item</th>
268
									<th style="width: 9%;">Brand</th>
269
									<th style="width: 15%;">Sold Qty</th>
270
								</tr>
271
								</thead>
272
								<tbody>
273
									#foreach($catalog in $twentyEightDayAboveSoldsCatalogs)
274
									<tr>
275
										<td>$catalog.getModelNumber()</td>
276
										<td>$catalog.getBrand()</td>
277
										<td>$catalog.getSoldQty()</td>
278
									</tr>
279
									#end
280
								</tbody>
281
							</table>
34035 ranu 282
 
34412 ranu 283
						</div>
34389 ranu 284
						<div>
285
							#foreach($bnd in $brands)
286
								<div id="tab_$bnd" class="clearfix"></div>
287
								#set($statusModelMap = $brandStatusWiseStockListMap.get($bnd))
288
								<h4>$bnd</h4>
289
								<table class="table table-striped table-advance table-hover" style="width:100%">
290
									<thead>
291
									<tr>
35765 ranu 292
										<th style="width: 30%;">Item</th>
293
										<th>Status</th>
294
										<th>DP</th>
295
										<th>Our Stock</th>
296
										<th> In-Transit</th>
297
										<th>P-Fullfilled</th>
298
										<th>P-Shortage</th>
299
										<th>P-CurrentQty</th>
300
										<th>Indent</th>
301
										<th>Aging</th>
34437 ranu 302
										<th>Action</th>
34389 ranu 303
									</tr>
304
									</thead>
305
									<tbody>
306
										#foreach($statusKey in $statusModelMap.keySet())
307
											#foreach($stocklist in $statusModelMap.get($statusKey))
308
											<tr>
34397 ranu 309
												#if($stocklist.getPartnerCurrentAvailability() < 1)
310
													<td style="color: red;">$stocklist.getModelNumber()</td>
311
												#else
312
													<td>$stocklist.getModelNumber()</td>
313
												#end
34462 tejus.loha 314
												<td>$stocklist.getStatus()</td>
34437 ranu 315
												<td>$tagListingsMap.get($stocklist.getCatalogId()).getSellingPrice()</td>
35765 ranu 316
												<td style="color: blue; text-decoration: underline; cursor: pointer;"
317
													onclick="toggleOurStockRow($stocklist.getCatalogId(), $warehouseId, '$stocklist.getModelNumber()')">
318
													$stocklist.getNetAvailability()
319
												</td>
34569 ranu 320
												#if($catalogWiseQtyMap.get($stocklist.getCatalogId()))
321
													<td>$catalogWiseQtyMap.get($stocklist.getCatalogId())</td>
322
												#else
323
													<td>-</td>
324
												#end
34389 ranu 325
												<td>$stocklist.getPartnerStockAvailability()</td>
326
												<td>$stocklist.getPartnerShortageStock()</td>
35776 ranu 327
												<td style="color: green; text-decoration: underline; cursor: pointer;"
328
													onclick="togglePartnerStockRow($stocklist.getCatalogId(), $fofoId, '$stocklist.getModelNumber()')">
329
													$stocklist.getPartnerCurrentAvailability()
330
												</td>
34487 ranu 331
												<td>
332
													#if($pendingIndentsDetailMap.get($stocklist.getCatalogId()).getQty())
333
														$pendingIndentsDetailMap.get($stocklist.getCatalogId()).getQty()
334
													#else
335
														-
336
													#end
337
												</td>
34397 ranu 338
												<td>$stocklist.getExceedDays()</td>
34437 ranu 339
												<td>
340
													<button class="btn btn-sm btn-success add-to-cart-btn"
34449 ranu 341
															data-toggle="modal"
342
															data-target="#poItemsDetail"
34437 ranu 343
															data-catalogid="$stocklist.getCatalogId()"
34581 ranu 344
															data-warehouseid="$warehouseId"
34437 ranu 345
															data-model="$stocklist.getModelNumber()"
346
															data-price="$tagListingsMap.get($stocklist.getCatalogId()).getSellingPrice()">
347
														Add to PO
348
													</button>
349
												</td>
34389 ranu 350
											</tr>
35765 ranu 351
											<tr id="our-stock-row-$stocklist.getCatalogId()"
352
												class="our-stock-detail-row"
353
												style="display: none; background-color: #e8f4fd;">
354
												<td colspan="11" style="padding: 10px 20px;">
355
													<div id="our-stock-content-$stocklist.getCatalogId()">
356
														<p>Loading...</p>
357
													</div>
358
												</td>
359
											</tr>
35776 ranu 360
											<tr id="partner-stock-row-$stocklist.getCatalogId()"
361
												class="partner-stock-detail-row"
362
												style="display: none; background-color: #d4edda;">
363
												<td colspan="11" style="padding: 10px 20px;">
364
													<div id="partner-stock-content-$stocklist.getCatalogId()">
365
														<p>Loading...</p>
366
													</div>
367
												</td>
368
											</tr>
34389 ranu 369
											#end
370
										#end
35765 ranu 371
									<tr class="out-of-stock-row" style="background-color: #f8d7da;">
372
										<td colspan="11">
373
											<a href="#" style="color: #c0392b; font-weight: bold;"
35782 ranu 374
											   onclick="toggleOutOfStock('$bnd', $warehouseId, $fofoId, this); return false;">
35765 ranu 375
												<span class="oos-toggle-icon">+</span> Out of Stock Items
376
												(HID/FastMoving/Running)
377
											</a>
378
											<div id="oos-content-$bnd" class="oos-content"
379
												 style="display: none; margin-top: 10px;">
380
												<p>Loading...</p>
381
											</div>
382
										</td>
383
									</tr>
34389 ranu 384
									</tbody>
385
								</table>
386
							#end
387
						</div>
388
					</div>
389
				</div>
31417 amit.gupta 390
 
34389 ranu 391
			#end
34437 ranu 392
		</div>
393
		<div class="col-md-4">
394
			<div id="cart-sidebar"
395
				 style=" width:100%; background:#f8f9fa; border:1px solid #ccc; padding:5px; border-radius:6px;">
396
				<h5 class="mrt-0">Suggested Po Item List</h5>
397
				<div id="custom-cart-section" class="well"
398
					 style="padding: 4px;max-height: 55vh;overflow-y: auto;"></div>
399
				<button id="save-po-btn" class="btn btn-primary btn-block" style="margin-top:10px;">Save PO</button>
400
			</div>
401
		</div>
34384 ranu 402
 
34389 ranu 403
	</div>
31417 amit.gupta 404
 
34384 ranu 405
 
34389 ranu 406
</div>
30044 tejbeer 407
 
408
 
34087 ranu 409
<div class="modal-footer">
410
	<button type="button" data-dismiss="modal" class="btn btn-default view-close">Close</button>
411
 
412
</div>
34389 ranu 413
 
35765 ranu 414
<script>
415
	var ourStockDataLoaded = {};
416
	var oosDataLoaded = {};
35776 ranu 417
	var partnerStockDataLoaded = {};
35765 ranu 418
 
35776 ranu 419
	function togglePartnerStockRow(catalogId, fofoId, modelNumber) {
420
		var row = document.getElementById('partner-stock-row-' + catalogId);
421
		var contentDiv = document.getElementById('partner-stock-content-' + catalogId);
422
 
423
		if (row.style.display === 'none') {
424
			row.style.display = 'table-row';
425
 
426
			// Load data only if not already loaded
427
			if (!partnerStockDataLoaded[catalogId]) {
428
				contentDiv.innerHTML = '<p>Loading...</p>';
429
 
430
				$.ajax({
431
					url: '${rc.contextPath}/getItemsByCatalog',
432
					type: 'GET',
433
					data: {catalogId: catalogId, fofoId: fofoId},
434
					success: function (response) {
435
						partnerStockDataLoaded[catalogId] = true;
436
 
437
						var list = response.response;
438
 
439
						if (list && list.length > 0) {
440
							var html = '<strong>Partner Stock: ' + modelNumber + '</strong>';
441
							html += '<table class="table table-bordered table-sm" style="margin-top:5px; background-color: #fff;">';
442
							html += '<thead><tr style="background-color: #d4edda;"><th>Item ID</th><th>Description</th><th>Qty</th><th>Status</th></tr></thead><tbody>';
443
 
444
							for (var i = 0; i < list.length; i++) {
445
								if (list[i].availability > 0) {
446
									var stockType = list[i].stockType || 'IN_STOCK';
447
									var rowStyle = stockType === 'GRN_PENDING' ? 'background-color: #fff3cd;' : '';
448
									var statusLabel = stockType === 'GRN_PENDING' ? '<span style="color: #856404; font-weight: bold;">GRN Pending</span>' : '<span style="color: #155724;">In Stock</span>';
449
									html += '<tr style="' + rowStyle + '">';
450
									html += '<td>' + list[i].itemId + '</td>';
451
									html += '<td>' + (list[i].itemDescription || '-') + '</td>';
452
									html += '<td>' + list[i].availability + '</td>';
453
									html += '<td>' + statusLabel + '</td>';
454
									html += '</tr>';
455
								}
456
							}
457
 
458
							html += '</tbody></table>';
459
							contentDiv.innerHTML = html;
460
						} else {
461
							contentDiv.innerHTML = '<p>No partner stock details available</p>';
462
						}
463
					},
464
					error: function () {
465
						contentDiv.innerHTML = '<p style="color: red; margin: 0;">Error loading partner stock details</p>';
466
					}
467
				});
468
			}
469
		} else {
470
			row.style.display = 'none';
471
		}
472
	}
473
 
35765 ranu 474
	function toggleOurStockRow(catalogId, warehouseId, modelNumber) {
475
		var row = document.getElementById('our-stock-row-' + catalogId);
476
		var contentDiv = document.getElementById('our-stock-content-' + catalogId);
477
 
478
		if (row.style.display === 'none') {
479
			row.style.display = 'table-row';
480
 
481
			// Load data only if not already loaded
482
			if (!ourStockDataLoaded[catalogId]) {
483
				contentDiv.innerHTML = '<p>Loading...</p>';
484
 
485
				$.ajax({
486
					url: '${rc.contextPath}/indent/getOurStockDetails',
487
					type: 'GET',
488
					data: {catalogId: catalogId, warehouseId: warehouseId},
489
					success: function (response) {
490
 
491
 
492
						ourStockDataLoaded[catalogId] = true;
493
 
494
						var list = response.response;   // 🔥 correct key
495
 
496
						if (list && list.length > 0) {
497
							var html = '<strong>' + modelNumber + '</strong><br>';
498
							html += '<small style="color:#666;">' + list[0].itemDescription + '</small>';
499
 
500
							html += '<table class="table table-bordered table-sm" style="margin-top:5px">';
501
							html += '<thead><tr><th>Color</th><th>Qty</th></tr></thead><tbody>';
502
 
503
							for (var i = 0; i < list.length; i++) {
504
								html += '<tr>';
505
								html += '<td>' + (list[i].color || '-') + '</td>';
506
								html += '<td>' + list[i].qty + '</td>';
507
								html += '</tr>';
508
							}
509
 
510
							html += '</tbody></table>';
511
							contentDiv.innerHTML = html;
512
						} else {
513
							contentDiv.innerHTML = '<p>No color-wise stock details available</p>';
514
						}
515
					},
516
					error: function () {
517
						contentDiv.innerHTML = '<p style="color: red; margin: 0;">Error loading stock details</p>';
518
					}
519
				});
520
			}
521
		} else {
522
			row.style.display = 'none';
523
		}
524
	}
525
 
35782 ranu 526
	function toggleOutOfStock(brand, warehouseId, fofoId, linkElement) {
35765 ranu 527
		var contentDiv = document.getElementById('oos-content-' + brand);
528
		var icon = linkElement.querySelector('.oos-toggle-icon');
529
 
530
		if (contentDiv.style.display === 'none') {
531
			contentDiv.style.display = 'block';
532
			icon.textContent = '-';
533
 
534
			// Load data only if not already loaded
535
			if (!oosDataLoaded[brand]) {
536
				contentDiv.innerHTML = '<p>Loading...</p>';
537
 
538
				$.ajax({
539
					url: '${rc.contextPath}/indent/getOutOfStockDetails',
540
					type: 'GET',
35782 ranu 541
					data: {brand: brand, warehouseId: warehouseId, fofoId: fofoId},
35765 ranu 542
					success: function (response) {
543
						console.log("RESPONSE:", response);
544
						oosDataLoaded[brand] = true;
545
 
35782 ranu 546
						var list = response.response;
35765 ranu 547
 
548
						if (list && list.length > 0) {
35782 ranu 549
							// Sort items alphabetically by model number (series-wise)
550
							list.sort(function (a, b) {
551
								return a.modelNumber.localeCompare(b.modelNumber, undefined, {sensitivity: 'base'});
552
							});
553
 
35765 ranu 554
							var html = '<table class="table table-bordered table-sm" style="margin-bottom: 0;">';
35782 ranu 555
							html += '<thead><tr style="background-color: #f8d7da;"><th>Model Number</th><th>Status</th><th>DP</th><th>Our Stock</th><th>P-CurrentQty</th><th>Action</th></tr></thead><tbody>';
35765 ranu 556
 
557
							for (var i = 0; i < list.length; i++) {
35782 ranu 558
								var partnerQty = list[i].partnerCurrentQty || 0;
559
								var dpPrice = list[i].dp || 0;
560
								var partnerQtyStyle = partnerQty > 0 ? 'color: green; text-decoration: underline; cursor: pointer;' : 'color: #666;';
561
								var partnerQtyClick = partnerQty > 0 ? 'onclick="toggleOosPartnerStockRow(' + list[i].catalogId + ', ' + fofoId + ', \'' + list[i].modelNumber + '\')"' : '';
562
 
35765 ranu 563
								html += '<tr style="background-color: #f8d7da;">';
564
								html += '<td>' + list[i].modelNumber + '</td>';
565
								html += '<td>' + list[i].status + '</td>';
35782 ranu 566
								html += '<td>' + dpPrice + '</td>';
35765 ranu 567
								html += '<td>' + list[i].qty + '</td>';
35782 ranu 568
								html += '<td style="' + partnerQtyStyle + '" ' + partnerQtyClick + '>' + partnerQty + '</td>';
569
								html += '<td>';
570
								html += '<button class="btn btn-sm btn-success add-to-cart-btn" data-toggle="modal" data-target="#poItemsDetail" ';
571
								html += 'data-catalogid="' + list[i].catalogId + '" data-warehouseid="' + warehouseId + '" ';
572
								html += 'data-model="' + list[i].modelNumber + '" data-price="' + dpPrice + '">Add to PO</button>';
573
								html += '</td>';
35765 ranu 574
								html += '</tr>';
35782 ranu 575
 
576
								// Add hidden row for partner stock details
577
								html += '<tr id="oos-partner-stock-row-' + list[i].catalogId + '" class="oos-partner-stock-detail-row" style="display: none; background-color: #d4edda;">';
578
								html += '<td colspan="6" style="padding: 10px 20px;"><div id="oos-partner-stock-content-' + list[i].catalogId + '"><p>Loading...</p></div></td>';
579
								html += '</tr>';
35765 ranu 580
							}
581
 
582
							html += '</tbody></table>';
583
							contentDiv.innerHTML = html;
584
						} else {
585
							contentDiv.innerHTML = '<p style="color: green; margin: 0;">No out of stock items for HID/FastMoving/Running categories.</p>';
586
						}
587
					},
588
					error: function () {
589
						contentDiv.innerHTML = '<p style="color: red; margin: 0;">Error loading out of stock details</p>';
590
					}
591
				});
592
			}
593
		} else {
594
			contentDiv.style.display = 'none';
595
			icon.textContent = '+';
596
		}
597
	}
35782 ranu 598
 
599
	var oosPartnerStockDataLoaded = {};
600
 
601
	function toggleOosPartnerStockRow(catalogId, fofoId, modelNumber) {
602
		var row = document.getElementById('oos-partner-stock-row-' + catalogId);
603
		var contentDiv = document.getElementById('oos-partner-stock-content-' + catalogId);
604
 
605
		if (row.style.display === 'none') {
606
			row.style.display = 'table-row';
607
 
608
			// Load data only if not already loaded
609
			if (!oosPartnerStockDataLoaded[catalogId]) {
610
				contentDiv.innerHTML = '<p>Loading...</p>';
611
 
612
				$.ajax({
613
					url: '${rc.contextPath}/getItemsByCatalog',
614
					type: 'GET',
615
					data: {catalogId: catalogId, fofoId: fofoId},
616
					success: function (response) {
617
						oosPartnerStockDataLoaded[catalogId] = true;
618
 
619
						var list = response.response;
620
 
621
						if (list && list.length > 0) {
622
							var html = '<strong>Partner Stock: ' + modelNumber + '</strong>';
623
							html += '<table class="table table-bordered table-sm" style="margin-top:5px; background-color: #fff;">';
624
							html += '<thead><tr style="background-color: #d4edda;"><th>Item ID</th><th>Description</th><th>Qty</th><th>Status</th></tr></thead><tbody>';
625
 
626
							for (var i = 0; i < list.length; i++) {
627
								if (list[i].availability > 0) {
628
									var stockType = list[i].stockType || 'IN_STOCK';
629
									var rowStyle = stockType === 'GRN_PENDING' ? 'background-color: #fff3cd;' : '';
630
									var statusLabel = stockType === 'GRN_PENDING' ? '<span style="color: #856404; font-weight: bold;">GRN Pending</span>' : '<span style="color: #155724;">In Stock</span>';
631
									html += '<tr style="' + rowStyle + '">';
632
									html += '<td>' + list[i].itemId + '</td>';
633
									html += '<td>' + (list[i].itemDescription || '-') + '</td>';
634
									html += '<td>' + list[i].availability + '</td>';
635
									html += '<td>' + statusLabel + '</td>';
636
									html += '</tr>';
637
								}
638
							}
639
 
640
							html += '</tbody></table>';
641
							contentDiv.innerHTML = html;
642
						} else {
643
							contentDiv.innerHTML = '<p>No partner stock details available</p>';
644
						}
645
					},
646
					error: function () {
647
						contentDiv.innerHTML = '<p style="color: red; margin: 0;">Error loading partner stock details</p>';
648
					}
649
				});
650
			}
651
		} else {
652
			row.style.display = 'none';
653
		}
654
	}
35765 ranu 655
</script>
656