<?php
session_start();
header('Content-Type: application/json; charset=UTF-8');

require_once __DIR__ . '/../config/database.php';

function json_response($data, $code = 200) {
    http_response_code($code);
    echo json_encode($data, JSON_UNESCAPED_UNICODE);
    exit;
}

try {
    if (!isset($_SESSION['user']['codempleado'])) {
        json_response(['success' => false, 'message' => 'No autorizado'], 401);
    }

    $ventaId = isset($_GET['id']) ? (int)$_GET['id'] : 0;
    if ($ventaId <= 0) {
        json_response(['success' => false, 'message' => 'ID inválido'], 400);
    }

    $database = new Database();
    $conn = $database->getConnection();

    // Obtener empresa del usuario
    $stmtEmpresa = $conn->prepare("SELECT codempresa FROM templeado WHERE codempleado = ?");
    $stmtEmpresa->execute([$_SESSION['user']['codempleado']]);
    $empresa = $stmtEmpresa->fetch(PDO::FETCH_ASSOC);
    if (!$empresa || !$empresa['codempresa']) {
        json_response(['success' => false, 'message' => 'No se encontró empresa del usuario'], 403);
    }
    $codempresaUsuario = $empresa['codempresa'];

    // Validar que la venta pertenezca a la empresa y obtener datos del cliente
    $stmtVenta = $conn->prepare("SELECT id, nombres_ap_raz_soc, tipo_documento, nro_documento, agente, estado, paquete_contratado, tecnologia, fecha_instalacion, cargo_fijo FROM timportventas WHERE id = ? AND codempresa = ?");
    $stmtVenta->execute([$ventaId, $codempresaUsuario]);
    $venta = $stmtVenta->fetch(PDO::FETCH_ASSOC);
    if (!$venta) {
        json_response(['success' => false, 'message' => 'Venta no encontrada o sin permisos'], 404);
    }

    // Obtener cronograma
    $stmt = $conn->prepare(
        "SELECT codcronogramaventas, nropago, fecha_entrega, fecha_iniciocobranza, fechapago, estado, monto, pagadofecha
         FROM tcronogramaventas
         WHERE id = ?
         ORDER BY COALESCE(fechapago, fecha_entrega) ASC, codcronogramaventas ASC"
    );
    $stmt->execute([$ventaId]);
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

    $total = 0.0;
    foreach ($rows as $r) {
        if ($r['monto'] !== null) {
            $total += (float)$r['monto'];
        }
    }

    ob_start();
    $clienteNombre = $venta['nombres_ap_raz_soc'] ?? '';
    $docTipo = $venta['tipo_documento'] ?? '';
    $docNum = $venta['nro_documento'] ?? '';
    $agente = $venta['agente'] ?? '';
    $estadoVenta = $venta['estado'] ?? '';
    $paquete = $venta['paquete_contratado'] ?? '';
    $tecnologia = $venta['tecnologia'] ?? '';
    $fechaInstalacion = $venta['fecha_instalacion'] ?? null;
    $cargoFijo = $venta['cargo_fijo'] ?? '';
    ?>
    <div class="mb-3 p-3 border rounded" style="background:#f8f9fa">
        <div class="row g-3 align-items-center">
            <div class="col-md-8">
                <div><strong>Cliente:</strong> <?php echo htmlspecialchars($clienteNombre ?: '-'); ?></div>
                <div><strong>Documento:</strong> <?php echo htmlspecialchars(($docTipo ? $docTipo . ': ' : '') . ($docNum ?: '-')); ?></div>
                <div><strong>Agente:</strong> <?php echo htmlspecialchars($agente ?: '-'); ?>
                    <span class="badge bg-secondary ms-2"><?php echo htmlspecialchars($estadoVenta ?: '-'); ?></span>
                </div>
                <div><strong>Paquete:</strong> <?php echo htmlspecialchars($paquete ?: '-'); ?>
                    <?php if ($tecnologia): ?><span class="badge bg-primary ms-2"><?php echo htmlspecialchars($tecnologia); ?></span><?php endif; ?>
                </div>
                <div><strong>Instalación:</strong> <?php echo $fechaInstalacion ? date('d/m/Y', strtotime($fechaInstalacion)) : '-'; ?></div>
            </div>
            <div class="col-md-4 text-md-end">
                <div class="btn-group" role="group">
                    <button type="button" class="btn btn-success" id="ventasExportCronogramaBtn" data-venta-id="<?php echo (int)$ventaId; ?>">
                        <i class="fas fa-file-excel"></i> Exportar Excel
                    </button>
                    <button type="button" class="btn btn-warning" id="ventasAumentarMesesBtn" data-venta-id="<?php echo (int)$ventaId; ?>" data-fecha-instalacion="<?php echo $fechaInstalacion ? date('Y-m-d', strtotime($fechaInstalacion)) : ''; ?>" data-cliente="<?php echo htmlspecialchars($clienteNombre); ?>">
                        <i class="fas fa-plus"></i> Aumentar Meses
                    </button>
                    <button type="button" class="btn btn-danger" id="ventasEliminarUltimaBtn" data-venta-id="<?php echo (int)$ventaId; ?>">
                        <i class="fas fa-trash"></i> Eliminar Última Cuota
                    </button>
                </div>
            </div>
        </div>
    </div>
    <!-- Barra de acciones masivas para modificar monto -->
    <div class="card mb-3" id="bulkMontoBar" style="background: linear-gradient(135deg, #ffc107, #ff9800); border: none; box-shadow: 0 4px 6px rgba(0,0,0,0.1); display: none;">
        <div class="card-body">
            <div class="d-flex justify-content-between align-items-center">
                <div>
                    <span class="badge bg-dark fs-6" id="selectedCronogramaCount">0</span>
                    <span class="ms-2 text-white fw-bold">cuota(s) seleccionada(s)</span>
                </div>
                <div class="btn-group" role="group">
                    <button type="button" class="btn btn-warning" onclick="openBulkMontoModal()" id="bulkMontoBtn" disabled>
                        <i class="fas fa-edit"></i> Modificar Monto
                    </button>
                    <button type="button" class="btn btn-secondary" onclick="clearCronogramaSelection()">
                        <i class="fas fa-times"></i> Limpiar Selección
                    </button>
                </div>
            </div>
        </div>
    </div>
    
    <div class="table-responsive">
        <table class="table table-sm table-bordered">
            <thead class="table-light">
                        <tr>
                            <th style="width: 50px;">
                                <input type="checkbox" id="selectAllCronograma" class="form-check-input" style="transform: scale(1.2);">
                            </th>
                            
                            <th>N° Pago</th>
                            <th>Fecha Entrega</th>
                            <th>Inicio Cobranza</th>
                            <th>Fecha Pago</th>
                            <th>Estado</th>
                            <th class="text-end">Monto</th>
                            <th>Pagado Fecha</th>
                            <th>Acciones</th>
                        </tr>
            </thead>
            <tbody>
            <?php if (empty($rows)): ?>
                <tr>
                    <td colspan="10" class="text-center text-muted">No hay cronograma registrado para esta venta</td>
                </tr>
            <?php else: ?>
                <?php foreach ($rows as $idx => $r): ?>
                    <?php 
                    $est = strtoupper((string)$r['estado']);
                    $esPendiente = ($est === 'PENDIENTE');
                    ?>
                    <tr>
                        <td>
                            <?php if ($esPendiente): ?>
                                <input type="checkbox" class="form-check-input cronograma-checkbox" 
                                       value="<?php echo $r['codcronogramaventas']; ?>" 
                                       data-monto="<?php echo $r['monto'] ?? ''; ?>"
                                       style="transform: scale(1.1);">
                            <?php else: ?>
                                <span class="text-muted">-</span>
                            <?php endif; ?>
                        </td>
                        
                        <td><?php echo htmlspecialchars((string)$r['nropago'] ?? ''); ?></td>
                        <td><?php echo $r['fecha_entrega'] ? date('d/m/Y', strtotime($r['fecha_entrega'])) : ''; ?></td>
                        <td><?php echo $r['fecha_iniciocobranza'] ? date('d/m/Y', strtotime($r['fecha_iniciocobranza'])) : ''; ?></td>
                        <td><?php echo $r['fechapago'] ? date('d/m/Y', strtotime($r['fechapago'])) : ''; ?></td>
                        <td>
                            <?php
                            $cls = 'bg-secondary';
                            if ($est === 'PAGADO' || $est === 'PAGADA') { $cls = 'bg-success'; }
                            elseif ($est === 'PENDIENTE') { $cls = 'bg-warning'; }
                            ?>
                            <span class="badge <?php echo $cls; ?>"><?php echo htmlspecialchars((string)$r['estado'] ?? ''); ?></span>
                        </td>
                        <td class="text-end"><?php echo $r['monto'] !== null ? number_format((float)$r['monto'], 2) : ''; ?></td>
                        <td><?php echo $r['pagadofecha'] ? date('d/m/Y', strtotime($r['pagadofecha'])) : ''; ?></td>
                        <td>
                            <div class="btn-group" role="group">
                                <button type="button" class="btn btn-sm btn-success" 
                                        onclick="openEditCronogramaVentasModal(<?php echo $r['codcronogramaventas']; ?>, <?php echo $ventaId; ?>, '<?php echo $r['monto'] ?? ''; ?>', '<?php echo $r['pagadofecha'] ?? ''; ?>', '<?php echo $cargoFijo; ?>')"
                                        title="Cobrar">
                                    <i class="fas fa-money-bill"></i>
                                </button>
                                <button type="button" class="btn btn-sm btn-info" 
                                        onclick="openNotasVentasModal(<?php echo $r['codcronogramaventas']; ?>, <?php echo $ventaId; ?>, <?php echo $r['nropago']; ?>)"
                                        title="Insertar Nota">
                                    <i class="fas fa-comment"></i>
                                </button>
                            </div>
                        </td>
                    </tr>
                <?php endforeach; ?>
            <?php endif; ?>
            </tbody>
            <tfoot>
                <tr>
                    <th colspan="7" class="text-end">Total</th>
                    <th class="text-end"><?php echo number_format($total, 2); ?></th>
                    <th></th>
                    <th></th>
                </tr>
            </tfoot>
        </table>
    </div>
    <?php
    $html = ob_get_clean();

    json_response(['success' => true, 'html' => $html]);
} catch (Throwable $e) {
    json_response(['success' => false, 'message' => 'Error del servidor: ' . $e->getMessage()], 500);
}


