<?php
// gestionar_pago.php - Versión Corregida
ini_set('display_errors', 1);
error_reporting(E_ALL);

require_once $_SERVER['DOCUMENT_ROOT'] . '/carwash/modelo/Db.php';

$db = new clsbdd();
$db->ejecutar("SET NAMES 'utf8'");

$cliente_id = isset($_GET['cliente_id']) ? intval($_GET['cliente_id']) : 0;

// 1. PROCESAR EL FORMULARIO DE PAGO (SIN BUCLES, REGISTRO ÚNICO)
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['confirmar_pago'])) {
    $fecha_pago = $_POST['fecha_pago'];
    $metodo = $_POST['metodo_pago'];
    $monto_abonado = floatval($_POST['monto_pago']);
    $num_comprobante = $_POST['num_comprobante'] ?? '';

    // Obtenemos una orden válida del cliente para mantener la integridad de la llave foránea
    $sql_orden_ref = "SELECT ord_id FROM car_ordenestrabajo WHERE veh_id_cliente_credito = '$cliente_id' LIMIT 1";
    $res_ref = $db->ejecutar($sql_orden_ref);
    $orden_ref = $res_ref->fetch_assoc()['ord_id'] ?? 0;

    if ($orden_ref > 0) {
        // INSERT ÚNICO: Registra el abono global a la cuenta del cliente
        $sql_insert = "INSERT INTO car_pagoscomprobantes (ord_id, pag_metodo, pag_numerocomprobante, pag_monto, pag_fechaemision) 
                       VALUES ('$orden_ref', '$metodo', '$num_comprobante', '$monto_abonado', '$fecha_pago')";
        
        if ($db->ejecutar($sql_insert)) {
            echo "<script>alert('Abono registrado correctamente.'); window.location.href = 'index.php?page=reportes/reporte_credito_general';</script>";
            exit;
        }
    } else {
        echo "<script>alert('Error: No se encontró una orden válida para este cliente.');</script>";
    }
}

// 2. OBTENER DATOS DEL CLIENTE (DEUDA TOTAL)
$sql_info = "SELECT v.veh_propietario,
                (SELECT SUM(det_cantidad * det_preciounitario) 
                 FROM car_ordendetalles d 
                 JOIN car_ordenestrabajo o2 ON d.ord_id = o2.ord_id 
                 WHERE o2.veh_id_cliente_credito = v.veh_id AND o2.ord_estadopago = 'Credito') as deuda_total
             FROM car_clientesvehiculos v WHERE v.veh_id = '$cliente_id'";
$datos = $db->ejecutar($sql_info)->fetch_assoc();

// 3. OBTENER HISTORIAL DE PAGOS
$sql_historial = "SELECT p.* FROM car_pagoscomprobantes p 
                  JOIN car_ordenestrabajo o ON p.ord_id = o.ord_id 
                  WHERE o.veh_id_cliente_credito = '$cliente_id' ORDER BY p.pag_fechaemision DESC";
$historial = $db->ejecutar($sql_historial);
?>

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Registrar Abono - JPALLASCO</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
</head>
<body class="bg-light">

<div class="container py-5">
    <div class="row">
        <div class="col-md-5">
            <div class="card shadow-sm p-4">
                <h3 class="text-primary fw-bold">Registrar Abono</h3>
                <h4 class="mb-4"><?= htmlspecialchars($datos['veh_propietario'] ?? 'Cliente') ?></h4>
                <div class="alert alert-info">
                    <strong>Saldo Pendiente Global:</strong>
                    <h2 class="text-danger">$<?= number_format($datos['deuda_total'] ?? 0, 2) ?></h2>
                </div>
                <form method="POST">
                    <div class="mb-3">
                        <label class="fw-bold">Monto a Abonar ($):</label>
                        <input type="number" name="monto_pago" step="0.01" class="form-control form-control-lg" required>
                    </div>
                    <div class="mb-3">
                        <label class="fw-bold">Fecha:</label>
                        <input type="date" name="fecha_pago" class="form-control" value="<?= date('Y-m-d') ?>" required>
                    </div>
                    <div class="mb-3">
                        <label class="fw-bold">Método:</label>
                        <select name="metodo_pago" class="form-select">
                            <option value="Efectivo">Efectivo</option>
                            <option value="Transferencia">Transferencia</option>
                            <option value="Tarjeta">Tarjeta</option>
                        </select>
                    </div>
                    <div class="mb-3">
                        <label class="fw-bold">Comprobante:</label>
                        <input type="text" name="num_comprobante" class="form-control">
                    </div>
                    <button type="submit" name="confirmar_pago" class="btn btn-success w-100">Confirmar Abono</button>
                </form>
            </div>
        </div>
        <div class="col-md-7">
            <div class="card shadow-sm p-4">
               <h5>Historial de Abonos</h5>
                    <table class="table table-striped">
                        <thead>
                            <tr>
                                <th>Fecha</th>
                                <th>Monto</th>
                                <th>Método</th>
                                <th>Acción</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php while($p = $historial->fetch_assoc()): ?>
                            <tr>
                                <td><?= $p['pag_fechaemision'] ?></td>
                                <td>$<?= number_format($p['pag_monto'], 2) ?></td>
                                <td><?= $p['pag_metodo'] ?></td>
                                <td>
                                    <a href="vista/reportes/eliminar_abono.php?pag_id=<?= $p['pag_id'] ?>&cliente_id=<?= $cliente_id ?>" 
                                       class="btn btn-sm btn-danger" 
                                       onclick="return confirm('¿Seguro que deseas eliminar este abono?')">
                                       Eliminar
                                    </a>
                                </td>
                            </tr>
                            <?php endwhile; ?>
                        </tbody>
                    </table>
            </div>
        </div>
    </div>
</div>
</body>
</html>