<?php
$pageTitle = 'Nuevo Insumo';
require_once __DIR__ . '/../../config/config.php';
requireLogin();

$db = getDB();

// Obtener categorías
$stmt = $db->query("SELECT * FROM categorias_insumos ORDER BY nombre");
$categorias = $stmt->fetchAll();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $codigo = sanitize($_POST['codigo']);
    
    // Verificar código único
    $stmt = $db->prepare("SELECT id FROM insumos WHERE codigo = ?");
    $stmt->execute([$codigo]);
    if ($stmt->fetch()) {
        showAlert('El código ya existe', 'danger');
    } else {
        try {
            $stmt = $db->prepare("
                INSERT INTO insumos (codigo, nombre, categoria_id, descripcion, unidad_medida, 
                                    stock_actual, stock_minimo, precio_unitario, fecha_vencimiento, activo)
                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
            ");
            
            $stockInicial = floatval($_POST['stock_actual']);
            $fechaVenc = !empty($_POST['fecha_vencimiento']) ? $_POST['fecha_vencimiento'] : null;
            
            $stmt->execute([
                $codigo,
                sanitize($_POST['nombre']),
                $_POST['categoria_id'] ?: null,
                sanitize($_POST['descripcion']),
                sanitize($_POST['unidad_medida']),
                $stockInicial,
                floatval($_POST['stock_minimo']),
                floatval($_POST['precio_unitario']),
                $fechaVenc,
                isset($_POST['activo']) ? 1 : 0
            ]);
            
            $insumo_id = $db->lastInsertId();
            
            // Registrar movimiento inicial si hay stock
            if ($stockInicial > 0) {
                $stmtMov = $db->prepare("
                    INSERT INTO movimientos_inventario 
                    (insumo_id, tipo, cantidad, stock_anterior, stock_nuevo, motivo, usuario_id)
                    VALUES (?, 'entrada', ?, 0, ?, 'Stock inicial', ?)
                ");
                $stmtMov->execute([$insumo_id, $stockInicial, $stockInicial, $_SESSION['user_id']]);
            }
            
            showAlert('Insumo creado correctamente');
            header('Location: list.php');
            exit;
        } catch (PDOException $e) {
            showAlert('Error al crear: ' . $e->getMessage(), 'danger');
        }
    }
}

require_once __DIR__ . '/../../includes/header.php';
?>

<div class="d-flex justify-content-between align-items-center mt-4 mb-4">
    <h2><i class="bi bi-plus-circle"></i> Nuevo Insumo</h2>
    <a href="list.php" class="btn btn-outline-secondary">
        <i class="bi bi-arrow-left"></i> Volver
    </a>
</div>

<div class="card">
    <div class="card-body">
        <form method="POST">
            <div class="row">
                <div class="col-md-4">
                    <div class="mb-3">
                        <label class="form-label">Código *</label>
                        <input type="text" name="codigo" class="form-control" required 
                               placeholder="Ej: INS001" style="text-transform: uppercase;">
                    </div>
                </div>
                <div class="col-md-8">
                    <div class="mb-3">
                        <label class="form-label">Nombre del Insumo *</label>
                        <input type="text" name="nombre" class="form-control" required
                               placeholder="Ej: Tubo de ensayo 10ml">
                    </div>
                </div>
            </div>
            
            <div class="row">
                <div class="col-md-4">
                    <div class="mb-3">
                        <label class="form-label">Categoría</label>
                        <select name="categoria_id" class="form-select">
                            <option value="">Sin categoría</option>
                            <?php foreach ($categorias as $cat): ?>
                            <option value="<?= $cat['id'] ?>"><?= $cat['nombre'] ?></option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                </div>
                <div class="col-md-4">
                    <div class="mb-3">
                        <label class="form-label">Unidad de Medida</label>
                        <input type="text" name="unidad_medida" class="form-control"
                               placeholder="Ej: unidades, ml, cajas">
                    </div>
                </div>
                <div class="col-md-4">
                    <div class="mb-3">
                        <label class="form-label">Precio Unitario</label>
                        <div class="input-group">
                            <span class="input-group-text"><?= CURRENCY ?></span>
                            <input type="number" name="precio_unitario" class="form-control" 
                                   min="0" step="0.01" value="0">
                        </div>
                    </div>
                </div>
                <div class="col-md-4">
                    <div class="mb-3">
                        <label class="form-label">Fecha de Vencimiento</label>
                        <input type="date" name="fecha_vencimiento" class="form-control">
                        <div class="form-text text-muted">Dejar vacío si no aplica</div>
                    </div>
                </div>
            </div>
            
            <div class="row">
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label">Stock Inicial</label>
                        <input type="number" name="stock_actual" class="form-control" 
                               min="0" step="0.01" value="0">
                    </div>
                </div>
                <div class="col-md-6">
                    <div class="mb-3">
                        <label class="form-label">Stock Mínimo (alerta)</label>
                        <input type="number" name="stock_minimo" class="form-control" 
                               min="0" step="0.01" value="10">
                    </div>
                </div>
            </div>
            
            <div class="mb-3">
                <label class="form-label">Descripción</label>
                <textarea name="descripcion" class="form-control" rows="2"></textarea>
            </div>
            
            <div class="form-check mb-3">
                <input class="form-check-input" type="checkbox" name="activo" id="activo" checked>
                <label class="form-check-label" for="activo">
                    Activo
                </label>
            </div>
            
            <div class="d-flex gap-2">
                <button type="submit" class="btn btn-primary">
                    <i class="bi bi-check-lg"></i> Guardar
                </button>
                <a href="list.php" class="btn btn-outline-secondary">Cancelar</a>
            </div>
        </form>
    </div>
</div>

<?php require_once __DIR__ . '/../../includes/footer.php'; ?>
