window.addEventListener( 'load', function( event )
{//Inicia windows.load
  mueveReloj();
  $.ajax({//mustra todas las ventas
      url:base_url+"pagos/franquiciatario/PagosF/TodasVentas/",
      dataType: 'json',
      success:function(response){
          console.log("exito");
          var columns = [
              { "title":"Folio Venta" },
              { "title":"Folio Consecutivo" },
              { "title":"Nombre Cliente" },
              { "title":"Fecha Venta" },
              { "title":"Total Venta" },
              { "title":"Cantidad recibida" },
              { "title":"Adeudo" },
              { "title":"Vendedor" },
              { "title":"Acciones" },
          ];   
          $('#table-Ventas').DataTable({
              dom: 'lrtip',
              // dom: 'T<"clear">Bfrtip',
              responsive: true,
              // columnDefs: hide,
              data: response,
              columns: columns,
              ServerSide: true,
              destroy: true,
              footer: true,
              processing: true,
              "lengthChange": false,
              "pageLength": 20,
              "order": [[ 0, "desc" ]],
              "columnDefs": [
                { "searchable": false, "targets": [3,4,5,6,7,8] }
              ],
    
              language: {
                  "lengthMenu": "Mostrar _MENU_ registros por pagina",
                  "zeroRecords": "No se encontraron resultados en su busqueda",
                  "searchPlaceholder": "Buscar registros",
                  "info": "Mostrando registros de _START_ al _END_ de un total de  _TOTAL_ registros",
                  "infoEmpty": "No existen registros",
                  "infoFiltered": "(filtrado de un total de _MAX_ registros)",
                  "search": "Buscar:",
                  "paginate": {
                      "first": "Primero",
                      "last": "Último",
                      "next": "Siguiente",
                      "previous": "Anterior"
                  },
              },
          });
          document.getElementById('cargando').classList.add('invisible');
          var table = $('#table-Ventas').DataTable();
        $('#query').on('input', function() {
          table.search(this.value).draw();
          // if (this.value<=0 || this.value>=0 ){
          //   table.columns(0).search(this.value).draw();       
          // }
          // else{        
          //   table.columns([1]).search(this.value).draw();      
          // }
        });
        // $('#query').on('input', function() {

        //   table.columns(1).search(this.value).draw();

        // });         
          $('#table-Ventas').wrap("<div id='scrooll_div' class='scrollbar-tabla'></div>");      
          $('#scrooll_div').doubleScroll({
                resetOnWindowResize: true
              });
              $('.doubleScroll-scroll-wrapper').css('width','100%');
    
      },//end success ajax response
      error:function(xhr, textStatus, errorThrown, error){
        console.log(xhr.responseText)
          console.log("error");
      },
    });//end ajax
    //Funciones de elementos
    var botonPagar=document.getElementById('pagar');
    var cantidadEfectivo=document.getElementById('Efectivo');
    var tipoTarjeta=document.getElementById('TipoTarjeta');
    var cantidadTarjeta=document.getElementById('CTarjeta');
    botonPagar.addEventListener('click', function(){
       obtenerDatos();
    });
    cantidadEfectivo.addEventListener('input', function() {
      calculaTotalIngresado();
    });
    tipoTarjeta.addEventListener("change", function() {
      if(tipoTarjeta.value=="")
      {
        document.getElementById('CTarjeta').disabled=true;
        document.getElementById('FolioTarjeta').disabled=true;
        document.getElementById('CTarjeta').value="";
        document.getElementById('FolioTarjeta').value="";
      }else{
        document.getElementById('CTarjeta').disabled=false;
        document.getElementById('CTarjeta').focus();
      }
    });
    cantidadTarjeta.addEventListener('input', function() {
      calculaTotalIngresado();
      if(cantidadTarjeta.value=="")
      {
        document.getElementById('FolioTarjeta').disabled=true;
      }else{
        document.getElementById('FolioTarjeta').disabled=false;
      }
    });
  //Funciones de cambio
  $(document).on('change', '.inputPago', function() {
    var valorAdeudo= $(this).parents('tr').find('td.adeudo').html();
    var valorAdeudoFijo= Number($(this).parents('tr').find('td.adeudoFijo').html());
    if (this.checked) {
      $(this).parents('tr').find('td.abono').html('<input type="number" class="input-abono" min="0" max="'+valorAdeudoFijo+'" onInput="validaCantidad(event, '+valorAdeudoFijo+'); calculaTotal();" onkeypress="return valida(event)">');
      $(this).parents('tr').find('input.input-abono').focus();
      if(parseFloat($(this).parents('tr').find('td.exhibiciones').html())==Number($(this).parents('tr').find('td.pago').html()))
      {
        $(this).parents('tr').find('td.abono').html(valorAdeudoFijo);
        $(this).parents('tr').find('td.adeudo').html('0');
      }
      
    }else{
      $(this).parents('tr').find('td.abono').html('');
      $(this).parents('tr').find('td.adeudo').html(valorAdeudoFijo);
      $('input[name="selecionaTodo"]').prop('checked', false);
    }
    validaselecionaTodo();
    calculaTotal();
    calculaAdeudo();
  });
  $(document).on('input', '.input-abono', function() {
    var valorAdeudo= Number($(this).parents('tr').find('td.adeudoFijo').html());
    var valorAbono=Number($(this).val());
    console.log(valorAdeudo-valorAbono);
    $(this).parents('tr').find('td.adeudo').html(valorAdeudo-valorAbono);
    calculaTotalIngresado();
    calculaAdeudo();
  });
});
//funciones
function pagar(id, folio, cliente, fecha, vendedor)
{
  console.log('entra');
  // console.log('Folio '+document.getElementById('folioVenta').innerHTML);
  
  document.getElementById('folioVenta').innerHTML='FOLIO: '+folio;
  document.getElementById('clienteVenta').innerHTML='CLIENTE: '+cliente;
  document.getElementById('fechaVenta').innerHTML='FECHA VENTA: '+fecha;
  document.getElementById('vendedorVenta').innerHTML='VENDEDOR: '+vendedor;
  // $("#modalPagar").modal('hide');
  // $("#modal-loader").modal('hide');
  // $('#modal-loader').modal('hide');
  // $('#modal-loader').modal('toggle');
  // $('body').removeClass('modal-open');
  // $('body').css('padding-right', '0px');
  // $('.modal-backdrop').remove();

  if($('#modal-loader').hasClass('in')){ 
    console.log('esta abierto loader');      
  } else{
    console.log('esta cerrado loader');
  }

  $("#modal-loader").modal();  
  $("#table-adeudos").empty();
  limpiarFormaPago();
  console.log(id);
        $.ajax({
                url:base_url+"pagos/franquiciatario/PagosF/todosAdeudos/",
                type:'POST',
                dataType: 'json',
                data:{id:id},
                success:function(response){
                    console.log("exito");
                    var columns = [
                        { "title":"<input type='checkbox' id='selecionaTodo' name='selecionaTodo' value='1' onClick='pagarTodo();'>" },
                        { "class":"invisible","title":"id" },
                        { "class":"invisible", "title":"idConcepto" },
                        { "class":"invisible", "title":"tipo" },
                        { "title":"Concepto" },
                        { "title":"Cantidad" },
                        { "class":"adeudoFijo invisible","title":"Adeudo" },
                        { "class":"adeudo","title":"Adeudo" },
                        { "class":"exhibiciones","title":"Exhibiciones" },
                        { "class":"pago","title":"N° Pago" },                        
                        { "class":"abono","title":"Abono" },
                    ]; 
                    $("#table-adeudos").append('<tfoot id="foother" class="foother"><tr><th>Total</th><th></th><th></th><th></th><th></th><th></th><th></th><th id="totalAdeudo" class="total centrar"></th><th></th><th></th><th id="cantidadTotal" class="total centrar"></th></tr></tfoot>');  
                    $('#table-adeudos').DataTable( {
                        dom: 'lrtip',
                        responsive: true,
                        data: response,
                        columns: columns,
                        ServerSide: true,
                         destroy: true,
                         footer: true,
                         processing: true,
                         "lengthChange": false,
                         "bPaginate": false,
                         "bFilter": false, //hide Search bar
                         "bInfo": false, // hide showing entries
                         "ordering": false,

                        language: {
                            "lengthMenu": "Mostrar _MENU_ registros por pagina",
                            "zeroRecords": "No se encontraron resultados en su busqueda",
                            "searchPlaceholder": "Buscar registros",
                            "info": "Mostrando registros de _START_ al _END_ de un total de  _TOTAL_ registros",
                            "infoEmpty": "No existen registros",
                            "infoFiltered": "(filtrado de un total de _MAX_ registros)",
                            "search": "Buscar:",
                            "paginate": {
                                "first": "Primero",
                                "last": "Último",
                                "next": "Siguiente",
                                "previous": "Anterior"
                            },
                        },
                    });
                    document.getElementById('totalAdeudo').innerHTML="";
                    document.getElementById('cantidadTotal').innerHTML="";
                    document.getElementById('idVenta').value=id;                                      
                    // document.getElementById('cargando').classList.add('invisible'); //modal cargando <-
                    $('#table-adeudos').wrap("<div id='scrooll_div2' class='scrollbar-tabla'></div>");
                    $('#scrooll_div2').doubleScroll({
                          resetOnWindowResize: true
                        });
                        $("#modal-loader").modal('hide');   
                        $('#modalPagar').modal();
                },//end success ajax response
                error:function(xhr, textStatus, errorThrown, error){
                  console.log(xhr.responseText)
                    console.log("error");
                },
        });//end ajax
}
function pagarTodo()
{
  console.log('pagar todo');
  var selector=document.getElementById('selecionaTodo')
  if(selector.checked==true)
  {
      $('.inputPago').each(
      function() {
        if($(this).is(':checked'))
        {
          console.log('ckeck');
        }else{
                $(this).prop('checked', 'checked');
                $(this).trigger("change");
        }
      }
    );
  }else
  {
    $('input[type="checkbox"]').prop('checked', false);
    $('.inputPago').trigger("change");
  }
}
function validaselecionaTodo()
{
  var bandera='true';
  $('.inputPago').each(
      function() {
        if(!this.checked)
        {
          bandera='false';
        }
      }
    );
    if(bandera=='true')
    {
      $('input[name="selecionaTodo"]').prop('checked', true);
    }
}
function calculaTotalIngresado()
{
 var efectivo=Number(document.getElementById('Efectivo').value);
 var cTarjeta=Number(document.getElementById('CTarjeta').value);
 var cantidadTotal=Number(document.getElementById('cantidadTotal').innerHTML);
 
 var suma=efectivo+cTarjeta;
 var resta=cantidadTotal-suma;
 if(resta<0)
 {
  resta=0;
 }
 document.getElementById('TotalIngresado').innerHTML=suma;
 document.getElementById('TotalFaltante').innerHTML=resta;
 
  if(suma==cantidadTotal)
  {
    document.getElementById('pagar').disabled=false;
    document.getElementById('TotalIngresado').classList.remove('totalIngresado-error');
    document.getElementById('TotalIngresado').classList.add('totalIngresado-correcto');
  }else{
    document.getElementById('pagar').disabled=true;
    document.getElementById('TotalIngresado').classList.add('totalIngresado-error');
    document.getElementById('TotalIngresado').classList.remove('totalIngresado-correcto');
  }
  if(suma==0)
  {
    document.getElementById('pagar').disabled=true;
    document.getElementById('TotalIngresado').classList.add('totalIngresado-error');
    document.getElementById('TotalIngresado').classList.remove('totalIngresado-correcto');
  }
  if(suma>cantidadTotal)
  {
    $('#TotalIngresado').notify("Está ingresando una cantidad mayor al total.\n Ingrese nuevamente la cantidad",{
      position:'bottom center',
      className:'error',
      autoHideDelay: 1200,
    }); 
    document.getElementById('Efectivo').value="";
    document.getElementById('CTarjeta').value="";
  }
}
function calculaTotal()
{
  var suma=0;
  var valorSimple=0;
  var valorInput=0;
  $('.abono').each(function() { 
        var input=$(this).parents('tr').find('input.input-abono').val();
    if($(this).hasClass('total'))
    {
    }else{    
      if($(this).text()>0)
      {
        valorSimple=valorSimple+Number($(this).text());
        valorAbono=valorSimple;
      }
      if(input !== void 0)
      {
        valorInput=valorInput+Number($(this).parents('tr').find('input.input-abono').val());
        valorAbono=valorInput;
      }
    }
  });
  suma=Number(valorSimple) + Number(valorInput);
  console.log(suma);
  document.getElementById('cantidadTotal').innerHTML=suma;  
  calculaTotalIngresado();
  if(suma>0)
  {
    document.getElementById('contenedorPago').classList.remove('invisible');
  }else{
    document.getElementById('contenedorPago').classList.add('invisible');
  }
}
function calculaAdeudo()
{
  var totalAdeudo=0;
  $('.adeudo').each(function() { 
      if($(this).hasClass('total'))
      {
      }else{    
        if($(this).text()>0)
        {
          totalAdeudo=totalAdeudo + Number($(this).text());  
        }
      }
    });
  document.getElementById('totalAdeudo').innerHTML=totalAdeudo;
}
function obtenerDatos()
{
    var j=0;
    var efectivo=Number(document.getElementById('Efectivo').value);
    var tarjeta=document.getElementById('TipoTarjeta').value;
    var cantidadTarjeta=Number(document.getElementById('CTarjeta').value);
    var folioTerminal=document.getElementById('FolioTarjeta').value;
    var vendedor=document.getElementById('Usuario').value;
    var cantidadTotal=document.getElementById('cantidadTotal').innerHTML;
    var cantidadIngresada=document.getElementById('TotalIngresado').innerHTML;
    var fecha=document.getElementById('fechaHora').value;
    var datos= new Array();
    var datosPagar= new Array();
    var datosFinal= new Array();
    var check="";
    var CEfectivo="";
    var CTarjeta="";
    var TipoTarjeta="";
    var folio="";
    var efectivoTarjeta="";
    var cantidad="";
    var validaCantidad="";
    var resta=0;
  $("#table-adeudos td").each(function(){
    var input=$(this).find('input.input-abono').val();
    if($($(this).find('input.inputPago')).prop('checked')) {
        datos.push('on');
        check=true;
      }
    datos.push($(this).text());
    if(j==10 && check==true)
    {
      if(input !== void 0)
      {
        cantidad=Number(input);
      }else if($(this).text()!="")
      {
        cantidad=Number($(this).text());
      }
      if(cantidad==0)
      {
        $(this).find('input.input-abono').focus();
        validaCantidad="0";
      }
      datos.push(cantidad);
      if(cantidad>0 && cantidad<=efectivo)
      {
        CEfectivo=cantidad;
        efectivo=efectivo-CEfectivo;  
        cantidad=0;     
      }else if(cantidad>0 && cantidad<=cantidadTarjeta)
      {
        CTarjeta=cantidad;
        cantidadTarjeta=cantidadTarjeta-CTarjeta;
        TipoTarjeta=tarjeta;
        folio=folioTerminal;
        cantidad=0; 
      }else if(cantidad>0)
      {
        efectivoTarjeta=efectivo+cantidadTarjeta;
        if(efectivoTarjeta==cantidad)
        {
          console.log('efectivo==cantidad');
          CEfectivo=efectivo;
          CTarjeta=cantidadTarjeta;
          TipoTarjeta=tarjeta;
          efectivo=0;
          cantidadTarjeta=0;
          folio=folioTerminal;
          cantidad=0; 
        }else{
          
          if(cantidad>0 && cantidad>efectivo)
          {
            resta=cantidad-efectivo;
            CEfectivo=efectivo;
            efectivo=0;
            cantidad=resta;
            if(cantidad>0 && cantidad<cantidadTarjeta)
            {
              CTarjeta=cantidad;
              TipoTarjeta=tarjeta;
              folio=folioTerminal;
              cantidadTarjeta=cantidadTarjeta-cantidad;
              cantidad=0;
            }
          }
          if(cantidad>0 && cantidad>cantidadTarjeta)
          {
            resta=cantidad-cantidadTarjeta;
            CTarjeta=cantidadTarjeta;
            TipoTarjeta=tarjeta;
            folio=folioTerminal;
            cantidadTarjeta=0;
            cantidad=resta;
            if(cantidad>0 && cantidad<efectivo)
            {
              CEfectivo=cantidad;
              efectivo=efectivo-cantidad;
              cantidad=0;
            }
          } 
        }
      }
      console.log('efectivo'+efectivo);
      console.log('tarjeta'+cantidadTarjeta);
      console.log('suma'+efectivoTarjeta);
      // datos.push(cantidad);
      datos.push(CEfectivo);
      datos.push(TipoTarjeta);
      datos.push(CTarjeta);
      datos.push(folio);
      datos.push(vendedor);
      datos.push(fecha);
      check="";
      CEfectivo="";
      CTarjeta="";
      TipoTarjeta="";
      folio="";
      cantidad="";
      // console.log('efectivo'+efectivo);
      // console.log('tarjeta'+cantidadTarjeta);
      // console.log('tarjeta'+TipoTarjeta);
    }
    // console.log(check);
    j++;
    if(j==11)
      {
        datosPagar.push(datos);
        datos=[];
        j=0;
      }

  });
  console.log(datos);
  var cantidades="", vendedorSelect="";
  if(cantidadTotal==cantidadIngresada)
  {
    cantidades='correcto';
  }else{
      $('#TotalIngresado').notify("Verifique que esté ingresando.\n la cantidad correspondiente",{
        position:'bottom center',
        className:'error',
      }); 
  }
  if(vendedor!="")
  {
    vendedorSelect='correcto';
  }else{
    $('#Usuario').notify("Seleccione vendedor",{
        position:'bottom center',
        className:'error',
      }); 
  }
  if(validaCantidad=='0')
  {
    $('#table-adeudos').notify("Verifique si ingreso todos los datos",{
        position:'bottom center',
        className:'error',
      }); 
  }else{
    validaCantidad='correcto';
  }
  if(cantidades=='correcto' && vendedorSelect=='correcto' && validaCantidad=='correcto')
  {
    console.log(datosPagar);
    for(var x=0; x<datosPagar.length; x++)
    {
      if(datosPagar[x].length==19)
      {
        datosFinal.push(datosPagar[x]);
      }
    }
    console.log(datosFinal);
    // ----------------------------------------------
    $("#modalPagar").modal('hide'); 
    $("#modal-loader").modal();   
    var id=document.getElementById('idVenta').value;
    var abono=document.getElementById('cantidadTotal').innerHTML;
    $.ajax({
        url:base_url+"pagos/franquiciatario/PagosF/pagarTodo/",
        type:'POST',
        dataType: 'json',
        data: {'array': JSON.stringify(datosFinal), id:id, abono:abono},//capturo array
        success:function(result){          
            console.log(result);      
            if(result!='error')
            {
              $("#modal-loader").modal('hide'); 
              swal({
                title: "¿Pago guardado correctamente?",
                icon: "success",
                button: "Aceptar",
                confirm: true,
                closeOnClickOutside: false,
                closeOnEsc: false,
              })
              .then((confirm) => {
                $("#modal-loader").modal();  
                if(rol==2)
                {
                  location.href=base_url+"pagos/franquiciatario/PagosF/generaTicketPago/"+result;    
                }else if(rol==3)
                {
                  location.href=base_url+"pagos/cosmetologo/PagosC/generaTicketPago/"+result;    
                }
                          
              });
            }           
        },//end success ajax response
        error:function(xhr, textStatus, errorThrown, error){
          console.log(xhr.responseText)
          console.log("No hay resultados");
          },
      });//end ajax
       // ----------------------------------------------
  }

}
function masExhibicion(tipo, id)
{
  var folio= document.getElementById("folioVenta").innerHTML.replace('FOLIO: ', '');
  var cliente= document.getElementById("clienteVenta").innerHTML.replace('CLIENTE: ', '');
  var fecha= document.getElementById("fechaVenta").innerHTML.replace('FECHA VENTA: ', '');
  var vendedor= document.getElementById("vendedorVenta").innerHTML.replace('VENDEDOR: ', '');

  $("#modalPagar").modal('hide');  
  var idVenta=document.getElementById('idVenta').value;
  console.log('here');
  $.ajax({
    url:base_url+"pagos/franquiciatario/PagosF/aumentarExhibicion/",
    type:'POST',
    dataType: 'json',
    data: {id:id, tipo:tipo},
    success:function(result){          
        // console.log(result);
        if(result=='correcto')
        {
          if($('#modalPagar').hasClass('in')){             
            console.log('esta abierto');            
          } else{
            console.log('esta cerrado');
            setTimeout(() => {

            pagar(idVenta, folio, cliente, fecha, vendedor);
            }, 500);
          }

        }               
    },//end success ajax response
    error:function(xhr, textStatus, errorThrown, error){
      console.log(xhr.responseText)
      console.log("No hay resultados");
      },
  });//end ajax
}
function limpiarFormaPago()
{
  document.getElementById('contenedorPago').classList.add('invisible');
  document.getElementById('Efectivo').value="";
  document.getElementById('TipoTarjeta').value="";
  document.getElementById('CTarjeta').value="";
  document.getElementById('FolioTarjeta').value="";
  document.getElementById('Usuario').value="";
  document.getElementById('TotalIngresado').value="";
  document.getElementById('pagar').disabled=true;  
}
function mueveReloj(){ 
  var momentoActual = new Date() 
  var hora = momentoActual.getHours() 
  var minuto = momentoActual.getMinutes() 
  var segundo = momentoActual.getSeconds() 
  var str_segundo = new String (segundo) 
  if (str_segundo.length == 1) 
      segundo = "0" + segundo 

  var str_minuto = new String (minuto) 
  if (str_minuto.length == 1) 
      minuto = "0" + minuto 

  var str_hora = new String (hora) 
  if (str_hora.length == 1) 
      hora = "0" + hora 
    
  var horaImprimible = hora + ":" + minuto + ":" + segundo 
  var date = new Date();
  var year = date.getFullYear();
  var month = date.getMonth()+1;
  var dt = date.getDate();

  if (dt < 10) {
    dt = '0' + dt;
  }
  if (month < 10) {
    month = '0' + month;
  }
  var FechaCompleta = dt+'-' + month + '-'+year;
  var nuevaF = year+'-' + month + '-'+dt;
  document.getElementById('fechaHora').value=nuevaF +" "+ horaImprimible;  
  setTimeout("mueveReloj()",1000) 

}
function valida(e)
  {
      var tecla = (document.all) ? e.keyCode : e.which;
      //Tecla de retroceso para borrar, siempre la permite
      if (tecla==8){
        return true;
      }
     // Patron de entrada, en este caso solo acepta numeros
      var patron =/["0123456789"]/;
      var tecla_final = String.fromCharCode(tecla);
      return patron.test(tecla_final);
  }
function validaPunto(e)
  {
      var tecla = (document.all) ? e.keyCode : e.which;
      //Tecla de retroceso para borrar, siempre la permite
      if (tecla==8){
        return true;
      }
      // Patron de entrada, en este caso solo acepta numeros
      var patron =/["0123456789."]/;
      var tecla_final = String.fromCharCode(tecla);
      return patron.test(tecla_final);
  } 
function validaCantidad(e, valor)
{
  var valorIngresado=$(e.target).val();
  if(valorIngresado>valor)
  {
    $(e.target).val(valor);
  }
}
  