Files
MVE/views/solicitud_importacion/editar.php

243 lines
11 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>✏️ Editar Solicitud #<?= (int)$factura['id_solicitud'] ?></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<style>
body { font-family: 'Segoe UI', sans-serif; background-color: #f4f6f9; }
.sidebar {
width: 220px;
height: 100vh;
background-color: #343a40;
position: fixed;
top: 0;
left: 0;
padding-top: 56px; /* Alineado con la altura de la navbar */
z-index: 1040; /* Asegura que esté por encima del contenido */
}
.sidebar .nav-link {
color: #ccc;
padding: 12px 20px;
}
.sidebar .nav-link:hover, .sidebar .nav-link.active {
background-color: #495057;
color: #fff;
}
.content {
margin-top: 56px; /* Ajusta debajo de navbar */
padding: 40px 20px;
position: relative;
z-index: 1;
background-color: #f4f6f9; /* Asegura fondo uniforme */
transition: margin-left 0.3s ease;
}
.navbar {
position: fixed;
top: 0;
width: 100%;
z-index: 1050;
}
/* A partir de dispositivos medianos (>=768px), deja espacio lateral */
@media (min-width: 768px) {
.content {
margin-left: 250px; /* Ancho del sidebar */
}
}
/* En móviles, sin margen lateral */
@media (max-width: 767.98px) {
.content {
margin-left: 0;
}
}
.card {
border-radius: 12px;
}
</style>
</head>
<body>
<?php include __DIR__ . '/../partials/sidebar_importador.php'; ?>
<br><br>
<div class="content">
<h4>✏️ Editar Solicitud #<?= (int)$factura['id_solicitud'] ?></h4>
<div class="card p-4 bg-white shadow-sm">
<form action="/IMPORTADORES/solicitud_importacion/actualizar" method="POST" enctype="multipart/form-data">
<input type="hidden" name="id_solicitud" value="<?= (int)$factura['id_solicitud'] ?>">
<!-- Datos principales -->
<div class="row">
<div class="col-md-4 mb-3">
<label for="numero_factura" class="form-label">Número de Factura</label>
<input id="numero_factura" name="numero_factura" type="text" class="form-control"
value="<?= htmlspecialchars($factura['numero_factura']) ?>" required>
</div>
<div class="col-md-4 mb-3">
<label for="fecha_factura" class="form-label">Fecha de Factura</label>
<input id="fecha_factura" name="fecha_factura" type="date" class="form-control"
value="<?=
($factura['fecha_factura'] instanceof DateTime)
? htmlspecialchars($factura['fecha_factura']->format('Y-m-d'))
: htmlspecialchars($factura['fecha_factura'])
?>" required>
</div>
<div class="col-md-4 mb-3">
<label for="anexo22_apendice" class="form-label">Anexo 22 Apéndice</label>
<select id="anexo22_apendice" name="anexo22_apendice" class="form-select" required>
<option value="">-- Selecciona Aduana --</option>
<?php foreach ($aduanas as $a): ?>
<option value="<?= $a['aduana_seccion'] ?>"
<?= $factura['anexo22_apendice'] == $a['aduana_seccion'] ? 'selected' : '' ?>>
<?= htmlspecialchars($a['aduana_seccion'] . ' ' . $a['nombre']) ?>
</option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="row">
<div class="col-md-4 mb-3">
<label for="incoterm" class="form-label">INCOTERM</label>
<select id="incoterm" name="incoterm" class="form-select">
<option value="">-- Selecciona Incoterm --</option>
<?php foreach ($incoterms as $inc): ?>
<option value="<?= htmlspecialchars($inc['INCOTERM']) ?>"
<?= $factura['incoterm'] === $inc['INCOTERM'] ? 'selected' : '' ?>>
<?= htmlspecialchars($inc['INCOTERM'] . ' - ' . $inc['DESCESPANOL']) ?>
</option>
<?php endforeach; ?>
</select>
</div>
<div class="col-md-4 mb-3">
<label for="pais_proveedor" class="form-label">País (Proveedor)</label>
<select id="pais_proveedor" name="pais_proveedor" class="form-select">
<option value="">-- Selecciona País --</option>
<?php foreach ($paises as $p): ?>
<option value="<?= $p['id_pais'] ?>"
<?= $factura['pais_proveedor'] == $p['id_pais'] ? 'selected' : '' ?>>
<?= htmlspecialchars($p['nombre']) ?>
</option>
<?php endforeach; ?>
</select>
</div>
<div class="col-md-4 mb-3">
<label for="tipo_moneda" class="form-label">Moneda</label>
<select id="tipo_moneda" name="tipo_moneda" class="form-select">
<?php
$currs = ['MXN'=>'Peso Mexicano','USD'=>'Dólar USD','EUR'=>'Euro','CNY'=>'Yuan','GBP'=>'Libra GBP','JPY'=>'Yen'];
foreach ($currs as $code => $label): ?>
<option value="<?= $code ?>"
<?= $factura['tipo_moneda']==$code ? 'selected' : '' ?>>
<?= "$label ($code)" ?>
</option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="row">
<div class="col-md-8 mb-3">
<label for="valor_factura" class="form-label">Valor Factura</label>
<input id="valor_factura" name="valor_factura" type="number" step="0.01" class="form-control"
value="<?= htmlspecialchars($factura['valor_factura']) ?>">
</div>
<div class="col-md-4 mb-3">
<label for="vinculacion" class="form-label">Vinculación</label>
<select id="vinculacion" name="vinculacion" class="form-select">
<option value="0" <?= $factura['vinculacion']==0?'selected':'' ?>>No existe</option>
<option value="1" <?= $factura['vinculacion']==1?'selected':'' ?>>Existe, no afecta</option>
<option value="2" <?= $factura['vinculacion']==2?'selected':'' ?>>Existe y afecta</option>
</select>
</div>
</div>
<div class="row">
<div class="col-md-4 mb-3">
<label for="transportista_id" class="form-label">Transportista</label>
<select id="transportista_id" name="transportista_id" class="form-select" required>
<?php foreach ($transportistas as $t): ?>
<option value="<?= $t['id_transportista'] ?>"
<?= $factura['transportista_id']==$t['id_transportista']?'selected':'' ?>>
<?= htmlspecialchars($t['nombre']) ?>
</option>
<?php endforeach; ?>
</select>
</div>
<div class="col-md-4 mb-3">
<label for="chofer_id" class="form-label">Chofer</label>
<select id="chofer_id" name="chofer_id" class="form-select" required>
<?php foreach ($choferes as $c): ?>
<option value="<?= $c['id_chofer'] ?>"
<?= $factura['chofer_id']==$c['id_chofer']?'selected':'' ?>>
<?= htmlspecialchars($c['nombre']) ?>
</option>
<?php endforeach; ?>
</select>
</div>
<div class="col-md-4 mb-3">
<label for="foto_solicitud" class="form-label">Nueva Foto de la solicitud</label>
<input id="foto_solicitud" name="foto_solicitud" type="file" class="form-control" accept="image/*">
</div>
</div>
<!-- Partidas dinámicas -->
<hr>
<h5>📦 Partidas</h5>
<table class="table table-sm" id="tabla-partidas">
<thead>
<tr><th>Descripción</th><th>Precio Unitario</th><th></th></tr>
</thead>
<tbody>
<?php if (!empty($partidas)): ?>
<?php foreach ($partidas as $i => $p): ?>
<tr>
<td><input name="partidas[<?= $i ?>][descripcion]" class="form-control" value="<?= htmlspecialchars($p['descripcion']) ?>"></td>
<td><input name="partidas[<?= $i ?>][precio_unitario]" type="number" step="0.01" class="form-control" value="<?= htmlspecialchars($p['precio_unitario']) ?>"></td>
<td><button type="button" class="btn btn-danger btn-sm remove-row">✖️</button></td>
</tr>
<?php endforeach; ?>
<?php else: ?>
<tr>
<td><input name="partidas[0][descripcion]" class="form-control"></td>
<td><input name="partidas[0][precio_unitario]" type="number" step="0.01" class="form-control"></td>
<td><button type="button" class="btn btn-danger btn-sm remove-row">✖️</button></td>
</tr>
<?php endif; ?>
</tbody>
</table>
<button type="button" class="btn btn-secondary btn-sm mb-3" id="add-partida"> Agregar partida</button>
<!-- Activo -->
<div class="form-check mb-4">
<input id="status" name="status" type="checkbox" class="form-check-input" <?= $factura['status']==1?'checked':'' ?>>
<label for="status" class="form-check-label">Activo</label>
</div>
<button type="submit" class="btn btn-primary">Actualizar</button>
<a href="/IMPORTADORES/solicitud_importacion/lista" class="btn btn-secondary ms-2">Cancelar</a>
</form>
</div>
</div>
<script>
document.getElementById('add-partida').addEventListener('click', function() {
var tbody = document.querySelector('#tabla-partidas tbody');
var idx = tbody.querySelectorAll('tr').length;
var row = document.createElement('tr');
row.innerHTML = '<td><input name="partidas[' + idx + '][descripcion]" class="form-control"></td>' +
'<td><input name="partidas[' + idx + '][precio_unitario]" type="number" step="0.01" class="form-control"></td>' +
'<td><button type="button" class="btn btn-danger btn-sm remove-row">✖️</button></td>';
tbody.appendChild(row);
});
document.querySelector('#tabla-partidas tbody').addEventListener('click', function(e) {
if (e.target.matches('.remove-row')) {
e.target.closest('tr').remove();
}
});
</script>
</body>
</html>