37 lines
3.1 KiB
PHP
37 lines
3.1 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
session_start();
|
|
require_once __DIR__ . '/includes/store.php';
|
|
$message = '';
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'approve') {
|
|
approve_order((int)($_POST['order_id'] ?? 0));
|
|
$message = 'Pago aprobado correctamente.';
|
|
}
|
|
$orders = list_orders();
|
|
layout_header('Panel admin', 'Panel admin para revisar comprobantes y aprobar pagos de LA BORGUITA.');
|
|
?>
|
|
<section class="py-5">
|
|
<div class="container">
|
|
<?php if ($message): ?><div class="alert alert-success alert-dismissible fade show" role="alert"><?= h($message) ?><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Cerrar"></button></div><?php endif; ?>
|
|
<div class="section-heading"><span class="eyebrow">Admin</span><h1>Pagos y pedidos</h1><p>Primera versión del panel: revisión de comprobantes, estado del pago y total vendido.</p></div>
|
|
<?php if (!$orders): ?>
|
|
<div class="empty-state"><h2>Sin pedidos todavía</h2><p>Cuando un cliente suba comprobante aparecerá aquí para aprobarlo.</p><a class="btn btn-dark" href="index.php#catalogo">Crear pedido de prueba</a></div>
|
|
<?php else: ?>
|
|
<div class="accordion orders" id="orders">
|
|
<?php foreach ($orders as $order): $items = json_decode((string)$order['items_json'], true) ?: []; ?>
|
|
<div class="accordion-item">
|
|
<h2 class="accordion-header"><button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#order<?= (int)$order['id'] ?>">#<?= (int)$order['id'] ?> · <?= h($order['customer_name']) ?> · <?= h(money((float)$order['total'])) ?> <span class="status <?= h($order['status']) ?> ms-2"><?= h($order['status']) ?></span></button></h2>
|
|
<div id="order<?= (int)$order['id'] ?>" class="accordion-collapse collapse" data-bs-parent="#orders"><div class="accordion-body">
|
|
<div class="row g-3"><div class="col-md-6"><strong>Cliente</strong><p><?= h($order['customer_email']) ?><br><?= h($order['customer_phone']) ?></p></div><div class="col-md-6"><strong>Método</strong><p><?= h($order['payment_method']) ?> · <?= h($order['created_at']) ?></p></div></div>
|
|
<div class="table-responsive"><table class="table table-sm"><thead><tr><th>Producto</th><th>Cant.</th><th>Subtotal</th></tr></thead><tbody><?php foreach ($items as $item): ?><tr><td><?= h($item['name'] ?? '') ?></td><td><?= (int)($item['qty'] ?? 0) ?></td><td><?= h(money((float)($item['line_total'] ?? 0))) ?></td></tr><?php endforeach; ?></tbody></table></div>
|
|
<?php if (!empty($order['proof_path'])): ?><a class="btn btn-outline-dark btn-sm" href="<?= h($order['proof_path']) ?>" target="_blank" rel="noopener">Ver comprobante</a><?php endif; ?>
|
|
<?php if ($order['status'] !== 'approved'): ?><form method="post" class="d-inline"><input type="hidden" name="action" value="approve"><input type="hidden" name="order_id" value="<?= (int)$order['id'] ?>"><button class="btn btn-dark btn-sm" type="submit">Aprobar pago</button></form><?php endif; ?>
|
|
</div></div>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
</section>
|
|
<?php layout_footer(); ?>
|