Subversion Repositories SmartDukaan

Rev

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