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

$db = getDB();

// Filtros
$estado = isset($_GET['estado']) ? $_GET['estado'] : '';
$fecha_desde = isset($_GET['fecha_desde']) ? $_GET['fecha_desde'] : '';
$fecha_hasta = isset($_GET['fecha_hasta']) ? $_GET['fecha_hasta'] : '';

$where = "1=1";
$params = [];

if ($estado) {
    $where .= " AND o.estado = ?";
    $params[] = $estado;
}
if ($fecha_desde) {
    $where .= " AND DATE(o.fecha_orden) >= ?";
    $params[] = $fecha_desde;
}
if ($fecha_hasta) {
    $where .= " AND DATE(o.fecha_orden) <= ?";
    $params[] = $fecha_hasta;
}

$stmt = $db->prepare("
    SELECT o.*, p.nombre, p.apellidos, p.documento_numero,
           (SELECT COUNT(*) FROM orden_detalle WHERE orden_id = o.id) as num_examenes,
           (SELECT COALESCE(SUM(monto), 0) FROM pagos WHERE orden_id = o.id) as pagado
    FROM ordenes o 
    JOIN pacientes p ON o.paciente_id = p.id 
    WHERE $where
    ORDER BY o.id DESC
");
$stmt->execute($params);
$ordenes = $stmt->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-clipboard2-pulse"></i> Órdenes de Exámenes</h2>
    <a href="create.php" class="btn btn-primary">
        <i class="bi bi-plus"></i> Nueva Orden
    </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">Estado</label>
                <select name="estado" class="form-select">
                    <option value="">Todos</option>
                    <option value="pendiente" <?= $estado == 'pendiente' ? 'selected' : '' ?>>Pendiente</option>
                    <option value="en_proceso" <?= $estado == 'en_proceso' ? 'selected' : '' ?>>En Proceso</option>
                    <option value="completada" <?= $estado == 'completada' ? 'selected' : '' ?>>Completada</option>
                    <option value="entregada" <?= $estado == 'entregada' ? 'selected' : '' ?>>Entregada</option>
                    <option value="cancelada" <?= $estado == 'cancelada' ? 'selected' : '' ?>>Cancelada</option>
                </select>
            </div>
            <div class="col-md-3">
                <label class="form-label">Desde</label>
                <input type="date" name="fecha_desde" class="form-control" value="<?= $fecha_desde ?>">
            </div>
            <div class="col-md-3">
                <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-outline-primary me-2">
                    <i class="bi bi-search"></i> Filtrar
                </button>
                <a href="list.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>Código</th>
                    <th>Paciente</th>
                    <th>Fecha</th>
                    <th>Exámenes</th>
                    <th>Total</th>
                    <th>Pagado</th>
                    <th>Estado</th>
                    <th>Acciones</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($ordenes as $orden): ?>
                <tr>
                    <td><strong><?= $orden['codigo'] ?></strong></td>
                    <td>
                        <?= $orden['nombre'] . ' ' . $orden['apellidos'] ?>
                        <br><small class="text-muted"><?= $orden['documento_numero'] ?></small>
                    </td>
                    <td><?= formatDateTime($orden['fecha_orden']) ?></td>
                    <td><span class="badge bg-secondary"><?= $orden['num_examenes'] ?></span></td>
                    <td><?= formatMoney($orden['total']) ?></td>
                    <td>
                        <?php
                        $pendiente = $orden['total'] - $orden['pagado'];
                        if ($pendiente <= 0) {
                            echo '<span class="badge bg-success">Pagado</span>';
                        } else {
                            echo '<span class="text-danger">' . formatMoney($pendiente) . ' pend.</span>';
                        }
                        ?>
                    </td>
                    <td>
                        <?php
                        $estadoClass = [
                            'pendiente' => 'bg-warning',
                            'en_proceso' => 'bg-info',
                            'completada' => 'bg-success',
                            'entregada' => 'bg-primary',
                            'cancelada' => 'bg-danger'
                        ];
                        ?>
                        <span class="badge <?= $estadoClass[$orden['estado']] ?>">
                            <?= ucfirst(str_replace('_', ' ', $orden['estado'])) ?>
                        </span>
                    </td>
                    <td>
                        <div class="btn-group btn-group-sm">
                            <a href="view.php?id=<?= $orden['id'] ?>" class="btn btn-outline-info" title="Ver">
                                <i class="bi bi-eye"></i>
                            </a>
                            <?php if ($orden['estado'] != 'cancelada' && $orden['estado'] != 'entregada'): ?>
                            <a href="<?= SITE_URL ?>/modules/resultados/edit.php?orden_id=<?= $orden['id'] ?>" 
                               class="btn btn-outline-success" title="Resultados">
                                <i class="bi bi-file-earmark-medical"></i>
                            </a>
                            <a href="<?= SITE_URL ?>/modules/caja/pago.php?orden_id=<?= $orden['id'] ?>" 
                               class="btn btn-outline-warning" title="Cobrar">
                                <i class="bi bi-cash"></i>
                            </a>
                            <?php endif; ?>
                            <a href="print.php?id=<?= $orden['id'] ?>" class="btn btn-outline-secondary" 
                               title="Imprimir" target="_blank">
                                <i class="bi bi-printer"></i>
                            </a>
                            <a href="print_label.php?id=<?= $orden['id'] ?>" class="btn btn-outline-primary"
                               title="Imprimir Viñeta" target="_blank">
                                <i class="bi bi-upc-scan"></i>
                            </a>
                            <?php if ($orden['estado'] != 'cancelada'): ?>
                            <a href="<?= SITE_URL ?>/modules/resultados/print.php?orden_id=<?= $orden['id'] ?>"
                               class="btn btn-outline-success" title="Imprimir Resultados" target="_blank">
                                <i class="bi bi-file-earmark-pdf"></i>
                            </a>
                            <a href="<?= SITE_URL ?>/modules/resultados/print.php?orden_id=<?= $orden['id'] ?>&descargar_pdf=1"
                               class="btn btn-outline-danger" title="Descargar PDF Resultados" target="_blank">
                                <i class="bi bi-download"></i>
                            </a>
                            <?php endif; ?>
                        </div>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>
</div>

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