File "verificar.php"
Full Path: C:/wamp64/www/AVIDOTAPP/views/inventario/verificar.php
File size: 8.12 KB
MIME-type: text/html
Charset: utf-8
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Verificar Ingreso – Inventario Nuevo</title>
<link rel="icon" type="image/png" href="assets/img/icono.png">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
body { background:linear-gradient(225deg,#d0101d,#752b2a); min-height:100vh; padding:20px; }
.card { border-radius:20px; box-shadow:0 5px 20px rgba(0,0,0,.25); }
.card-header { background:linear-gradient(225deg,#d0101d,#752b2a); color:#fff; border-radius:20px 20px 0 0!important; }
.card-info { background:#f8f9fa; border-left:4px solid #d0101d; border-radius:8px; padding:12px 16px; margin-top:10px; }
.badge-total { background:linear-gradient(225deg,#d0101d,#752b2a); color:#fff; font-size:1rem; padding:6px 14px; border-radius:20px; }
.btn-rojo { background:linear-gradient(225deg,#d0101d,#752b2a); color:#fff; border:none; }
.btn-rojo:hover { background:linear-gradient(225deg,#b00e1a,#632422); color:#fff; }
.info-row input { font-size:.85rem; }
.saved-badge { display:none; color:green; font-size:.8rem; margin-top:4px; }
</style>
</head>
<body>
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-10">
<div class="card">
<div class="card-header">
<div class="d-flex justify-content-between align-items-center">
<h4 class="mb-0"><i class="fas fa-clipboard-check me-2"></i>Verificar Ingreso – Inventario Nuevo</h4>
<small class="text-white-50">Usuario: <?= htmlspecialchars($_SESSION['DIGITA'] ?? '') ?></small>
</div>
</div>
<div class="card-body">
<?php if ($msg_ok): ?>
<div class="alert alert-success"><i class="fas fa-check-circle me-2"></i><?= $msg_ok ?></div>
<?php endif; ?>
<?php if ($msg_err): ?>
<div class="alert alert-danger"><i class="fas fa-exclamation-triangle me-2"></i><?= $msg_err ?></div>
<?php endif; ?>
<p class="text-muted"><i class="fas fa-info-circle me-1"></i>Si el item ya existe, la cantidad se <strong>sumará</strong> a la existente.</p>
<?php if (!empty($elementos_mostrar)): ?>
<!-- Tabla de elementos -->
<div class="table-responsive mb-4">
<table class="table table-bordered align-middle">
<thead class="table-dark">
<tr>
<th>Código</th><th>Descripción</th>
<th class="text-center">Actual</th>
<th class="text-center">Añadir</th>
<th class="text-center">Total</th>
<th class="text-center" style="width:200px">Factura / Proveedor / Precio</th>
<th></th>
</tr>
</thead>
<tbody>
<?php foreach ($elementos_mostrar as $el):
$info_prev = $info_elementos[$el['codigo']] ?? [];
?>
<tr>
<td class="fw-bold"><?= htmlspecialchars($el['codigo']) ?></td>
<td><?= htmlspecialchars($el['descripcion']) ?></td>
<td class="text-center"><?= $el['cantidad_actual'] ?></td>
<td class="text-center text-primary fw-bold">+<?= $el['cantidad'] ?></td>
<td class="text-center">
<span class="badge-total"><?= $el['cantidad_total'] ?></span>
</td>
<td>
<div class="info-row" data-codigo="<?= htmlspecialchars($el['codigo']) ?>">
<input class="form-control form-control-sm mb-1 inp-factura" type="text"
placeholder="N° Factura *"
value="<?= htmlspecialchars($info_prev['nfactura'] ?? '') ?>">
<input class="form-control form-control-sm mb-1 inp-proveedor" type="text"
placeholder="Proveedor *"
value="<?= htmlspecialchars($info_prev['provedor'] ?? '') ?>">
<input class="form-control form-control-sm inp-precio" type="number" min="0" step="0.01"
placeholder="Precio (opcional)"
value="<?= htmlspecialchars($info_prev['precio'] ?? '') ?>">
<button type="button" class="btn btn-sm btn-outline-success mt-1 btn-guardar-info">
<i class="fas fa-save me-1"></i>Guardar info
</button>
<div class="saved-badge"><i class="fas fa-check-circle me-1"></i>Guardado</div>
</div>
</td>
<td class="text-center">
<a href="index.php?controller=Inventario&action=verificar&eliminar=<?= urlencode($el['codigo']) ?>"
class="btn btn-sm btn-outline-danger" title="Quitar de la lista">
<i class="fas fa-trash-can"></i>
</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<!-- Botones de acción -->
<form method="post" action="index.php?controller=Inventario&action=verificar" id="formConfirmar">
<div class="d-flex gap-2 flex-wrap">
<a href="index.php?controller=Inventario&action=index" class="btn btn-secondary btn-lg">
<i class="fas fa-arrow-left me-2"></i>Atrás
</a>
<button type="submit" name="CONFIRMA" class="btn btn-rojo btn-lg" id="btnConfirmar">
<i class="fas fa-check me-2"></i>Confirmar Ingreso
</button>
</div>
</form>
<?php else: ?>
<div class="alert alert-warning text-center">
<i class="fas fa-exclamation-triangle me-2"></i>No hay elementos seleccionados.
<a href="index.php?controller=Inventario&action=index" class="btn btn-rojo btn-sm ms-3">Ir a seleccionar</a>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert2/11.7.5/sweetalert2.all.min.js"></script>
<script>
$(function() {
// Guardar info factura/proveedor/precio vía AJAX
$('.btn-guardar-info').on('click', function() {
const row = $(this).closest('.info-row');
const codigo = row.data('codigo');
const nfactura = row.find('.inp-factura').val().trim();
const provedor = row.find('.inp-proveedor').val().trim();
const precio = row.find('.inp-precio').val();
if (!nfactura || !provedor) {
Swal.fire('Atención','Factura y proveedor son obligatorios','warning');
return;
}
$.post('index.php?controller=Inventario&action=verificar', {
guardar_info: 1, codigo, nfactura, provedor, precio
}, function(res) {
const r = JSON.parse(res);
if (r.ok) {
row.find('.saved-badge').fadeIn().delay(2500).fadeOut();
}
});
});
// Validar antes de confirmar
$('#formConfirmar').on('submit', function(e) {
const sinGuardar = [];
$('.info-row').each(function() {
const f = $(this).find('.inp-factura').val().trim();
const p = $(this).find('.inp-proveedor').val().trim();
if (!f || !p) sinGuardar.push($(this).data('codigo'));
});
if (sinGuardar.length > 0) {
e.preventDefault();
Swal.fire('Atención',
'Guarda la información de factura y proveedor para todos los items antes de confirmar.<br><br>Pendientes: <strong>' + sinGuardar.join(', ') + '</strong>',
'warning');
}
});
});
</script>
</body>
</html>