Current File : /var/www/pharmacius/view/pedidos_view.php
<?php
session_start();
require_once("menu.php");

// Si el usuario no ha iniciado sesión, mostrar mensaje de aviso y detener la ejecución
if (!isset($_SESSION['nombre'])): ?>
    <div class="container d-flex justify-content-center align-items-center" style="min-height: 70vh;">
        <div class="card shadow p-4" style="max-width: 500px; width: 100%;">
            <h2 class="text-center mb-3" style="color: #00bcd4;">Bienvenido a PFarma</h2>
            <p class="text-center mb-4">Para acceder a la gestión de pedidos, es necesario iniciar sesión con tu cuenta.</p>
            <div class="d-flex justify-content-center">
                <a href="index.php?controlador=usuarios&action=login" class="btn btn-info text-white">
                    Iniciar sesión
                </a>
            </div>
        </div>
    </div>
<?php return; endif; ?>

<div class="container mt-5">
    <h2 class="text-center mb-4">Gestión de Pedidos</h2>

    <!-- Filtro por estado -->
<div class="mb-4">
    <form method="GET" action="index.php" class="d-flex align-items-center">
        <input type="hidden" name="controlador" value="pedidos">
        <input type="hidden" name="action" value="home">

        <label class="me-2 fw-bold">Filtrar por estado:</label>
        <select name="estado" class="form-select me-2" style="width: 200px;">
            <option value="">Todos</option>
            <option value="Creado" <?= isset($_GET['estado']) && $_GET['estado'] === 'Creado' ? 'selected' : '' ?>>Creado</option>
            <option value="En proceso" <?= isset($_GET['estado']) && $_GET['estado'] === 'En proceso' ? 'selected' : '' ?>>En proceso</option>
            <option value="Listo" <?= isset($_GET['estado']) && $_GET['estado'] === 'Listo' ? 'selected' : '' ?>>Listo</option>
        </select>

        <button type="submit" class="btn ms-2 btn-filtrar-custom">
            <i class="bi bi-filter"></i> Filtrar
        </button>

        <a href="index.php?controlador=pedidos&action=home" class="btn btn-outline-secondary ms-2">
            <i class="bi bi-x-circle"></i> Reset
        </a>
    </form>
</div>

    <div class="text-end mb-3">
        <a href="index.php?controlador=pedidos&action=insertar" class="btn btn-primary">
            <i class="bi bi-plus-circle"></i> Añadir pedido
        </a>
    </div>

    <div class="table-responsive">
        <table class="table table-bordered table-hover align-middle text-center">
            <thead class="table-light">
                <tr>
                    <th>Nº Pedido</th>
                    <th>Productos</th>
                    <th>Estado</th>
                    <th>Productos Faltantes</th>
                    <th>Observaciones</th>
                    <th>Incidencias</th>
                    <th>Clientes</th>
                    <th>Acciones</th>
                </tr>
            </thead>
            <tbody>
                <?php if (!empty($pedidos)): ?>
                    <?php foreach ($pedidos as $pedido): ?>
                        <?php
                        // Aplicar filtro por estado en la vista
                        if (!empty($_GET['estado']) && $pedido['Estado'] !== $_GET['estado']) {
                            continue;
                        }
                        ?>
                        <tr>
                            <td><?= $pedido['IDPedido'] ?></td>
                            <td style="white-space: normal; word-break: break-word;">
                                <?php if (!empty($pedido['productos'])): ?>
                                    <ul class="list-unstyled text-start mb-0">
                                        <?php foreach ($pedido['productos'] as $prod): ?>
                                            <li class="mb-2 border rounded p-2 bg-light">
                                                <strong><?= htmlspecialchars($prod['Nombre']) ?></strong><br>
                                                ID: <?= $prod['IDProducto'] ?> | Ref: <?= $prod['Referencia'] ?> | Cant: <?= $prod['Cantidad'] ?>
                                                <?php if (!empty($prod['Notas'])): ?>
                                                    <br><em>Nota: <?= htmlspecialchars($prod['Notas']) ?></em>
                                                <?php endif; ?>
                                            </li>
                                        <?php endforeach; ?>
                                    </ul>
                                <?php else: ?>
                                    -
                                <?php endif; ?>
                            </td>
                            <td>
                                <?php
                                $estado = $pedido['Estado'];
                                $estilos = match($estado) {
                                    'Listo' => 'background-color: #28a745; color: #fff;',
                                    'En proceso' => 'background-color: #ffc107; color: #000;',
                                    'Creado' => 'background-color: #e0e0e0; color: #000;',
                                    default => 'background-color: #6c757d; color: #fff;'
                                };
                                ?>
                                <span style="<?= $estilos ?> padding: 0.4em 0.7em; border-radius: 0.5rem; font-weight: 600;">
                                    <?= $estado ?>
                                </span>
                            </td>
                            <td style="white-space: normal; word-break: break-word;">
                                <?= $pedido['ProductosFaltantes'] ?: '-' ?>
                            </td>
                            <td style="white-space: normal; word-break: break-word;">
                                <?= $pedido['Observaciones'] ?: '-' ?>
                            </td>
                            <td style="white-space: normal; word-break: break-word;">
                                <?= $pedido['Incidencias'] ?: '-' ?>
                            </td>
                            <td style="white-space: normal; word-break: break-word;">
                                <?= $pedido['Seguimiento'] ?: '-' ?>
                            </td>
                            <td style="white-space: normal; word-break: break-word;">
                                <a href="index.php?controlador=pedidos&action=editar&IDPedido=<?= $pedido['IDPedido'] ?>" class="btn btn-sm btn-warning me-1">
                                    <i class="bi bi-pencil-square"></i>
                                </a>
                                <a href="index.php?controlador=pedidos&action=eliminar&IDPedido=<?= $pedido['IDPedido'] ?>" class="btn btn-sm btn-danger" onclick="return confirm('¿Estás seguro de que deseas eliminar este pedido?');">
                                    <i class="bi bi-trash"></i>
                                </a>
                            </td>
                        </tr>
                    <?php endforeach; ?>
                <?php else: ?>
                    <tr>
                        <td colspan="9">No hay pedidos registrados.</td>
                    </tr>
                <?php endif; ?>
            </tbody>
        </table>
    </div>
</div>