<style>
.inventario-registrado {
	border: 2px solid #007bff;
	background-color: #e6f0ff;
}
/* AMARILLO */
.lista-almacenes-productos tr.inventario-amarillo:nth-child(odd) td {
	background-color: #fff3cd !important;
}

.lista-almacenes-productos tr.inventario-amarillo:nth-child(even) td {
	background-color: #ffe8a1 !important;
}

/* ROJO */
.lista-almacenes-productos tr.inventario-rojo:nth-child(odd) td {
	background-color: #f8d7da !important;
}

.lista-almacenes-productos tr.inventario-rojo:nth-child(even) td {
	background-color: #f1b0b7 !important;
}

.lista-almacenes-productos tr.error{
	border: 2px solid #dc3545;
}
</style>

<ul class="list-group">
	<li class="list-group-item">
		<form method="get">
			<ul class="nav nav-pills alt-pills float-right mini-labels">
				<li class="nav-item float-left mr-3">
					<label>Almacen</label>
					<select name ="id_almacen" class="form-control select-id-almacen" onchange="this.form.submit()">
						<?php
							$otrosAlmacenes = $almacenes;
							// Eliminamos Almacenes que tienen link en Menú
							foreach($otrosAlmacenes as $k => $v) {
								$selected = '';
								if (!empty($id_almacen)) {
									if ($id_almacen == $k) {
										$selected =' selected="selected"';
									}
								}
								echo '<option value="' . $k . '"' . $selected . '>' . $v . '</option>';
							}
						?>
					</select>
				</li>
				<?php 
					if (!empty($ubicaciones[$id_almacen])) {
					?>
					<li class="nav-item float-left mr-3">
						<label>Ubicación</label>
						<select name ="id_ubicacion" class="form-control select-id-ubicacion" onchange="this.form.submit()">
							<?php
								echo '<option value="0">Todas</option>';
								echo '<option value="-1" '.($id_ubicacion == "-1" ? 'selected="selected"' : "").'>Sin Ubicación Asignada</option>';
								foreach($ubicaciones[$id_almacen] as $k => $v) {
									$selected = '';
									if (!empty($id_ubicacion)) {
										if ($id_ubicacion == $k) {
											$selected =' selected="selected"';
										}
									}
									echo '<option value="' . $k . '"' . $selected . '>' . $v . '</option>';
								}
							?>
						</select>
					</li>
					<?php
					}
					else {
						?>
						<li class="nav-item float-left mr-3">
							<label>Ubicación</label>
							<select name ="id_ubicacion" class="form-control select-id-ubicacion">
								<option value="0">Sin Ubicaciones</option>
							</select>
						</li>
						<?php
					}
				?>
			</ul>
		</form>
	</li>
	<li id="ubicaciones" class="list-group-item collapse">
		<h4>Ubicaciones existentes en <?php echo $nombre_almacen; ?></h4>
		<?php 
			if (!empty($ubicaciones[$id_almacen])) {
				echo '<ul class="list-group ubicaciones-lista">';
				foreach($ubicaciones[$id_almacen] as $idUbicacion => $nombreUbicacion) {
					echo '<li id="ubicacion'.$idUbicacion.'" class="list-group-item"><span class="nombre">' . $nombreUbicacion . '</span> ';
					echo '<button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#modalUbicacion" data-id="' . $idUbicacion . '">';
					echo '<i class="fas fa-pencil-alt"></i></button>';
					echo '</li>';
				}
				echo '</ul>';
			}
			else{
				echo '<h5>Aún no hay ubicaciones creadas</h5>';
			}
		?>
	</li>
	<?php
	if(!empty($productos)) {
		?>
		<li class="list-group-item">
			<h2><?php echo $nombre_almacen . ': ' . $nombre_ubicacion . ' ('.count($productos).')'; ?></h2>
			<div class="mb-2">
				<span class="mr-3">🟡 Pendientes: <strong id="count-amarillo">0</strong></span>
				<span>🔴 Atrasados: <strong id="count-rojo">0</strong></span>
			</div>
			
			<div class="table-responsive">
				<table class="table table-striped lista-almacenes-productos">
					<thead>
						<tr>
							<th class="text-center">PS</th>
							<th>Producto</th>
							<?php /*
							<th class="text-center">Ubicación</th>
							*/ ?>
							<th class="text-center">Último Inventario</th>
							<th class="text-center">Contados</th>
						</tr>
					</thead>
					<tbody>
						<?php
							$inicioSemana = strtotime('monday this week');
							$inicioSemanaPasada = strtotime('monday last week');

							foreach($productos as $p) {

								$classTR = $p['error'] ? ' error' : '';
								$claseInventario = '';

								if (empty($p['fecha_revision'])) {
									$claseInventario = ' inventario-rojo';
								} else {
									$fechaRevision = strtotime($p['fecha_revision']);

									if ($fechaRevision >= $inicioSemana) {
										// al día → sin color
									} elseif ($fechaRevision >= $inicioSemanaPasada) {
										$claseInventario = ' inventario-amarillo';
									} else {
										$claseInventario = ' inventario-rojo';
									}
								}
								?>
								<tr class="almacen-producto-<?php echo $p['id_almacen_producto'] . $classTR . $claseInventario; ?>">
									<td class="text-center">
										<?php 
											if ($p['ps_id'] > 0) {
												?>
												<span class="badge badge-pill badge-primary ps-id-product ver-ps" data-ps-id="<?php echo $p['ps_id']; ?>">
													<?php echo $p['ps_id']; ?>
												</span>
												<?php
											}
										?>
									</td>
									<td>
										<?php
										if (!empty($ps_imagenes[$p['ps_id']])) {
											echo ps_image($ps_imagenes[$p['ps_id']]);
										} 
										?>
										<a target="_blank" href="/productos/detalle/<?php echo $p['id']; ?>">
											<span class="nombre"><?php echo $p['nombre']; ?></span>
										</a>
									</td>

									<td class="text-center">
										<span class="tt fecha-revision p-2" title="<?php echo !empty($usuarios[$p['id_revisor']]) ? 'Por ' . $usuarios[$p['id_revisor']] : ''; ?>">
											<?php echo fechaHora($p['fecha_revision']); ?>
										</span>
									</td>
									
									<td class="text-center">
										<div class="d-flex justify-content-center align-items-center">
											<?php $disabled = $p['error'] ? 'disabled' : ''; ?>
											<?php $readonly = $p['error'] ? 'readonly' : ''; ?>

											<input 
												type="number" 
												class="form-control input-contado text-center mr-1" 
												style="width:80px;"
												data-id-almacen-producto="<?php echo $p['id_almacen_producto']; ?>"
												min="0"
												<?php echo $readonly; ?>
											/>

											<?php if (!$p['error']) { ?>
												<button type="button" class="btn btn-primary btn-xs btn-confirmar-inventario" data-id="<?php echo $p['id_almacen_producto']; ?>" title="Guardar Stock">
													<i class="fas fa-save"></i>
												</button>
											<?php } else { ?>
												<span class="text-danger ml-2" title="Corregir en módulo de errores">
													<a href="/almacenes/errores_inventario" class="text-danger ml-2">
														<i class="fas fa-exclamation-triangle"></i>
													</a>
												</span>
											<?php } ?>
										</div>
									</td>
									<?php /*
									<td class="text-center">
										<div class="d-flex justify-content-center align-items-center">
											<input 
												type="number" 
												class="form-control input-contado text-center mr-1" 
												style="width:80px;"
												data-id-almacen-producto="<?php echo $p['id_almacen_producto']; ?>"
												min="0"
											/>

											<button type="button" class="btn btn-primary btn-xs btn-confirmar-inventario" data-id="<?php echo $p['id_almacen_producto']; ?>" title="Guardar Stock">
												<i class="fas fa-save"></i>
											</button>
										</div>
									</td>
									*/ ?>
								</tr>
							<?php
							}
							?>
					</tbody>
				</table>
			</div>
		</li>
		<?php
	}
	else {
		?>
		<li class="list-group-item">
			No se encontraron productos
		</li>
		<?php
	}
	?>
</ul>

<div class="modal fade" id="modalUbicacion" data-backdrop="static" tabindex="-1" role="dialog" aria-labelledby="editUbicacionLabel" aria-hidden="true">
	<div class="modal-dialog modal-lg" role="document">
		<div class="modal-content">
			<div class="modal-wait">
				<div class="modal-header">
					<h5 class="modal-title" id="editUbicacionLabel">Agregar</h5>
					<button type="button" class="close" data-dismiss="modal" aria-label="Close">
						<span aria-hidden="true">&times;</span>
					</button>
				</div>
				<div class="modal-body">
					<?php
						$this->load->view('almacenes/ubicacion_form');
					?>
				</div>
				<div class="modal-footer">
					<button type="button" class="btn btn-danger mr-auto btn-eliminar" id="eliminarUbicacion">Eliminar</button>
					<button type="button" class="btn btn-secondary btn-close" data-dismiss="modal">Cerrar</button>
					<button type="button" class="btn btn-primary btn-editar" id="editarUbicacion">Editar</button>
				</div>
			</div>
		</div>
	</div>
</div>

<?php $this->load->view('almacenes/modal_validar_stock'); ?>

<?php $this->load->view('productos/modal'); ?>
<?php $this->load->view('productos/modal_stock'); ?>

<script src="<?php echo js('productos.js'); ?>"></script>

<script>
$(document).on('click', '.btn-confirmar-inventario', function() {

	let $btn = $(this);
	let id = $btn.data('id');

	let $input = $('.input-contado[data-id-almacen-producto="'+id+'"]');
	let cantidad = $input.val();
	$input.prop('disabled', true);

	if (cantidad === '' || parseInt(cantidad) < 0) {
		alert('Ingresa una cantidad válida');
		$input.focus();
		return;
	}

	$btn.prop('disabled', true);

	$.post('/almacenes/save_validar_stock', {
		id: id,
		stock_encontrado: cantidad
	}, function(response) {
		let res = JSON.parse(response);

		// feedback visual
		$input.addClass('inventario-registrado');
		$btn.hide();

		// actualizar fecha en la fila
		let $tr = $btn.closest('tr');
		$tr.find('.fecha-revision').text(fechaHora(res.fecha_revision));

		$tr.removeClass('inventario-amarillo inventario-rojo');

		actualizarContadoresInventario();

		let $nextRow = $btn.closest('tr').next();

		if ($nextRow.length) {
			$nextRow.find('.input-contado').focus();
		}

		$input.prop('disabled', true);

	}).fail(function() {
		alert('Error al guardar');
		$btn.prop('disabled', false);
		$input.prop('disabled', false);
	});

});

$(document).on('keypress', '.input-contado', function(e) {
	if (e.which == 13) {
		$(this).closest('td').find('.btn-confirmar-inventario').click();
	}
});

function actualizarContadoresInventario() {

	let amarillos = $('.lista-almacenes-productos tr.inventario-amarillo').length;
	let rojos = $('.lista-almacenes-productos tr.inventario-rojo').length;

	$('#count-amarillo').text(amarillos);
	$('#count-rojo').text(rojos);
}

// ejecutar al cargar
$(document).ready(function() {
	actualizarContadoresInventario();
});
</script>