<?php
$pageTitle = 'Movimientos de Inventario';
require_once __DIR__ . '/../../config/config.php';
requireLogin();

$db = getDB();

// Filtros
$insumo_id = $_GET['insumo_id'] ?? '';
$tipo = $_GET['tipo'] ?? '';
$fecha_desde = $_GET['fecha_desde'] ?? date('Y-m-01');
$fecha_hasta = $_GET['fecha_hasta'] ?? date('Y-m-d');

$where = "DATE(m.fecha_movimiento) BETWEEN ? AND ?";
$params = [$fecha_desde, $fecha_hasta];

if ($insumo_id) {
    $where .= " AND m.insumo_id = ?";
    $params[] = $insumo_id;
}
if ($tipo) {
    $where .= " AND m.tipo = ?";
    $params[] = $tipo;
}

$stmt = $db->prepare("
    SELECT m.*, i.nombre as insumo_nombre, i.codigo as insumo_codigo, i.unidad_medida,
           u.nombre as usuario_nombre, o.codigo as orden_codigo
    FROM movimientos_inventario m
    JOIN insumos i ON m.insumo_id = i.id
    JOIN usuarios u ON m.usuario_id = u.id
    LEFT JOIN ordenes o ON m.orden_id = o.id
    WHERE $where
    ORDER BY m.fecha_movimiento DESC
");
$stmt->execute($params);
$movimientos = $stmt->fetchAll();

// Lista de insumos para filtro
$stmtInsumos = $db->query("SELECT id, codigo, nombre FROM insumos ORDER BY nombre");
$insumos = $stmtInsumos->fetchAll();

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-arrow-left-right"></i> Movimientos de Inventario</h2>
    <a href="list.php" class="btn btn-outline-secondary">
        <i class="bi bi-arrow-left"></i> Volver a Inventario
    </a>
</div>

<!-- Filtros -->
<div class="card mb-4">
    <div class="card-body">
        <form method="GET" class="row g-3">
            <div class="col-md-3">
                <label class="form-label">Insumo</label>
                <select name="insumo_id" class="form-select">
                    <option value="">Todos</option>
                    <?php foreach ($insumos as $ins): ?>
                    <option value="<?= $ins['id'] ?>" <?= $insumo_id == $ins['id'] ? 'selected' : '' ?>>
                        <?= $ins['codigo'] ?> - <?= $ins['nombre'] ?>
                    </option>
                    <?php endforeach; ?>
                </select>
            </div>
            <div class="col-md-2">
                <label class="form-label">Tipo</label>
                <select name="tipo" class="form-select">
                    <option value="">Todos</option>
                    <option value="entrada" <?= $tipo == 'entrada' ? 'selected' : '' ?>>Entrada</option>
                    <option value="salida" <?= $tipo == 'salida' ? 'selected' : '' ?>>Salida</option>
                    <option value="ajuste" <?= $tipo == 'ajuste' ? 'selected' : '' ?>>Ajuste</option>
                </select>
            </div>
            <div class="col-md-2">
                <label class="form-label">Desde</label>
                <input type="date" name="fecha_desde" class="form-control" value="<?= $fecha_desde ?>">
            </div>
            <div class="col-md-2">
                <label class="form-label">Hasta</label>
                <input type="date" name="fecha_hasta" class="form-control" value="<?= $fecha_hasta ?>">
            </div>
            <div class="col-md-3 d-flex align-items-end">
                <button type="submit" class="btn btn-primary me-2">
                    <i class="bi bi-search"></i> Filtrar
                </button>
                <a href="movimientos.php" class="btn btn-outline-secondary">
                    <i class="bi bi-x"></i> Limpiar
                </a>
            </div>
        </form>
    </div>
</div>

<div class="card">
    <div class="card-body">
        <table class="table table-hover datatable">
            <thead>
                <tr>
                    <th>Fecha/Hora</th>
                    <th>Insumo</th>
                    <th>Tipo</th>
                    <th>Cantidad</th>
                    <th>Stock Ant.</th>
                    <th>Stock Nuevo</th>
                    <th>Motivo</th>
                    <th>Usuario</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($movimientos as $mov): ?>
                <tr>
                    <td><?= formatDateTime($mov['fecha_movimiento']) ?></td>
                    <td>
                        <strong><?= $mov['insumo_codigo'] ?></strong>
                        <br><small><?= $mov['insumo_nombre'] ?></small>
                    </td>
                    <td>
                        <?php
                        $tipoClass = [
                            'entrada' => 'bg-success',
                            'salida' => 'bg-danger',
                            'ajuste' => 'bg-warning'
                        ];
                        $tipoIcon = [
                            'entrada' => 'bi-plus-circle',
                            'salida' => 'bi-dash-circle',
                            'ajuste' => 'bi-pencil-square'
                        ];
                        ?>
                        <span class="badge <?= $tipoClass[$mov['tipo']] ?>">
                            <i class="bi <?= $tipoIcon[$mov['tipo']] ?>"></i>
                            <?= ucfirst($mov['tipo']) ?>
                        </span>
                    </td>
                    <td>
                        <?php if ($mov['tipo'] == 'entrada'): ?>
                        <span class="text-success">+<?= $mov['cantidad'] ?></span>
                        <?php elseif ($mov['tipo'] == 'salida'): ?>
                        <span class="text-danger">-<?= $mov['cantidad'] ?></span>
                        <?php else: ?>
                        <?= $mov['cantidad'] ?>
                        <?php endif; ?>
                        <?= $mov['unidad_medida'] ?>
                    </td>
                    <td><?= $mov['stock_anterior'] ?></td>
                    <td><strong><?= $mov['stock_nuevo'] ?></strong></td>
                    <td>
                        <?= $mov['motivo'] ?>
                        <?php if ($mov['orden_codigo']): ?>
                        <br><a href="<?= SITE_URL ?>/modules/ordenes/view.php?id=<?= $mov['orden_id'] ?>" class="small">
                            Orden: <?= $mov['orden_codigo'] ?>
                        </a>
                        <?php endif; ?>
                    </td>
                    <td><?= $mov['usuario_nombre'] ?></td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>
</div>

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