<?php
  session_start();
  //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');
  }
  //RESTRICCIÓN DE ACCESO A TRABAJADOR (ACCESO INDIVIDUAL)

  include ("fphp.php");
  include ("calendario/calendario.php");
  require_once 'PHPExcel/PHPExcel.php';

  $idValidar = $_SESSION['id_validar'];
  $enlace=cargar_conexion();
  $consulta=mysqli_query($enlace,"SELECT * FROM periodo WHERE id='$idValidar' ORDER BY nomina, periodo DESC LIMIT 1");
  if (mysqli_num_rows($consulta)!=0){
    $row=mysqli_fetch_array($consulta);
    $per=mostrar_fecha($row['desde']).' al '.mostrar_fecha($row['hasta'])." (Nom:".$row['nomina'].")";
  }
  else{
    $per='';
  }

  $mensaje = "";
  $exito = true;
  function generarReporteAsientosNomina ($enlace) {
    $fecha_procesado = date("d-m-Y");

    $fechaDesde = strtotime($_POST['fechaDesde']);
    $fechaHasta = strtotime($_POST['fechaHasta']);
    $fDesde= date('Y-m-d', $fechaDesde);
    $fHasta = date('Y-m-d', $fechaHasta);
    $idValidar = $_SESSION['id_validar'];

    $queryData = "SELECT  #Nomina regular
    h.nomina AS columnaA,
    h.cedula AS columnaC,
    CONCAT('Nomina del ',h.desperiodo) AS columnaD,
    c.codigo AS columnaE,
    if(c.cuenta = 'labor',p.cuenta_labor,c.cuenta) AS columnaF,
    if(c.cuenta = 'labor',p.subcuenta_labor,c.subcuenta) AS columnaG,
    IF(h.tipo = 'A',h.monto,0) as columnaH,
    IF(h.tipo = 'D',h.monto,0) as columnaI,
    c.detalle AS columnaJ,
    h.cedula AS columnaK,
    0 AS columnaL,
    p.departamento AS columnaM,
    1 AS orden, c.tipo AS tipo
    FROM historico h,concepto c, personal p
    WHERE h.id='100' #  AND h.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND substr(h.desperiodo,15,10) BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = h.id
    AND p.id = h.id
    AND p.codigo = h.cedula
    AND c.codigo = h.concepto
    AND h.tipo IN ('A','D')
    UNION ALL
    SELECT #cesta ticket
    h.nomina AS columnaA,
    h.cedula AS columnaC,
    c.detalle AS columnaD,
    c.codigo AS columnaE,
    c.cuenta AS columnaF,
    c.subcuenta AS columnaG,
    IF(c.tipo = 'A',h.monto,0) as columnaH,
    IF(c.tipo = 'D',h.monto,0) as columnaI,
    c.detalle AS columnaJ,
    h.cedula AS columnaK,
    0 AS columnaL,
    p.departamento AS columnaM,
    2 AS orden, c.tipo AS tipo
    FROM historico_cestaticket h,concepto_especiales c, personal p
    WHERE h.id='100'
    AND h.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = h.id
    AND p.id = h.id
    AND p.codigo = h.cedula
    AND c.codigo = h.concepto
    AND c.tipo IN ('A','D')
    UNION ALL
    SELECT #nomina Especial
    h.nomina AS columnaA,
    h.cedula AS columnaC,
    c.detalle AS columnaD,
    c.codigo AS columnaE,
    c.cuenta AS columnaF,
    c.subcuenta AS columnaG,
    IF(c.tipo = 'A',h.monto,0) as columnaH,
    IF(c.tipo = 'D',h.monto,0) as columnaI,
    c.detalle AS columnaJ,
    h.cedula AS columnaK,
    0 AS columnaL,
    p.departamento AS columnaM,
    3 AS orden, c.tipo AS tipo
    FROM historico_nomina_especial h,concepto_especiales c, personal p
    WHERE h.id='100'
    AND h.fecha_pago >= '$fDesde' AND h.fecha_pago <= '$fHasta'
    AND c.id = h.id
    AND p.id = h.id
    AND p.codigo = h.cedula
    AND c.codigo = h.concepto
    AND c.tipo IN ('A','D')
    UNION ALL
    SELECT #utilidades
    u.nomina AS columnaA,
    u.cedula AS columnaC,
    CONCAT('Pago Utilidad ',u.detalle) AS columnaD,
    c.codigo AS columnaE,
    c.cuenta AS columnaF,
    c.subcuenta AS columnaG,
    IF(c.tipo = 'A',u.monto,0) as columnaH,
    IF(c.tipo = 'D',u.monto,0) as columnaI,
    c.detalle AS columnaJ,
    u.cedula AS columnaK,
    0 AS columnaL,
    p.departamento AS columnaM,
    4 AS orden, c.tipo AS tipo
    FROM utilidades u,concepto c, personal p
    WHERE u.id='100'
    AND u.fecha BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = u.id
    AND p.id = u.id
    AND p.codigo = u.cedula
    AND c.codigo = u.concepto
    AND c.tipo IN ('A','D')
    UNION ALL
    SELECT #prestaciones_fideicomiso
    f.nomina AS columnaA,
    f.cedula AS columnaC,
    f.desperiodo AS columnaD,
    c.codigo AS columnaE,
    c.cuenta AS columnaF,
    c.subcuenta AS columnaG,
    f.prestacion_monto as columnaH,
    0 as columnaI,
    c.detalle AS columnaJ,
    f.cedula AS columnaK,
    0 AS columnaL,
    p.departamento AS columnaM,
    5 AS orden, c.tipo AS tipo
    FROM prestaciones_fideicomiso f, concepto c, personal p
    WHERE f.id='100'
    AND f.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = f.id
    AND p.id = f.id
    AND p.codigo = f.cedula
    AND c.codigo = f.concepto
    UNION ALL
    SELECT #vacacion
    p.nomina AS columnaA,
    v.cedula AS columnaC,
    if(p.nomina = '200',CONCAT('Vacaciones NM ',v.fdesde),CONCAT('Vacaciones ND ',v.fdesde)) AS columnaD,
    c.codigo AS columnaE,
    if(c.codigo = '1975', p.cuenta_labor,c.cuenta) AS columnaF,
    if(c.codigo = '1975', p.subcuenta_labor, c.subcuenta) AS columnaG,
    abs(if(p.nomina = '200',
    IF(c.codigo = '1970',v.valor_dvac,
    if(c.codigo = '1971',v.valor_dias_ext,
    if(c.codigo = '1972',v.valor_otros_dias,
    if(c.codigo = '1973',v.valor_dbon,
    if(c.codigo = '1974',v.valor_dias_dinero,
    if(c.codigo = '1983',v.aporte_emp_rpvh,
    if(c.codigo = '1985',v.aporte_emp_inces,
    if(c.codigo = '4044',v.reserva_utilidades,
    if(c.codigo = '1975',v.valor_dias_sueldo,0))))))))),
    IF(c.codigo = '1960',v.valor_dvac,
    if(c.codigo = '1961',v.valor_dias_ext,
    if(c.codigo = '1962',v.valor_dbon,
    if(c.codigo = '1979',v.aporte_emp_rpvh,
    if(c.codigo = '1981',v.aporte_emp_inces,
    if(c.codigo = '4043',v.reserva_utilidades,
    if(c.codigo = '1963',v.valor_otros_dias,0)))))))))
    AS columnaH,
    abs(if(p.nomina = '200',
    IF(c.codigo = '1976',v.total_reserva,
    if(c.codigo = '1984',v.aporte_emp_rpvh_cxp,
    if(c.codigo = '1986',v.aporte_emp_inces_cxp,
    if(c.codigo = '4144',v.reserva_utilidades_cxp,
    if(c.codigo = '1977',v.rpvh,0))))),
    if(c.codigo = '1964',v.total_reserva,
    if(c.codigo = '1980',v.aporte_emp_rpvh_cxp,
    if(c.codigo = '1982',v.aporte_emp_inces_cxp,
    if(c.codigo = '4143',v.reserva_utilidades_cxp,
    if(c.codigo = '1965',v.rpvh,0)))))))  AS columnaI,
    c.detalle AS columnaJ,
    v.cedula AS columnaK,
    0 AS columnaL,
    p.departamento AS columnaM,
    6 AS orden, c.tipo AS tipo
    FROM vacacion v,conceptos_vacaciones c, personal p
    WHERE v.id='100'
    AND v.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = v.id
    AND p.id = v.id
    AND p.codigo = v.cedula
    AND p.nomina = c.nomina
    UNION ALL
    SELECT #liquidacion
    p.nomina AS columnaA,
    l.cedula AS columnaC,
    if(p.nomina = '200',CONCAT('Liquidaciones NM ',l.fecha_pago),CONCAT('Liquidaciones ND ',l.fecha_pago)) AS columnaD,
    c.codigo AS columnaE,
    if(c.codigo  in ('1910','1927','1948','1949'), p.cuenta_labor,c.cuenta) AS columnaF,
    if(c.codigo  in ('1910','1927','1948','1949'), p.subcuenta_labor, c.subcuenta) AS columnaG,
    abs(if(p.nomina = '200',
    IF(c.codigo = '1928',l.valor_ct_total,
    if(c.codigo = '1927',l.sueldos_pagar,
    if(c.codigo = '1929',l.valor_vaca_venc,
    if(c.codigo = '1930',l.valor_bonovac_venc,
    if(c.codigo = '1931',l.bono_post_vaca,
    if(c.codigo = '1932',l.valor_dias_vac_fraccion,
    if(c.codigo = '1933',l.valor_bonovac_fraccion,
    if(c.codigo = '1934',l.valor_utilid_pagar,
    if(c.codigo = '1935',l.prestaciones_pagar,
    if(c.codigo = '1936',l.valor_indem,
	  if(c.codigo = '1945',l.ncon01,
	  if(c.codigo = '1997',l.pago_fondo_ahor,
    if(c.codigo = '1983',l.aporte_emp_rpvh,
    if(c.codigo = '1985',l.inces_empresa,
	if(c.codigo = '4044',l.reserva_utilidades,
    if(c.codigo = '1991',l.sso_empresa,
    if(c.codigo = '1993',l.rpe_empresa,0))))))))))))))))),
    IF(c.codigo = '1911',l.valor_ct_total,
    if(c.codigo = '1910',l.sueldos_pagar,
    if(c.codigo = '1912',l.valor_vaca_venc,
    if(c.codigo = '1913',l.valor_bonovac_venc,
    if(c.codigo = '1914',l.bono_post_vaca,
    if(c.codigo = '1915',l.valor_dias_vac_fraccion,
    if(c.codigo = '1916',l.valor_bonovac_fraccion,
    if(c.codigo = '1917',l.valor_utilid_pagar,
    if(c.codigo = '1918',l.prestaciones_pagar,
	  if(c.codigo = '1919',l.valor_indem,
	  if(c.codigo = '1944',l.ncon01,
	  if(c.codigo = '1996',l.pago_fondo_ahor,
    if(c.codigo = '1979',l.aporte_emp_rpvh,
    if(c.codigo = '1981',l.inces_empresa,
	if(c.codigo = '4043',l.reserva_utilidades,
    if(c.codigo = '1987',l.sso_empresa,
    if(c.codigo = '1989',l.rpe_empresa,0)))))))))))))))))))
    AS columnaH,
    abs(if(p.nomina = '200',
    IF(c.codigo = '1937',l.valor_sso,
    if(c.codigo = '1938',l.valor_rpe,
    if(c.codigo = '1939',l.faov,
    if(c.codigo = '1940',l.valor_islr,
    if(c.codigo = '1941',l.inces,
    if(c.codigo = '1942',l.fideicomiso,
    if(c.codigo = '1943',l.neto_pagar_liq,
	  if(c.codigo = '1947',l.ncon02,
    if(c.codigo = '1949',l.valor_dpnlabor,
    if(c.codigo = '1984',l.aporte_emp_rpvh_cxp,
    if(c.codigo = '1986',l.inces_empresa_cxp,
	if(c.codigo = '4144',l.reserva_utilidades_cxp,
    if(c.codigo = '1992',l.sso_empresa_cxp,
    if(c.codigo = '1994',l.rpe_empresa_cxp,0)))))))))))))),
    if(c.codigo = '1920',l.valor_sso,
    if(c.codigo = '1921',l.valor_rpe,
    if(c.codigo = '1922',l.faov,
    if(c.codigo = '1923',l.valor_islr,
    if(c.codigo = '1924',l.inces,
    if(c.codigo = '1925',l.fideicomiso,
	  if(c.codigo = '1925',l.neto_pagar_liq,
    if(c.codigo = '1946',l.ncon02,
	if(c.codigo = '1998',l.	adeuti,
	
    if(c.codigo = '1948',l.valor_dpnlabor,
    if(c.codigo = '1980',l.aporte_emp_rpvh_cxp,
    if(c.codigo = '1982',l.inces_empresa_cxp,
	if(c.codigo = '4143',l.reserva_utilidades_cxp,
    if(c.codigo = '1988',l.sso_empresa_cxp,
    if(c.codigo = '1990',l.rpe_empresa_cxp,0)))))))))))))))))  AS columnaI,
    c.detalle AS columnaJ,
    l.cedula AS columnaK,
    0 AS columnaL,
    p.departamento AS columnaM,
    7 AS orden, c.tipo AS tipo
    FROM liquidaciones l,conceptos_liquidaciones c, personal p
    WHERE l.id='100'
    AND l.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = l.id
    AND p.id = l.id
    AND p.codigo = l.cedula
    AND p.nomina = c.nomina
    AND c.tipo IN ('A','D')
    order BY orden,1,3,2,tipo,4;";


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

    $nFilas = mysqli_num_rows($resultados);
    $row = [];
    //$row=mysqli_fetch_array($resultados)
    if($nFilas > 0){
      $row=mysqli_fetch_array($resultados);
    }
    else{
      die("No se encontraron registros");
    }

    $objPHPExcel = new PHPExcel();

    PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);

    // --------------------------Cabecera---------------------------------

      $objPHPExcel->getActiveSheet()->setCellValue("A1","Tipo documento");
      $objPHPExcel->getActiveSheet()->setCellValue("B1","Consecutivo");
      $objPHPExcel->getActiveSheet()->setCellValue("C1","Tercero");
      $objPHPExcel->getActiveSheet()->setCellValue("D1","Descripcion");
      $objPHPExcel->getActiveSheet()->setCellValue("E1","Concepto");
      $objPHPExcel->getActiveSheet()->setCellValue("F1","Cuenta");
      $objPHPExcel->getActiveSheet()->setCellValue("G1","SubCuenta");
      $objPHPExcel->getActiveSheet()->setCellValue("H1","Debito");
      $objPHPExcel->getActiveSheet()->setCellValue("I1","Credito");
      $objPHPExcel->getActiveSheet()->setCellValue("J1","Descripcion");
      $objPHPExcel->getActiveSheet()->setCellValue("K1","Cedula");
      $objPHPExcel->getActiveSheet()->setCellValue("L1","mmmm");
      $objPHPExcel->getActiveSheet()->setCellValue("M1","Departamento");
      $objPHPExcel->getActiveSheet()->setCellValue("N1","Cuenta & Sub Cta");
      $objPHPExcel->getActiveSheet()->setCellValue("O1","Cuenta Mayor");
      $objPHPExcel->getActiveSheet()->getStyle("A1:P1")->getFont()->setBold( true );

    // --------------------------Cabecera---------------------------------

    // ----------------------------Data-----------------------------------

      $position = 2;
      $cedula = $row["columnaK"];
      $acumuladorCredito = 0;
      $acumuladorDebito = 0;
      $colA = $row["columnaA"];
      $colC = $row["columnaC"];
      $colD = $row["columnaD"];
      $colL = $row["columnaL"];
      $colM = $row["columnaM"];
      $colOrden = $row["orden"];
      $colTipo = $row["tipo"];

      do{
        if($cedula !== $row["columnaK"]){
          $columnaB = $colA.$colD.$colM;
          $colI = $acumuladorDebito - $acumuladorCredito;
          if($colA=='200' ){
            $cuentaCierre="20C02";
            $subCuentaCierre ="0220";
            $nombreCuenta = "TOTAL NETO";
            if ($colOrden==5){
              $cuentaCierre="20C08";
              $subCuentaCierre ="GEHO";

            }
          }

          else{
            $cuentaCierre="20C01";
            $subCuentaCierre ="0210";
            $nombreCuenta = "TOTAL NETO";
            if ($colOrden==5){
              $cuentaCierre="20C08";
              $subCuentaCierre ="GESA";

            }
          }
          if ($colOrden==5){ $nombreCuenta = "DEPOSITO FIDEICOMISO"; }
          if ($colOrden==6){ $nombreCuenta = "NETO PAGADO VACACIONES"; }
          if ($colOrden==7){ $nombreCuenta = "NETO PAGADO LIQUIDACION"; }


          $objPHPExcel->getActiveSheet()->setCellValue("A".$position, $colA);
          $objPHPExcel->getActiveSheet()->setCellValue("B".$position, $columnaB);
          $objPHPExcel->getActiveSheet()->setCellValue("C".$position, $colC);
          $objPHPExcel->getActiveSheet()->setCellValueExplicit("D".$position, $colD, PHPExcel_Cell_DataType::TYPE_STRING);
          $objPHPExcel->getActiveSheet()->setCellValue("E".$position, "");
          $objPHPExcel->getActiveSheet()->setCellValueExplicit("F".$position, $cuentaCierre, PHPExcel_Cell_DataType::TYPE_STRING);
          $objPHPExcel->getActiveSheet()->setCellValueExplicit("G".$position, $subCuentaCierre,PHPExcel_Cell_DataType::TYPE_STRING);
          $objPHPExcel->getActiveSheet()->setCellValue("H".$position, "0");
          $objPHPExcel->getActiveSheet()->setCellValue("I".$position, $colI);
          $objPHPExcel->getActiveSheet()->setCellValueExplicit("J".$position, $nombreCuenta, PHPExcel_Cell_DataType::TYPE_STRING);
          $objPHPExcel->getActiveSheet()->setCellValue("K".$position, $cedula);
          $objPHPExcel->getActiveSheet()->setCellValueExplicit("L".$position, $colL, PHPExcel_Cell_DataType::TYPE_STRING);
          $objPHPExcel->getActiveSheet()->setCellValueExplicit("M".$position, $colM, PHPExcel_Cell_DataType::TYPE_STRING);
          $objPHPExcel->getActiveSheet()->setCellValueExplicit("N".$position, $cuentaCierre.$subCuentaCierre , PHPExcel_Cell_DataType::TYPE_STRING);
          $objPHPExcel->getActiveSheet()->setCellValueExplicit("O".$position, str_pad($cuentaCierre, 8, ' ', STR_PAD_RIGHT).$subCuentaCierre, PHPExcel_Cell_DataType::TYPE_STRING);


          $cedula = $row["columnaK"];
          $acumuladorCredito = 0;
          $acumuladorDebito = 0;
          $position++;

          $colA = $row["columnaA"];
          $colC = $row["columnaC"];
          $colD = $row["columnaD"];
          $colL = $row["columnaL"];
          $colM = $row["columnaM"];
          $colOrden = $row["orden"];
        }

        $acumuladorCredito = $acumuladorCredito + $row["columnaI"];
        $acumuladorDebito = $acumuladorDebito + $row["columnaH"];

        $columnaB = $row["columnaA"].$row["columnaD"].$row["columnaM"];
        if ($colTipo == 'D') { $columnaB = $columnaB.$row["columnaM"];}
        $objPHPExcel->getActiveSheet()->setCellValue("A".$position, $row["columnaA"]);
        $objPHPExcel->getActiveSheet()->setCellValue("B".$position, $columnaB);
        $objPHPExcel->getActiveSheet()->setCellValue("C".$position, $row["columnaC"]);
        $objPHPExcel->getActiveSheet()->setCellValueExplicit("D".$position, $row["columnaD"], PHPExcel_Cell_DataType::TYPE_STRING);
        $objPHPExcel->getActiveSheet()->setCellValue("E".$position, $row["columnaE"]);
        $objPHPExcel->getActiveSheet()->setCellValueExplicit("F".$position, $row["columnaF"], PHPExcel_Cell_DataType::TYPE_STRING); // cuenta
        $objPHPExcel->getActiveSheet()->setCellValueExplicit("G".$position, $row["columnaG"], PHPExcel_Cell_DataType::TYPE_STRING); // sub cuenta
        $objPHPExcel->getActiveSheet()->setCellValue("H".$position, $row["columnaH"]); // débito
        $objPHPExcel->getActiveSheet()->setCellValue("I".$position, $row["columnaI"]); // crédito
        $objPHPExcel->getActiveSheet()->setCellValueExplicit("J".$position, $row["columnaJ"], PHPExcel_Cell_DataType::TYPE_STRING);
        $objPHPExcel->getActiveSheet()->setCellValue("K".$position, $row["columnaK"]);
        $objPHPExcel->getActiveSheet()->setCellValueExplicit("L".$position, $row["columnaL"], PHPExcel_Cell_DataType::TYPE_STRING);
        $objPHPExcel->getActiveSheet()->setCellValueExplicit("M".$position, $row["columnaM"], PHPExcel_Cell_DataType::TYPE_STRING);
        $objPHPExcel->getActiveSheet()->setCellValueExplicit("N".$position, $row["columnaF"].$row["columnaG"], PHPExcel_Cell_DataType::TYPE_STRING);
        $objPHPExcel->getActiveSheet()->setCellValueExplicit("o".$position, str_pad($row["columnaF"], 8, ' ', STR_PAD_RIGHT).$row["columnaG"], PHPExcel_Cell_DataType::TYPE_STRING);

       if($row["columnaH"]>0 || $row["columnaI"]>0) {
        $position++;
       }
      } while($row=mysqli_fetch_array($resultados));

      $columnaB = $colA.$colD.$colM;
      $colI = $acumuladorDebito - $acumuladorCredito;
      if($colA=='200' ){
        $cuentaCierre="20C02";
        $subCuentaCierre ="0220";
        $nombreCuenta = "TOTAL NETO";
        if ($colOrden==5){
          $cuentaCierre="20C08";
          $subCuentaCierre ="GEHO";
        }

      }
      else{
        $cuentaCierre="20C01";
        $subCuentaCierre ="0210";
        $nombreCuenta = "TOTAL NETO";
        if ($colOrden==5){
          $cuentaCierre="20C08";
          $subCuentaCierre ="GESA";
        }
      }
      if ($colOrden==5){ $nombreCuenta = "DEPOSITO FIDEICOMISO"; }
      if ($colOrden==6){ $nombreCuenta = "NETO PAGADO VACACIONES"; }
      if ($colOrden==7){ $nombreCuenta = "NETO PAGADO LIQUIDACION"; }


      $objPHPExcel->getActiveSheet()->setCellValue("A".$position, $colA);
      $objPHPExcel->getActiveSheet()->setCellValue("B".$position, $columnaB);
      $objPHPExcel->getActiveSheet()->setCellValue("C".$position, $colC);
      $objPHPExcel->getActiveSheet()->setCellValueExplicit("D".$position, $colD, PHPExcel_Cell_DataType::TYPE_STRING);
      $objPHPExcel->getActiveSheet()->setCellValue("E".$position, "");
      $objPHPExcel->getActiveSheet()->setCellValueExplicit("F".$position, $cuentaCierre, PHPExcel_Cell_DataType::TYPE_STRING);
      $objPHPExcel->getActiveSheet()->setCellValueExplicit("G".$position, $subCuentaCierre,PHPExcel_Cell_DataType::TYPE_STRING);
      $objPHPExcel->getActiveSheet()->setCellValue("H".$position, "0");
      $objPHPExcel->getActiveSheet()->setCellValue("I".$position, $colI);
      $objPHPExcel->getActiveSheet()->setCellValueExplicit("J".$position, $nombreCuenta, PHPExcel_Cell_DataType::TYPE_STRING);
      $objPHPExcel->getActiveSheet()->setCellValue("K".$position, $cedula);
      $objPHPExcel->getActiveSheet()->setCellValueExplicit("L".$position, $colL, PHPExcel_Cell_DataType::TYPE_STRING);
      $objPHPExcel->getActiveSheet()->setCellValueExplicit("M".$position, $colM, PHPExcel_Cell_DataType::TYPE_STRING);
      $objPHPExcel->getActiveSheet()->setCellValueExplicit("N".$position, $cuentaCierre.$subCuentaCierre, PHPExcel_Cell_DataType::TYPE_STRING);
      $objPHPExcel->getActiveSheet()->setCellValueExplicit("O".$position, str_pad($cuentaCierre, 8, ' ', STR_PAD_RIGHT).$subCuentaCierre, PHPExcel_Cell_DataType::TYPE_STRING);

    // ----------------------------Data-----------------------------------

    // ---------------------------Auto Size-------------------------------------

      $objPHPExcel->getActiveSheet()->getColumnDimension("A")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("B")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("C")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("D")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("E")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("F")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("G")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("H")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("I")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("J")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("K")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("L")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("M")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("N")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("O")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("P")->setAutoSize(true);

    // ---------------------------Auto Size----------------------------------

    $objPHPExcel->getActiveSheet()->setTitle('CONTABILIDAD');
    $objPHPExcel->setActiveSheetIndex(0);

    $fileName = "ASIENTOS-NOMINA".$fecha_procesado.".xlsx";

    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="'.$fileName.'"');
    header('Cache-Control: max-age=0');
    header('Cache-Control: max-age=1');
    header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
    header ('Cache-Control: cache, must-revalidate');
    header ('Pragma: public');
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('php://output');
    exit;

  }
  function  generarReporteResumenAsientosNomina($enlace) {
    $fecha_procesado = date("d-m-Y");

    $fechaDesde = strtotime($_POST['fechaDesde']);
    $fechaHasta = strtotime($_POST['fechaHasta']);
    $fDesde= date('Y-m-d', $fechaDesde);
    $fHasta = date('Y-m-d', $fechaHasta);
    $idValidar = $_SESSION['id_validar'];

    $queryData = "SELECT  #Nomina regular
    h.nomina AS nomina,
    CONCAT('Nomina del ',h.desperiodo) AS detalle_nomina,
    TRIM(if(c.cuenta = 'labor',CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta))) AS cuenta,
    IF(SUBSTR(if(c.cuenta = 'labor',CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,
    sum(IF(h.tipo = 'A',h.monto,0)) as debito,
    sum(IF(h.tipo = 'D',h.monto,0)) as credito,    
    1 AS orden
    FROM historico h,concepto c, personal p
    WHERE h.id='100' 
    AND substr(h.desperiodo,15,10) BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = h.id
    AND p.id = h.id
    AND p.codigo = h.cedula
    AND c.codigo = h.concepto
    AND h.tipo IN ('A','D')
    GROUP BY  nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #cesta ticket
    h.nomina AS nomina,
    c.detalle AS detalle_nomina,
    TRIM(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)) AS cuenta,
    IF(SUBSTR(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,
    sum(IF(c.tipo = 'A',h.monto,0)) as debito,
    sum(IF(c.tipo = 'D',h.monto,0)) as credito,
    2 AS orden
    FROM historico_cestaticket h,concepto_especiales c, personal p
    WHERE h.id='100'
    AND h.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = h.id
    AND p.id = h.id
    AND p.codigo = h.cedula
    AND c.codigo = h.concepto
    AND c.tipo IN ('A','D')
	 GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #nomina Especial
    h.nomina AS nomina,
    CONCAT(c.detalle,' ',h.fecha_pago) AS detalle_nomina,
    TRIM(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)) AS cuenta,
    IF(SUBSTR(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,
    sum(IF(c.tipo = 'A',h.monto,0)) as debito,
    sum(IF(c.tipo = 'D',h.monto,0)) as credito,
    3 AS orden
    FROM historico_nomina_especial h,concepto_especiales c, personal p
    WHERE h.id='100'
    AND h.fecha_pago >= '$fDesde' AND h.fecha_pago <= '$fHasta'
    #AND h.fecha_pago >= '2022-04-01' AND h.fecha_pago <= '2022-04-30'
    AND c.id = h.id
    AND p.id = h.id
    AND p.codigo = h.cedula
    AND c.codigo = h.concepto
    AND c.tipo IN ('A','D')
    GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #utilidades
    u.nomina AS nomina,
    CONCAT('Pago Utilidad ',u.detalle) AS detalle_nomina,
    TRIM(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)) AS cuenta,
    IF(SUBSTR(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,
    sum(IF(c.tipo = 'A',u.monto,0)) as debito,
    sum(IF(c.tipo = 'D',u.monto,0)) as credito,
    4 AS orden
    FROM utilidades u,concepto c, personal p
    WHERE u.id='100'
    AND u.fecha BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = u.id
    AND p.id = u.id
    AND p.codigo = u.cedula
    AND c.codigo = u.concepto
    AND c.tipo IN ('A','D')
    GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #prestaciones_fideicomiso
    f.nomina AS nomina,
    f.desperiodo AS detalle_nomina,
    TRIM(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)) AS cuenta,
    IF(SUBSTR(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,
    SUM(f.prestacion_monto) as debito,
    0 as credito,   
    5 AS orden
    FROM prestaciones_fideicomiso f, concepto c, personal p
    WHERE f.id='100'
    AND f.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = f.id
    AND p.id = f.id
    AND p.codigo = f.cedula
    AND c.codigo = f.concepto
    GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #vacacion
    p.nomina AS nomina,
    if(p.nomina = '200',CONCAT('Vacaciones NM ',v.fdesde),CONCAT('Vacaciones ND ',v.fdesde)) AS detalle_nomina,
    TRIM(if(c.codigo = '1975', CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta))) AS cuenta,
    IF(SUBSTR(if(c.codigo = '1975', CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,    
    SUM(abs(if(p.nomina = '200',
    IF(c.codigo = '1970',v.valor_dvac,
    if(c.codigo = '1971',v.valor_dias_ext,
    if(c.codigo = '1972',v.valor_otros_dias,
    if(c.codigo = '1973',v.valor_dbon,
    if(c.codigo = '1974',v.valor_dias_dinero,
    if(c.codigo = '1983',v.aporte_emp_rpvh,
    if(c.codigo = '1985',v.aporte_emp_inces,
	if(c.codigo = '4044',v.reserva_utilidades,
    if(c.codigo = '1975',v.valor_dias_sueldo,0))))))))),
    IF(c.codigo = '1960',v.valor_dvac,
    if(c.codigo = '1961',v.valor_dias_ext,
    if(c.codigo = '1962',v.valor_dbon,
    if(c.codigo = '1979',v.aporte_emp_rpvh,
    if(c.codigo = '1981',v.aporte_emp_inces,
	if(c.codigo = '4043',v.reserva_utilidades,
    if(c.codigo = '1963',v.valor_otros_dias,0))))))))))
    AS debito,
    SUM(abs(if(p.nomina = '200',
    IF(c.codigo = '1976',v.total_reserva,
    if(c.codigo = '1984',v.aporte_emp_rpvh_cxp,
    if(c.codigo = '1986',v.aporte_emp_inces_cxp,
	if(c.codigo = '4144',v.reserva_utilidades_cxp,
    if(c.codigo = '1977',v.rpvh,0))))),
    if(c.codigo = '1964',v.total_reserva,
    if(c.codigo = '1980',v.aporte_emp_rpvh_cxp,
    if(c.codigo = '1982',v.aporte_emp_inces_cxp,
	if(c.codigo = '4143',v.reserva_utilidades_cxp,
    if(c.codigo = '1965',v.rpvh,0))))))))  AS credito,
    6 AS orden
    FROM vacacion v,conceptos_vacaciones c, personal p
    WHERE v.id='100'
    AND v.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = v.id
    AND p.id = v.id
    AND p.codigo = v.cedula
    AND p.nomina = c.nomina
    GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #liquidacion
    p.nomina AS nomina,
    if(p.nomina = '200',CONCAT('Liquidaciones NM ',l.fecha_pago),CONCAT('Liquidaciones ND ',l.fecha_pago)) AS detalle_nomina,
    TRIM(if(c.codigo in ('1910','1927','1948','1949'), CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta))) AS cuenta,
    IF(SUBSTR(if(c.codigo in ('1910','1927','1948','1949'), CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo, 
    SUM(abs(if(p.nomina = '200',
    IF(c.codigo = '1928',l.valor_ct_total,
    if(c.codigo = '1927',l.sueldos_pagar,
    if(c.codigo = '1929',l.valor_vaca_venc,
    if(c.codigo = '1930',l.valor_bonovac_venc,
    if(c.codigo = '1931',l.bono_post_vaca,
    if(c.codigo = '1932',l.valor_dias_vac_fraccion,
    if(c.codigo = '1933',l.valor_bonovac_fraccion,
    if(c.codigo = '1934',l.valor_utilid_pagar,
    if(c.codigo = '1935',l.prestaciones_pagar,
    if(c.codigo = '1936',l.valor_indem,
	  if(c.codigo = '1945',l.ncon01,
	  if(c.codigo = '4044',l.reserva_utilidades,
	  if(c.codigo = '1997',l.pago_fondo_ahor,
    if(c.codigo = '1983',l.aporte_emp_rpvh,
    if(c.codigo = '1985',l.inces_empresa,
    if(c.codigo = '1991',l.sso_empresa,
    if(c.codigo = '1993',l.rpe_empresa,0))))))))))))))))),
    IF(c.codigo = '1911',l.valor_ct_total,
    if(c.codigo = '1910',l.sueldos_pagar,
    if(c.codigo = '1912',l.valor_vaca_venc,
    if(c.codigo = '1913',l.valor_bonovac_venc,
    if(c.codigo = '1914',l.bono_post_vaca,
    if(c.codigo = '1915',l.valor_dias_vac_fraccion,
    if(c.codigo = '1916',l.valor_bonovac_fraccion,
    if(c.codigo = '1917',l.valor_utilid_pagar,
    if(c.codigo = '1918',l.prestaciones_pagar,
	  if(c.codigo = '1919',l.valor_indem,
	  if(c.codigo = '1944',l.ncon01,
	  if(c.codigo = '4043',l.reserva_utilidades,
	  if(c.codigo = '1996',l.pago_fondo_ahor,
    if(c.codigo = '1979',l.aporte_emp_rpvh,
    if(c.codigo = '1981',l.inces_empresa,
    if(c.codigo = '1987',l.sso_empresa,
    if(c.codigo = '1989',l.rpe_empresa,0)))))))))))))))))))) AS debito,
    SUM(abs(if(p.nomina = '200',
    IF(c.codigo = '1937',l.valor_sso,
    if(c.codigo = '1938',l.valor_rpe,
    if(c.codigo = '1939',l.faov,
    if(c.codigo = '1940',l.valor_islr,
    if(c.codigo = '1941',l.inces,
    if(c.codigo = '1942',l.fideicomiso,
    if(c.codigo = '1943',l.neto_pagar_liq,
	  if(c.codigo = '1947',l.ncon02,
	  
	  if(c.codigo = '4144',l.reserva_utilidades_cxp,
    if(c.codigo = '1949',l.valor_dpnlabor,
    if(c.codigo = '1984',l.aporte_emp_rpvh_cxp,
    if(c.codigo = '1986',l.inces_empresa_cxp,
    if(c.codigo = '1992',l.sso_empresa_cxp,
    if(c.codigo = '1994',l.rpe_empresa_cxp,0)))))))))))))),
    if(c.codigo = '1920',l.valor_sso,
    if(c.codigo = '1921',l.valor_rpe,
    if(c.codigo = '1922',l.faov,
    if(c.codigo = '1923',l.valor_islr,
    if(c.codigo = '1924',l.inces,
    if(c.codigo = '1925',l.fideicomiso,
	  if(c.codigo = '1925',l.neto_pagar_liq,
    if(c.codigo = '1946',l.ncon02,
	if(c.codigo = '1998',l.adeuti,
	
	if(c.codigo = '4143',l.reserva_utilidades_cxp,
    if(c.codigo = '1948',l.valor_dpnlabor,
    if(c.codigo = '1980',l.aporte_emp_rpvh_cxp,
    if(c.codigo = '1982',l.inces_empresa_cxp,
    if(c.codigo = '1988',l.sso_empresa_cxp,
    if(c.codigo = '1990',l.rpe_empresa_cxp,0)))))))))))))))))) AS credito,
    7 AS orden
    FROM liquidaciones l,conceptos_liquidaciones c, personal p
    WHERE l.id='100'
    AND l.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = l.id
    AND p.id = l.id
    AND p.codigo = l.cedula
    AND p.nomina = c.nomina
    GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    order BY 1,2,4;";


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

    $nFilas = mysqli_num_rows($resultados);
    $row = [];
    //$row=mysqli_fetch_array($resultados)
    if($nFilas > 0){
      $row=mysqli_fetch_array($resultados);
    }
    else{
      die("No se encontraron registros");
    }

    $objPHPExcel = new PHPExcel();

    PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);

    // --------------------------Cabecera---------------------------------

      $objPHPExcel->getActiveSheet()->setCellValue("A1","TN");
      $objPHPExcel->getActiveSheet()->setCellValue("B1","Mayor");
      $objPHPExcel->getActiveSheet()->setCellValue("C1","C COSTO");
      $objPHPExcel->getActiveSheet()->setCellValue("D1","DEBITO");
      $objPHPExcel->getActiveSheet()->setCellValue("E1","CREDITO");
      $objPHPExcel->getActiveSheet()->setCellValue("F1","CONCEPTO");
      $objPHPExcel->getActiveSheet()->getStyle("A1:F1")->getFont()->setBold( true );

    // --------------------------Cabecera---------------------------------

    // ----------------------------Data-----------------------------------

      $position = 2;
      $acumuladorCredito = 0;
      $acumuladorDebito = 0;
      $colNomina = $row["nomina"];
      $colMayor = $row["cuenta"];
      $colCosto = $row["centro_costo"];
      $colDB = $row["debito"];
      $colCR = $row["credito"];
      $colConcepto = $row["detalle_nomina"];
      $colOrden = $row["orden"];
      

      do{
        if($colConcepto !== $row["detalle_nomina"]){
      
         // $colCierreDebito = $acumuladorDebito >= $acumuladorCredito ? $acumuladorDebito -  $acumuladorCredito : 0 ;
         // $colCierreCredito = $acumuladorDebito < $acumuladorCredito ? $acumuladorCredito - $acumuladorDebito : 0 ;
         $colCierreDebito = $acumuladorDebito < $acumuladorCredito ? $acumuladorCredito - $acumuladorDebito : 0 ;
         $colCierreCredito =  $acumuladorDebito >= $acumuladorCredito ? $acumuladorDebito -  $acumuladorCredito : 0 ;
          if($colNomina=='200' ){
            $cuentaCierre="20C02   0220";
            $nombreCuenta = "6870000000";
            if ($colOrden==5){
              $cuentaCierre="20C08   GEHO";
            }
          }

          else{
            $cuentaCierre="20C01   0210";
            $nombreCuenta = "6870000000";
            if ($colOrden==5){
              $cuentaCierre="20C08   GESA";
            }
          }

         
 

          $objPHPExcel->getActiveSheet()->setCellValue("A".$position, $colNomina);
          $objPHPExcel->getActiveSheet()->setCellValueExplicit("B".$position, $cuentaCierre,PHPExcel_Cell_DataType::TYPE_STRING);
          $objPHPExcel->getActiveSheet()->setCellValue("C".$position, $nombreCuenta);
          $objPHPExcel->getActiveSheet()->setCellValue("D".$position, $colCierreDebito);
          $objPHPExcel->getActiveSheet()->setCellValue("E".$position, $colCierreCredito);
          $objPHPExcel->getActiveSheet()->setCellValue("F".$position, $colConcepto);


    
          $acumuladorCredito = 0;
          $acumuladorDebito = 0;
          $position++;

          $colNomina = $row["nomina"];
          $colMayor = $row["cuenta"];
          $colCosto = $row["centro_costo"];
          $colDB = $row["debito"];
          $colCR = $row["credito"];
          $colOrden = $row["orden"];
          $colConcepto = $row["detalle_nomina"];

        }

        $acumuladorCredito = $acumuladorCredito + $row["credito"];
        $acumuladorDebito = $acumuladorDebito + $row["debito"];
        $auxDebito = $row["debito"] >= $row["credito"] ?  $row["debito"] - $row["credito"] : 0;
        $auxCredito = $row["debito"] < $row["credito"] ?  $row["credito"] - $row["debito"] : 0;
        if(substr($row["cuenta"],0,3)!='25A'){
          $auxCuenta = "6870000000";
        }
        else{
          $auxCuenta =$row["centro_costo"];
        }

        $objPHPExcel->getActiveSheet()->setCellValue("A".$position, $row["nomina"]);
        $objPHPExcel->getActiveSheet()->setCellValueExplicit("B".$position,$row["cuenta"], PHPExcel_Cell_DataType::TYPE_STRING);
        $objPHPExcel->getActiveSheet()->setCellValue("C".$position, $auxCuenta);
        $objPHPExcel->getActiveSheet()->setCellValue("D".$position, $auxDebito);
        $objPHPExcel->getActiveSheet()->setCellValue("E".$position, $auxCredito);
        $objPHPExcel->getActiveSheet()->setCellValue("F".$position, $row["detalle_nomina"]); 

       if( $auxDebito>0 || $auxCredito>0) {
        $position++;
       }
      } while($row=mysqli_fetch_array($resultados));

      
    
        //   $colCierreDebito = $acumuladorDebito >= $acumuladorCredito ? $acumuladorDebito -  $acumuladorCredito : 0 ;
        //   $colCierreCredito = $acumuladorDebito < $acumuladorCredito ? $acumuladorCredito - $acumuladorDebito : 0 ;
        $colCierreDebito = $acumuladorDebito < $acumuladorCredito ? $acumuladorCredito - $acumuladorDebito : 0 ;
        $colCierreCredito = $acumuladorDebito >= $acumuladorCredito ? $acumuladorDebito -  $acumuladorCredito : 0 ;
      if($colNomina=='200' ){
        $cuentaCierre="20C02   0220";
        $nombreCuenta = "6870000000";
        if ($colOrden==5){
          $cuentaCierre="20C08   GEHO";
        }

      }
      else{
        $cuentaCierre="20C01   0210";
        $subCuentaCierre ="0210";
        $nombreCuenta = "6870000000";
        if ($colOrden==5){
          $cuentaCierre="20C08   GESA";
        }
      }
     


      $objPHPExcel->getActiveSheet()->setCellValue("A".$position, $colNomina);
      $objPHPExcel->getActiveSheet()->setCellValueExplicit("B".$position, $cuentaCierre, PHPExcel_Cell_DataType::TYPE_STRING);
      $objPHPExcel->getActiveSheet()->setCellValue("C".$position, $nombreCuenta);
      $objPHPExcel->getActiveSheet()->setCellValue("D".$position, $colCierreDebito);
      $objPHPExcel->getActiveSheet()->setCellValue("E".$position, $colCierreCredito);
      $objPHPExcel->getActiveSheet()->setCellValue("F".$position, $colConcepto); 

    // ----------------------------Data-----------------------------------

    // ---------------------------Auto Size-------------------------------------

      $objPHPExcel->getActiveSheet()->getColumnDimension("A")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("B")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("C")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("D")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("E")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("F")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("G")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("H")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("I")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("J")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("K")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("L")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("M")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("N")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("O")->setAutoSize(true);
      $objPHPExcel->getActiveSheet()->getColumnDimension("P")->setAutoSize(true);

    // ---------------------------Auto Size----------------------------------

    $objPHPExcel->getActiveSheet()->setTitle('CONTABILIDAD');
    $objPHPExcel->setActiveSheetIndex(0);

    $fileName = "RESUMEN-ASIENTOS-NOMINA".$fecha_procesado.".xlsx";

    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="'.$fileName.'"');
    header('Cache-Control: max-age=0');
    header('Cache-Control: max-age=1');
    header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
    header ('Cache-Control: cache, must-revalidate');
    header ('Pragma: public');
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('php://output');
    exit;

  }
  function  generarReporteResumenAsientosNominaTXT($enlace) {
   
    $fecha_procesado = date("Y-m-d H:i:s");

    $fechaDesde = strtotime($_POST['fechaDesde']);
    $fechaHasta = strtotime($_POST['fechaHasta']);
    $consecutivo = intval($_POST['consecutivo'],10);
    $fDesde= date('Y-m-d', $fechaDesde);
    $fHasta = date('Y-m-d', $fechaHasta);
    $idValidar = $_SESSION['id_validar'];
    $queryData = "SELECT aprobado from asientos where desde ='".$fDesde."' AND hasta = '".$fHasta."';";
    $resultado = mysqli_query($enlace,$queryData) or die ("No se pudo realizar la consulta: ".$queryData.'='.mysqli_error($enlace));
    $row=mysqli_fetch_array($resultado);
   
   
    if ($row["aprobado"]){
      echo "<script>alert('El Archivo ya se encuentra Aprobado, por favor escriba a soporte SAIREH');</script>";
      exit;
    }
    
    $queryData = "SELECT  #Nomina regular
    h.nomina AS nomina,
    CONCAT('Nomina del ',h.desperiodo) AS detalle_nomina,
    TRIM(if(c.cuenta = 'labor',CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta))) AS cuenta,
    IF(SUBSTR(if(c.cuenta = 'labor',CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,
    sum(IF(h.tipo = 'A',h.monto,0)) as debito,
    sum(IF(h.tipo = 'D',h.monto,0)) as credito,    
    1 AS orden
    FROM historico h,concepto c, personal p
    WHERE h.id='100' 
    AND substr(h.desperiodo,15,10) BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = h.id
    AND p.id = h.id
    AND p.codigo = h.cedula
    AND c.codigo = h.concepto
    AND h.tipo IN ('A','D')
    GROUP BY  nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #cesta ticket
    h.nomina AS nomina,
    c.detalle AS detalle_nomina,
    TRIM(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)) AS cuenta,
    IF(SUBSTR(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,
    sum(IF(c.tipo = 'A',h.monto,0)) as debito,
    sum(IF(c.tipo = 'D',h.monto,0)) as credito,
    2 AS orden
    FROM historico_cestaticket h,concepto_especiales c, personal p
    WHERE h.id='100'
    AND h.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = h.id
    AND p.id = h.id
    AND p.codigo = h.cedula
    AND c.codigo = h.concepto
    AND c.tipo IN ('A','D')
	 GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #nomina Especial
    h.nomina AS nomina,
    CONCAT(c.detalle,' ',h.fecha_pago) AS detalle_nomina,
    TRIM(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)) AS cuenta,
    IF(SUBSTR(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,
    sum(IF(c.tipo = 'A',h.monto,0)) as debito,
    sum(IF(c.tipo = 'D',h.monto,0)) as credito,
    3 AS orden
    FROM historico_nomina_especial h,concepto_especiales c, personal p
    WHERE h.id='100'
    AND h.fecha_pago >= '$fDesde' AND h.fecha_pago <= '$fHasta'
    #AND h.fecha_pago >= '2022-04-01' AND h.fecha_pago <= '2022-04-30'
    AND c.id = h.id
    AND p.id = h.id
    AND p.codigo = h.cedula
    AND c.codigo = h.concepto
    AND c.tipo IN ('A','D')
    GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #utilidades
    u.nomina AS nomina,
    CONCAT('Pago Utilidad ',u.detalle) AS detalle_nomina,
    TRIM(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)) AS cuenta,
    IF(SUBSTR(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,
    sum(IF(c.tipo = 'A',u.monto,0)) as debito,
    sum(IF(c.tipo = 'D',u.monto,0)) as credito,
    4 AS orden
    FROM utilidades u,concepto c, personal p
    WHERE u.id='100'
    AND u.fecha BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = u.id
    AND p.id = u.id
    AND p.codigo = u.cedula
    AND c.codigo = u.concepto
    AND c.tipo IN ('A','D')
    GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #prestaciones_fideicomiso
    f.nomina AS nomina,
    f.desperiodo AS detalle_nomina,
    TRIM(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)) AS cuenta,
    IF(SUBSTR(CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,
    SUM(f.prestacion_monto) as debito,
    0 as credito,   
    5 AS orden
    FROM prestaciones_fideicomiso f, concepto c, personal p
    WHERE f.id='100'
    AND f.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = f.id
    AND p.id = f.id
    AND p.codigo = f.cedula
    AND c.codigo = f.concepto
    GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #vacacion
    p.nomina AS nomina,
    if(p.nomina = '200',CONCAT('Vacaciones NM ',v.fdesde),CONCAT('Vacaciones ND ',v.fdesde)) AS detalle_nomina,
    TRIM(if(c.codigo = '1975', CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta))) AS cuenta,
    IF(SUBSTR(if(c.codigo = '1975', CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo,    
    SUM(abs(if(p.nomina = '200',
    IF(c.codigo = '1970',v.valor_dvac,
    if(c.codigo = '1971',v.valor_dias_ext,
    if(c.codigo = '1972',v.valor_otros_dias,
    if(c.codigo = '1973',v.valor_dbon,
    if(c.codigo = '1974',v.valor_dias_dinero,
    if(c.codigo = '1983',v.aporte_emp_rpvh,
    if(c.codigo = '1985',v.aporte_emp_inces,
	if(c.codigo = '4044',v.reserva_utilidades,
    if(c.codigo = '1975',v.valor_dias_sueldo,0))))))))),
    IF(c.codigo = '1960',v.valor_dvac,
    if(c.codigo = '1961',v.valor_dias_ext,
    if(c.codigo = '1962',v.valor_dbon,
    if(c.codigo = '1979',v.aporte_emp_rpvh,
    if(c.codigo = '1981',v.aporte_emp_inces,
	if(c.codigo = '4043',v.reserva_utilidades,
    if(c.codigo = '1963',v.valor_otros_dias,0))))))))))
    AS debito,
    SUM(abs(if(p.nomina = '200',
    IF(c.codigo = '1976',v.total_reserva,
    if(c.codigo = '1984',v.aporte_emp_rpvh_cxp,
    if(c.codigo = '1986',v.aporte_emp_inces_cxp,
	if(c.codigo = '4144',v.reserva_utilidades_cxp,
    if(c.codigo = '1977',v.rpvh,0))))),
    if(c.codigo = '1964',v.total_reserva,
    if(c.codigo = '1980',v.aporte_emp_rpvh_cxp,
    if(c.codigo = '1982',v.aporte_emp_inces_cxp,
	if(c.codigo = '4143',v.reserva_utilidades_cxp,
    if(c.codigo = '1965',v.rpvh,0))))))))  AS credito,
    6 AS orden
    FROM vacacion v,conceptos_vacaciones c, personal p
    WHERE v.id='100'
    AND v.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = v.id
    AND p.id = v.id
    AND p.codigo = v.cedula
    AND p.nomina = c.nomina
    GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    UNION ALL
    SELECT #liquidacion
    p.nomina AS nomina,
    if(p.nomina = '200',CONCAT('Liquidaciones NM ',l.fecha_pago),CONCAT('Liquidaciones ND ',l.fecha_pago)) AS detalle_nomina,
    TRIM(if(c.codigo in ('1910','1927','1948','1949'), CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta))) AS cuenta,
    IF(SUBSTR(if(c.codigo in ('1910','1927','1948','1949'), CONCAT(RPAD(p.cuenta_labor,8,' '),p.subcuenta_labor),CONCAT(RPAD(c.cuenta,8,' '),c.subcuenta)),1,3)!='25A','6870000000',CONCAT('6870',rpad(p.departamento,6,'0'))) AS centro_costo, 
    SUM(abs(if(p.nomina = '200',
    IF(c.codigo = '1928',l.valor_ct_total,
    if(c.codigo = '1927',l.sueldos_pagar,
    if(c.codigo = '1929',l.valor_vaca_venc,
    if(c.codigo = '1930',l.valor_bonovac_venc,
    if(c.codigo = '1931',l.bono_post_vaca,
    if(c.codigo = '1932',l.valor_dias_vac_fraccion,
    if(c.codigo = '1933',l.valor_bonovac_fraccion,
    if(c.codigo = '1934',l.valor_utilid_pagar,
    if(c.codigo = '1935',l.prestaciones_pagar,
    if(c.codigo = '1936',l.valor_indem,
	  if(c.codigo = '1945',l.ncon01,
	  if(c.codigo = '1997',l.pago_fondo_ahor,
    if(c.codigo = '1983',l.aporte_emp_rpvh,
    if(c.codigo = '1985',l.inces_empresa,
	if(c.codigo = '4044',l.reserva_utilidades,
    if(c.codigo = '1991',l.sso_empresa,
    if(c.codigo = '1993',l.rpe_empresa,0))))))))))))))))),
    IF(c.codigo = '1911',l.valor_ct_total,
    if(c.codigo = '1910',l.sueldos_pagar,
    if(c.codigo = '1912',l.valor_vaca_venc,
    if(c.codigo = '1913',l.valor_bonovac_venc,
    if(c.codigo = '1914',l.bono_post_vaca,
    if(c.codigo = '1915',l.valor_dias_vac_fraccion,
    if(c.codigo = '1916',l.valor_bonovac_fraccion,
    if(c.codigo = '1917',l.valor_utilid_pagar,
    if(c.codigo = '1918',l.prestaciones_pagar,
	  if(c.codigo = '1919',l.valor_indem,
	  if(c.codigo = '1944',l.ncon01,
	  if(c.codigo = '1996',l.pago_fondo_ahor,
    if(c.codigo = '1979',l.aporte_emp_rpvh,
    if(c.codigo = '1981',l.inces_empresa,
	if(c.codigo = '4043',l.reserva_utilidades,
    if(c.codigo = '1987',l.sso_empresa,
    if(c.codigo = '1989',l.rpe_empresa,0)))))))))))))))))))) AS debito,
    SUM(abs(if(p.nomina = '200',
    IF(c.codigo = '1937',l.valor_sso,
    if(c.codigo = '1938',l.valor_rpe,
    if(c.codigo = '1939',l.faov,
    if(c.codigo = '1940',l.valor_islr,
    if(c.codigo = '1941',l.inces,
    if(c.codigo = '1942',l.fideicomiso,
    if(c.codigo = '1943',l.neto_pagar_liq,
	  if(c.codigo = '1947',l.ncon02,
    if(c.codigo = '1949',l.valor_dpnlabor,
    if(c.codigo = '1984',l.aporte_emp_rpvh_cxp,
    if(c.codigo = '1986',l.inces_empresa_cxp,
	if(c.codigo = '4144',l.reserva_utilidades_cxp,
    if(c.codigo = '1992',l.sso_empresa_cxp,
    if(c.codigo = '1994',l.rpe_empresa_cxp,0)))))))))))))),
    if(c.codigo = '1920',l.valor_sso,
    if(c.codigo = '1921',l.valor_rpe,
    if(c.codigo = '1922',l.faov,
    if(c.codigo = '1923',l.valor_islr,
    if(c.codigo = '1924',l.inces,
    if(c.codigo = '1925',l.fideicomiso,
	  if(c.codigo = '1925',l.neto_pagar_liq,
    if(c.codigo = '1946',l.ncon02,
	if(c.codigo = '1998',l.adeuti,
    if(c.codigo = '1948',l.valor_dpnlabor,
    if(c.codigo = '1980',l.aporte_emp_rpvh_cxp,
    if(c.codigo = '1982',l.inces_empresa_cxp,
	if(c.codigo = '4143',l.reserva_utilidades_cxp,
    if(c.codigo = '1988',l.sso_empresa_cxp,
    if(c.codigo = '1990',l.rpe_empresa_cxp,0)))))))))))))))))) AS credito,
    7 AS orden
    FROM liquidaciones l,conceptos_liquidaciones c, personal p
    WHERE l.id='100'
    AND l.fecha_pago BETWEEN '$fDesde' AND '$fHasta'
    AND c.id = l.id
    AND p.id = l.id
    AND p.codigo = l.cedula
    AND p.nomina = c.nomina
    GROUP BY nomina, detalle_nomina, cuenta, centro_costo, orden
    order BY 1,2,4;";

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

    $nFilas = mysqli_num_rows($resultados);
    $row = [];
    //$row=mysqli_fetch_array($resultados)
    if($nFilas > 0){
      $row=mysqli_fetch_array($resultados);
    }
    else{
      die("No se encontraron registros");
    }

    
    // ----------------------------Data-----------------------------------

      $position = 1;
      $acumuladorCredito = 0;
      $acumuladorDebito = 0;
      $colNomina = $row["nomina"];
      $colMayor = $row["cuenta"];
      $colCosto = $row["centro_costo"];
      $colDB = $row["debito"];
      $colCR = $row["credito"];
      $colConcepto = $row["detalle_nomina"];
      $colOrden = $row["orden"];
   
      $f = "ASIENTOS_NOMINA_".$fDesde."-".$fHasta."_".$fecha_procesado.".txt";
      $fileTXT = fopen("Nominas/".$f,"w+");

    
 
      do{
        if($colConcepto !== $row["detalle_nomina"]){
      
         // $colCierreDebito = $acumuladorDebito >= $acumuladorCredito ? $acumuladorDebito -  $acumuladorCredito : 0 ;
         // $colCierreCredito = $acumuladorDebito < $acumuladorCredito ? $acumuladorCredito - $acumuladorDebito : 0 ;
         $colCierreDebito = $acumuladorDebito < $acumuladorCredito ? $acumuladorCredito - $acumuladorDebito : 0 ;
         $colCierreCredito =  $acumuladorDebito >= $acumuladorCredito ? $acumuladorDebito -  $acumuladorCredito : 0 ;
          if($colNomina=='200' ){
            $cuentaCierre="20C02   ";
            $subCuentaCierre="0220";
            $nombreCuenta = "6870000000";
            if ($colOrden==5){
              $cuentaCierre="20C08   ";
              $subCuentaCierre="GEHO";
            }
          }

          else{
            $cuentaCierre="20C01   ";
            $subCuentaCierre="0210";
            $nombreCuenta = "6870000000";
            if ($colOrden==5){
              $cuentaCierre="20C08   ";
              $subCuentaCierre="GESA";
            }
          }
          $monto =str_pad(number_format($colCierreDebito+$colCierreCredito,2,".",""),16,"0",STR_PAD_LEFT);
          //$signo = $colCierreCredito > 0 ? ' ' :'-';  ///** Gerardo 26/08/2022 */
          $signo = $colCierreCredito <= 0 ? ' ' :'-';
          $comprobante = $colNomina == '200' ? '0028' : '0034';

          $linea ="6870 ".$comprobante.date('ym', $fechaHasta).substr(str_pad($consecutivo,2,"0",STR_PAD_LEFT),0,2).$fHasta.str_pad($position,11,"0",STR_PAD_LEFT).str_pad(" ",10)."ACT 6870 ";
          $linea = $linea.date('Y0m', $fechaHasta).$fHasta.str_pad(" ",10).str_pad("PAY",22).$fHasta."SAIREH  CONTABILIDAD GENERAL VENEZUELAEXT";
          $linea = $linea.$cuentaCierre.$nombreCuenta.str_pad(" ",26).$subCuentaCierre." ".str_pad("VES   ",69," ",STR_PAD_LEFT);
          $linea = $linea.$monto.$signo."0000000000000.00".str_pad(" ",21)."000000000CONTAB VENEZUELA              ".$fHasta.str_pad("VES",8).$monto.$signo;
          $linea = $linea."0000000000000000000000.00000000                     ".$fHasta." EXT                                                                    .";
          fwrite($fileTXT,$linea.PHP_EOL);     


          $acumuladorCredito = 0;
          $acumuladorDebito = 0;
          $position++;

          $colNomina = $row["nomina"];
          $colMayor = $row["cuenta"];
          $colCosto = $row["centro_costo"];
          $colDB = $row["debito"];
          $colCR = $row["credito"];
          $colOrden = $row["orden"];
          $colConcepto = $row["detalle_nomina"];

        }

        $acumuladorCredito = $acumuladorCredito + $row["credito"];
        $acumuladorDebito = $acumuladorDebito + $row["debito"];
        $auxDebito = $row["debito"] >= $row["credito"] ?  $row["debito"] - $row["credito"] : 0;
        $auxCredito = $row["debito"] < $row["credito"] ?  $row["credito"] - $row["debito"] : 0;
        if(substr($row["cuenta"],0,3)!='25A'){
          $auxCuenta = "6870000000";
        }
        else{
          $auxCuenta =$row["centro_costo"];
        }

        
       if( $auxDebito>0 || $auxCredito>0) {
        $monto =str_pad(number_format($auxDebito+$auxCredito,2,".",""),16,"0",STR_PAD_LEFT);
        //$signo = $auxCredito>0 ? ' ' :'-';///** Gerardo 26/08/2022 */
        $signo = $auxCredito <= 0 ? ' ' :'-';
        $comprobante = $row["nomina"] == '200' ? '0028' : '0034';
        $linea ="6870 ".$comprobante.date('ym', $fechaHasta).substr(str_pad($consecutivo,2,"0",STR_PAD_LEFT),0,2).$fHasta.str_pad($position,11,"0",STR_PAD_LEFT).str_pad(" ",10)."ACT 6870 ";
        $linea = $linea.date('Y0m', $fechaHasta).$fHasta.str_pad(" ",10).str_pad("PAY",22).$fHasta."SAIREH  CONTABILIDAD GENERAL VENEZUELAEXT";
        $linea = $linea.str_pad(substr($row["cuenta"],0,8),8).$auxCuenta.str_pad(" ",26).str_pad(substr($row["cuenta"],8,4),4)." ".str_pad("VES   ",69," ",STR_PAD_LEFT);
        $linea = $linea.$monto.$signo."0000000000000.00".str_pad(" ",21)."000000000CONTAB VENEZUELA              ".$fHasta.str_pad("VES",8).$monto.$signo;
        $linea = $linea."0000000000000000000000.00000000                     ".$fHasta." EXT                                                                    .";
        fwrite($fileTXT,$linea.PHP_EOL);
        $position++;
       }
      } while($row=mysqli_fetch_array($resultados));
      
      
    
        //   $colCierreDebito = $acumuladorDebito >= $acumuladorCredito ? $acumuladorDebito -  $acumuladorCredito : 0 ;
        //   $colCierreCredito = $acumuladorDebito < $acumuladorCredito ? $acumuladorCredito - $acumuladorDebito : 0 ;
        $colCierreDebito = $acumuladorDebito < $acumuladorCredito ? $acumuladorCredito - $acumuladorDebito : 0 ;
        $colCierreCredito = $acumuladorDebito >= $acumuladorCredito ? $acumuladorDebito -  $acumuladorCredito : 0 ;
      if($colNomina=='200' ){
        $cuentaCierre="20C02   0220";
        $nombreCuenta = "6870000000";
        if ($colOrden==5){
          $cuentaCierre="20C08   GEHO";
        }

      }
      else{
        $cuentaCierre="20C01   0210";
        $subCuentaCierre ="0210";
        $nombreCuenta = "6870000000";
        if ($colOrden==5){
          $cuentaCierre="20C08   GESA";
        }
      }
      $monto =str_pad(number_format($colCierreDebito+$colCierreCredito,2,".",""),16,"0",STR_PAD_LEFT);
      //$signo = $colCierreCredito >0 ? ' ' :'-';///** Gerardo 26/08/2022 */
      $signo = $colCierreCredito <= 0 ? ' ' :'-';
      $comprobante = $colNomina == '200' ? '0028' : '0034';
      $linea ="6870 ".$comprobante.date('ym', $fechaHasta).substr(str_pad($consecutivo,2,"0",STR_PAD_LEFT),0,2).$fHasta.str_pad($position,11,"0",STR_PAD_LEFT).str_pad(" ",10)."ACT 6870 ";
      $linea = $linea.date('Y0m', $fechaHasta).$fHasta.str_pad(" ",10).str_pad("PAY",22).$fHasta."SAIREH  CONTABILIDAD GENERAL VENEZUELAEXT";
      $linea = $linea.str_pad(substr($cuentaCierre,0,8),8).$nombreCuenta.str_pad(" ",26).str_pad(substr($cuentaCierre,8,4),4)." ".str_pad("VES   ",69," ",STR_PAD_LEFT);
      $linea = $linea.$monto.$signo."0000000000000.00".str_pad(" ",21)."000000000CONTAB VENEZUELA              ".$fHasta.str_pad("VES",8).$monto.$signo;
      $linea = $linea."0000000000000000000000.00000000                     ".$fHasta." EXT                                                                    .";
      fwrite($fileTXT,$linea.PHP_EOL);
      fclose($fileTXT);
     
    // ----------------------------Data-----------------------------------
    
    //fclose($fileTXT);
    $base64 = base64_encode(file_get_contents("Nominas/".$f));
    $base64Response = file_put_contents("Nominas/".$f."encode", $base64);
    $queryData = "SELECT * from asientos where desde ='".$fDesde."' AND hasta = '".$fHasta."';";
    $resultado = mysqli_query($enlace,$queryData) or die ("No se pudo realizar la consulta: ".$queryData.'='.mysqli_error($enlace));
    $rowCount=mysqli_num_rows($resultado);
    
    if ($rowCount == 0) {
      $insert = "INSERT INTO asientos (id, desde, hasta, archivo, fecha_proceso)  VALUES (100,'".$fDesde."','".$fHasta."','Nominas/".$f."','".$fecha_procesado."');";
    }
    else{
      $insert = "UPDATE asientos SET fecha_proceso ='$fecha_procesado', archivo='Nominas/".$f."' WHERE desde ='".$fDesde."' AND hasta = '".$fHasta."';";
    }

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

    header("Cache-Control: public");
    header("Content-Description: File Transfer");
    header("Content-Disposition: attachment; filename=$f");
    header("Content-Type: text/plain");
    header("Content-Transfer-Encoding: binary");
    readfile("Nominas/".$f);
    exit;

  }
  $mensaje = "";
  $exito = true;
  if ($_POST['treporte']==1) {
    $mensaje = "";
    $exito = true;
    $fecha_procesado = date("d-m-Y");

    $fDesde = strtotime($_POST['fechaDesde']);
    $fHasta = strtotime($_POST['fechaHasta']);

    if ($fDesde && $fHasta) {
      $fechaDesde = date('Y-m-d', $fDesde);
      $fechaHasta = date('Y-m-d', $fHasta);
      $mesDesde = date('m', $fDesde);
      $mesHasta = date('m', $fHasta);
      if($fechaHasta < $fechaDesde){
        $mensaje = "Fecha hasta debe ser mayor que fecha desde";
        $exito = false;
      }
      else{
          generarReporteAsientosNomina($enlace);
          $exito = true;
          $mensaje = "Reporte generado correctamente";
        }

    } else {
      $exito = false;
      $mensaje = "Fechas invalidas";
    }
  }
  if ($_POST['treporte']==2) {
    $mensaje = "";
    $exito = true;
    $fecha_procesado = date("d-m-Y");

    $fDesde = strtotime($_POST['fechaDesde']);
    $fHasta = strtotime($_POST['fechaHasta']);

    if ($fDesde && $fHasta) {
      $fechaDesde = date('Y-m-d', $fDesde);
      $fechaHasta = date('Y-m-d', $fHasta);
      $mesDesde = date('m', $fDesde);
      $mesHasta = date('m', $fHasta);
      if($fechaHasta < $fechaDesde){
        $mensaje = "Fecha hasta debe ser mayor que fecha desde";
        $exito = false;
      }
      else{
          generarReporteResumenAsientosNomina($enlace);
          $exito = true;
          $mensaje = "Reporte generado correctamente";
        }

    } else {
      $exito = false;
      $mensaje = "Fechas invalidas";
    }
  }
  if ($_POST['treporte']==3) {
    $mensaje = "";
    $exito = true;
    $fecha_procesado = date("d-m-Y");

    $fDesde = strtotime($_POST['fechaDesde']);
    $fHasta = strtotime($_POST['fechaHasta']);
    $consecutivo = intval($_POST['consecutivo'],10);
    
    

    if ($fDesde && $fHasta) {
      $fechaDesde = date('Y-m-d', $fDesde);
      $fechaHasta = date('Y-m-d', $fHasta);
      $mesDesde = date('m', $fDesde);
      $mesHasta = date('m', $fHasta);
      if($fechaHasta < $fechaDesde){
        $mensaje = "Fecha hasta debe ser mayor que fecha desde";
        $exito = false;
      }
      else{
        if($consecutivo==0 || $consecutivo < 0 || $consecutivo>99) {
          $mensaje = "Error en consecutivo. (01 - 99)";
          $exito = false;
        }
        else{
          generarReporteResumenAsientosNominaTXT($enlace);
          $exito = true;
          $mensaje = "Reporte generado correctamente";
        }
      }

    } else {
      $exito = false;
      $mensaje = "Fechas invalidas";
    }
  }


  // IMPORTANTE, debe ir luego de todas las generaciones de archivos posibles
  menu();
  // IMPORTANTE, debe ir luego de todas las generaciones de archivos posibles

  ?>
		<br>
    <table border=0 cellpadding=0 cellspacing=0 width='100%'>
			<tr>
				<td  width='100%' align='left'><font size=2 color='black' face='verdana'>Empresa: <b><?echo $_SESSION['empresa_validar'];?></b>  - Per&iacute;odo: <b><font color=red><?echo $per;?></font></b>  -  Usuario: <b><?echo $_SESSION['nombre_validar'];?></b></font></td>
			</tr>
		</table>
    <hr>
    <font face='Verdana, Arial, Helvetica, sans-serif' size=4>Generar Reportes Contables</font>
    <font face='verdana' size=2>
      <br><br>
      <form name='entrada' action = '<?php echo $_SERVER['PHP_SELF']; ?>' method='POST' enctype='multipart/form-data'>

        <table align='center'>
          <?php
            if ($per!='') { ?>
              <tr>
                <td align='righta'>Per&iacute;odo Actual:</td>
                <td align='left'><font color=red> <?php echo $per; ?> </font></td>
              </tr>
              <?php
            }
          ?>

          <!-- Tipo de Reporte a Generar -->
          <tr id="filaTipoArchivo" class="">
            <td align='righta'>Tipo de Archivo:</td>
            <td align='left'>
              <select style='width:300px;' id="tipoReporte" onchange="onSelectChange()" name='treporte'>
                <option value='1'>ASIENTOS DE NOMINA (EXCEL)</option>
                <option value='2'>RESUMEN DE ASIENTOS (EXCEL)</option>
                <option value='3'>RESUMEN DE ASIENTOS (TXT)</option>

                <!-- <option value='2'>PRUEBA (EXCEL)</option>
                <option value='3'>OTRA PRUEBA (EXCEL)</option> -->
              </select>
            </td>
          </tr>

          <!-- Fecha Desde -->
          <tr id="filaFechaInicio" class="">
            <td align = ''> <font color=red>Fecha Desde </font></td>
            <td align = 'left'>
              <input type="date" style='width:300px;' name="fechaDesde">
            </td>
          </tr>

          <!-- Fecha Hasta -->
          <tr id="filaFechaFin" class="">
            <td align = ''> <font color=red>Fecha Hasta </font></td>
            <td align = 'left'>
              <input type="date" style='width:300px;' name="fechaHasta">
            </td>
          </tr>

          <!-- Periodo Desde -->
          <?php
            $consulta = mysqli_query($enlace,"SELECT * FROM periodo WHERE id='".$_SESSION['id_validar']."' order by nomina,periodo DESC") or die('No se pudo consultar los periodos (1): ' . mysqli_error($enlace));
            $numr = mysqli_num_rows($consulta);
          ?>
          <tr id="filaPeriodoDesde" class="hidden">
            <td align = ''> <font color=red>Per&iacute;odo Desde: </font></td>
            <td align = 'left'>
              <select style='width:300px;' name = 'per1'>
                <?php
                  for ($x=1;$x<=$numr;$x++) {
                    $row1 = mysqli_fetch_array($consulta);
                    if ($x!=1) {
                      echo "<option>".$row1['periodo']." - Nomina:".$row1['nomina']." - ".$row1['desde']." al ".$row1['hasta']."</option>";
                    }
                  }
                ?>
              </select>
            </td>
          </tr>

          <!-- Periodo Hasta -->
          <?php
            $consulta = mysqli_query($enlace,"SELECT * FROM periodo WHERE id='".$_SESSION['id_validar']."' order by nomina,periodo DESC") or die('No se pudo consultar los periodos (2): ' . mysqli_error($enlace));
            $numr = mysqli_num_rows($consulta);
          ?>
          <tr id="filaPeriodoHasta" class="hidden">
            <td align = ''> <font color=red>Per&iacute;odo Hasta: </font></td>
            <td align = 'left'>
              <select style='width:300px;' name = 'per2'>
                <?php
                  for ($x=1;$x<=$numr;$x++) {
                    $row1 = mysqli_fetch_array($consulta);
                    if ($x!=1) {
                      echo "<option>".$row1['periodo']." - Nomina:".$row1['nomina']." - ".$row1['desde']." al ".$row1['hasta']."</option>";
                    }
                  }
                ?>
              </select>
            </td>
          </tr>

          <!-- Gerencia -->
          <?php
            $idValidar=$_SESSION['id_validar'];
            $consulta = mysqli_query($enlace,"SELECT * FROM tablas WHERE tabla=ucase('GERENCIA') AND id = '$idValidar' ORDER BY codigo,detalle") or die('No se pudo consultar las gerencias: ' . mysqli_error($enlace));
            $resultado = mysqli_num_rows($consulta);
          ?>
          <tr id="filaGerencia" class="hidden">
            <td align = 'righta'> Gerencia: </td>
            <td align = 'left'>
              <select style='width:300px;' name = 'gerencia'>
                <option></option>
                <?php
                  if ($resultado != 0) {
                    for ($i=0;$i<$resultado;$i++) {
                      $row1 = mysqli_fetch_array($consulta);
                      echo "<option width = '30%'>".$row1['codigo']." - ".$row1['detalle']."</option>";
                    }
                  }
                ?>
              </select>
            </td>
          </tr>

          <!-- Division -->
          <?php
            $idValidar=$_SESSION['id_validar'];
            $consulta = mysqli_query($enlace,"SELECT * FROM tablas WHERE tabla=ucase('DIVISION') AND id='$id' ORDER BY codigo,detalle") or die('No se pudo consultar las divisiones: ' . mysqli_error($enlace));
            $resultado = mysqli_num_rows($consulta);
          ?>
          <tr id="filaDivision" class="hidden">
            <td align = 'righta'> Divisi&oacute;n: </td>
            <td align = 'left'>
              <select style='width:300px;' name = 'division'>
                <option></option>
                <?php
                  if ($resultado != 0) {
                    for ($i=0;$i<$resultado;$i++) {
                      $row1 = mysqli_fetch_array($consulta);
                      echo "<option width = '30%'>".$row1['codigo']." - ".$row1['detalle']."</option>";
                    }
                  }
                ?>
              </select>
            </td>
          </tr>

          <!-- Departamento -->
          <?php
            $id = $_SESSION["id_validar"];
            $consulta = mysqli_query($enlace,"SELECT * FROM tablas WHERE tabla=ucase('DEPARTAMENTO') AND id='$id' ORDER BY codigo,detalle") or die('No se pudo consultar los departamentos: ' . mysqli_error($enlace));
            $resultado = mysqli_num_rows($consulta);
          ?>
          <tr id="filaDepartamento" class="hidden">
            <td align = 'righta'> Departamento: </td>
            <td align = 'left'>
              <select style='width:300px;' name = 'departamento'>
                <option></option>
                <?php
                  if ($resultado != 0) {
                    for ($i=0;$i<$resultado;$i++) {
                      $row1 = mysqli_fetch_array($consulta);
                      echo "<option width = '30%'>".$row1['codigo']." - ".$row1['detalle']."</option>";
                    }
                  }
                ?>
              </select>
            </td>
          </tr>

          <tr id="consecutivo" class="hidden">
            <td align = 'righta'> Consecutivo: </td>
              <td align = 'left'>
              <input type="number" style='width:300px;' name='consecutivo' maxlength = '2' onKeypress="if (event.keyCode < 0 || event.keyCode > 99) event.returnValue = false;">
          </td>

				 
			   
          

          <?php
            if($mensaje != ""){
              $claseAlerta = $exito ? "alert-success" : "alert-danger";
              ?>
              <tr>
                <td colspan="4">
                  <div class="alert text-center <?php echo $claseAlerta; ?>" >
                    <?php echo $mensaje; ?>
                  </div>
              </tr>
            <?php
            }
          ?>
          <tr>
            <td align='left'></tr>
            <td colspan='4' align='center'>
              <input name='ver' type='submit' style='margin-left:5px; height:35px; width:200px' value='GENERAR REPORTE'>
            </td>
            <td colspan='4' id="archivo" class="hidden">
              <input name='ver' type='submit' style='margin-left:2px; height:35px; width:200px' value='Aprobar Archivo'>
            </td>
          </tr>
        </table>
      </form>
    </font>

    <script>
      const selectElement = document.querySelector('#tipoReporte');

      selectElement.addEventListener('change', (event) => {
        const filaFechaInicio = document.querySelector('#filaFechaInicio');
        const filaFechaFin = document.querySelector('#filaFechaFin');

        const filaPeriodoDesde = document.querySelector('#filaPeriodoDesde');
        const filaPeriodoHasta = document.querySelector('#filaPeriodoHasta');
        const filaGerencia = document.querySelector('#filaGerencia');
        const filaDivision = document.querySelector('#filaDivision');
        const filaDepartamento = document.querySelector('#filaDepartamento');
        

        if (event.target.value == "1" || event.target.value == "2" || event.target.value == "3"){
          filaPeriodoDesde.classList.add("hidden");
          filaPeriodoHasta.classList.add("hidden");
          filaGerencia.classList.add("hidden");
          filaDivision.classList.add("hidden");
          filaDepartamento.classList.add("hidden");
          filaFechaInicio.classList.remove("hidden");
          filaFechaFin.classList.remove("hidden");
          consecutivo.classList.remove("hidden");
          archivo.classList.add("hidden");
          
        }
        else{
          filaPeriodoDesde.classList.remove("hidden");
          filaPeriodoHasta.classList.remove("hidden");
          filaGerencia.classList.remove("hidden");
          filaDivision.classList.remove("hidden");
          filaDepartamento.classList.remove("hidden");
          filaFechaInicio.classList.add("hidden");
          filaFechaFin.classList.add("hidden");
          consecutivo.classList.add("hidden");
          archivo.classList.add("hidden");
        }
       // if (event.target.value == "3" ) archivo.classList.remove("hidden");

      });
    </script>


  </body>
</html>
