<?php
session_start();
require_once(__DIR__ . '/../db/conexion.php');
header('Content-Type: application/json');

// Solo permitir acceso a usuarios con rol contabilidad o adminTi
if (!isset($_SESSION['rol']) || !in_array($_SESSION['rol'], ['contabilidad', 'adminTi'])) {
  echo json_encode(['error' => 'Acceso denegado']);
  exit;
}

$response = [
  'pendientes' => [],
  'altas' => []
];

// 1. Consulta para PENDIENTES (NSSActivo=0, RFCActivo=0, estatusContaAlta=Pendiente)
$sqlPendientes = "
  SELECT
    p.CURP,
    p.`NOMBRES`,
    p.`APELLIDO PATERNO`,
    p.`APELLIDO MATERNO`,
    p.RFC,
    p.NSS,
    p.`PUESTO`,
    p.`FECHA DE INGRESO`,
    'Pendiente' AS estatusConta,
    p.NSSActivo,
    p.RFCActivo,
    pdf.Folio_idse,
    pdf.Fecha_alta_idse,
    pdf.Numero_cuenta,
    pdf.Cuenta_clave,
    pdf.Folio_pre_alta_idse,
    pdf.Fecha_pre_alta,
    pdf.Fonacot,
    p.`DEPARTAMENTO INTERNO`
  FROM Plantilla p
  LEFT JOIN aspirantes a ON a.CURP = p.CURP
  LEFT JOIN Plantilla_datos_financieros pdf ON pdf.CURP = p.CURP
  WHERE p.NSSActivo = 0 AND p.RFCActivo = 0
    AND UPPER(p.Estatus) = 'ACTIVO'
    AND p.tipoComision IS NOT NULL
    AND TRIM(p.tipoComision) <> ''
    AND UPPER(p.tipoComision) NOT IN ('SUBDISTRIBUIDOR', 'COMISIONISTA')
    AND (a.subdistribuidor = 0 OR a.subdistribuidor IS NULL)
    AND UPPER(p.estatusContaAlta) = 'PENDIENTE'
    AND p.`FECHA DE INGRESO` IS NOT NULL
    AND p.`FECHA DE INGRESO` <> ''
    AND p.`FECHA DE INGRESO` <> '00/00/0000'
  ORDER BY p.CURP
";

// 2. Consulta para ALTAS (NSSActivo=1, RFCActivo=1, estatusContaAlta=Alta)
$sqlAltas = "
  SELECT
    p.CURP,
    p.`NOMBRES`,
    p.`APELLIDO PATERNO`,
    p.`APELLIDO MATERNO`,
    p.RFC,
    p.NSS,
    p.`PUESTO`,
    p.`FECHA DE INGRESO`,
    'Alta' AS estatusConta,
    p.NSSActivo,
    p.RFCActivo,
    pdf.Folio_idse,
    pdf.Fecha_alta_idse,
    pdf.Numero_cuenta,
    pdf.Cuenta_clave,
    pdf.Folio_pre_alta_idse,
    pdf.Fecha_pre_alta,
    pdf.Fonacot,
    p.`DEPARTAMENTO INTERNO`
  FROM Plantilla p
  LEFT JOIN aspirantes a ON a.CURP = p.CURP
  LEFT JOIN Plantilla_datos_financieros pdf ON pdf.CURP = p.CURP
  WHERE p.NSSActivo = 1 AND p.RFCActivo = 1
    AND UPPER(p.Estatus) = 'ACTIVO'
    AND p.tipoComision IS NOT NULL
    AND TRIM(p.tipoComision) <> ''
    AND UPPER(p.tipoComision) NOT IN ('SUBDISTRIBUIDOR', 'COMISIONISTA')
    AND (a.subdistribuidor = 0 OR a.subdistribuidor IS NULL)
    AND UPPER(p.estatusContaAlta) = 'ALTA'
    AND p.`FECHA DE INGRESO` IS NOT NULL
    AND p.`FECHA DE INGRESO` <> ''
    AND p.`FECHA DE INGRESO` <> '00/00/0000'
    -- Condiciones estrictas para Altas (datos financieros obligatorios)
    AND pdf.Folio_idse IS NOT NULL AND pdf.Folio_idse != '' AND pdf.Folio_idse != '00/00/0000'
    AND pdf.Fecha_alta_idse IS NOT NULL AND pdf.Fecha_alta_idse != '' AND pdf.Fecha_alta_idse != '00/00/0000'
  ORDER BY p.CURP
";

// Ejecutar ambas consultas
$resultPendientes = $conn->query($sqlPendientes);
if ($resultPendientes) {
  while ($row = $resultPendientes->fetch_assoc()) {
    $response['pendientes'][] = $row;
  }
} else {
  http_response_code(500);
  echo json_encode(['error' => 'Error en consulta de pendientes', 'detalle' => $conn->error]);
  exit;
}

$resultAltas = $conn->query($sqlAltas);
if ($resultAltas) {
  while ($row = $resultAltas->fetch_assoc()) {
    $response['altas'][] = $row;
  }
} else {
  http_response_code(500);
  echo json_encode(['error' => 'Error en consulta de altas', 'detalle' => $conn->error]);
  exit;
}

echo json_encode($response);