<?php
session_start();

include("fphp.php");
include("payroll/payroll.php");
include("email/mail.php");
include("hcm_files/PHPMailer/src/Exception.php");
include("hcm_files/PHPMailer/src/PHPMailer.php");
include("hcm_files/PHPMailer/src/SMTP.php");
use PHPMailer\PHPMailer\PHPMailer;
use function Saireh\PayRoll\api_upload_Folder;
use Saireh\email\Email;

function set_session_per_validar($enlace)
{
  $consulta = mysqli_query($enlace, "select * from periodo where id='" . $_SESSION['id_validar'] . "' order by nomina,periodo desc limit 1");
  if (mysqli_num_rows($consulta) != 0) {
    $row = mysqli_fetch_array($consulta);
    $_SESSION['per_validar'] = mostrar_fecha($row['desde']) . ' al ' . mostrar_fecha($row['hasta']) . " (Nom:" . $row['nomina'] . ")";
  } else {
    $_SESSION['per_validar'] = '';
  }
  return $row;
}


function get_numero_quincena($enlace)
{
  //Busco el numero de la quincena para nomina mensual
  $consultaQuinc = mysqli_query($enlace, "select semana_quinc from periodo where id='" . $_SESSION['id_validar'] . "' AND nomina='200' order by periodo desc limit 1");
  if (mysqli_num_rows($consultaQuinc) != 0) {
    $rowQ = mysqli_fetch_array($consultaQuinc);
  }
  return $rowQ;
}


function get_type($_post)
{
  $type = null;
  //---Si la nomina es normal, de contingencia o de fideicomiso, el tipo es 1
  if ($_post['nomina'] == 'nomina_contingencia' || $_post['nomina'] == 'nomina_ordinaria') {
    $type = 1;
  } else if ($_post['nomina'] == 'nomina_fideicomiso' || $_post['nomina'] == 'nomina_dias_adic_fideicomiso') {
    $type = 5;
  }
  return $type;
}

function get_autoincrementable($_post)
{
  if ($_post['tipo_nomina'] == '100') {
    $n = 2;
    $n_alterno = 21;
  } else if ($_post['tipo_nomina'] == '200') {
    $n = 1;
    $n_alterno = 11;
  }
  return array($n, $n_alterno);
}

function get_dias_habiles($desde, $hasta)
{
  //Se cuadran las fecha y se buscan los dias habiles para tomar el ultimo que servira como pago
  $desdeI = strtotime($desde);
  $hastaF = strtotime($hasta);
  // echo $desdeI."<br>";
  // echo $hastaF."<br>";
  $diainc = 24 * 60 * 60;
  $diashabiles = [];
  for ($midia = $desdeI; $midia <= $hastaF; $midia += $diainc) {
    if (!in_array(date('N', $midia), array(6, 7))) {
      array_push($diashabiles, date('Y-m-d', $midia));
    }
  }
  return $diashabiles;
}

function get_cedulas($enlace)
{
  // echo $fecha_tramite;
  // Recolecto el listado de cedulas correspondientes al periodo vigente
  $query = "SELECT DISTINCT cedula as cedula FROM `historico`";
  $resultado = mysqli_query($enlace, $query);
  $cedulas = [];
  while ($datesCodes = mysqli_fetch_array($resultado)) {
    $cedulas[] = $datesCodes['cedula'];
  }
  return $cedulas;
}

function get_monto_pagar($cedulas, $enlace)
{
  $sum = null;
  $res = null;
  // Se realiza la sumatoria total del monto de los empleados en general
  foreach ($cedulas as $c) {
    $query2 = "SELECT SUM(monto) as monto FROM `historico` WHERE cedula = '$c' AND tipo = 'A'";
    $resultado = mysqli_query($enlace, $query2);
    while ($sumatoria = mysqli_fetch_array($resultado)) {
      $sum += $sumatoria['monto'];
    }
  }
  foreach ($cedulas as $c) {
    $query2 = "SELECT SUM(monto) as monto FROM `historico` WHERE cedula = '$c' AND tipo = 'D'";
    $resultado = mysqli_query($enlace, $query2);
    while ($sumatoria = mysqli_fetch_array($resultado)) {
      $res += $sumatoria['monto'];
    }
  }
  $monto_a_pagar = $sum - $res;
  $monto_a_pagar = intval($monto_a_pagar);
  return array($monto_a_pagar, $sum, $res);
}


function get_cedulas_periodo($enlace, $_post, $desperiodo, $tipo_nomina_post)
{
  // Recolecto el listado de cedulas correspondientes al periodo vigente
  $query = "SELECT DISTINCT cedula FROM `historico` WHERE id='" . $_SESSION['id_validar'] . "' AND desperiodo ='$desperiodo' AND nomina = '$tipo_nomina_post' ";

  $resultado = mysqli_query($enlace, $query);
  $cedulas = [];
  while ($datesCodes = mysqli_fetch_array($resultado)) {
    $cedulas[] = $datesCodes['cedula'];
  }
  return $cedulas;
}


function get_festivos($enlace)
{
  //Consulto los festivos existentes
  $queryFestivos = "SELECT `fecha` FROM tab_feriado";
  $resultFestivos = mysqli_query($enlace, $queryFestivos);
  $arrayFestivos = [];

  //Construyo array con los festivos existentes
  while ($datosFestivos = mysqli_fetch_array($resultFestivos)) {
    $datoFestivo = date('m-d', strtotime($datosFestivos['fecha']));
    $arrayFestivos[] = $datoFestivo;
  }
  return $arrayFestivos;
}


function get_cedulas_pagos_especiales($enlace, $nomina)
{
  // Recolecto el listado de cedulas correspondientes al periodo vigente
  $query = "SELECT DISTINCT cedula FROM `historico_nomina_especial` WHERE id='" . $_SESSION['id_validar'] . "' AND nomina = '$nomina' AND estado_aprobacion_1 = 'Aprobado' AND estado_aprobacion_2 = 'Aprobado' AND estado_aprobacion_3 = 'Aprobado' AND envio_banesco != 'Si'";
  $resultado = mysqli_query($enlace, $query);

  if (mysqli_num_rows($resultado) == 0) { //NO existen registros por procesar
    mostrar_mensaje_sin_registros();
    exit;
  }

  $cedulas = [];
  while ($datesCodes = mysqli_fetch_array($resultado)) {
    $cedulas[] = $datesCodes['cedula'];
  }

  return $cedulas;
}

function mostrar_mensaje_sin_registros()
{
  echo "<style>
				.regristrado{
					color: green;
					margin-left: 7%;
					font-weight: bold;
				}
			</style>";
  echo "<p class='regristrado'>No existen registros a enviar<p>";
  exit;
}




function consulta_fideicomiso($enlace, $cedula, $desperiodo, $tipo_nomina_post)
{
  $queryF = "SELECT prestacion_monto as monto FROM `prestaciones_fideicomiso` WHERE `cedula` LIKE '$cedula' AND `desperiodo` = '$desperiodo' AND nomina = '$tipo_nomina_post'";
  $resultadoF = mysqli_query($enlace, $queryF);

  $sumaMontoTotal = 0;
  while ($sumatoriaF = mysqli_fetch_array($resultadoF)) {
    $empleadoFideicomiso = $sumatoriaF['monto'];
    $montoEmpleado = $empleadoFideicomiso;
    $montoEmpleado = number_format($montoEmpleado, 2);
    $montoEmpleado = str_replace(',', '', $montoEmpleado);
    $montoEmpleado = str_replace('.', '', $montoEmpleado);
    $sumaMontoTotal += $montoEmpleado;
  }

  return $sumaMontoTotal;
}

function escribir_archivo_header_fideicomiso($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $cedulas, $desperiodo, $tipo_nomina_post, $enlace)
{
  //----------------------------HEADER--------------//
  fwrite($file, "HDR");
  fwrite($file, "UNIOVECA       ED  95BPAYMULP");
  fwrite($file, str_pad("", 261, " ", STR_PAD_RIGHT)); //Imprime espacios

  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "01");
  fwrite($file, $tipo_nomina);
  fwrite($file, $n);
  fwrite($file, $year);
  fwrite($file, $type);
  fwrite($file, $correlativo); ////////////autoincrmental MANUAL
  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT));
  fwrite($file, "9");
  fwrite($file, "  ");
  fwrite($file, $dateNow);
  fwrite($file, "APCJ000148643");
  fwrite($file, "       FORD MOTOR VENEZUELA S.A.");
  fwrite($file, str_pad("", 220, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "02");
  fwrite($file, $fecha_pagar_nomina);
  fwrite($file, "0" . $n);
  fwrite($file, $year);
  fwrite($file, $type);
  fwrite($file, $correlativo); ////////////autoincrmental MANUAL
  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT));
  fwrite($file, "           6401");

  $sumaMontoTotal = 0;
  foreach ($cedulas as $c) {
    $montoEmpleado = consulta_fideicomiso($enlace, $c, $desperiodo, $tipo_nomina_post);
    $sumaMontoTotal += $montoEmpleado;
  }

  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //Día sin cero a la izq
  fwrite($file, "VES");
  fwrite($file, "01340968419683001284               UNIOVECA");
  fwrite($file, str_pad("", 197, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
}

function escribir_archivo_header_nomina_ordinaria($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $cedulas, $desperiodo, $tipo_nomina_post, $enlace)
{
  //----------------------------HEADER--------------//
  fwrite($file, "HDR");
  fwrite($file, "UNIOVECA       ED  95BPAYMULP");
  fwrite($file, str_pad("", 261, " ", STR_PAD_RIGHT)); //Imprime espacios

  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "01"); //Tipo de registro
  fwrite($file, $tipo_nomina); //Constante
  fwrite($file, $n); //2 Si es tipo de nomina 100, 1 Si es 200
  fwrite($file, $year); //Año actual
  fwrite($file, $type); //1  -> TIPO DE PROCESO: (NORMAL: 1, FIDEICOMISO: 5, VACACIONES: 3, UTILIDADES: 4), NÓMINA DE CONTINGENCIA ES NORMAL.

  ////Se da manualmente el autoincremental --- Mientras se automatiza-- Miguelangel 22/09/21
  fwrite($file, $correlativo); //Autoincremental, por el momento se deja en cero.
  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT)); //Número de la semana correspondiente al periodo a generar
  fwrite($file, "9  "); //Constante
  fwrite($file, $dateNow); //Fecha en que se genera el archivo
  fwrite($file, "SALJ000148643       FORD MOTOR VENEZUELA S.A."); //Constante
  fwrite($file, str_pad("", 220, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "02"); //Tipo de registro - Constante
  fwrite($file, $fecha_pagar_nomina); //Fecha en la que se debe pagar la nomina
  fwrite($file, "0" . $n); //2 Si es tipo de nomina 100, 1 Si es 200
  fwrite($file, $year);
  fwrite($file, $type);
  fwrite($file, $correlativo); ///Se da manualmente el autoincremental --- Mientras se automatiza-- Miguelangel 22/09/21
  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT));
  fwrite($file, "               ");

  // Consulta de montos
  $sumaMontoTotal = 0;
  foreach ($cedulas as $c) {
    $montoEmpleado = consulta_montos_nomina_ordinaria($enlace, $c, $desperiodo, $tipo_nomina_post);
    $sumaMontoTotal += $montoEmpleado;
  }

  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //Día sin cero a la izq
  fwrite($file, "VES01340968419683001284               UNIOVECA"); //Constante
  fwrite($file, str_pad("", 197, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
}

function escribir_archivo_header_pagos_especiales($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $sumaMontoTotal)
{
  fwrite($file, "HDR");
  fwrite($file, "UNIOVECA       ED  95BPAYMULP");
  fwrite($file, str_pad("", 261, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "01"); //Tipo de registro
  fwrite($file, $tipo_nomina); //Constante
  fwrite($file, $n); //2 Si es tipo de nomina 100, 1 Si es 200
  fwrite($file, $year); //AÃ±o actual
  fwrite($file, $type); //1  -> TIPO DE PROCESO: (NORMAL: 1, NOMINA ADICIONAL(PAGOS ESPEC):2, VACACIONES: 3, UTILIDADES: 4, FIDEICOMISO: 5,  ), NÃMINA DE CONTINGENCIA ES NORMAL.
  fwrite($file, $correlativo); //Autoincremental, por el momento se deja en cero. ////MANUAL
  //NÃºmero de la semana correspondiente al periodo a generar MANUAL PARA NOMINA MENSUAL

  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT));
  fwrite($file, "9  "); //Constante
  fwrite($file, $dateNow); //Fecha en que se genera el archivo
  fwrite($file, "SALJ000148643       FORD MOTOR VENEZUELA S.A."); //Constante
  fwrite($file, str_pad("", 220, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "02"); //Tipo de registro - Constante
  fwrite($file, $fecha_pagar_nomina); //Fecha en la que se debe pagar la nomina
  fwrite($file, "0" . $n); //2 Si es tipo de nomina 100, 1 Si es 200
  fwrite($file, $year);
  fwrite($file, $type);

  ///MANUAL
  //NÃºmero de la semana correspondiente al periodo a generar MANUAL PARA NOMINA MENSUAL
  fwrite($file, $correlativo); //Autoincremental, por el momento se deja en cero.
  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT));
  fwrite($file, "               ");
  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //DÃ­a sin cero a la izq
  fwrite($file, "VES01340968419683001284               UNIOVECA"); //Constante
  fwrite($file, str_pad("", 197, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
}

function escribir_archivo_header_vacaciones($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $sumaMontoTotal)
{
  //----------------------------HEADER--------------//
  fwrite($file, "HDR");
  fwrite($file, "UNIOVECA       ED  95BPAYMULP");
  fwrite($file, str_pad("", 261, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "01"); //Tipo de registro
  fwrite($file, $tipo_nomina); //Constante
  fwrite($file, $n); //2 Si es tipo de nomina 100, 1 Si es 200
  fwrite($file, $year); //AÃ±o actual
  fwrite($file, $type); //1  -> TIPO DE PROCESO: (NORMAL: 1, FIDEICOMISO: 5, VACACIONES: 3, UTILIDADES: 4), NÃMINA DE CONTINGENCIA ES NORMAL.
  fwrite($file, $correlativo); //Autoincremental, por el momento se deja en cero.
  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT)); //NÃºmero de la semana correspondiente al periodo a generar
  fwrite($file, "9  "); //Constante
  fwrite($file, $dateNow); //Fecha en que se genera el archivo
  fwrite($file, "SALJ000148643       FORD MOTOR VENEZUELA S.A."); //Constante
  fwrite($file, str_pad("", 220, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "02"); //Tipo de registro - Constante
  fwrite($file, $fecha_pagar_nomina); //Fecha en la que se debe pagar la nomina
  fwrite($file, "0" . $n); //2 Si es tipo de nomina 100, 1 Si es 200
  fwrite($file, $year);
  fwrite($file, $type);
  fwrite($file, $correlativo); //Autoincremental, por el momento se deja en cero.
  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT));
  fwrite($file, "               ");
  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //DÃ­a sin cero a la izq
  fwrite($file, "VES01340968419683001284               UNIOVECA"); //Constante
  fwrite($file, str_pad("", 197, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
}

function escribir_archivo_header_finiquito($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $sumaMontoTotal)
{
  // Escribir primera línea del encabezado
  fwrite($file, "HDR");
  fwrite($file, "UNIOVECA       ED  95BPAYMULP");
  fwrite($file, str_pad("", 261, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Línea

  // Escribir segunda línea del encabezado
  fwrite($file, "01"); //Tipo de registro
  fwrite($file, $tipo_nomina); //Constante
  fwrite($file, $n); //2 Si es tipo de nomina 100, 1 Si es 200
  fwrite($file, $year); //Año actual
  fwrite($file, $type); //Tipo de proceso
  fwrite($file, $correlativo); //Autoincremental, por el momento se deja en cero.
  fwrite($file, $semanainicio); //Número de la semana correspondiente al periodo a generar
  fwrite($file, "9  "); //Constante
  fwrite($file, $dateNow); //Fecha en que se genera el archivo
  fwrite($file, "SALJ000148643       FORD MOTOR VENEZUELA S.A."); //Constante
  fwrite($file, str_pad("", 220, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Línea

  // Escribir tercera línea del encabezado
  fwrite($file, "02"); //Tipo de registro - Constante
  fwrite($file, $fecha_pagar_nomina); //Fecha en la que se debe pagar la nomina
  fwrite($file, "0" . $n); //2 Si es tipo de nomina 100, 1 Si es 200
  fwrite($file, $year);
  fwrite($file, $type);
  fwrite($file, $correlativo); //Autoincremental
  fwrite($file, $semanainicio);
  fwrite($file, "               ");
  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //Día sin cero a la izquierda
  fwrite($file, "VES01340968419683001284               UNIOVECA"); //Constante
  fwrite($file, str_pad("", 197, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Línea
}

function escribir_archivo_body_finiquito($cedulas, $file, $enlace, $nomina, $n_alterno)
{
  foreach ($cedulas as $c) {
    fwrite($file, "03"); //Constante
    fwrite($file, "9  "); //Constante

    // Obtener el monto a pagar por empleado
    $query_monto = "SELECT neto_pagar_liq FROM `liquidaciones` AS liq INNER JOIN personal AS pe ON pe.codigo = liq.cedula WHERE liq.id = '" . $_SESSION['id_validar'] . "' AND liq.cedula = '$c' AND pe.nomina = '$nomina' AND liq.estado_liquidacion = 'Aprobado' AND liq.envio_banesco != 'Si'";
    $result_monto = mysqli_query($enlace, $query_monto);
    $row_monto = mysqli_fetch_array($result_monto);
    $montoEmpleado = str_replace('.', '', $row_monto['neto_pagar_liq']);

    fwrite($file, str_pad($montoEmpleado, 17, "0", STR_PAD_LEFT)); //Monto sin ceros a la izquierda
    fwrite($file, "VES01"); //Constante
    fwrite($file, $n_alterno); //11 -> MENSUAL, PARA DIARIA ES (21)

    // Obtener los datos del empleado
    $query3 = "SELECT * FROM `personal` WHERE codigo = '$c'";
    $resultado = mysqli_query($enlace, $query3);
    $datos_empleado = mysqli_fetch_array($resultado);

    fwrite($file, substr($datos_empleado['global_id'], -4)); //Últimos 4 dígitos del Global ID
    fwrite($file, "          42    "); //Constante
    fwrite($file, str_pad($datos_empleado['cuenta'], 20, "0", STR_PAD_RIGHT)); //Número de cuenta con ceros hasta 60 caracteres
    fwrite($file, "               UNIOVECA         "); //Constante
    fwrite($file, $datos_empleado['nacionalidad']); //Nacionalidad
    fwrite($file, str_pad($datos_empleado['codigo'], 10, "0", STR_PAD_LEFT)); //Cédula
    fwrite($file, str_repeat(" ", 111));
    // Formatear nombres del empleado
    $nombres_sin_formato = $datos_empleado['apellidos'] . " " . $datos_empleado['apellidos1'] . " " . $datos_empleado['nombres'] . " " . $datos_empleado['nombres1'];
    $nombres = preg_replace("/\s+/", " ", trim($nombres_sin_formato));
    fwrite($file, str_pad($nombres, 70, " ", STR_PAD_RIGHT)); //Nombres con espacios hasta 60 caracteres

    fwrite($file, "\r\n"); //Nueva Línea
  }
}


function consulta_montos_nomina_ordinaria($enlace, $cedula, $desperiodo, $tipo_nomina_post)
{
  $queryA = "SELECT SUM(monto) as monto FROM `historico` WHERE `cedula` LIKE '$cedula' AND `desperiodo` = '$desperiodo' AND tipo = 'A' AND nomina = '$tipo_nomina_post' AND substr(concepto,1,1)!=5 AND substr(concepto,1,1)!=4 AND substr(concepto,1,1)!=6  "; ///Agregar los otros 5xxx
  $resultadoA = mysqli_query($enlace, $queryA);

  $empleadoA = 0;
  while ($sumatoriaA = mysqli_fetch_array($resultadoA)) {
    $empleadoA = $sumatoriaA['monto'];
  }

  $queryD = "SELECT SUM(monto) as monto FROM `historico` WHERE `cedula` LIKE '$cedula' AND `desperiodo` LIKE '$desperiodo' AND tipo = 'D' AND nomina = '$tipo_nomina_post' AND substr(concepto,1,1)!=5 AND substr(concepto,1,1)!=4 AND substr(concepto,1,1)!=6 ";
  $resultadoD = mysqli_query($enlace, $queryD);

  $empleadoD = 0;
  while ($sumatoriaD = mysqli_fetch_array($resultadoD)) {
    $empleadoD = $sumatoriaD['monto'];
  }

  $montoEmpleado = $empleadoA - $empleadoD;
  $montoEmpleado = number_format($montoEmpleado, 2);
  $montoEmpleado = str_replace(',', '', $montoEmpleado);
  $montoEmpleado = str_replace('.', '', $montoEmpleado);

  return $montoEmpleado;
}



function escribir_archivo_body($file, $enlace, $cedulas, $desperiodo, $tipo_nomina_post, $n_alterno)
{
  $sumaMontoTotal = 0;
  foreach ($cedulas as $c) {
    //-----MONTO TIPO A
    $queryA = "SELECT SUM(monto) as monto FROM `historico` WHERE `cedula` LIKE '$c' AND `desperiodo` = '$desperiodo' AND tipo = 'A' AND nomina = '$tipo_nomina_post' AND substr(concepto,1,1)!=5 AND substr(concepto,1,1)!=4 AND substr(concepto,1,1)!=6  ";
    $resultadoA = mysqli_query($enlace, $queryA);

    while ($sumatoriaA = mysqli_fetch_array($resultadoA)) {
      $empleadoA = $sumatoriaA['monto'];
    }
    //-----MONTO TIPO D
    $queryD = "SELECT SUM(monto) as monto FROM `historico` WHERE `cedula` LIKE '$c' AND `desperiodo` LIKE '$desperiodo' AND tipo = 'D' AND nomina = '$tipo_nomina_post' AND substr(concepto,1,1)!=5 AND substr(concepto,1,1)!=4 AND substr(concepto,1,1)!=6 ";
    $resultadoD = mysqli_query($enlace, $queryD);

    while ($sumatoriaD = mysqli_fetch_array($resultadoD)) {
      $empleadoD = $sumatoriaD['monto'];
    }

    $montoEmpleado =  $empleadoA - $empleadoD;
    $montoEmpleado = number_format($montoEmpleado, 2);
    $montoEmpleado =  str_replace(',', '', $montoEmpleado);
    $montoEmpleado =  str_replace('.', '', $montoEmpleado);
    $sumaMontoTotal = $sumaMontoTotal + $montoEmpleado;
  }

  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //DÃ­a sin cero a la izq
  fwrite($file, "VES");
  fwrite($file, "01340968419683001284               UNIOVECA");
  fwrite($file, str_pad("", 197, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  $sumaMontoTotal = 0;

  // ordenar por ultimmo
  //--------------------------------------------------//
  //-------------------------BODY----------------------//
  foreach ($cedulas as $c) {
    fwrite($file, "03");
    fwrite($file, "9  ");

    //-----MONTO TIPO A
    $queryA = "SELECT SUM(monto) as monto FROM `historico` WHERE `cedula` LIKE '$c' AND `desperiodo` = '$desperiodo' AND tipo = 'A' AND nomina = '$tipo_nomina_post' AND substr(concepto,1,1)!=5 AND substr(concepto,1,1)!=4 AND substr(concepto,1,1)!=6 ";
    $resultadoA = mysqli_query($enlace, $queryA);

    while ($sumatoriaA = mysqli_fetch_array($resultadoA)) {
      $empleadoA = $sumatoriaA['monto'];
    }
    //-----MONTO TIPO D
    $queryD = "SELECT SUM(monto) as monto FROM `historico` WHERE `cedula` LIKE '$c' AND `desperiodo` LIKE '$desperiodo' AND tipo = 'D' AND nomina = '$tipo_nomina_post' AND substr(concepto,1,1)!=5 AND substr(concepto,1,1)!=4 AND substr(concepto,1,1)!=6 ";
    $resultadoD = mysqli_query($enlace, $queryD);

    while ($sumatoriaD = mysqli_fetch_array($resultadoD)) {
      $empleadoD = $sumatoriaD['monto'];
    }

    $montoEmpleado =  $empleadoA - $empleadoD;
    $montoEmpleado = number_format($montoEmpleado, 2);
    $montoEmpleado =  str_replace(',', '', $montoEmpleado);
    $montoEmpleado =  str_replace('.', '', $montoEmpleado);

    fwrite($file, str_pad($montoEmpleado, 17, "0", STR_PAD_LEFT)); //DÃ­a sin cero a la izq
    fwrite($file, "VES01");
    fwrite($file, $n_alterno);
    $query3 = "SELECT * FROM `personal` WHERE codigo = '$c'";
    $resultado = mysqli_query($enlace, $query3);
    $datos_empleado = mysqli_fetch_array($resultado);
    fwrite($file, substr($datos_empleado['global_id'], -4));
    fwrite($file, "          ");
    fwrite($file, "42    ");
    fwrite($file, $datos_empleado['cuenta']);
    fwrite($file, "               UNIOVECA         ");
    fwrite($file, $datos_empleado['nacionalidad']);
    fwrite($file, str_pad($datos_empleado['codigo'], 10, "0", STR_PAD_LEFT)); //Cedula
    fwrite($file, str_repeat(" ", 111));
    $nombres_sin_formato = $datos_empleado['apellidos'] . " " . $datos_empleado['apellidos1'] . " " . $datos_empleado['nombres'] . " " . $datos_empleado['nombres1'];
    $nombres = preg_replace("/\s+/", " ", trim($nombres_sin_formato));
    fwrite($file, str_pad($nombres, 70, " ", STR_PAD_RIGHT)); //Imprime nombres con espacios hasta 60 caracteres
    fwrite($file, "\r\n"); //Nueva Linea
    $sumaMontoTotal = $sumaMontoTotal + $montoEmpleado;
  }
  return $sumaMontoTotal;
}

function escribir_archivo_body_nomina_ordinaria($cedulas, $file, $enlace, $desperiodo, $tipo_nomina_post, $n_alterno)
{
  //--------------------------------------------------//
  //-------------------------BODY----------------------//
  $sumaMontoTotal = 0;
  foreach ($cedulas as $c) {
    fwrite($file, "03"); //Constante
    fwrite($file, "9  "); //Constante

    // Consulta de montos
    $montoEmpleado = consulta_montos_nomina_ordinaria($enlace, $c, $desperiodo, $tipo_nomina_post);

    fwrite($file, str_pad($montoEmpleado, 17, "0", STR_PAD_LEFT)); //Día sin cero a la izq
    fwrite($file, "VES01"); //Constante
    fwrite($file, $n_alterno); //11 -> MENSUAL, PARA DIARIA ES (21)
    $query3 = "SELECT * FROM `personal` WHERE codigo = '$c' ";
    $resultado = mysqli_query($enlace, $query3);
    $datos_empleado = mysqli_fetch_array($resultado);
    fwrite($file, substr($datos_empleado['global_id'], -4)); //Ultimos 4 digitos del Global ID
    fwrite($file, "          42    "); //Constante
    fwrite($file, $datos_empleado['cuenta']); //Numero de cuenta
    fwrite($file, "               UNIOVECA         "); //Constante
    fwrite($file, $datos_empleado['nacionalidad']); //Nacionalidad
    fwrite($file, str_pad($datos_empleado['codigo'], 10, "0", STR_PAD_LEFT)); //Cedula
    fwrite($file, str_repeat(" ", 111)); //Constante

    $nombres_sin_formato = $datos_empleado['apellidos'] . " " . $datos_empleado['apellidos1'] . " " . $datos_empleado['nombres'] . " " . $datos_empleado['nombres1'];
    $nombres = preg_replace("/\s+/", " ", trim($nombres_sin_formato));
    fwrite($file, str_pad($nombres, 70, " ", STR_PAD_RIGHT)); //Imprime nombres con espacios hasta 60 caracteres
    fwrite($file, "\r\n"); //Nueva Linea
    $sumaMontoTotal = $sumaMontoTotal + $montoEmpleado;
  }
  return $sumaMontoTotal;
}

function escribir_archivo_body_montos_especiales($file, $cedulas, $enlace, $nomina, $n_alterno)
{ //--------------------------------------------------//
  //-------------------------BODY----------------------//
  foreach ($cedulas as $c) {
    fwrite($file, "03"); //Constante
    fwrite($file, "9  "); //Constante

    //Monto a pagar por empleado
    $query_monto = "SELECT monto FROM `historico_nomina_especial` WHERE id='" . $_SESSION['id_validar'] . "' AND cedula = '$c' AND nomina = '$nomina' AND estado_aprobacion_1 = 'Aprobado' AND estado_aprobacion_2 = 'Aprobado' AND estado_aprobacion_3 = 'Aprobado' AND envio_banesco != 'Si' ";
    $result_monto = mysqli_query($enlace, $query_monto);
    $row_monto = mysqli_fetch_array($result_monto);
    $montoEmpleado = str_replace('.', '', $row_monto['monto']);

    fwrite($file, str_pad($montoEmpleado, 17, "0", STR_PAD_LEFT)); //DÃ­a sin cero a la izq
    fwrite($file, "VES01"); //Constante
    fwrite($file, $n_alterno); //11 -> MENSUAL, PARA DIARIA ES (21)
    $query3 = "SELECT * FROM `personal` WHERE codigo = '$c'";
    $resultado = mysqli_query($enlace, $query3);
    $datos_empleado = mysqli_fetch_array($resultado);
    fwrite($file, substr($datos_empleado['global_id'], -4)); //Ultimos 4 digitos del Global ID
    fwrite($file, "          42    "); //Constante
    fwrite($file, str_pad($datos_empleado['cuenta'], 20, "0", STR_PAD_RIGHT)); //Imprime Numero de cuenta con ceros hasta 60 caracteres
    fwrite($file, "               UNIOVECA         "); //Constante
    fwrite($file, $datos_empleado['nacionalidad']); //Nacionalidad
    fwrite($file, str_pad($datos_empleado['codigo'], 10, "0", STR_PAD_LEFT)); //Cedula
    fwrite($file, str_repeat(" ", 111)); //Constante

    $nombres_sin_formato = $datos_empleado['apellidos'] . " " . $datos_empleado['apellidos1'] . " " . $datos_empleado['nombres'] . " " . $datos_empleado['nombres1'];
    $nombres = preg_replace("/\s+/", " ", trim($nombres_sin_formato));
    fwrite($file, str_pad($nombres, 70, " ", STR_PAD_RIGHT)); //Imprime nombres con espacios hasta 60 caracteres
    fwrite($file, "\r\n"); //Nueva Linea

  }
}

function escribir_archivo_body_vacaciones($cedulas, $file, $enlace, $nomina, $n_alterno)
{
  //--------------------------------------------------//
  //-------------------------BODY----------------------//
  foreach ($cedulas as $c) {
    fwrite($file, "03"); //Constante
    fwrite($file, "9  "); //Constante

    // Obtener el monto a pagar por empleado
    $montoEmpleado = obtener_monto_pagar_vacaciones_empleado($enlace, $nomina, $c);

    fwrite($file, str_pad($montoEmpleado, 17, "0", STR_PAD_LEFT)); //Día sin cero a la izquierda
    fwrite($file, "VES01"); //Constante
    fwrite($file, $n_alterno); //11 -> MENSUAL, PARA DIARIA ES (21)

    // Obtener los datos del empleado
    $datos_empleado = obtener_datos_empleado($enlace, $c);

    fwrite($file, substr($datos_empleado['global_id'], -4)); //Ultimos 4 dígitos del Global ID
    fwrite($file, "          42    "); //Constante
    fwrite($file, str_pad($datos_empleado['cuenta'], 20, "0", STR_PAD_RIGHT)); //Imprime Numero de cuenta con ceros hasta 60 caracteres
    fwrite($file, "               UNIOVECA         "); //Constante
    fwrite($file, $datos_empleado['nacionalidad']); //Nacionalidad
    fwrite($file, str_pad($datos_empleado['codigo'], 10, "0", STR_PAD_LEFT)); //Cedula
    fwrite($file, str_repeat(" ", 111));
    $nombres_sin_formato = $datos_empleado['apellidos'] . " " . $datos_empleado['apellidos1'] . " " . $datos_empleado['nombres'] . " " . $datos_empleado['nombres1'];
    $nombres = preg_replace("/\s+/", " ", trim($nombres_sin_formato));
    fwrite($file, str_pad($nombres, 70, " ", STR_PAD_RIGHT)); //Imprime nombres con espacios hasta 60 caracteres
    fwrite($file, "\r\n"); //Nueva Linea
  }
}

function obtener_monto_pagar_vacaciones_empleado($enlace, $nomina, $cedula)
{
  // Consulta para obtener el monto a pagar por empleado
  $query = "SELECT neto_pagar_vacacion FROM `vacacion` AS vac INNER JOIN personal AS pe ON pe.codigo = vac.cedula WHERE vac.id = '" . $_SESSION['id_validar'] . "' AND vac.cedula = '$cedula' AND pe.nomina = '$nomina' AND vac.aprobacion_rrhh = 'Aprobado' AND vac.aprobacion_nomina = 'Aprobado' AND vac.aprobacion_contabilidad = 'Aprobado' AND vac.envio_banesco = 'No'";
  $result = mysqli_query($enlace, $query);
  $row = mysqli_fetch_array($result);
  $montoEmpleado = str_replace('.', '', $row['neto_pagar_vacacion']);

  return $montoEmpleado;
}

function obtener_datos_empleado($enlace, $cedula)
{
  // Consulta para obtener los datos del empleado
  $query = "SELECT * FROM `personal` WHERE codigo = '$cedula'";
  $resultado = mysqli_query($enlace, $query);
  $datos_empleado = mysqli_fetch_array($resultado);

  return $datos_empleado;
}


function escribir_archivo_footer($file, $sumaMontoTotal, $cedulas)
{
  //---------------------------------------------------//
  //-------------FOOTER--------------------------------//
  fwrite($file, "06");
  fwrite($file, "000000000000001");
  fwrite($file, str_pad(count($cedulas), 15, "0", STR_PAD_LEFT)); //Cantidad de
  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //Monto total
  fwrite($file, str_pad("", 244, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  //---------------------------------------------------//
  fclose($file);
}



function escribir_archivo_footer_nomina_ordinaria($file, $cedulas, $sumaMontoTotal)
{ //---------------------------------------------------//
  //-------------FOOTER--------------------------------//
  fwrite($file, "06"); //Constante
  fwrite($file, "000000000000001"); //Constante
  fwrite($file, str_pad(count($cedulas), 15, "0", STR_PAD_LEFT)); //Cantidad de registros
  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //Monto total
  fwrite($file, str_pad("", 244, " ", STR_PAD_RIGHT)); //Imprime espacios

  fwrite($file, "\r\n"); //Nueva Linea
  //---------------------------------------------------//
  fclose($file);
}

function escribir_archivo_footer_fondos_especiales($file, $cedulas, $sumaMontoTotal)
{ //---------------------------------------------------//
  //-------------FOOTER--------------------------------//
  fwrite($file, "06"); //Constante
  fwrite($file, "000000000000001"); //Constante
  fwrite($file, str_pad(count($cedulas), 15, "0", STR_PAD_LEFT)); //Cantidad de registros
  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //Monto total
  fwrite($file, str_pad("", 244, " ", STR_PAD_RIGHT)); //Imprime espacios

  fwrite($file, "\r\n"); //Nueva Linea
  //---------------------------------------------------//
  fclose($file);
}

function escribir_archivo_footer_vacaciones($file, $cedulas, $sumaMontoTotal)
{ //---------------------------------------------------//
  //-------------FOOTER--------------------------------//
  fwrite($file, "06"); //Constante
  fwrite($file, "000000000000001"); //Constante
  fwrite($file, str_pad(count($cedulas), 15, "0", STR_PAD_LEFT)); //Cantidad de registros
  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //Monto total
  fwrite($file, str_pad("", 244, " ", STR_PAD_RIGHT)); //Imprime espacios

  fwrite($file, "\r\n"); //Nueva Linea
  //---------------------------------------------------//
  fclose($file);
}

function monto_total_pagos_especiales($enlace, $nomina)
{
  // Consulta para obtener el monto total a pagar
  $query_monto = "SELECT SUM(monto) AS monto FROM `historico_nomina_especial` WHERE id='" . $_SESSION['id_validar'] . "' AND  nomina = '$nomina' AND estado_aprobacion_1 = 'Aprobado' AND estado_aprobacion_2 = 'Aprobado' AND estado_aprobacion_3 = 'Aprobado' AND envio_banesco != 'Si' ";
  $result_monto = mysqli_query($enlace, $query_monto);
  $row_monto = mysqli_fetch_array($result_monto);

  // Comprobar si el resultado es válido y calcular el monto total
  $sumaMontoTotal = 0;
  if ($row_monto && isset($row_monto['monto'])) {
    $sumaMontoTotal = str_replace('.', '', $row_monto['monto']);
  }

  return $sumaMontoTotal;
}

function get_cedulas_vacaciones($enlace, $nomina)
{
  // Consulta para obtener el listado de cédulas aprobadas
  $query = "SELECT DISTINCT vac.cedula FROM `vacacion` AS vac INNER JOIN personal AS pe ON pe.codigo = vac.cedula WHERE vac.id = '" . $_SESSION['id_validar'] . "' AND pe.nomina = '$nomina' AND vac.aprobacion_rrhh = 'Aprobado' AND vac.aprobacion_nomina = 'Aprobado' AND vac.aprobacion_contabilidad = 'Aprobado' AND vac.envio_banesco = 'No'";

  $resultado = mysqli_query($enlace, $query);

  // Verificar si no hay registros por procesar
  if (mysqli_num_rows($resultado) == 0) {
    mostrar_mensaje_sin_registros();
    exit;
  }

  $cedulas = [];
  while ($datesCodes = mysqli_fetch_array($resultado)) {
    $cedulas[] = $datesCodes['cedula'];
  }

  return $cedulas;
}

function monto_total_vacaciones($enlace, $nomina)
{
  // Consulta para obtener el monto total a pagar por vacaciones
  $query = "SELECT SUM(vac.neto_pagar_vacacion) AS neto_pagar_vacacion FROM `vacacion` AS vac INNER JOIN personal AS pe ON pe.codigo = vac.cedula WHERE vac.id = '" . $_SESSION['id_validar'] . "' AND pe.nomina = '$nomina' AND vac.aprobacion_rrhh = 'Aprobado' AND vac.aprobacion_nomina = 'Aprobado' AND vac.aprobacion_contabilidad = 'Aprobado' AND vac.envio_banesco = 'No'";

  $result = mysqli_query($enlace, $query);
  $row = mysqli_fetch_array($result);

  // Verificar si se obtuvo un resultado válido y calcular el monto total
  $monto_total = 0;
  if ($row && isset($row['neto_pagar_vacacion'])) {
    $monto_total = str_replace('.', '', $row['neto_pagar_vacacion']);
  }

  return $monto_total;
}


function obtener_cedulas_finiquitos($enlace, $nomina)
{
  // Recolecto el listado de cedulas aprobadas
  $query = "SELECT DISTINCT liq.cedula 
            FROM `liquidaciones` AS liq 
            INNER JOIN personal AS pe ON pe.codigo = liq.cedula 
            WHERE liq.id = '" . $_SESSION['id_validar'] . "' 
            AND pe.nomina = '$nomina' 
            AND liq.estado_liquidacion = 'Aprobado' 
            AND liq.envio_banesco != 'Si'";

  $resultado = mysqli_query($enlace, $query);

  // Verificar si existen registros por procesar
  if (mysqli_num_rows($resultado) == 0) {
    mostrar_mensaje_sin_registros();
    exit;
  }

  $cedulas = [];
  while ($datesCodes = mysqli_fetch_array($resultado)) {
    $cedulas[] = $datesCodes['cedula'];
  }

  return $cedulas;
}

function obtener_cedulas_utilidades($enlace, $nomina)
{
  $query = "SELECT DISTINCT cedula FROM `utilidades` WHERE id='" . $_SESSION['id_validar'] .
    "' AND nomina = '$nomina' 
    AND aprobacion_contab1 = 'Aprobado'
    AND aprobacion_contab2 = 'Aprobado'
    AND envio_banesco != 'Si'";
  $resultado = mysqli_query($enlace, $query);

  $cedulas = [];


  while ($datesCodes = mysqli_fetch_array($resultado)) {
    $cedulas[] = $datesCodes['cedula'];
  }

  return $cedulas;
}

function obtener_monto_total_utilidades($enlace, $nomina)
{
  //Monto total a pagar SUM(monto)                                                                                                                                                  AND concepto IN ('8025')
  $query_monto = "SELECT SUM(if(tipo = 'A', monto, if(tipo = 'D', (-1) * monto, 0))) AS monto FROM `utilidades` WHERE id='" . $_SESSION['id_validar'] . "' AND  nomina = '$nomina'   AND aprobacion_contab1 = 'Aprobado' AND aprobacion_contab2 = 'Aprobado'  AND envio_banesco != 'Si' ";
  $result_monto = mysqli_query($enlace, $query_monto);
  $row_monto = mysqli_fetch_array($result_monto);
  return  str_replace('.', '', $row_monto['monto']);
}

function escribir_archivo_header_utilidades($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $semanafin, $dateNow, $fecha_pagar_nomina, $sumaMontoTotal)
{    //----------------------------HEADER--------------//
  fwrite($file, "HDR");
  fwrite($file, "UNIOVECA       ED  95BPAYMULP");
  fwrite($file, str_pad("", 261, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "01"); //Tipo de registro
  fwrite($file, $tipo_nomina); //Constante
  fwrite($file, $n); //2 Si es tipo de nomina 100, 1 Si es 200
  fwrite($file, $year); //AÃ±o actual
  fwrite($file, $type); //1  -> TIPO DE PROCESO: (NORMAL: 1, NOMINA ADICIONAL(PAGOS ESPEC):2, VACACIONES: 3, UTILIDADES: 4, FIDEICOMISO: 5,  ), NÃMINA DE CONTINGENCIA ES NORMAL.
  fwrite($file, $correlativo); //Autoincremental, por el momento se deja en cero. ////MANUAL
  //NÃºmero de la semana correspondiente al periodo a generar MANUAL PARA NOMINA MENSUAL

  fwrite($file, $semanainicio);
  fwrite($file, "9  "); //Constante
  fwrite($file, $dateNow); //Fecha en que se genera el archivo
  fwrite($file, "SALJ000148643       FORD MOTOR VENEZUELA S.A."); //Constante
  fwrite($file, str_pad("", 220, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "02"); //Tipo de registro - Constante
  fwrite($file, $fecha_pagar_nomina); //Fecha en la que se debe pagar la nomina
  fwrite($file, "0" . $n); //2 Si es tipo de nomina 100, 1 Si es 200
  fwrite($file, $year);
  fwrite($file, $type);

  ///MANUAL
  //NÃºmero de la semana correspondiente al periodo a generar MANUAL PARA NOMINA MENSUAL
  fwrite($file, $correlativo); //Autoincremental, por el momento se deja en cero.
  fwrite($file, $semanainicio);
  fwrite($file, "               ");
  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //DÃ­a sin cero a la izq
  fwrite($file, "VES01340968419683001284               UNIOVECA"); //Constante
  fwrite($file, str_pad("", 197, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
}

function escribir_archivo_header($file, $tipo_nomina, $n, $year, $type, $autoIncremental, $semanainicio, $dateNow, $fecha_pagar_nomina)
{
  //----------------------------HEADER--------------//
  fwrite($file, "HDR");
  fwrite($file, "UNIOVECA       ED  95BPAYMULP");
  fwrite($file, str_pad("", 261, " ", STR_PAD_RIGHT)); //Imprime espacios

  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "01");
  fwrite($file, $tipo_nomina);
  fwrite($file, $n);
  fwrite($file, $year);
  fwrite($file, $type);
  fwrite($file, $autoIncremental); // Aquí va el auto incremento
  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT));
  fwrite($file, "9");
  fwrite($file, "  ");
  fwrite($file, $dateNow);
  fwrite($file, "SALJ000148643");
  fwrite($file, "       FORD MOTOR VENEZUELA S.A.");
  fwrite($file, str_pad("", 220, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "02");
  fwrite($file, $fecha_pagar_nomina);
  fwrite($file, "0" . $n);
  fwrite($file, $year);
  fwrite($file, $type);
  fwrite($file, $autoIncremental);
  $autoIncremental = $autoIncremental - 1;
  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT));
  $semanainicio = $semanainicio + 1;
  fwrite($file, "               ");
}
function escribir_archivo_body_utilidades($cedulas, $file, $nomina, $enlace, $n_alterno)
{
  foreach ($cedulas as $c) {
    fwrite($file, "03"); //Constante
    fwrite($file, "9  "); //Constante

    //Monto a pagar por empleado monto                                                                                                                                                                AND concepto IN ('8025')
    $query_monto = "SELECT SUM(if(tipo = 'A', monto, if(tipo = 'D', (-1) * monto, 0))) as monto FROM `utilidades` WHERE id='" . $_SESSION['id_validar'] . "' AND cedula = '$c' AND nomina = '$nomina' AND aprobacion_contab1 = 'Aprobado' AND aprobacion_contab2 = 'Aprobado'  AND envio_banesco != 'Si' ";
    $result_monto = mysqli_query($enlace, $query_monto);
    $row_monto = mysqli_fetch_array($result_monto);
    $montoEmpleado = str_replace('.', '', $row_monto['monto']);

    fwrite($file, str_pad($montoEmpleado, 17, "0", STR_PAD_LEFT)); //DÃ­a sin cero a la izq
    fwrite($file, "VES01"); //Constante
    fwrite($file, $n_alterno); //11 -> MENSUAL, PARA DIARIA ES (21)
    $query3 = "SELECT * FROM `personal` WHERE codigo = '$c'";
    $resultado = mysqli_query($enlace, $query3);
    $datos_empleado = mysqli_fetch_array($resultado);
    fwrite($file, substr($datos_empleado['global_id'], -4)); //Ultimos 4 digitos del Global ID
    fwrite($file, "          42    "); //Constante
    fwrite($file, str_pad($datos_empleado['cuenta'], 20, "0", STR_PAD_RIGHT)); //Imprime Numero de cuenta con ceros hasta 60 caracteres
    fwrite($file, "               UNIOVECA         "); //Constante
    fwrite($file, $datos_empleado['nacionalidad']); //Nacionalidad
    fwrite($file, str_pad($datos_empleado['codigo'], 10, "0", STR_PAD_LEFT)); //Cedula
    fwrite($file, str_repeat(" ", 111)); //Constante

    $nombres_sin_formato = $datos_empleado['apellidos'] . " " . $datos_empleado['apellidos1'] . " " . $datos_empleado['nombres'] . " " . $datos_empleado['nombres1'];
    $nombres = preg_replace("/\s+/", " ", trim($nombres_sin_formato));
    fwrite($file, str_pad($nombres, 70, " ", STR_PAD_RIGHT)); //Imprime nombres con espacios hasta 60 caracteres
    fwrite($file, "\r\n"); //Nueva Linea

  }
}


function monto_total_finiquitos($enlace, $nomina)
{
  // Consulta para obtener el monto total a pagar
  $query_monto = "SELECT SUM(liq.neto_pagar_liq) AS neto_pagar_liq 
                  FROM `liquidaciones` AS liq 
                  INNER JOIN personal AS pe ON pe.codigo = liq.cedula 
                  WHERE liq.id = '" . $_SESSION['id_validar'] . "' 
                  AND pe.nomina = '$nomina' 
                  AND liq.estado_liquidacion = 'Aprobado' 
                  AND liq.envio_banesco != 'Si'";

  $result_monto = mysqli_query($enlace, $query_monto);
  $row_monto = mysqli_fetch_array($result_monto);

  // Verificar si se obtuvo un resultado válido
  if ($row_monto && isset($row_monto['neto_pagar_liq'])) {
    $monto_total = str_replace('.', '', $row_monto['neto_pagar_liq']);
    return $monto_total;
  } else {
    return 0; // Si no se encontraron resultados válidos, se devuelve 0 como monto total
  }
}

function obtener_cedulas_dias_adicionales_fideicomisos($enlace, $desperiodo, $tipo_nomina_post)
{
  $query = "SELECT DISTINCT cedula FROM `prestaciones_fideicomiso` WHERE id='" . $_SESSION['id_validar'] . "' AND desperiodo ='$desperiodo' AND nomina = '$tipo_nomina_post'";

  $resultado = mysqli_query($enlace, $query);
  $cedulas = [];
  while ($datesCodes = mysqli_fetch_array($resultado)) {
    $cedulas[] = $datesCodes['cedula'];
  }
  return $cedulas;
}

function escribir_archivo_header_nomina_fideicomiso($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $sumaMontoTotal)
{

  fwrite($file, "HDR");
  fwrite($file, "UNIOVECA       ED  95BPAYMULP");
  fwrite($file, str_pad("", 261, " ", STR_PAD_RIGHT)); //Imprime espacios

  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "01");
  fwrite($file, $tipo_nomina);
  fwrite($file, $n);
  fwrite($file, $year);
  fwrite($file, $type);
  fwrite($file, $correlativo); ////////////autoincrmental MANUAL
  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT));
  fwrite($file, "9");
  fwrite($file, "  ");
  fwrite($file, $dateNow);
  fwrite($file, "APCJ000148643");
  fwrite($file, "       FORD MOTOR VENEZUELA S.A.");
  fwrite($file, str_pad("", 220, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
  fwrite($file, "02");
  fwrite($file, $fecha_pagar_nomina);
  fwrite($file, "0" . $n);
  fwrite($file, $year);
  fwrite($file, $type);
  fwrite($file, $correlativo); ////////////autoincrmental MANUAL
  fwrite($file, str_pad($semanainicio, 2, "0", STR_PAD_LEFT));
  fwrite($file, "           6401");

  fwrite($file, str_pad($sumaMontoTotal, 17, "0", STR_PAD_LEFT)); //DÃ­a sin cero a la izq
  fwrite($file, "VES");
  fwrite($file, "01340968419683001284               UNIOVECA");
  fwrite($file, str_pad("", 197, " ", STR_PAD_RIGHT)); //Imprime espacios
  fwrite($file, "\r\n"); //Nueva Linea
}

function suma_total_fideicomiso($cedulas, $enlace, $desperiodo, $tipo_nomina_post)
{
  $sumaMontoTotal = 0;
  foreach ($cedulas as $c) {
    //-----MONTO FIDICOMISO
    $queryF = "SELECT prestacion_monto as monto FROM `prestaciones_fideicomiso` WHERE `cedula` LIKE '$c' AND `desperiodo` = '$desperiodo' AND nomina = '$tipo_nomina_post'";
    $resultadoF = mysqli_query($enlace, $queryF);

    while ($sumatoriaF = mysqli_fetch_array($resultadoF)) {
      $empleadoFideicomiso = $sumatoriaF['monto'];
    }

    $montoEmpleado =  $empleadoFideicomiso;
    $montoEmpleado = number_format($montoEmpleado, 2);
    $montoEmpleado =  str_replace(',', '', $montoEmpleado);
    $montoEmpleado =  str_replace('.', '', $montoEmpleado);
    $sumaMontoTotal = $sumaMontoTotal + $montoEmpleado;
  }
  return $sumaMontoTotal;
}

function escribir_archivo_body_fideicomiso($cedulas, $file, $enlace, $queryF, $desperiodo, $n_alterno, $tipo_nomina_post)
{
  $sumaMontoTotal = 0;
  // ordenar por ultimmo
  //--------------------------------------------------//
  //-------------------------BODY----------------------//
  foreach ($cedulas as $c) {
    fwrite($file, "03");
    fwrite($file, "9  ");

    //-----MONTO FIDICOMISO
    $queryF = "SELECT SUM(prestacion_monto) as monto FROM `prestaciones_fideicomiso` WHERE `cedula` LIKE '$c' AND `desperiodo` LIKE '$desperiodo' AND nomina = '$tipo_nomina_post'";
    $resultadoF = mysqli_query($enlace, $queryF);
    while ($sumatoriaF = mysqli_fetch_array($resultadoF)) {
      $empleadoFideicomiso = $sumatoriaF['monto'];
    }

    $montoEmpleado =  $empleadoFideicomiso;
    $montoEmpleado =  number_format($montoEmpleado, 2);
    $montoEmpleado =  str_replace(',', '', $montoEmpleado);
    $montoEmpleado =  str_replace('.', '', $montoEmpleado);
    fwrite($file, str_pad($montoEmpleado, 17, "0", STR_PAD_LEFT)); //DÃ­a sin cero a la izq
    fwrite($file, "VES01");
    fwrite($file, $n_alterno);
    $query3 = "SELECT * FROM `personal` WHERE codigo = '$c'";
    $resultado = mysqli_query($enlace, $query3);
    $datos_empleado = mysqli_fetch_array($resultado);
    fwrite($file, substr($datos_empleado['global_id'], -4));
    fwrite($file, "       ");
    fwrite($file, "10442    ");
    fwrite($file, $datos_empleado['cuenta']);
    fwrite($file, "               UNIOVECA         ");
    fwrite($file, $datos_empleado['nacionalidad']);
    fwrite($file, str_pad($datos_empleado['codigo'], 10, "0", STR_PAD_LEFT)); //Cedula
    fwrite($file, str_repeat(" ", 111));
    $nombres_sin_formato = $datos_empleado['apellidos'] . " " . $datos_empleado['apellidos1'] . " " . $datos_empleado['nombres'] . " " . $datos_empleado['nombres1'];
    $nombres = preg_replace("/\s+/", " ", trim($nombres_sin_formato));
    fwrite($file, str_pad($nombres, 70, " ", STR_PAD_RIGHT)); //Imprime nombres con espacios hasta 60 caracteres
    fwrite($file, "\r\n"); //Nueva Linea
    $sumaMontoTotal = $sumaMontoTotal + $montoEmpleado;
    $montoTotalCorreo = $sumaMontoTotal / 100;
  }
}

function enviar_correo_fideicomisos($tipo_nomina_post, $semanainicio, $fechaPago, $n, $year, $type, $correlativo, $montoTotalCorreo)
{
  $mail = new PHPMailer(true);
  $email = new Email($mail);

  $email->set_to_address(array(
    'BGUZMAN@BANESCO.COM',
    'FIDEICOMISOPOSTVENTA_VE@BANESCO.COM',
    'POSTVENTAFIDEICOMISO_VE@BANESCO.COM' 
  ));

  $email->set_to_cc(array(
    'ORIVERO@FORD.COM',
    'GCURBELO@FORD.COM',
    'BSALAZA3@FORD.COM',
    'MCALLES1@FORD.COM',
    'JSANCH32@FORD.COM',
    'YSIRA@FORD.COM',
    'NOMINA.FORD@SAIREH.COM'
  ));


  //Enviar correo a Supervisor y RRHH
  $asunto = 'Fideicomiso de la ' . ($tipo_nomina_post == 100 ? 'Semana: ' : 'Quincena: ') . $semanainicio . ' Nomina: ' . ($tipo_nomina_post == 100 ? 'DIARIA' : 'MENSUAL');
  $mensaje = "Srs. <br>
						BANESCO<br><br>
						A continuación encontrara datos de archivo de fideicomiso enviado para su aplicacion el dia " . $fechaPago . "<br>
						Descripcion: Fideicomiso de la " . ($tipo_nomina_post == 100 ? 'Semana: ' : 'Quincena: ') . $semanainicio . "<br>
						Tipo de Nomina: " . ($tipo_nomina_post == 100 ? 'DIARIA' : 'MENSUAL') . "<br>
						Nº " . ($tipo_nomina_post == 100 ? 'Semana: ' : 'Quincena: ') . " : " . $semanainicio . "<br>
						# Correlativo banco: 0" . $n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) . "<br>
						Fecha de envio: " . date('d-m-Y') . "<br>
						Fecha de Pago: " . $fechaPago . "<br>
						Monto: " . number_format($montoTotalCorreo, 2) . "<br><br>
						Nota Importante: Este mensaje se genera de forma automatica al momento de realizar el envio del archivo desde SAIREH, el tiempo de transito del archivo desde la generación de este mensaje puede variar entre 25 a 30 minutos hasta ser visible en sus servidores";

  $email->send($asunto, $mensaje);
}

function enviar_correo_nominas($tipo_nomina_post, $semanainicio, $fechaPago, $n, $year, $type, $correlativo, $sumaMontoTotal)
{
  $mail = new PHPMailer(true);
  $email = new Email($mail);

  $email->set_to_address(array(
    //'NOMINA.FORD@SAIREH.COM',
    //'NOMINA.FORD@SAIREH.COM',
    'NOMINA.FORD@SAIREH.COM'
  ));

  $email->set_to_cc(array(
    'ORIVERO@FORD.COM',
    'GCURBELO@FORD.COM',
    'BSALAZA3@FORD.COM',
    'MCALLES1@FORD.COM',
    'YSIRA@FORD.COM',
    'JSANCH32@FORD.COM'
  ));


  //Enviar correo a Supervisor y RRHH
  $asunto = 'Nomina ' . ($tipo_nomina_post == 100 ? 'Semana: ' : 'Quincena: ') . $semanainicio . ' Enviada al banco';
  $mensaje = "Detalles<br><br>

						Fecha de envio: " . date('d-m-Y') . "<br>
            Fecha de Pago: " . $fechaPago . "<br>
           
						Descripcion: Nomina de la " . ($tipo_nomina_post == 100 ? 'Semana: ' : 'Quincena: ') . $semanainicio . "<br>
						Tipo de Nomina: " . ($tipo_nomina_post == 100 ? 'DIARIA' : 'MENSUAL') . "<br>
						Nro " . ($tipo_nomina_post == 100 ? 'Semana ' : 'Quincena ') . " : " . $semanainicio . "<br>
						# Correlativo banco: 0" . $n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) . "<br>
						
						
						Monto: " . number_format($sumaMontoTotal/100, 2) . "<br><br>
						Nota Importante: Este mensaje se genera de forma automatica al momento de realizar el envio del archivo desde SAIREH, el tiempo de transito del archivo desde la generación de este mensaje puede variar entre 25 a 30 minutos hasta ser visible en sus servidores";

  $email->send($asunto, $mensaje);
}

function enviar_correo_pagos_especiales($tipo_nomina_post, $semanainicio, $fechaPago, $n, $year, $type, $correlativo, $sumaMontoTotal)
{
  $mail = new PHPMailer(true);
  $email = new Email($mail);

  $email->set_to_address(array(
    //'NOMINA.FORD@SAIREH.COM',
    //'NOMINA.FORD@SAIREH.COM',
    'NOMINA.FORD@SAIREH.COM'
  ));

  $email->set_to_cc(array(
    'ORIVERO@FORD.COM',
    'GCURBELO@FORD.COM',
    'BSALAZA3@FORD.COM',
    'MCALLES1@FORD.COM',
    'YSIRA@FORD.COM',
    'JSANCH32@FORD.COM'
  ));


  //Enviar correo a Supervisor y RRHH
  $asunto = 'Pago especial Enviado al banco';
  $mensaje = "Detalles<br><br>

						Fecha de envio: " . date('d-m-Y') . "<br>
            Fecha de Pago: " . $fechaPago . "<br>
           
						Descripcion: Pago especial <br>
						Tipo de Nomina: " . ($tipo_nomina_post == 100 ? 'DIARIA' : 'MENSUAL') . "<br>
						# Correlativo banco: 0" . $n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) . "<br>
						
						
						Monto: " . number_format($sumaMontoTotal/100, 2) . "<br><br>
						Nota Importante: Este mensaje se genera de forma automatica al momento de realizar el envio del archivo desde SAIREH, el tiempo de transito del archivo desde la generación de este mensaje puede variar entre 25 a 30 minutos hasta ser visible en sus servidores";

  $email->send($asunto, $mensaje);
}

function enviar_correo_vacaciones($tipo_nomina_post, $semanainicio, $fechaPago, $n, $year, $type, $correlativo, $sumaMontoTotal)
{
  $mail = new PHPMailer(true);
  $email = new Email($mail);

  $email->set_to_address(array(
    //'NOMINA.FORD@SAIREH.COM',
    //'NOMINA.FORD@SAIREH.COM',
    'NOMINA.FORD@SAIREH.COM'
  ));

  $email->set_to_cc(array(
    'ORIVERO@FORD.COM',
    'GCURBELO@FORD.COM',
    'BSALAZA3@FORD.COM',
    'MCALLES1@FORD.COM',
    'YSIRA@FORD.COM',
    'JSANCH32@FORD.COM'
  ));


  //Enviar correo a Supervisor y RRHH
  $asunto = 'Pago de Vacaciones de nomina ' .  ($tipo_nomina_post == 100 ? 'DIARIA' : 'MENSUAL') . ' Enviado al banco';
  $mensaje = "Detalles<br><br>

						Fecha de envio: " . date('d-m-Y') . "<br>
            Fecha de Pago: " . $fechaPago . "<br>
           
						Descripcion: Vacaciones de nomina " . ($tipo_nomina_post == 100 ? 'DIARIA' : 'MENSUAL'). "<br>
						# Correlativo banco: 0" . $n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) . "<br>
						Monto: " . number_format($sumaMontoTotal/100, 2) . "<br><br>
						Nota Importante: Este mensaje se genera de forma automatica al momento de realizar el envio del archivo desde SAIREH, el tiempo de transito del archivo desde la generacion de este mensaje puede variar entre 25 a 30 minutos hasta ser visible en sus servidores";

  $email->send($asunto, $mensaje);
}

function enviar_correo_utilidades($tipo_nomina_post, $semanainicio, $fechaPago, $n, $year, $type, $correlativo, $sumaMontoTotal)
{
  $mail = new PHPMailer(true);
  $email = new Email($mail);

  $email->set_to_address(array(
    //'NOMINA.FORD@SAIREH.COM',
    //'NOMINA.FORD@SAIREH.COM',
    'NOMINA.FORD@SAIREH.COM'
  ));

  $email->set_to_cc(array(
    'ORIVERO@FORD.COM',
    'GCURBELO@FORD.COM',
    'BSALAZA3@FORD.COM',
    'MCALLES1@FORD.COM',
    'YSIRA@FORD.COM',
    'JSANCH32@FORD.COM'
  ));


  //Enviar correo a Supervisor y RRHH
  $asunto = 'Pago de Utilidades de nomina ' .  ($tipo_nomina_post == 100 ? 'DIARIA' : 'MENSUAL') . ' Enviado al banco';
  $mensaje = "Detalles<br>

						Fecha de envio: " . date('d-m-Y') . "<br>
            Fecha de Pago: " . $fechaPago . "<br>
           
						Descripcion: Utilidades de nomina " . ($tipo_nomina_post == 100 ? 'DIARIA' : 'MENSUAL'). "<br>
						# Correlativo banco: 0" . $n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) . "<br>
						Monto: " . number_format($sumaMontoTotal/100, 2) . "<br><br>
						Nota Importante: Este mensaje se genera de forma automatica al momento de realizar el envio del archivo desde SAIREH, el tiempo de transito del archivo desde la generacion de este mensaje puede variar entre 25 a 30 minutos hasta ser visible en sus servidores";

  $email->send($asunto, $mensaje);
}


function escribir_archivo_body_dias_adicionales_fideicomiso($enlace, $file, $cedulas, $desperiodo, $tipo_nomina_post, $n_alterno)
{
  $sumaMontoTotal = 0;
  // ordenar por ultimmo
  //--------------------------------------------------//
  //-------------------------BODY----------------------//
  foreach ($cedulas as $c) {
    fwrite($file, "03");
    fwrite($file, "9  ");

    //-----MONTO FIDICOMISO
    $queryF = "SELECT SUM(prestacion_monto) as monto FROM `prestaciones_fideicomiso` WHERE `cedula` LIKE '$c' AND `desperiodo` LIKE '$desperiodo' AND nomina = '$tipo_nomina_post'";
    $resultadoF = mysqli_query($enlace, $queryF);

    while ($sumatoriaF = mysqli_fetch_array($resultadoF)) {
      $empleadoFideicomiso = $sumatoriaF['monto'];
    }

    $montoEmpleado =  $empleadoFideicomiso;
    $montoEmpleado =  number_format($montoEmpleado, 2);
    $montoEmpleado =  str_replace(',', '', $montoEmpleado);
    $montoEmpleado =  str_replace('.', '', $montoEmpleado);
    fwrite($file, str_pad($montoEmpleado, 17, "0", STR_PAD_LEFT)); //DÃ­a sin cero a la izq
    fwrite($file, "VES01");
    fwrite($file, $n_alterno);
    $query3 = "SELECT * FROM `personal` WHERE codigo = '$c'";
    $resultado = mysqli_query($enlace, $query3);
    $datos_empleado = mysqli_fetch_array($resultado);
    fwrite($file, substr($datos_empleado['global_id'], -4));
    fwrite($file, "       ");
    fwrite($file, "10442    ");
    fwrite($file, $datos_empleado['cuenta']);
    fwrite($file, "               UNIOVECA         ");
    fwrite($file, $datos_empleado['nacionalidad']);
    fwrite($file, str_pad($datos_empleado['codigo'], 10, "0", STR_PAD_LEFT)); //Cedula
    fwrite($file, str_repeat(" ", 111));
    $nombres_sin_formato = $datos_empleado['apellidos'] . " " . $datos_empleado['apellidos1'] . " " . $datos_empleado['nombres'] . " " . $datos_empleado['nombres1'];
    $nombres = preg_replace("/\s+/", " ", trim($nombres_sin_formato));
    fwrite($file, str_pad($nombres, 70, " ", STR_PAD_RIGHT)); //Imprime nombres con espacios hasta 60 caracteres
    fwrite($file, "\r\n"); //Nueva Linea
    $sumaMontoTotal = $sumaMontoTotal + $montoEmpleado;
    $montoTotalCorreo = $sumaMontoTotal / 100;
  }
  return array($sumaMontoTotal, $montoTotalCorreo);
}

function enviar_correo_dias_adic_fideicomiso($desperiodo, $tipo_nomina_post,  $n, $year, $type, $correlativo, $semanainicio, $fechaPago, $montoTotalCorreo)
{
  $mail = new PHPMailer(true);
  $email = new Email($mail);

  $email->set_to_address(array(
    'BGUZMAN@BANESCO.COM',
    'FIDEICOMISOPOSTVENTA_VE@BANESCO.COM',
    'POSTVENTAFIDEICOMISO_VE@BANESCO.COM'
  ));

  $email->set_to_cc(array(
    'ORIVERO@FORD.COM',
    'GCURBELO@FORD.COM',
    'BSALAZA3@FORD.COM',
    'MCALLES1@FORD.COM',
    'JSANCH32@FORD.COM',
    'YSIRA@FORD.COM',
    'NOMINA.FORD@SAIREH.COM'
  ));

  $asunto = 'Fideicomiso Dias Adicionales del periodo ' . $desperiodo . ' Nomina: ' . ($tipo_nomina_post == 100 ? 'DIARIA' : 'MENSUAL');
  $mensaje = "Srs.<br> 
  						BANESCO<br><br>
  						A continuación encontrará datos de archivo de fideicomiso enviado para su aplicación el día de hoy
  						Descripcion: Fideicomiso Dias Adicionales del periodo  " . $desperiodo . "<br>
  						Tipo de Nomina: " . ($tipo_nomina_post == 100 ? 'DIARIA' : 'MENSUAL') . "<br>
  						# Correlativo banco: 0" . $n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) . "<br>
  						Fecha de envio: " . date('d-m-Y') . "<br>
  						Fecha de Pago: " . $fechaPago . "<br>
  						Monto: " . number_format($montoTotalCorreo, 2) . "<br><br>
  						Nota Importante: Este mensaje se genera de forma automatica al momento de realizar el envio del archivo desde SAIREH, el tiempo de transito del archivo desde la generaciÃ³n de este mensaje puede variar entre 25 a 30 minutos hasta ser visible en sus servidores";

  $email->send($asunto, $mensaje);
}

//$enlace = cargar_conexion();

function insertar_registros_enviados($enlace, $descripcion,$tipo_proceso,$tipo_nomina, $semanainicio, $correlativo_banco, $fecha_envio, $fecha_pago, $montoTotalCorreo, $id_empresa)
{
  $insertRegistroEnvios = "INSERT INTO `envios_bancos`( `descripcion`, `tipo_proceso`, `tipo_nomina`, `sem_quinc`, `correlativo_banco`, `fecha_envio`, `fecha_pago`, `monto_bs`,  `id`) 
  VALUES ('".$descripcion."','".$tipo_proceso."','".$tipo_nomina."','".$semanainicio."','".$correlativo_banco."','".$fecha_envio."','".$fecha_pago."','".$montoTotalCorreo."','".$id_empresa."')";

  $resultado = mysqli_query($enlace,$insertRegistroEnvios) or die ("No se pudo realizar la consulta: ".$insertRegistroEnvios.'='.mysqli_error($enlace));
}




date_default_timezone_set('America/Bogota');
//RESTRICCI?N DE ACCESO A TRABAJADOR (ACCESO INDIVIDUAL)
if (isset($_SESSION['tipousuario'])) {
  if ($_SESSION['tipousuario'] == '1')
    header('location:menu_personal.php');
}
if (trim($_SESSION['nombre_validar']) == '') {
  header('location:index.php');
}
if (substr($_SESSION['acceso_validar'], 41, 1) != '1') { //Valida si tiene permisos de acceso a Bancos
  "No tiene permisos de acceso";
  exit;
}



$enlace = cargar_conexion();
$row = set_session_per_validar($enlace);
$rowQ = get_numero_quincena($enlace);


menu();



//Obtengo la fecha desde que inicia el periodo
$fecha_inicio_periodo = $row['desde'];
$fecha_fin_periodo = $row['hasta'];
$quincena = $rowQ['semana_quinc'];

echo "<font face='verdana' size=2>";

if (isset($_POST['generarBanco'])) {
  //----------------VARIABLES PARA LA CABECERA------------------------//

  //--Se define el periodo que se esta trabajando
  $periodo = $_POST['periodo'];
  $periodo = explode(' ', $periodo);
  $desde = date('Y-m-d', strtotime($periodo[0]));
  $hasta = date('Y-m-d', strtotime($periodo[1]));
  $desperiodo = $desde . " al " . $hasta;
  $tipo_nomina_post = $_POST['tipo_nomina'];

  //------------------------------//
  //-----Se declara variables para uso despues
  $n = null;
  $n_alterno = null;
  //-------AÃ±o actual
  $year = date('y');

  $type = get_type($_POST);

  //--- Se declara la fecha y a partir de alli se busca el ultimo dia vigente
  $semanainicio = date("W", strtotime($desde));
  $semanafin = date("W", strtotime($hasta));


  //---- Fecha actual acomodada para txt
  $dateNow = date('Y-m-d');
  $dateNow = explode("-", $dateNow);
  $dateNow = $dateNow[0] . "" . $dateNow[1] . "" . $dateNow[2];

  // A partir del tipo de nomina, se declara un autoincrementable
  list($n, $n_alterno) = get_autoincrementable($_POST);


  $diashabiles = get_dias_habiles($desde, $hasta);

  $fecha_tramite = [];
  // var_dump($diashabiles);
  $tipo_nomina = null;
  // A partir del tipo de contingencia, se toma la fecha y se le agrega los dias que serviran para el pago a efectuar
  $cedulas = get_cedulas($enlace);
  list($monto_a_pagar, $sum, $res) = get_monto_pagar($cedulas, $enlace);



  //-------------CREACIÃN DE EL ARCHIVO DE CONTINGENCIA //////////

  # TODO 
  if ($_POST['nomina'] == 'nomina_contingencia') {


    $cedulas = get_cedulas_periodo($enlace, $_POST, $desperiodo, $tipo_nomina_post);
    $tipo_nomina = "CONTING0";
    //$zipNombre = 'nominasCont.zip';
    //$zip = new ZipArchive();
    //$zip->open($zipNombre, ZipArchive::CREATE);
    //$contador = 1;
    if ($tipo_nomina_post == '100') {
      /*
      $semanainicio= $semanainicio;   //Primer contingencia: no se suma nada, Segunda: +1, Tercera +2
        $autoIncremental = 3; //Primer contingencia: 3, Segunda: 2, Tercera: 1
        $i=0; //Primer contingencia: 0, Segunda: 1, Tercera: 2
        //for ($i = 0; $i < 3; $i++) {
  	*/

      if ($_POST['numero_contingencia'] == '1') { ////Primera Contingencia
        $semanainicio = $semanainicio + 1;   //Primer contingencia: no se suma nada
        $autoIncremental = 3; //Primer contingencia: 3
        $i = 0; //Primer contingencia: 0
      } else if ($_POST['numero_contingencia'] == '2') { ////Segunda contingencia
        $semanainicio = $semanainicio + 2;   //Segunda: +1
        $autoIncremental = 2; //Segunda: 2
        $i = 1; //Segunda: 1

      } else if ($_POST['numero_contingencia'] == '3') { ////Tercera contingencia
        $semanainicio = $semanainicio + 3;   // Tercera +2
        $autoIncremental = 1; // Tercera: 1
        $i = 2; // Tercera: 2
      }
      //Construyo la fecha a pagar la nomina para los 3 archivos
      switch ($i) {
        case 0:
          $fecha_pagar_nomina = date('Y-m-d', strtotime($hasta . "+ 1 week"));
          $fecha_pagar_nomina = date('Y-m-d', strtotime($fecha_pagar_nomina . "+ 5 days"));
          break;
        case 1:
          $fecha_pagar_nomina = date('Y-m-d', strtotime($hasta . "+ 2 week"));
          $fecha_pagar_nomina = date('Y-m-d', strtotime($fecha_pagar_nomina . "+ 5 days"));
          break;
        case 2:
          $fecha_pagar_nomina = date('Y-m-d', strtotime($hasta . "+ 3 week"));
          $fecha_pagar_nomina = date('Y-m-d', strtotime($fecha_pagar_nomina . "+ 5 days"));
          break;
      }
    } else if ($tipo_nomina_post == '200') {
      /////Para contingencia de Nom Mensual  ---Miguelangel 04/04/2023
      $autoIncremental = 1;
      $semanainicio = $_POST["quinc_conting_mensual"]; // Manual para Nom Mensual
      $fecha_pagar_nomina = $_POST["fecha_pagar_nomina"]; // Manual para Nom Mensual
    }
    $arrayFestivos = get_festivos($enlace);

    //Verifico si la fecha a pagar es festivo
    for ($iFes = 0; $iFes < count($arrayFestivos); $iFes++) {
      $verificar_festivo = date('m-d', strtotime($fecha_pagar_nomina));
      if ($verificar_festivo == $arrayFestivos[$iFes]) {
        $fecha_pagar_nomina = date('Y-m-d', strtotime($fecha_pagar_nomina . "- 1 days"));
        $iFes = 0;
      }
    }

    //Se le quita los guiones
    $fecha_pagar_nomina_array = explode("-", $fecha_pagar_nomina);
    $fecha_pago = $fecha_pagar_nomina;

    //Unir todos los datos para imprimir
    $fecha_pagar_nomina = $fecha_pagar_nomina_array[0] . "" . $fecha_pagar_nomina_array[1] . "" . $fecha_pagar_nomina_array[2];

    //$nombre_archivo = "nomina_semana" . $semanainicio . "_" . $autoIncremental . ".txt";
    $nombre_archivo = "nomina.txt";

    $file = fopen($nombre_archivo, "w+");

    escribir_archivo_header($file, $tipo_nomina, $n, $year, $type, $autoIncremental, $semanainicio, $dateNow, $fecha_pagar_nomina);
    $sumaMontoTotal = escribir_archivo_body($file, $enlace, $cedulas, $desperiodo, $tipo_nomina_post, $n_alterno);
    escribir_archivo_footer($file, $sumaMontoTotal, $cedulas);

    //########### Para producciÃ³n:
    $contenido_codificado = base64_encode(file_get_contents($nombre_archivo));
    $nombre_archivo = "nomina.txt";;
    //########### Para pruebas con API solo mensaje:
    // $contenido_codificado = base64_encode("hola, esto es una prueba");
    // $nombre_archivo = "test.txt";
    //
    if ($_POST['contrasena'] == 'C0n5ul74') {
      $result_upload = api_upload_Folder($nombre_archivo, $contenido_codificado); ////Si esta linea estÃ¡ comentariada no transmite al banco

      ///Variables que va a insertar en [envios_bancos]
      $descripcion = 'Contingencia ' . ($tipo_nomina_post == 100 ? 'Semana ' : 'Quincena ') . $semanainicio ;
      $tipo_proceso = 'contingencia' ;
      $tipo_nomina = ($tipo_nomina_post == 100 ? "D" : "M" ) ;
      $correlativo_banco = '0'.$n . $year . $type .$autoIncremental. $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) ;
      $fecha_envio = date('Y-m-d') ;
      $id_empresa = $_SESSION['id_validar'] ;
      $montoTotalCorreo = $sumaMontoTotal / 100;


      ///Inserta el registro del pago en la tabla [envios_bancos]
      insertar_registros_enviados($enlace, $descripcion,$tipo_proceso,$tipo_nomina, $semanainicio, $correlativo_banco, $fecha_envio, $fecha_pago, $montoTotalCorreo, $id_empresa) ;
    }

    //########### Para pruebas sin API, descargar archivo TXT:
    // echo "<style>
    // 	.regristrado{
    // 			color: green;
    // 			margin-left: 7%;
    // 			font-weight: bold;
    // 	}
    // </style>";
    // echo "<p class='regristrado'>Archivo guardado correctamente<p>";
    // echo "<script>
    // 			window.location.href = 'generar_txt.php?fileBank=$nombre_archivo';
    // 		</script>";

    //-------------FIN DE ARCHIVO DE CONTINGENCIA //////////
    ///////// INICIA PAGO DE NOMINA ORDINARIA
  } else if ($_POST['nomina'] == 'nomina_ordinaria') {
    $fecha_pago = $_POST['fecha_pago'];
    //-------------CREACIÃN DE EL ARCHIVO  DE NORMAL /////////

    // Recolecto el listado de cedulas correspondientes al periodo vigente
    $cedulas = get_cedulas_periodo($enlace, $_POST, $desperiodo, $tipo_nomina_post);
    $tipo_nomina = "99999990";
    $correlativo = "0";
    $fecha_tramite = end($diashabiles);
    $fecha_pagar_nomina = str_replace("-", "", $fecha_pago);

    $timestamp = strtotime($fecha_pago);
    $fechaPago = date("d-m-Y", $timestamp);

    //Define la semana de este periodo
    /*
	$semanainicio = $semanainicio - 1;
	//$semanainicio = '2'; ///Aqui para que funcione quicnenal para nomina mensual , quitar el comentario -- Miguelangel
	*/
    if ($tipo_nomina_post == '100') {
      $semanainicio = $semanainicio; //Define la semana de este periodo

    } else if ($tipo_nomina_post == '200') {
      $semanainicio = $quincena - 1; ////////////para nomina mensual
    }

    //-------------------------------------------------//
    $nombre_archivo = "nomina.txt";
    $file = fopen($nombre_archivo, "w+");
    escribir_archivo_header_nomina_ordinaria($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $cedulas, $desperiodo, $tipo_nomina_post, $enlace);
    $sumaMontoTotal = escribir_archivo_body_nomina_ordinaria($cedulas, $file, $enlace, $desperiodo, $tipo_nomina_post, $n_alterno);
    escribir_archivo_footer_nomina_ordinaria($file, $cedulas, $sumaMontoTotal);

    header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename=' . $nombre_archivo);
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($nombre_archivo));
    //readfile($directorio);
    //unlink($directorio);



    // echo "<script>
    //     window.location.href = 'generar_txt.php?fileBank=$nombre_archivo';
    //     </script>";



    //########### Para producciÃ³n:
    $contenido_codificado = base64_encode(file_get_contents($nombre_archivo));
    $nombre_archivo = "nomina.txt";;
    //########### Para pruebas con API solo mensaje:
    // $contenido_codificado = base64_encode("hola, esto es una prueba");
    // $nombre_archivo = "test.txt";


    if ($_POST['contrasena'] == 'C0n5ul74') {
      $result_upload = api_upload_Folder($nombre_archivo, $contenido_codificado); ////Si esta linea está comentariada no transmite al banco
      
      enviar_correo_nominas($tipo_nomina_post, $semanainicio, $fechaPago, $n, $year, $type, $correlativo, $sumaMontoTotal);



      $queryUpdate = "UPDATE `historico` SET fecha_pago = '$fecha_pago' WHERE id='" . $_SESSION['id_validar'] . "' AND desperiodo ='$desperiodo' AND nomina = '$tipo_nomina_post'";
      $resultado = mysqli_query($enlace, $queryUpdate);

      ///Variables que va a insertar en [envios_bancos]
      $descripcion = 'Nomina ' . ($tipo_nomina_post == 100 ? 'Semana ' : 'Quincena ') . $semanainicio ;
      $tipo_proceso = 'nomina' ;
      $tipo_nomina = ($tipo_nomina_post == 100 ? "D" : "M" ) ;
      $correlativo_banco = '0'.$n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) ;
      $fecha_envio = date('Y-m-d') ;
      $id_empresa = $_SESSION['id_validar'] ;
      $montoTotalCorreo = $sumaMontoTotal / 100;


      ///Inserta el registro del pago en la tabla [envios_bancos]
      insertar_registros_enviados($enlace, $descripcion,$tipo_proceso,$tipo_nomina, $semanainicio, $correlativo_banco, $fecha_envio, $fecha_pago, $montoTotalCorreo, $id_empresa) ;


      


    }



    //########### Para pruebas sin API, descargar archivo TXT:
    // echo "<style>
    // 	.regristrado{
    // 			color: green;
    // 			margin-left: 7%;
    // 			font-weight: bold;
    // 	}
    // </style>";
    // echo "<p class='regristrado'>Archivo guardado correctamente<p>";
    // echo "<script>
    // 			window.location.href = 'generar_txt.php?fileBank=$nombre_archivo';
    // 		</script>";
    ///////// FINA DE PAGO DE NOMINA ORDINARIA
    ///////////////////////////////////////////////////////////////////////////////////////////
    //////INICIO PAGOS ESPECIALES
  } else if ($_POST['nomina'] == 'pagos_especiales' 
    || $_POST['nomina'] == 'providencia_adtva' 
    || $_POST['nomina'] == 'reenvios_especiales_otros1'
    || $_POST['nomina'] == 'reenvios_especiales_otros2'
    || $_POST['nomina'] == 'reenvios_especiales_otros3'   
    ) {
    $fecha_pago = $_POST['fecha_pago'];
    $nomina = $_POST['tipo_nomina'];

    #### INICIA: GENERACIÃN DE ARCHIVO BANESCO PARA ENVÃO MEDIANTE API ####
    $sumaMontoTotal = 0;

    // Aquí se incluyen las definiciones de las funciones get_cedulas_pagos_especiales y mostrar_mensaje_sin_registros

    // Llamada a la función get_cedulas_pagos_especiales para obtener las cédulas correspondientes al periodo vigente
    $cedulas = get_cedulas_pagos_especiales($enlace, $nomina);

    // Verificar si hay cédulas para procesar
    if (empty($cedulas)) {
      mostrar_mensaje_sin_registros();
      exit;
    }

    ########### INICIO: DEFINICIÃN DE VARIABLES PARA ARCHIVO ###############
    $tipo_nomina = "99999990";
    $fecha_pagar_nomina = str_replace("-", "", $fecha_pago);

    $timestamp = strtotime($fecha_pago);
    $fechaPago = date("d-m-Y", $timestamp);
    /*
	$semanainicio = date("W", strtotime($fecha_inicio_periodo)) + 1; //Define la semana de este periodo
	$semanainicio = '4'; ///Aqui para que funcione quicnenal para nomina mensual , quitar el comentario -- Miguelangel
	*/
    if ($nomina == '100') {
      $semanainicio = date("W", strtotime($fecha_inicio_periodo)) + 2; //Define la semana de este periodo

    } else if ($nomina == '200') {
      $semanainicio = $quincena; ////////////para nomina mensual
    }

    // A partir del tipo de nomina, se declara un autoincrementable
    if ($nomina == '100') {
      $n = 2;
      $n_alterno = 21;
    } else if ($nomina == '200') {
      $n = 1;
      $n_alterno = 11;
    }

    $year = date('y'); //AÃ±o actual
    $type = 2;
    //$correlativo = "F"; ///empezar con F
    if ($_POST['nomina'] == 'pagos_especiales'){
      $correlativo = "F";
    }elseif ($_POST['nomina'] == 'providencia_adtva'){
      $correlativo = "G";
    }elseif ($_POST['nomina'] == 'reenvios_especiales_otros1'){
      $correlativo = "H";
    }elseif ($_POST['nomina'] == 'reenvios_especiales_otros2'){
      $correlativo = "I";
    }elseif ($_POST['nomina'] == 'reenvios_especiales_otros3'){
      $correlativo = "J";
      }

    $dateNow = date('Ymd'); //Fecha actual
    //Archivo a generar
    $nombre_archivo = "nomina.txt";
    $file = fopen($nombre_archivo, "w+");

    //Monto total a pagar
    $sumaMontoTotal = monto_total_pagos_especiales($enlace, $nomina);
    $montoTotalCorreo = $sumaMontoTotal / 100;

    ########### FIN: DEFINICIÃN DE VARIABLES PARA ARCHIVO ###############
    //----------------------------HEADER--------------//
    escribir_archivo_header_pagos_especiales($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $sumaMontoTotal);
    escribir_archivo_body_montos_especiales($file, $cedulas, $enlace, $nomina, $n_alterno);
    escribir_archivo_footer_fondos_especiales($file, $cedulas, $sumaMontoTotal);

    header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename=' . $nombre_archivo);
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($nombre_archivo));

    //########### Para producciÃ³n:
    $contenido_codificado = base64_encode(file_get_contents($nombre_archivo));;

    $nombre_archivo = "nomina.txt";

    //########### Para pruebas con API solo mensaje:
    // $contenido_codificado = base64_encode("hola, esto es una prueba");
    // $nombre_archivo = "test.txt";
    //

    ////COMENTARIADA NO TRANSMITE AL BANCO


    if ($_POST['contrasena'] == 'C0n5ul74') {

        ///Transmite el archivo vía API
      list($http_code, $result_upload) = api_upload_Folder($nombre_archivo, $contenido_codificado); ////COMENTARIADA NO TRANSMITE AL BANCO
      # FIXME it should ensuere that the file was sent successfully
      ///Actualizo el estatus del envio al BANCO

      ///Envía el correo de notificación

      $tipo_nomina_post = $nomina;
      enviar_correo_pagos_especiales($tipo_nomina_post, $semanainicio, $fechaPago, $n, $year, $type, $correlativo, $sumaMontoTotal);

      /////Actualiza la fecha de pago
      $query_update = "UPDATE historico_nomina_especial SET envio_banesco = 'Si', fecha_pago = '$fecha_pago'  WHERE id='" . $_SESSION['id_validar'] . "' AND nomina = '$nomina' AND estado_aprobacion_1 = 'Aprobado' AND estado_aprobacion_2 = 'Aprobado' AND estado_aprobacion_3 = 'Aprobado' AND envio_banesco != 'Si'";
      $result_update = mysqli_query($enlace, $query_update);

      ///Variables que va a insertar en [envios_bancos]
      $descripcion = 'Pago Especial ' . ($tipo_nomina_post == 100 ? 'Semana ' : 'Quincena ') . $semanainicio ;
      $tipo_proceso = 'especial' ;
      $tipo_nomina = ($tipo_nomina_post == 100 ? "D" : "M" ) ;
      $correlativo_banco = '0'.$n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) ;
      $fecha_envio = date('Y-m-d') ;
      $id_empresa = $_SESSION['id_validar'] ;


      ///Inserta el registro del pago en la tabla [envios_bancos]
      insertar_registros_enviados($enlace, $descripcion,$tipo_proceso,$tipo_nomina, $semanainicio, $correlativo_banco, $fecha_envio, $fecha_pago, $montoTotalCorreo, $id_empresa) ;




    }


    //########### Para pruebas sin API, descargar archivo TXT:
    // echo "<style>
    // 		.regristrado{
    // 			color: green;
    // 			margin-left: 7%;
    // 			font-weight: bold;
    // 		}
    // 	</style>";
    // echo "<p class='regristrado'>Archivo guardado correctamente<p>";
    // echo "<script>
    // 				window.location.href = 'generar_txt.php?fileBank=$nombre_archivo';
    // 			</script>";



    #### TERMINA: GENERACIÃN DE ARCHIVO BANESCO PARA ENVÃO MEDIANTE API ####
    ////////////FIN PAGOS ESPECIALES

    ///////////////////////////////////////////////////////////////////////////////////////

    //////// INICIA PAGO DE VACACIONES
  } else if ($_POST['nomina'] == 'vacaciones') {
    $fecha_pago = $_POST['fecha_pago'];
    $nomina = $_POST['tipo_nomina'];

    #### INICIA: GENERACIÃN DE ARCHIVO BANESCO PARA ENVÃO MEDIANTE API ####
    $sumaMontoTotal = 0;

    $cedulas = get_cedulas_vacaciones($enlace, $nomina);

    ########### INICIO: DEFINICIÃN DE VARIABLES PARA ARCHIVO ###############
    $tipo_nomina = "99999990";
    $correlativo = "A";

    $fecha_pagar_nomina = str_replace("-", "", $fecha_pago);

    $timestamp = strtotime($fecha_pago);
    $fechaPago = date("d-m-Y", $timestamp);

    if ($nomina == '100') {
      $semanainicio = date("W", strtotime($fecha_inicio_periodo)) + 1; //Define la semana de este periodo

    } else if ($nomina == '200') {
      $semanainicio = $quincena; ////////////para nomina mensual
    }
    // A partir del tipo de nomina, se declara un autoincrementable
    if ($nomina == '100') {
      $n = 2;
      $n_alterno = 21;
    } else if ($nomina == '200') {
      $n = 1;
      $n_alterno = 11;
    }

    $year = date('y'); //AÃ±o actual
    $type = 3;
    $dateNow = date('Ymd'); //Fecha actual
    //Archivo a generar
    $nombre_archivo = "nomina.txt";
    $file = fopen($nombre_archivo, "w+");


    $sumaMontoTotal = monto_total_vacaciones($enlace, $nomina);
    $montoTotalCorreo = $sumaMontoTotal / 100;
    ########### FIN: DEFINICIÃN DE VARIABLES PARA ARCHIVO ###############

    escribir_archivo_header_vacaciones($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $sumaMontoTotal);
    escribir_archivo_body_vacaciones($cedulas, $file, $enlace, $nomina, $n_alterno);
    escribir_archivo_footer_vacaciones($file, $cedulas, $sumaMontoTotal);

    header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename=' . $nombre_archivo);
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($nombre_archivo));

    //########### Para producciÃ³n:
    $contenido_codificado = base64_encode(file_get_contents($nombre_archivo));;

    $nombre_archivo = "nomina.txt";
    //########### Para pruebas con API solo mensaje:
    // $contenido_codificado = base64_encode("hola, esto es una prueba");
    // $nombre_archivo = "test.txt";
    //echo "la nomina es:".substr($nomina,0,1);
    if ($_POST['contrasena'] == 'C0n5ul74') {

      ///Transmite el archivo vía API
      $result_upload = api_upload_Folder($nombre_archivo, $contenido_codificado); //////////COMENTARIADA NO ENVIA A BANCO
      $tipoNomina = substr($nomina, 0, 1);
      

      ///Envía el correo de notificación
      enviar_correo_vacaciones($tipo_nomina_post, $semanainicio, $fechaPago, $n, $year, $type, $correlativo, $sumaMontoTotal);

      /////Actualiza la fecha de pago
      $query_update = "UPDATE vacacion SET envio_banesco = 'Si', fecha_pago='" . $fecha_pagar_nomina . "' WHERE id='" . $_SESSION['id_validar'] . "' AND tip = '" . $tipoNomina . "' AND aprobacion_rrhh = 'Aprobado' AND aprobacion_nomina = 'Aprobado' AND aprobacion_contabilidad = 'Aprobado' AND envio_banesco != 'Si'";
      $result_update = mysqli_query($enlace, $query_update);

      ///Variables que va a insertar en [envios_bancos]
      $descripcion = 'Vacaciones ' . ($tipo_nomina_post == 100 ? 'Semana ' : 'Quincena ') . $semanainicio ;
      $tipo_proceso = 'vacaciones' ;
      $tipo_nomina = ($tipo_nomina_post == 100 ? "D" : "M" ) ;
      $correlativo_banco = '0'.$n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) ;
      $fecha_envio = date('Y-m-d') ;
      $id_empresa = $_SESSION['id_validar'] ;


      ///Inserta el registro del pago en la tabla [envios_bancos]
      insertar_registros_enviados($enlace, $descripcion,$tipo_proceso,$tipo_nomina, $semanainicio, $correlativo_banco, $fecha_envio, $fecha_pago, $montoTotalCorreo, $id_empresa) ;

    }

    //########### Para pruebas sin API, descargar archivo TXT:
    // echo "<style>
    // 		.regristrado{
    // 			color: green;
    // 			margin-left: 7%;
    // 			font-weight: bold;
    // 		}
    // 	</style>";
    // echo "<p class='regristrado'>Archivo guardado correctamente<p>";
    // echo "<script>
    // 				window.location.href = 'generar_txt.php?fileBank=$nombre_archivo';
    // 			</script>";



    #### TERMINA: GENERACIÃN DE ARCHIVO BANESCO PARA ENVÃO MEDIANTE API ####
    //////////FIN DE PAGO DE VACACIONES

    /////////////////////////////////////////////////////////////////////////////////////////

    /////////INICIO PAGO DE FINIQUITOS
  } else if ($_POST['nomina'] == 'finiquitos') {
    $fecha_pago = $_POST['fecha_pago'];
    $nomina = $_POST['tipo_nomina'];

    #### INICIA: GENERACIÃN DE ARCHIVO BANSECO PARA ENVÃO MEDIANTE API ####
    $sumaMontoTotal = 0;

    // Recolecto el listado de cedulas aprobadas
    $cedulas = obtener_cedulas_finiquitos($enlace, $nomina);

    if (empty($cedulas)) {
      mostrar_mensaje_sin_registros();
    }


    ########### INICIO: DEFINICIÃN DE VARIABLES PARA ARCHIVO ###############
    $tipo_nomina = "99999990";
    $correlativo = "W";
    $fecha_pagar_nomina = str_replace("-", "", $fecha_pago);
    $semanainicio = date("W", strtotime($fecha_inicio_periodo)) + 1; //Define la semana de este periodo
    $semanainicio ="0".$semanainicio ;
    //$semanainicio = "08"; ////////////para nomina mensual
    // A partir del tipo de nomina, se declara un autoincrementable
    if ($nomina == '100') {
      $n = 2;
      $n_alterno = 21;
    } else if ($nomina == '200') {
      $n = 1;
      $n_alterno = 11;
    }

    $year = date('y'); //AÃ±o actual
    $type = 1;
    $dateNow = date('Ymd'); //Fecha actual
    //Archivo a generar
    $nombre_archivo = "nomina.txt";
    $file = fopen($nombre_archivo, "w+");

    $monto_total = monto_total_finiquitos($enlace, $nomina);
    //$sumaMontoTotal = '52042';  //////////////QUEMAR EL MONTO A PAGAR
    ########### FIN: DEFINICIÃN DE VARIABLES PARA ARCHIVO ###############

    escribir_archivo_header_finiquito($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $monto_total);
    //--------------------------------------------------//
    //-------------------------BODY----------------------/

    escribir_archivo_body_finiquito($cedulas, $file, $enlace, $nomina, $n_alterno);


    //---------------------------------------------------//
    //-------------FOOTER--------------------------------//
    escribir_archivo_footer($file, $monto_total, $cedulas);

    header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename=' . $nombre_archivo);
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($nombre_archivo));


    //########### Para producciÃ³n:
    $contenido_codificado = base64_encode(file_get_contents($nombre_archivo));;

    $nombre_archivo = "nomina.txt";

    //########### Para pruebas con API solo mensaje:
    // $contenido_codificado = base64_encode("hola, esto es una prueba");
    // $nombre_archivo = "test.txt";


    if ($_POST['contrasena'] == 'C0n5ul74') {
      $result_upload = api_upload_Folder($nombre_archivo, $contenido_codificado); //////COMETARIADO NO TRANSMITE AL BANCO


      $query_update = "UPDATE liquidaciones SET envio_banesco = 'Si', fecha_pago='" . $fecha_pagar_nomina . "',estado_liquidacion='pagado' WHERE id='" . $_SESSION['id_validar'] . "' AND estado_liquidacion = 'Aprobado' AND envio_banesco != 'Si'";
      $result_update = mysqli_query($enlace, $query_update);
    }



    //########### Para pruebas sin API, descargar archivo TXT:
    // echo "<style>
    // 		.regristrado{
    // 			color: green;
    // 			margin-left: 7%;
    // 			font-weight: bold;
    // 		}
    // 	</style>";
    // echo "<p class='regristrado'>Archivo guardado correctamente<p>";
    // echo "<script>
    // 				window.location.href = 'generar_txt.php?fileBank=$nombre_archivo';
    // 			</script>";



    #### TERMINA: GENERACIÃN DE ARCHIVO BANESCOECO PARA ENVÃO MEDIANTE API ####
    ///FIN PAGO DE FINIQUITOS

    ///////////////////////////////////////////////////////////////////////////////////////

    ////INICIA PAGO DE FIDEICOMISO
  } else if ($_POST['nomina'] == 'nomina_fideicomiso') {
    # wORKING
    $fecha_pago = $_POST['fecha_pago'];
    //-------------CREACIÃN DE EL ARCHIVO DE FIDEICOMISO/////////

    // Recolecto el listado de cedulas correspondientes al periodo vigente
    $query = "SELECT DISTINCT cedula FROM `prestaciones_fideicomiso` WHERE id='" . $_SESSION['id_validar'] . "' AND desperiodo ='$desperiodo' AND nomina = '$tipo_nomina_post'";

    $resultado = mysqli_query($enlace, $query);
    $cedulas = [];
    while ($datesCodes = mysqli_fetch_array($resultado)) {
      $cedulas[] = $datesCodes['cedula'];
    }

    $tipo_nomina = "99999990";
    $correlativo = "X"; ///Autoincremental
    $fecha_tramite = end($diashabiles);
    $fecha_pagar_nomina = str_replace("-", "", $fecha_pago);

    $timestamp = strtotime($fecha_pago);
    $fechaPago = date("d-m-Y", $timestamp);

    //Define la semana de este periodo
    /*
    $semanainicio = $semanainicio - 1;
	  $semanainicio = '3'; ///Manualmente se da el numero de la quincena para nomina Quincenal
	 */
    if ($tipo_nomina_post == '100') {
      $semanainicio = $semanainicio; //Define la semana de este periodo

    } else if ($tipo_nomina_post == '200') {
      $semanainicio = $quincena - 1; ////////////para nomina mensual
    }
    //-------------------------------------------------//
    $nombre_archivo = "fideicomiso.txt";
    $file = fopen($nombre_archivo, "w+");

    //----------------------------HEADER--------------//
    $sumaMontoTotal = suma_total_fideicomiso($cedulas, $enlace, $desperiodo, $tipo_nomina_post);
    $montoTotalCorreo = $sumaMontoTotal / 100;

    escribir_archivo_header_nomina_fideicomiso($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $sumaMontoTotal);
    escribir_archivo_body_fideicomiso($cedulas, $file, $enlace, $queryF, $desperiodo, $n_alterno, $tipo_nomina_post);
    escribir_archivo_footer($file, $sumaMontoTotal, $cedulas);

    header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename=' . $nombre_archivo);
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($nombre_archivo));

    //########### Para producciÃ³n:
    $contenido_codificado = base64_encode(file_get_contents($nombre_archivo));;
    //########### Para pruebas con API solo mensaje:
    // $contenido_codificado = base64_encode("hola, esto es una prueba");
    // $nombre_archivo = "test.txt";
    //Envía correo
    $nombre_archivo = "fideicomiso.txt";
    if ($_POST['contrasena'] == 'C0n5ul74') {

      ///Transmite el archivo vía API
      $result_upload = api_upload_Folder($nombre_archivo, $contenido_codificado); //////COMENTARIADA NO ENVIA AL BANCO
      
      ///Envía el correo de notificación
      enviar_correo_fideicomisos($tipo_nomina_post, $semanainicio, $fechaPago, $n, $year, $type, $correlativo, $montoTotalCorreo);

      /////Actualiza la fecha de pago
      $queryUpdate = "UPDATE `prestaciones_fideicomiso` SET fecha_pago =  '$fecha_pago' WHERE id='" . $_SESSION['id_validar'] . "' AND desperiodo ='$desperiodo' AND nomina = '$tipo_nomina_post'";
      $resultadoUpdate = mysqli_query($enlace, $queryUpdate);

      
      
      ///Variables que va a insertar en [envios_bancos]
      $descripcion = 'Fideicomiso de la ' . ($tipo_nomina_post == 100 ? 'Semana ' : 'Quincena ') . $semanainicio ;
      $tipo_proceso = 'fideicomiso' ;
      $tipo_nomina = ($tipo_nomina_post == 100 ? "D" : "M" ) ;
      $correlativo_banco = '0'.$n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) ;
      $fecha_envio = date('Y-m-d') ;
      $id_empresa = $_SESSION['id_validar'] ;


      ///Inserta el registro del pago en la tabla [envios_bancos]
      insertar_registros_enviados($enlace, $descripcion,$tipo_proceso,$tipo_nomina, $semanainicio, $correlativo_banco, $fecha_envio, $fecha_pago, $montoTotalCorreo, $id_empresa) ;



     }

    //########### Para pruebas sin API, descargar archivo TXT:
    // echo "<style>
    // 		.regristrado{
    // 			color: green;
    // 			margin-left: 7%;
    // 			font-weight: bold;
    // 		}
    // 	</style>";
    // echo "<p class='regristrado'>Archivo guardado correctamente<p>";
    // echo "<script>
    // 				window.location.href = 'generar_txt.php?fileBank=$nombre_archivo';
    // 			</script>";
    ////// FIN DE PAGO DE Fideicomiso

    ////////////////////////////////////////////////////////////////////////

    //////////INICIA PAGO DE DIAS ADICIONALES DE Fideicomiso
    # WORKING
  } else if ($_POST['nomina'] == 'nomina_dias_adic_fideicomiso') {
    $fecha_pago = $_POST['fecha_pago'];
    $desperiodo = $_POST['detalle_adic_prest']; //// se da manualmente el periodo
    //-------------CREACIÃN DE EL ARCHIVO DE FIDEICOMISO/////////

    // Recolecto el listado de cedulas correspondientes al periodo vigente
    $cedulas = obtener_cedulas_dias_adicionales_fideicomisos($enlace, $desperiodo, $tipo_nomina_post);

    $tipo_nomina = "99999990";
    $correlativo = "Y"; ///Autoincremental
    $fecha_tramite = end($diashabiles);
    $fecha_pagar_nomina = str_replace("-", "", $fecha_pago);

    $timestamp = strtotime($fecha_pago);
    $fechaPago = date("d-m-Y", $timestamp);

    //Define la semana de este periodo

    /*
	  $semanainicio = $semanainicio - 1;
  	  //$semanainicio = '2'; ///Manualmente se da el numero de la quincena para nomina Quincenal
	  */

    if ($tipo_nomina_post == '100') {
      $semanainicio = $semanainicio - 1; //Define la semana de este periodo

    } else if ($tipo_nomina_post == '200') {
      $semanainicio = $quincena - 1; ////////////para nomina mensual
    }

    //-------------------------------------------------//
    $nombre_archivo = "fideicomiso.txt";
    $file = fopen($nombre_archivo, "w+");

    //----------------------------HEADER--------------//
    $sumaMontoTotal = suma_total_fideicomiso($cedulas, $enlace, $desperiodo, $tipo_nomina_post);
    $montoTotalCorreo = $sumaMontoTotal / 100;

    escribir_archivo_header_nomina_fideicomiso($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $dateNow, $fecha_pagar_nomina, $sumaMontoTotal);
    escribir_archivo_body_fideicomiso($cedulas, $file, $enlace, $queryF, $desperiodo, $n_alterno, $tipo_nomina_post);
    escribir_archivo_footer($file, $sumaMontoTotal, $cedulas);
   
    header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename=' . $nombre_archivo);
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($nombre_archivo));


    //########### Para producciÃ³n:
    $contenido_codificado = base64_encode(file_get_contents($nombre_archivo));;
    $nombre_archivo = "fideicomiso.txt";

    //########### Para pruebas con API solo mensaje:
    // $contenido_codificado = base64_encode("hola, esto es una prueba");
    // $nombre_archivo = "test.txt";

    //EnvÃ­a correo


    if ($_POST['contrasena'] == 'C0n5ul74') {

      ///Transmite el archivo vía API
      $result_upload = api_upload_Folder($nombre_archivo, $contenido_codificado); //////COMENTARIADA NO ENVIA AL BANCO
      
      ///Envía el correo de notificación
      enviar_correo_dias_adic_fideicomiso($desperiodo, $tipo_nomina_post,  $n, $year, $type, $correlativo, $semanainicio, $fechaPago, $montoTotalCorreo);

      /////Actualiza la fecha de pago
      $queryUpdate = "UPDATE `prestaciones_fideicomiso` SET fecha_pago =  '$fecha_pago' WHERE id='" . $_SESSION['id_validar'] . "' AND desperiodo ='$desperiodo' AND nomina = '$tipo_nomina_post'";
      $resultadoUpdate = mysqli_query($enlace, $queryUpdate);

      ///Variables que va a insertar en [envios_bancos]
      $descripcion = 'Dias Adicionales de Fideicomiso de la Nomina ' . ($tipo_nomina_post == 100 ? 'DIARIA ' : 'MENSUAL ') ;
      $tipo_proceso = 'fideicomiso' ;
      $tipo_nomina = ($tipo_nomina_post == 100 ? "D" : "M" ) ;
      $correlativo_banco = '0'.$n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) ;
      $fecha_envio = date('Y-m-d') ;
      $id_empresa = $_SESSION['id_validar'] ;

      ///Inserta el registro del pago en la tabla [envios_bancos]
      insertar_registros_enviados($enlace, $descripcion,$tipo_proceso,$tipo_nomina, $semanainicio, $correlativo_banco, $fecha_envio, $fecha_pago, $montoTotalCorreo, $id_empresa) ;


    }




    //########### Para pruebas sin API, descargar archivo TXT:
    // echo "<style>
    // 		.regristrado{
    // 			color: green;
    // 			margin-left: 7%;
    // 			font-weight: bold;
    // 		}
    // 	</style>";
    // echo "<p class='regristrado'>Archivo guardado correctamente<p>";
    // echo "<script>
    // 				window.location.href = 'generar_txt.php?fileBank=$nombre_archivo';
    // 			</script>";

    ///////////////FIN DE PAGO DE DIAS ADICIONALES DE FIDEICOMISO ////

    /////////////////////////////////////////////////////////////////////////////////////

    /////INICIO DE PAGO DE UTILIDADES
  } else if ($_POST['nomina'] == 'utilidades') {
    $fecha_pago = $_POST['fecha_pago'];
    $nomina = $_POST['tipo_nomina'];

    #### INICIA: GENERACIÓN DE ARCHIVO BANSECO PARA ENVÍO MEDIANTE API ####
    $sumaMontoTotal = 0;

    $cedulas = obtener_cedulas_utilidades($enlace, $nomina);

    if (empty($cedulas)) {
      mostrar_mensaje_sin_registros();
    }

    ########### INICIO: DEFINICIÃN DE VARIABLES PARA ARCHIVO ###############
    $tipo_nomina = "99999990";
    $fecha_pagar_nomina = str_replace("-", "", $fecha_pago);

    $timestamp = strtotime($fecha_pago);
    $fechaPago = date("d-m-Y", $timestamp);

    //$semanainicio = date("W", strtotime($fecha_inicio_periodo)) + 1; //Define la semana de este periodo
    //$semanainicio = '02'; ///Aqui para que funcione quicnenal para nomina mensual , quitar el comentario -- Miguelangel
    $semanainicio = date("m", $timestamp);


    // A partir del tipo de nomina, se declara un autoincrementable
    if ($nomina == '100') {
      $n = 2;
      $n_alterno = 21;
    } else if ($nomina == '200') {
      $n = 1;
      $n_alterno = 11;
    }

    $year = date('y'); //AÃ±o actual
    $type = 4;
    $correlativo = "K";
    $dateNow = date('Ymd'); //Fecha actual
    //Archivo a generar
    $nombre_archivo = "nomina.txt";
    $file = fopen($nombre_archivo, "w+");

    $sumaMontoTotal = obtener_monto_total_utilidades($enlace,  $nomina);
    escribir_archivo_header_utilidades($file, $tipo_nomina, $n, $year, $type, $correlativo, $semanainicio, $semanafin, $dateNow, $fecha_pagar_nomina, $sumaMontoTotal);
    escribir_archivo_body_utilidades($cedulas, $file, $nomina, $enlace, $n_alterno);
    escribir_archivo_footer($file, $sumaMontoTotal, $cedulas);

    header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename=' . $nombre_archivo);
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($nombre_archivo));

    //########### Para producciÃ³n:
    $contenido_codificado = base64_encode(file_get_contents($nombre_archivo));;

    $nombre_archivo = "nomina.txt";

    //########### Para pruebas con API solo mensaje:
    // $contenido_codificado = base64_encode("hola, esto es una prueba");
    // $nombre_archivo = "test.txt";
    //

    ////COMENTARIADA NO TRANSMITE AL BANCO


    if ($_POST['contrasena'] == 'C0n5ul74') {
      $result_upload = api_upload_Folder($nombre_archivo, $contenido_codificado); ////COMENTARIADA NO TRANSMITE AL BANCO
      ///Actualizo el estatus del envio al BANCO

      enviar_correo_utilidades($tipo_nomina_post, $semanainicio, $fechaPago, $n, $year, $type, $correlativo, $sumaMontoTotal);


      $query_update = "UPDATE utilidades SET envio_banesco = 'Si' WHERE id='" . $_SESSION['id_validar'] . "' AND nomina = '$nomina' AND aprobacion_contab1 = 'Aprobado' AND aprobacion_contab2 = 'Aprobado'  AND envio_banesco != 'Si'";
      $result_update = mysqli_query($enlace, $query_update);

      ///Variables que va a insertar en [envios_bancos]
      $descripcion = 'Utilidades ' . ($tipo_nomina_post == 100 ? 'Semana ' : 'Mes ') . ($semanainicio-1) ;
      $tipo_proceso = 'utilidades' ;
      $tipo_nomina = ($tipo_nomina_post == 100 ? "D" : "M" ) ;
      $correlativo_banco = '0'.$n . $year . $type . $correlativo . str_pad($semanainicio, 2, "0", STR_PAD_LEFT) ;
      $fecha_envio = date('Y-m-d') ;
      $id_empresa = $_SESSION['id_validar'] ;
      $MontoTotal = $sumaMontoTotal / 100 ;


      ///Inserta el registro del pago en la tabla [envios_bancos]
      insertar_registros_enviados($enlace, $descripcion,$tipo_proceso,$tipo_nomina, $semanainicio, $correlativo_banco, $fecha_envio, $fecha_pago, $MontoTotal, $id_empresa) ;

    }




    //########### Para pruebas sin API, descargar archivo TXT:
    // echo "<style>
    // 		.regristrado{
    // 			color: green;
    // 			margin-left: 7%;
    // 			font-weight: bold;
    // 		}
    // 	</style>";
    // echo "<p class='regristrado'>Archivo guardado correctamente<p>";
    // echo "<script>
    // 				window.location.href = 'generar_txt.php?fileBank=$nombre_archivo';
    // 			</script>";



    #### TERMINA: GENERACIÃN DE ARCHIVO BANSECO PARA ENVÃO MEDIANTE API ####


  }
}


$query = "SELECT * FROM nomina";
$consulta = mysqli_query($enlace, $query);
$resultado = mysqli_num_rows($consulta);


//--Desde - Hasta Consulta
$consultaDesdeHastaDiaria = mysqli_query($enlace, "SELECT `desde`,`hasta` from periodo where nomina='" . $_SESSION['id_validar'] . "'");

// var_dump($fila);
//guardado de datos
////SCRIPTS///
?>

<head>
  <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
  <script src="autocompletar/js/bootstrap3-typeahead.min.js"></script>

  <link rel="stylesheet" href="css/timepicker.min.css">
  <script src="js/timepicker.min.js"></script>

  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

  <script src='js/bootstrap.min.js'></script>

  <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
	integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
		integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
		crossorigin="anonymous"></script> -->
  <!--
<script src="//cdn.datatables.net/1.10.25/js/jquery.dataTables.min.js"></script>
<link rel="stylesheet" href="//cdn.datatables.net/1.10.25/css/jquery.dataTables.min.css"> -->



</head>
<style>
  <?php include "css/generar_bancos.css" ?>
</style>

<body>
  <?php

  //////////////////////////////////////////////////////////////////////////////// INICIO MENU DE OPCIONES
  echo "<main class='container'>";
  echo "<section class='row text-center'>";
  echo "<h2 class='text-dark text-left'><b>Generar bancos</b></h2>";
  // echo $_SERVER['PHP_SELF']."&codigo=".$_SESSION['codigo_cedula'];

  if (isset($result_upload) && $result_upload != "") {
    echo "<div id='response_alert'>";
    echo $result_upload["response"];
    echo "</div>";
  }

  if (isset($contenido_codificado)) {
    echo "<div id='base_64'>";
    echo "<div class='form-group'>";
    echo "<label for='base64_content'>Contenido Codificado</label>";
    echo "<textarea class='form-control' id='base64_content' rows='10' readonly>$contenido_codificado</textarea>";
    echo "</div>";
    echo "</div>";
    echo $result_upload["response"];
    echo "</div>";
  }

  echo "<div class='col-sm-12 justify-content-center m-auto'>";
  echo "<form autocomplete='off' name = 'entrada' action = '" . $_SERVER['PHP_SELF'] . "' method = 'POST'  enctype='multipart/form-data'>";
  echo "<input type = 'hidden' name = 'inicio' value = '1'>";
  echo "<div class='form-group form-inline' style='padding-top: 20px;'>";
  echo "<label name='label-novedad'>Tipo de Archivo:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
                    <select style='width:250px;' name='nomina' id='nomina' class='form-control'required>
                        <option value='' selected> Seleccione";
  echo "<option value='nomina_ordinaria'>Nómina a Pagar</option>";
  echo "<option value='pagos_especiales'>Pagos Especiales (F)</option>";
  echo "<option value='providencia_adtva'>Providencia Adtva(G)</option>";
  echo "<option value='reenvios_especiales_otros1'>Reenvios Espec y otros espec(H)</option>";
  echo "<option value='reenvios_especiales_otros2'>Reenvios Espec y otros espec(I)</option>";
  echo "<option value='reenvios_especiales_otros3'>Reenvios Espec y otros espec(J)</option>";
  echo "<option value='nomina_fideicomiso'>Fideicomiso</option>";
  echo "<option value='nomina_cestaticket'>Cestaticket</option>";
  echo "<option value='vacaciones'>Vacaciones</option>";
  echo "<option value='finiquitos'>Finiquitos</option>";
  echo "<option value='nomina_contingencia'>Contingencia</option>";
  echo "<option value='utilidades'>Utilidades</option>";
  echo "<option value='nomina_dias_adic_fideicomiso'>Dias Adic Fideicomiso</option>";

  echo "</select>";
  echo "</div>&nbsp;&nbsp;";
  echo "<div class='form-group form-inline'>";
  echo "<label name='label-novedad'>Tipo de Nómina:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
                    <select style='width:250px;' name='tipo_nomina' id='tipo_nomina' class='form-control'required>
                        <option value='' selected> Seleccione";
  while ($fila = mysqli_fetch_array($consulta)) {
    echo "<option value='" . $fila['codigo'] . "'>" . ucwords(strtolower($fila['detalle'])) . "";
  }
  echo "</select>";
  echo "</div>&nbsp;&nbsp;";



  echo "<div class='form-group form-inline' id='div_periodo'>";
  echo "<label name='label-novedad'>Período:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
                    <select style='width:250px;' name='periodo' id='periodo' class='form-control' required>
                        <option value='' selected> Seleccione";
  echo "</select>";

  echo "
            </div>&nbsp;&nbsp;";

  //Agregado por Miguelangel para que funcione con una Contraseña de envÃ­o --- 19/10/22
  echo "<div class='form-group form-inline' id='div_contrasena'>";
  echo "<span class='col-sm-12 '> ";
  echo "<label name='label-novedad'>Contraseña:</label>";
  echo "</span>";
  echo "<td  align = 'left'> <input type='password' name='contrasena' size = '20' maxlength = '8'>  </td>";
  echo "</div>";
  ///Hasta aquÃ­

  ///AquÃ­ le doy manualmente el Nro de contingencia 
  echo "<div class='form-group form-inline' id='div_numero_contingencia' style='display:none'>";
  echo "<span class='col-sm-12 '> ";
  echo "<label name='label-novedad'>Nro. Contingencia:</label>";
  echo "</span>";
  echo "<input type='text' style='height: 30px;text-align: center;' id='numero_contingencia' name='numero_contingencia' >";
  echo "</div>";

  ///AquÃ­ le doy manualmente el PERIODO DE DIAS ADICIONALES PRESTACIONES
  echo "<div class='form-group form-inline' id='div_periodo_adicionales_fideicomiso' style='display:none'>";
  echo "<span class='col-sm-12 '> ";
  echo "<label name='label-novedad'>Detalle dias adicionales Fideicomiso:</label>";
  echo "</span>";
  echo "<input type='text' style='height: 30px;text-align: center;' id='detalle_adic_prest' name='detalle_adic_prest' >";
  echo "</div>";


  echo "<div class='form-group form-inline' id='div_fecha_pago' style='display:none'>";
  echo "<span class='col-sm-12 '> ";
  echo "<label name='label-novedad'>Fecha de pago:</label>";
  echo "</span>";
  echo "<input type='text' style='height: 30px;text-align: center;' id='fecha_pago' name='fecha_pago' >";
  echo "</div>";

  echo "<div class='form-group form-inline' id='div_fecha_pagar_nomina' style='display:none'>";
  echo "<span class='col-sm-12 '> ";
  echo "<label name='label-novedad' style='color: red;'>Fecha pagar Contingencia (unicamente para Nomina Mensual):</label>";
  echo "</span>";
  echo "<input type='text' style='height: 30px;text-align: center;' id='fecha_pagar_nomina' name='fecha_pagar_nomina' >";
  echo "</div>";
  
  echo "<div class='form-group form-inline' id='div_quinc_conting_mensual' style='display:none'>";
  echo "<span class='col-sm-12 '> ";
  echo "<label name='label-novedad' style='color: red;'>Quincena de Contingencia (unicamente para Nomina Mensual):</label>";
  echo "</span>";
  echo "<input type='text' style='height: 30px;text-align: center;' id='quinc_conting_mensual' name='quinc_conting_mensual' >";
  echo "</div>";



  echo '<input name="generarBanco" type="submit" class="boton" id="enviarNomina" value="Transmitir reporte"></input>';
  echo "</form>";
  echo "</section>";
  echo "</main>";

  ?>

  <script type="text/javascript" src="js/generar_bancos.js"></script>
</body>

</html>