<?php session_start();
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');
include("fphp.php");
$enlace = cargar_conexion();
$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'] = '';
menu();


if (substr($_SESSION['acceso_validar'],41,1)!='1'){//Valida si tiene permisos de acceso a Bancos
  "No tiene permisos de acceso";
  exit;
}

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

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

if (isset($_POST['generarBanco'])) {
      
    $nombre_archivoBD= $_POST['archivo']."encode";
    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));

    function api_upload_Folder($enlace, $nombre_archivo, $contenido_codificado)
    {

    
      $curl = curl_init();
     
      $url ="https://sadehub-sappayrollapi-test.apps.pd01e.edc1.cf.ford.com/api/v1/files/bycountry/upload"; /////API pruebas
	   //$url = "https://www.sapecpapi.ford.com/api/v1/files/bycountry/upload"; ////API ProducciÃ³n
      curl_setopt_array($curl, array(

        CURLOPT_URL => $url,
		//CURLOPT_URL => 'https://www.sapecpapi.ford.com/api/v1/files/bycountry/upload',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => '{
						"country": "VEN",
						"fileContent": "'.$contenido_codificado.'",
						"fileName": "'.$nombre_archivo.'"
					}',
        CURLOPT_HTTPHEADER => array(
          'Authorization: Basic NDc0NjY5YjAtMzg0NS00ZGNjLWI2YWYtMzQzY2UyMGM5NWQ1OmN1Sk13dXRsVjh6NmxnTWRHYXl1Rmg3M3R4REJGdDcvckI2YTVwU1YySEk9', 'Content-Type: application/json'
        ),
      ));
      
      
      $response = curl_exec($curl);
      $result_api = json_decode($response, true);
     
      $info = curl_getinfo($curl);
      $error = curl_error($curl);
      if (empty($info['http_code'])) {
        die("No HTTP code was returned");
      } else if ($info['http_code'] == 200) {
        $queryUpdate = "UPDATE asientos SET enviado = 1, respuesta = 'El archivo fue transmitido satisfactoriamente', hora_envio = '".date('Y-m-d H:i:s')."' WHERE archivo ='".$_POST['archivo']."';";
        $resultado = mysqli_query($enlace,$queryUpdate);
        $resultado_transmision = $resultado."<b> El archivo fue transmitido satisfactoriamente</b>";
      } else if ($info['http_code'] > 200) {
        //$http_codes = parse_ini_file($url);
        
        foreach ($result_api['error']['messages'] as $result) {
          $resultado_transmision = "<b>Hubo un error al transmitir el archivo: </b><br><br>" . "<b>Error: </b>" . $result;
        }
        $queryUpdate = "UPDATE asientos SET respuesta = '".$resultado_transmision."' WHERE archivo ='".$_POST['archivo']."';";
        $resultado = mysqli_query($enlace,$queryUpdate);
      }
      curl_close($curl);

      if ($resultado_transmision == '') { //Si no obtiene respuesta, error desconocido
        $resultado_transmision = "<b>Hubo un error al transmitir el archivo:</b> <br><br>" . "<b>Error: </b>Error desconocido al transmitir la informaciÃ³n";
      }
      return $resultado_transmision;
      
    }

    $base64 = file_get_contents($_POST['archivo']."encode");
    $result_upload = api_upload_Folder($enlace,'contabilidad.txt',$base64);
    
    echo "<script>alert('".$result_upload."');</script>";
    
}



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

$query = "SELECT archivo FROM asientos WHERE aprobado = 1 and enviado = 0;";
$consultaQ = mysqli_query($enlace,$query) or die ("No se pudo realizar la consulta: ".$query.'='.mysqli_error($enlace));
$resultadoQ = 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>
  .dropdown-menu>.active>a,
  .dropdown-menu>.active>a:focus,
  .dropdown-menu>.active>a:hover {
    color: #fff;
    text-decoration: none;
    background-color: #337ab7;
    outline: 0;
  }

  #tabla_novedades .horas_extras,
  .ausencia_medica,
  .validado_por_sso,
  .justificacion_ausencia,
  .remunerado_ausencia,
  .tiempo_viaje_ausencia,
  .ausencia,
  .ausencia_programada,
  .tipo_permiso_ausencia,
  .retardo,
  .salida_anticipada,
  .horassalida_anticipada,
  .datos_trabajador,
  .hora_salida_ausencia,
  .hora_llegada_ausencia {
    display: none;
  }

  #ocultar {
    display: none;
  }

  .form-control-time {
    width: 80px;
    height: 34px;
    padding: 6px 12px;
    font-size: 12px;
    line-height: 1.42857143;
    color: #555;
    background-color: #fff;
    background-image: none;
    border: 1px solid #ccc;
    border-radius: 4px;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
    -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  }

  .boton {
    /* width: 100%; */
    color: #FFFFFF;
    /* font-size: 0.8725em; */
    padding: 7px;
    margin-bottom: 5px;
    margin-top: 10px;
    outline: none;
    /* margin: 5px 0; */
    font-family: 'Open Sans', sans-serif;
    font-size: 16px;
    font-weight: bold;
    text-transform: uppercase;
    background: #36C1E2;
    border: 0px solid #DFDFDF;
  }

  .glyphicon-modal-window:before {
    content: "\e237"
  }

  .modal-open {
    overflow: hidden
  }

  .modal {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1050;
    display: none;
    overflow: hidden;
    -webkit-overflow-scrolling: touch;
    outline: 0
  }

  .modal.fade .modal-dialog {
    -webkit-transform: translate(0, -25%);
    -ms-transform: translate(0, -25%);
    -o-transform: translate(0, -25%);
    transform: translate(0, -25%);
    -webkit-transition: -webkit-transform .3s ease-out;
    -o-transition: -o-transform .3s ease-out;
    transition: -webkit-transform .3s ease-out;
    transition: transform .3s ease-out;
    transition: transform .3s ease-out, -webkit-transform .3s ease-out, -o-transform .3s ease-out
  }

  .modal.in .modal-dialog {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0)
  }

  .modal-open .modal {
    overflow-x: hidden;
    overflow-y: auto
  }

  .modal-dialog {
    position: relative;
    width: auto;
    margin: 10px
  }

  .modal-content {
    position: relative;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #999;
    border: 1px solid rgba(0, 0, 0, .2);
    border-radius: 6px;
    -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
    box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
    outline: 0
  }

  .modal-backdrop {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1040;
    background-color: #000
  }

  .modal-backdrop.fade {
    filter: alpha(opacity=0);
    opacity: 0
  }

  .modal-backdrop.in {
    filter: alpha(opacity=50);
    opacity: .5
  }

  .modal-header {
    padding: 15px;
    border-bottom: 1px solid #e5e5e5
  }

  .modal-header .close {
    margin-top: -2px
  }

  .modal-title {
    margin: 0;
    line-height: 1.42857143
  }

  .modal-body {
    position: relative;
    padding: 15px
  }

  .modal-footer {
    padding: 15px;
    text-align: right;
    border-top: 1px solid #e5e5e5
  }

  .modal-footer .btn+.btn {
    margin-bottom: 0;
    margin-left: 5px
  }

  .modal-footer .btn-group .btn+.btn {
    margin-left: -1px
  }

  .modal-footer .btn-block+.btn-block {
    margin-left: 0
  }

  .modal-scrollbar-measure {
    position: absolute;
    top: -9999px;
    width: 50px;
    height: 50px;
    overflow: scroll
  }

  @media (min-width:768px) {
    .modal-dialog {
      width: 600px;
      margin: 30px auto
    }

    .modal-content {
      -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
      box-shadow: 0 5px 15px rgba(0, 0, 0, .5)
    }

    .modal-sm {
      width: 300px
    }
  }

  @media (min-width:992px) {
    .modal-lg {
      width: 900px
    }
  }

  .tooltip {
    position: absolute;
    z-index: 1070;
    display: block;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-style: normal;
    font-weight: 400;
    line-height: 1.42857143;
    line-break: auto;
    text-align: left;
    text-align: start;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    letter-spacing: normal;
    word-break: normal;
    word-spacing: normal;
    word-wrap: normal;
    white-space: normal;
    font-size: 12px;
    filter: alpha(opacity=0);
    opacity: 0
  }

  .tooltip.in {
    filter: alpha(opacity=90);
    opacity: .9
  }
</style>

<style>
  /*the container must be positioned relative:*/
  .autocomplete {
    position: relative;
    display: inline-block;
    text-transform: capitalize;
  }

  .autocompletar {
    text-transform: capitalize;
  }

  .regristrado {
    color: green;
    margin-left: 7%;
    font-weight: bold;
  }

  .noregristrado {
    color: red;
    margin-left: 7%;
    font-weight: bold;
  }

  .autocomplete-items {
    position: absolute;
    border: 1px solid #d4d4d4;
    border-bottom: none;
    border-top: none;
    z-index: 99;
    /*position the autocomplete items to be the same width as the container:*/
    top: 100%;
    left: 0;
    right: 0;
  }

  .autocomplete-items div {
    padding: 5px;
    cursor: pointer;
    background-color: #fff;
    border-bottom: 1px solid #d4d4d4;
  }

  /*when hovering an item:*/
  .autocomplete-items div:hover {
    background-color: #e9e9e9;
  }

  /*when navigating through the items using the arrow keys:*/
  .autocomplete-active {
    background-color: DodgerBlue !important;
    color: #ffffff;
  }

  #response_alert {
    background: #36C1E2;
    padding: 10px;
    width: auto;
    color: #fff;
    text-align: left;
    line-height: 25px;
  }
</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 ($result_upload != "") {
    echo "<div id='response_alert'>";
    echo "$result_upload";
    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='ERP'>Asientos de NÃ³mina</option>";

  echo "</select>";
  echo "</div>&nbsp;&nbsp;";
  echo "<div class='form-group form-inline' id='div_nomina'>";
  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_periodo'>";	
	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Ã­

  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_tabla' style='display:none'>";
  echo "<label name='label-novedad'>Seleccione Archivo:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
        <select style='width:350px;' name='archivo' id='archivo' class='form-control'>
        <option value='' selected> Seleccione";
        while ($fila = mysqli_fetch_array($consultaQ)) {
            echo "<option value='" . $fila['archivo'] . "'>" .$fila['archivo']."";
          }
  echo "</select>";
  echo "</div>&nbsp;&nbsp;";

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

  ?>

  <script>
    $("#fecha_pago").datepicker({
      dateFormat: 'yy-mm-dd'
    });

    $('#tipo_nomina').change(function() {
      var tipo_nomina = $('#tipo_nomina').val();
      var dates = new FormData();
      dates.append('tipo_nomina', tipo_nomina);
      fetch('autocompletar/consultahorario.php', {
          method: 'POST',
          body: dates
        })
        .then(res => res.json())
        .then(data => {
          if (data == 'Error') {
            //nada
          } else {}
          if (tipo_nomina == 100) {
            $('#periodo').empty();
            $('#periodo').append($("<option>", {
              value: '',
              text: 'Seleccione'
            }));
            for (i = 0; i < data.length; i++) {
              $('#periodo').append($("<option>", {
                value: data[i]['desde'] + ' ' + data[i]['hasta'],
                text: data[i]['desde'] + '  ' + data[i]['hasta']
              }));
            }

          } else if (tipo_nomina == 200) {
            $('#periodo').empty();
            $('#periodo').append($("<option>", {
              value: '',
              text: 'Seleccione'
            }));
            if (data !== null) {
              for (i = 0; i < data.length; i++) {
                $('#periodo').append($("<option>", {
                  value: data[i]['desde'] + ' ' + data[i]['hasta'],
                  text: data[i]['desde'] + '  ' + data[i]['hasta']
                }));
              }
            }
          }
        });
    });

    $(document).ready(function() {
      $('#enviarNomina').prop('disabled', true);
      $('#enviarNomina').css("opacity", 0.2);
      
      $('#nomina').change(function() {
        if ($(this).val() != '' && $('#tipo_nomina').val() != '' && $('#periodo').val() != '') {
          $('#enviarNomina').prop('disabled', false);
          $('#enviarNomina').css("opacity", 1);
        } else {
          $('#enviarNomina').prop('disabled', true);
          $('#enviarNomina').css("opacity", 0.2);
          $('#div_nomina').show();
        }

        if ($(this).val() == 'pagos_especiales' || $(this).val() == 'vacaciones' || $(this).val() == 'finiquitos' || $(this).val() == 'utilidades')   {
          $('#periodo').attr('required', false);
          $('#div_periodo').hide();
          $('#div_fecha_pago').show();
          $('#fecha_pago').attr('required', true);
          $('#enviarNomina').prop('disabled', false);
          $('#enviarNomina').css("opacity", 1);
          $('#div_nomina').show();

        } else {
          $('#div_fecha_pago').hide();
          $('#fecha_pago').attr('required', false);
          $('#div_periodo').show();
          $('#periodo').attr('required', true);
          $('#div_nomina').show();
        }

        if ($(this).val() == 'nomina_ordinaria' || $(this).val() == 'nomina_fideicomiso' || $(this).val() == 'nomina_dias_adic_fideicomiso'){
          $('#div_fecha_pago').show();
          $('#fecha_pago').attr('required', true);
          $('#div_nomina').show();
        }
        if ($(this).val() == 'ERP'){
            $('#enviarNomina').prop('disabled', false);
            $('#enviarNomina').css("opacity", 1);
            $('#periodo').attr('required', false);
            $('#div_periodo').hide();
            $('#div_fecha_pago').hide();
            $('#div_nomina').hide();
            $('#fecha_pago').attr('required', false);
            $('#tipo_nomina').attr('required', false);
            $('#div_tabla').show();
        }

      });
      $('#tipo_nomina').change(function() {
        
        if ($(this).val() != '' && $('#nomina').val() != '' && $('#periodo').val() != '') {
          $('#enviarNomina').prop('disabled', false);
          $('#enviarNomina').css("opacity", 1);
        } else {
          $('#enviarNomina').prop('disabled', true);
          $('#enviarNomina').css("opacity", 0.2);
        }

        if ($('#nomina').val() == 'pagos_especiales' || $('#nomina').val() == 'vacaciones' || $('#nomina').val() == 'finiquitos' || $('#nomina').val() == 'utilidades') {
          $('#enviarNomina').prop('disabled', false);
          $('#enviarNomina').css("opacity", 1);
        }
      });
      $('#periodo').change(function() {
        if ($(this).val() != '' && $('#nomina').val() != '' && $('#tipo_nomina').val() != '') {
          $('#enviarNomina').prop('disabled', false);
          $('#enviarNomina').css("opacity", 1);
        } else {
          $('#enviarNomina').prop('disabled', true);
          $('#enviarNomina').css("opacity", 0.2);
        }
      });
    });
  </script>
</body>

</html>
