112 lines
3.9 KiB
PHP
112 lines
3.9 KiB
PHP
<?php
|
|
// registrar_salida.php
|
|
require_once 'includes/header.php';
|
|
|
|
// Restringir acceso solo a roles autorizados
|
|
$allowed_roles = ['Administrador General', 'Encargado de Stock'];
|
|
if (!isset($_SESSION['user_rol']) || !in_array($_SESSION['user_rol'], $allowed_roles)) {
|
|
$_SESSION['error'] = 'No tienes permiso para acceder a esta página.';
|
|
header('Location: index.php');
|
|
exit;
|
|
}
|
|
|
|
|
|
// Fetch products and cities for the dropdowns
|
|
try {
|
|
$pdo = db();
|
|
|
|
// Fetch products
|
|
$stmt_productos = $pdo->query("SELECT id, nombre FROM productos ORDER BY nombre ASC");
|
|
$productos = $stmt_productos->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
// Fetch cities
|
|
$stmt_ciudades = $pdo->query("SELECT id, nombre FROM ciudades ORDER BY nombre ASC");
|
|
$ciudades = $stmt_ciudades->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
} catch (PDOException $e) {
|
|
// Handle DB error
|
|
echo '<div class="alert alert-danger" role="alert">Error al conectar con la base de datos: ' . htmlspecialchars($e->getMessage()) . '</div>';
|
|
$productos = [];
|
|
$ciudades = [];
|
|
}
|
|
|
|
?>
|
|
|
|
<div class="container mt-5">
|
|
<h1>Registrar Salida de Producto</h1>
|
|
<p>Selecciona el producto, la ciudad y la cantidad que deseas dar de baja del inventario.</p>
|
|
|
|
<?php
|
|
if (isset($_SESSION['error'])):
|
|
?>
|
|
<div class="alert alert-danger" role="alert">
|
|
<?php
|
|
echo htmlspecialchars($_SESSION['error']);
|
|
unset($_SESSION['error']);
|
|
?>
|
|
</div>
|
|
<?php
|
|
endif;
|
|
?>
|
|
<?php
|
|
if (isset($_SESSION['success'])):
|
|
?>
|
|
<div class="alert alert-success" role="alert">
|
|
<?php
|
|
echo htmlspecialchars($_SESSION['success']);
|
|
unset($_SESSION['success']);
|
|
?>
|
|
</div>
|
|
<?php
|
|
endif;
|
|
?>
|
|
|
|
<form action="handle_salida.php" method="POST" class="mt-4">
|
|
|
|
<div class="mb-3">
|
|
<label for="producto_id" class="form-label">Producto</label>
|
|
<select class="form-select" id="producto_id" name="producto_id" required>
|
|
<option value="">Selecciona un producto</option>
|
|
<?php foreach ($productos as $producto): ?>
|
|
<option value="<?php echo htmlspecialchars($producto['id']); ?>">
|
|
<?php echo htmlspecialchars($producto['nombre']); ?>
|
|
</option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="ciudad_id" class="form-label">Ciudad</label>
|
|
<select class="form-select" id="ciudad_id" name="ciudad_id" required>
|
|
<option value="">Selecciona una ciudad</option>
|
|
<?php foreach ($ciudades as $ciudad): ?>
|
|
<option value="<?php echo htmlspecialchars($ciudad['id']); ?>">
|
|
<?php echo htmlspecialchars($ciudad['nombre']); ?>
|
|
</option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="cantidad" class="form-label">Cantidad</label>
|
|
<input type="number" class="form-control" id="cantidad" name="cantidad" min="1" required>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="fecha" class="form-label">Fecha de Salida</label>
|
|
<input type="date" class="form-control" id="fecha" name="fecha" required>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label for="descripcion" class="form-label">Descripción (Opcional)</label>
|
|
<textarea class="form-control" id="descripcion" name="descripcion" rows="3" placeholder="Ej: Venta a cliente, traslado a otra tienda, etc."></textarea>
|
|
</div>
|
|
|
|
<button type="submit" class="btn btn-primary">Registrar Salida</button>
|
|
<a href="productos.php" class="btn btn-secondary">Cancelar</a>
|
|
</form>
|
|
</div>
|
|
|
|
<?php
|
|
require_once 'includes/footer.php';
|
|
?>
|