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

require_once(__DIR__ . '/../db/conexion.php');

$response = ['success' => false, 'deducciones' => []];

// Requiere sesión
if (!isset($_SESSION['attuid'])) {
    echo json_encode($response);
    exit;
}

$rol = $_SESSION['rol'] ?? '';
if ($rol === 'contabilidad') {
    $sql = "SELECT id, descripcion, monto, parcialidades, parcialidadesPendientes, interes_fijo, fecha_inicio_pago, fecha_fin, solicitante, activo, creado_por, creado_en, aportacionVoluntaria, saldo_aportacion, nuevo_monto_a_pagar, periodicidad, autorizado FROM deducciones WHERE autorizado = 1 ORDER BY descripcion";
} else {
    $sql = "SELECT id, descripcion, monto, parcialidades, parcialidadesPendientes, interes_fijo, fecha_inicio_pago, fecha_fin, solicitante, activo, creado_por, creado_en, aportacionVoluntaria, saldo_aportacion, nuevo_monto_a_pagar, periodicidad, autorizado FROM deducciones ORDER BY descripcion";
}
$result = $conn->query($sql);

if ($result) {
    $list = [];
    while ($row = $result->fetch_assoc()) {
        $monto = floatval($row['monto']);
        $interes = floatval($row['interes_fijo']);
        $parcialidadesPendientes = isset($row['parcialidadesPendientes']) ? intval($row['parcialidadesPendientes']) : 0;
        $parcialidadesOriginal = isset($row['parcialidades']) ? intval($row['parcialidades']) : 0;
    $row['parcialidades_totales'] = $parcialidadesOriginal;
    $row['parcialidades_pendientes'] = $parcialidadesPendientes;
    $total = $monto + ($monto * ($interes / 100));
    $monto_por_parcialidad = $parcialidadesOriginal > 0 ? $total / $parcialidadesOriginal : 0;
    $row['monto_por_parcialidad'] = round($monto_por_parcialidad, 2);
    // Asegurar que periodicidad se exponga (puede ser NULL en BD)
    $row['periodicidad'] = isset($row['periodicidad']) && $row['periodicidad'] !== '' ? $row['periodicidad'] : null;
    // Asegurar que nuevo_monto_a_pagar sea numérico o null
    $row['nuevo_monto_a_pagar'] = isset($row['nuevo_monto_a_pagar']) && $row['nuevo_monto_a_pagar'] !== '' ? floatval($row['nuevo_monto_a_pagar']) : null;
        // No sobrescribir 'parcialidades', dejar el total original
    // Asegurar que los campos estén presentes y sean numéricos
    $row['aportacionVoluntaria'] = isset($row['aportacionVoluntaria']) ? floatval($row['aportacionVoluntaria']) : 0;
    $row['saldo_aportacion'] = isset($row['saldo_aportacion']) ? floatval($row['saldo_aportacion']) : 0;
    $list[] = $row;
    }
    $response['deducciones'] = $list;
    $response['success'] = true;
}

echo json_encode($response);

?>
