var tabla;
var cantidadtotalu = 0;
var listapreciod;
var idlistaprecio = 1;

$("#montopago").change(actualizarpago);
$("#montopagob").change(actualizarpago);
// Pedido
//declaramos variables necesarias para trabajar con las Ventas y sus detalles
var impuesto = $("#impuesto").val();
console.log(impuesto);
var cont = 0;
var detalles = 0;
var detallescxc = 0;
var indicepermisoborrar = -50;

$("#btnGuardar").hide();
$("#tipo_comprobante").change(marcarImpuesto);
//Fin de Pedido

//funcion que se ejecuta al inicio
function init() {
  mostrarform(false);
  listarruta();
  buscarTasaDeCambiocxc();
  verificarinicioruta();

  //PARA CUENTA POR CXC
  /****** CXC      **************/

  $("#btnGuardar").on("click", function (e) {
    /* Evitamos el envío real del formulario */
    e.preventDefault();
    validar();
    var val = $("#validado").val();
    let cuentabanco = $("#idbancocuenta").val();

    console.log(val);
    console.log("cuenta banco: ", cuentabanco);
    if (val == 1) {
      var total_pago = document.getElementById("total_pago").value;
      var diferencia = document.getElementById("diferencia").value;
      if (cuentabanco != 0) {
        if (total_pago != 0) {
          //Vamos a verificar si selecciono una nota de credito y coloco monto
          //let notanc = verificarncmonto;
          if(verificarncmonto()){
            bootbox.confirm(
              "¿Esta seguro que quiere guardar los dato?",
              function (result) {
                if (result) {
                  modificarValoresAnumerico();
                  guardaryeditarc(e);
                }
              }
            );
          }else{
            bootbox.alert("Es necesario ingresar un monto para la nota de crédito seleccionada");
          }
         
        } else {
          bootbox.alert("No se ha seleccionado ningún documento para efectuar el pago");
        }
      } else {
        bootbox.alert("Por favor, seleccione una cuenta bancaria.");
      }
    }
  });

  //cargamos los items al select Forma de Pago
  $.post(
    "controladores/formapagosControlador.php?op=selectformapago",
    function (f) {
      $("#idformapago").html(f);
      $("#idformapago").selectpicker("refresh");
    }
  );

  //cargamos los items al select Tipo de Pagos
  $.post(
    "controladores/tipopagosControlador.php?op=selecttipopagos",
    function (t) {
      $("#idtipopagos").html(t);
      $("#idtipopagos").selectpicker("refresh");
    }
  );

  //cargamos los items al select Cuenta de Banco
  $.post(
    "controladores/cuentabancoControlador.php?op=selectCuentabancor",
    function (c) {
      $("#idbancocuenta").html(c);
      $("#idbancocuenta").selectpicker("refresh");
    }
  );

  //Actualizamos el monto de pago y formateo el valor del monto del pago
  $("#montopago").keyup(function (event) {
    // skip for arrow keys
    if (event.which >= 37 && event.which <= 40) {
      event.preventDefault();
    }
    var value = $(this).val();
    $(this).val(decimal(value));
    let valor = numero($(this).val()) * numero($("#tasacambioventa").val());
    $("#montopagob").val(number_format(valor, 2));

    //	chequeardocumentos();
  });

  //Actualizamos el monto de pago y formateo el valor del monto del pago
  $("#montopagob").keyup(function (event) {
    // skip for arrow keys
    if (event.which >= 37 && event.which <= 40) {
      event.preventDefault();
    }
    var value = $(this).val();
    $(this).val(decimal(value));
    let valor = numero($(this).val()) / numero($("#tasacambioventa").val());
    $("#montopago").val(number_format(valor, 2));
    //	chequeardocumentos();
  });

  //Actualizamos el monto de pago y formateo el valor del monto del pago
  $("#tasacambioventa").keyup(function (event) {
    // skip for arrow keys
    if (event.which >= 37 && event.which <= 40) {
      event.preventDefault();
    }
    var value = $(this).val();
    $(this).val(decimal(value));

    //	chequeardocumentos();
  });

  //se verifica si cambia los campos del formulario
  $("#idbancocuenta").change(function () {
    /*
    $("#montopago").val("0,00");
    $("#montopagob").val("0,00");
    let valor = $("#idbancocuenta").val().split("-");
    let montopago = document.getElementById("montopago");
    let montopagob = document.getElementById("montopagob");
    montopagob.style.backgroundColor = "#a9aab0";
    montopago.style.backgroundColor = "#a9aab0";

    if (valor[1] == "Dollar") {
      $("#montopago").attr("readonly", false);
      montopago.style.backgroundColor = "#bdf59a";
      $("#montopagob").attr("readonly", true);
      montopagob.style.backgroundColor = "#dfe0e6";
    } else {
      $("#montopagob").attr("readonly", false);
      montopagob.style.backgroundColor = "#bdf59a";
      $("#montopago").attr("readonly", true);
      montopago.style.backgroundColor = "#dfe0e6";
    }
      */
    //console.log('valor[0] :'+valor[0]);
    //console.log('valor[1] :'+valor[1]);
    cambiodecuenta();
  });

  //se verifica si cambia los campos del formulario
  $("#idformapago").change(function () {
    /*
    $("#montopago").val("0,00");
    $("#montopagob").val("0,00");
    let valor = $("#idformapago").val();
    let montopago = document.getElementById("montopago");
    let montopagob = document.getElementById("montopagob");
    montopagob.style.backgroundColor = "#a9aab0";
    montopago.style.backgroundColor = "#a9aab0";

    if (valor == "7") {
      $("#montopago").attr("readonly", false);
      montopago.style.backgroundColor = "#bdf59a";
      //$("#montopagob").attr("readonly", true);
      montopagob.style.backgroundColor = "#dfe0e6";
    } else {
      $("#montopagob").attr("readonly", false);
      montopagob.style.backgroundColor = "#bdf59a";
      //$("#montopago").attr("readonly", true);
      montopago.style.backgroundColor = "#dfe0e6";
    }
    */
    //console.log('valor[0] :'+valor[0]);
    //console.log('valor[1] :'+valor[1]);

    var id = $("#idformapago option:selected").val();
    var texto = $("#idformapago option:selected").text();
    var select = document.getElementById("idbancocuenta");

    //Solo para chocomilk y bocatto
    var cuenta = "CAJA CHICA";
    console.log(id, texto);
    if (texto == "EFECTIVO DOLLAR") {
      buscarcuenta(cuenta);
    } else {
      buscarcuenta("");
    }
  });

  //Se verifica la nota de credito seleccionada
  document.querySelectorAll('input[type="radio"][name="optionsRadios"]').forEach(radio => {
    radio.addEventListener('click', function(event) {
      // Si el radio ya estaba seleccionado, lo deseleccionamos
      if (this.dataset.checked === "true") {
        this.checked = false;
        this.dataset.checked = "false";
        actualizarSeleccion(null); // No hay radio seleccionado
      } else {
        // Deseleccionamos otros radios y marcamos este
        document.querySelectorAll('input[type="radio"][name="optionsRadios"]').forEach(r => r.dataset.checked = "false");
        this.dataset.checked = "true";
        actualizarSeleccion(this);
      }
    });

    radio.addEventListener('change', function() {
      if (this.checked) {
        actualizarSeleccion(this);
      }
    });
  });

  //validar monto de nota de credito
  var typingTimer2; //timer identifier
  var doneTypingInterval2 = 10000; //time in ms, 1 second for example
  //var doneTypingInterval = 1500;  //time in ms, 1 second for example
  //detalles
  $("#contenedor").on("keyup paste", ":input", function () {
    var value = $(this).val(); //obtiene el valor actual del input.
    var name = $(this).prop("name");

    if (name == "montonc[]") {
      $(this).val(decimal(value));
      //evaluar(value);
    }

    clearTimeout(typingTimer);
    typingTimer2 = setTimeout(doneTyping, doneTypingInterval2);
  });

  //Se limpia el contador cuando deja de escribir
  $("#contenedor").on("keydown", function () {
    clearTimeout(typingTimer2);
  });

  // PARA PEDIDO
  /******* PEDIDO ******************/

  /*Se captura el evento de guardar los datos */
  $("#btnFacturar").on("click", function (e) {
    /* Evitamos el envío real del formulario */
    e.preventDefault();
    validar();
    //console.log(detalles);
    if (detalles <= 0) {
      bootbox.alert("No agregado producto a su pedido");
    } else {
      var val = $("#validado").val();
      //console.log(val);
      if (val == 1) {
        // Se va a guardar el pedido
        bootbox.confirm(
          "¿Esta seguro que quiere guardar los dato?",
          function (result) {
            if (result) {
              modificarValoresAnumericopedido();
              guardaryeditar(e);
            }
          }
        );
      }
    }
  });

  $("#btnmodalenviar").on("click", function (e) {
    $("#motivonovisita").val();
    if ($("#motivonovisita").val() == 0) {
      bootbox.alert("Debe seleccionar un motivo de no visita");
    } else {
      $("#myModalestado").modal("hide");
      guardarradarno();
    }
  });

  /*Se captura el evento de buscar clave de permiso */
  $("#formaguardarcliente").on("submit", function (e) {
    /* Evitamos el envío real del formulario */
    e.preventDefault();
    $("#myModalCliente").modal("hide");
    guardarcliente();
  });

  // Se busca el codigo de barra
  $("#cod_barra").keypress(function (e) {
    var keycode = e.keyCode ? e.keyCode : e.which;
    var codigobarra = $("#cod_barra").val();
    if (keycode == "13") {
      // Evitamos el envío real del enter
      e.preventDefault();
      // Hacemos la llamada al API Buscamos el codigo de barra
      buscarcodigodebarra(codigobarra);
      return false;
    }
  });

  //Capturamos los campos de los articulos pata totalizar

  // Se busca el cliente
  //setup before functions
  /*
  var typingTimer; //timer identifier
  var doneTypingInterval = 30000; //time in ms, 1 second for example
  var $input = $("#num_documento");

  //Se inicia el conteo para buscar el cliente
  $input.on("keyup", function () {
    clearTimeout(typingTimer);
    typingTimer = setTimeout(doneTyping, doneTypingInterval);
  });

  //Se limpia el contador cuando deja de escribir
  $input.on("keydown", function () {
    clearTimeout(typingTimer);
  });

  //buscamos el cliente
  function doneTyping() {
    var tipo_documento = $("#tipo_documento").val();
    var num_documento = $("#num_documento").val();
    buscarcliente(tipo_documento, num_documento);
  }
  

  $("#num_documento").keypress(function (e) {
    var keycode = e.keyCode ? e.keyCode : e.which;
    if (keycode == "13") {
      // Evitamos el envío real del enter
      e.preventDefault();
      // Hacemos la llamada al API Buscamos el codigo de barra
      var tipo_documento = $("#tipo_documento").val();
      var num_documento = $("#num_documento").val();
      buscarcliente(tipo_documento, num_documento);
      return false;
    }
  });
  */

  /* Tras cargar el documento posicionamos el cursor en el lector de código de barras */
  document.addEventListener("DOMContentLoaded", function () {
    //Pedido Codigo de barra
    $("#cod_barra").val("");
    //$("#cod_barra").focus();
    $("#idcliente").focus();

  });


  //se verifica si cambia los campos del formulario
  $("#idcliente").change(function () {
    buscarclienteid($("#idcliente").val());
    buscardespachoid($("#idcliente").val());
    $("#cod_barra").val("");
    //$("#cod_barra").focus();
  });

  $("#tipo_comprobante").change(function () {
    $("#cod_barra").val("");
    //$("#cod_barra").focus();
  });

  $("#fecha_hora").change(function () {
    $("#cod_barra").val("");
    //$("#cod_barra").focus();
  });

 
  //cargamos los items al select cliente
  $.post("controladores/pedidoControlador.php?op=selectCliente", function (r) {
    $("#idcliente").html(r);
    $("#idcliente").val(0);
    $("#idcliente").selectpicker("refresh");
  });

  $.post("controladores/pedidoControlador.php?op=selectVendedor", function (r) {
    $("#idvendedor").html(r);
    $("#idvendedor").selectpicker("refresh");
  });
  // Fin de pedido

}

//Comunes para CXC y Pedido

//funcion limpiar
function limpiar() {
  $("#formulario").data("bootstrapValidator").resetForm(true);

  //CxC
  $("#nombre").val("");
  $("#idpagocliente").val("");
  $("#idpagocliente").val("");
  $("#tipo_persona").val("");
  $("#idformapago").val("");
  $("#idtipopagos").val("");
  $("#idreferencia").val("");
  $("#notadecredito").val("");
  $("#montopago").val("0,00");
  $("#montopagob").val("0,00");
  $("#montopagod").val("0,00");
  $("#total_pago").val("0,00");
  $("#total_pagob").val("0,00");
  $("#diferencia").val("0,00");
  $("#montosaldo").val("0,00");
  $("#referencia").val("");
  
  limpiarRadios();

  // Pedido
  $("#formulario").data("bootstrapValidator").resetForm(true);
  //document.getElementById("formaguardarcliente").reset();
  $("#tipo_documento").val("");
  $("#num_documento").val("");
  $("#nombre").val("");
  $("#observacion").val("");
  $("#tipo_comprobante").val("");
  $("#serie_comprobante").val("");
  $("#num_comprobante").val("");
  $("#impuesto").val("");
  $("#montosubtotal").val(0);
  $("#montoapagarbs").val(0);
  $("#validar").val(0);
  $("#total_venta").val(0);
  $("#total_venta1").val(0);
  $(".filas").remove();
  $("#total").html("0");
  $("#idtransportista").val("");
  $("#idtransportista").selectpicker("refresh");
  $("#idformapago").val("0");
  $("#idformapago").selectpicker("refresh");
  $("#idtipopagos").val("");
  $("#idtipopagos").selectpicker("refresh");
  $("#idbancocuenta").val("0");
  $("#idbancocuenta").selectpicker("refresh");
  $("#diacredito").val("");
  $("#iddiacredito").val(3);
  $("#iddiacredito").selectpicker("refresh");
  //$("#idbancocuenta").selectpicker('refresh');

  //$("#idcliente").val("");
  //$("#idcliente").selectpicker('refresh');
  buscarTasaDeCambio();
  limpiarcheckbox();

  //obtenemos la fecha actual
  var now = new Date();
  var today = new Date();
  var dd = ("0" + now.getDate()).slice(-2);
  var mm = ("0" + (now.getMonth() + 1)).slice(-2);
  var yyyy = now.getFullYear();
  var today = yyyy + "-" + mm + "-" + dd;
  $(fecha_hora).val(today);

  //marcamos el primer tipo_documento
  $("#tipo_comprobante").val("Pedido");
  /* $("#tipo_comprobante").selectpicker('refresh'); */
  //marcamos el primer tipo_documento
  $("#tipo_comprobante1").val("NotaEntrega");
  $("#tipo_comprobante1").selectpicker("refresh");
  marcarImpuesto();

  //marcamos el primer tipo_documento
  $("#tipo_documento").val("RIF");
  $("#tipo_documento").selectpicker("refresh");
}

function limpiarRadios() {
  let radios = document.querySelectorAll('input[type="radio"][name="optionsRadios"]');
  radios.forEach(radio => {
      radio.checked = false;
  });
}


//funcion listar
function listarruta() {
  idusuario = $("#idusuario").val();
  console.log("idusuarioruta: " + idusuario);
  tabla = $("#tbllistado")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: ["copyHtml5", "excelHtml5", "csvHtml5", "pdf"],
      columnDefs: [
        {
          targets: -1,
          className: "dt-body-justify",
        },
      ],
      ajax: {
        url: "controladores/radarControlador.php?op=listarruta",
        type: "post",
        data: {
          idusuario: idusuario,
        },
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[5, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

//funcion mostrar formulario
function mostrarform(flag) {
  limpiar();
  if (flag) {
    $("#listadoregistros").hide();
    $("#formularioregistros").show();
    $("#formularioregistros1").show();
    $("#formularioregistrosp").hide();
    $("#formularioregistrosp1").hide();
    $("#btnGuardar").show();
    $("#btnCancelar").show();
    $("#btnGuardar").prop("disabled", false);
    $("#btnagregar").hide();
    $("#btnCerra").hide();
  } else {
    $("#listadoregistros").show();
    //$("#listadoregistros").prop("disabled",false);
    //$("#listadoregistros").prop('disabled',true);
    //$("#listadoregistros").attr("disabled", true);
    //$("#listadoregistros").attr('disabled','disabled');
    //$("#listadoregistros").children().attr("disabled","disabled");
    $("#formularioregistros").hide();
    $("#formularioregistros1").hide();
    $("#formularioregistrosp").hide();
    $("#formularioregistrosp1").hide();
    $("#btnagregar").hide();
    $("#btnCancelar").hide();
    $("#btnCancelar1").hide();
    $("#btnCerra1").hide();
    $("#btnCerra").show();
  }
}

function mostrarno(idpersona) {
  $("#motivonovisita").val("0");
  $("#motivonovisita").selectpicker("refresh");
  $("#idpersonan").val(idpersona);
  $("#myModalestado").modal("show");
}

function guardarradarno() {
  //console.log('Id de cliente vale:'+$("#idcliente").val()+' y fecha: '+$("#fecha_hora1").val());
  var idcliente1 = $("#idpersonan").val();
  var estado = $("#motivonovisita").val();
  //obtenemos la fecha actual
  var now = new Date();
  var today = new Date();
  var dd = ("0" + now.getDate()).slice(-2);
  var mm = ("0" + (now.getMonth() + 1)).slice(-2);
  var yyyy = now.getFullYear();
  var today = yyyy + "-" + mm + "-" + dd;
  var fecha_hora11 = today;
  $.ajax({
    url: "controladores/radarControlador.php?op=guardarradarno",
    type: "POST",
    data: {
      idcliente1: idcliente1,
      fecha_hora11: fecha_hora11,
      estado: estado,
    },
    success: function (datos) {
      bootbox.alert(datos);
      listarruta();
    },
  });
}

// funcion para buscar si la ruta esta cerrada o abierta
function iniciarrruta() {
  //$('#listadoregistros').fadeTo('slow',.6);
  //$('#listadoregistros').append('<div style="position: absolute;top:0;left:0;width: 100%;height:100%;z-index:2;opacity:0.4;filter: alpha(opacity = 50)"></div>');
  var idusuario = $("#idusuario").val();
  var fecha_hora11 = $("#fecha_hora").val();
  console.log("idusuario: " + idusuario);
  console.log("fecha_hora11: " + fecha_hora11);
  $.post(
    "controladores/radarControlador.php?op=registarinicioruta",
    { idusuario: idusuario, fecha_hora11: fecha_hora11 },
    function (e) {
      bootbox.alert(e);
      tabla.ajax.reload();
      $("#btnCerra").show();
      $("#btnIniciar").hide();
      $("#listadoregistros").fadeTo("fast");
      var nodes = document
        .getElementById("listadoregistros")
        .getElementsByTagName("*");
      for (var i = 0; i < nodes.length; i++) {
        nodes[i].disabled = false;
      }
      $("#listadoregistros").fadeTo("fast", 1);
    }
  );
}

// funcion para buscar si la ruta esta cerrada o abierta
function cerrarruta() {
  var idusuario = $("#idusuario").val();
  console.log("idusuario: " + idusuario);
  $.post(
    "controladores/personaControlador.php?op=verificarrutavendedor",
    { idusuario: idusuario },
    function (e) {
      var idusuario = $("#idusuario").val();
      var fecha_hora11 = $("#fecha_hora").val();
      if (e == "si") {
        $.post(
          "controladores/radarControlador.php?op=registarfinderuta",
          { idusuario: idusuario, fecha_hora11: fecha_hora11 },
          function (e) {
            bootbox.alert(e);
            tabla.ajax.reload();
            $("#btnCerra").hide();
            $("#btnIniciar").hide();
            var nodes = document
              .getElementById("listadoregistros")
              .getElementsByTagName("*");
            for (var i = 0; i < nodes.length; i++) {
              nodes[i].disabled = true;
            }
            $("#listadoregistros").fadeTo("slow", 0.5);
          }
        );
      } else {
        bootbox.alert(
          "Le Quedan cliente Pendiente, aún no puede finalizar la ruta"
        );
        //listarruta();
      }
    }
  );
}

//
function verificarinicioruta() {
  var idusuario = $("#idusuario").val();
  var fecha_hora11 = $("#fecha_hora").val();
  console.log("idusuario: " + idusuario);
  console.log("fecha_hora11: " + fecha_hora11);
  $.post(
    "controladores/radarControlador.php?op=verificarinicioruta",
    { idusuario: idusuario, fecha_hora11: fecha_hora11 },
    function (e) {
      //bootbox.alert(e);
      if (e == "si") {
        //bootbox.alert("La ruta ya inicio");
        $("#btnCerra").show();
        $("#btnIniciar").hide();
      } else {
        bootbox.alert("La ruta no iniciado");
        $("#btnCerra").hide();
        $("#btnIniciar").show();
        var nodes = document
          .getElementById("listadoregistros")
          .getElementsByTagName("*");
        for (var i = 0; i < nodes.length; i++) {
          nodes[i].disabled = true;
        }
        $("#listadoregistros").fadeTo("slow", 0.5);
        //$('#listadoregistros').append('<div id="bloqueo" style="position: absolute;top:0;left:0;width: 100%;height:50%;z-index:2;opacity:0.4;filter: alpha(opacity = 50)"></div>');
        //$("#btnIniciar").prop('disabled',false);
      }
    }
  );
}


//CxC ***********************

//funcion para limpiar checkbox con todo lo seleccionado
function limpiarcheckbox() {
  // Obtener todos los elementos de tipo checkbox en la página
  const checkboxes = document.querySelectorAll('input[type="checkbox"]');
  // Contador para hacer un seguimiento de la posición
  let posicion = 0;
  // Recorrer todos los checkboxes y llamar a una función con sus valores
  checkboxes.forEach(function (checkbox) {
    checkbox.checked = false;
    // Llamar a la función con los valores del checkbox y su posición
    change_checkbox(posicion, checkbox);
    // Incrementar el contador de posición
    posicion++;
  });

  $("#total_pago").val(0);
  $("#total_pagob").val(0);
  $("#diferencia").val(0);
  $("#montopagod").val(0);
}

function cambiodecuenta() {
  $("#montopago").val("0,00");
  $("#montopagob").val("0,00");
  $("#diferencia").val("0,00");
  let valor = $("#idbancocuenta").val().split("-");
  let montopago = document.getElementById("montopago");
  let montopagob = document.getElementById("montopagob");
  montopagob.style.backgroundColor = "#a9aab0";
  montopago.style.backgroundColor = "#a9aab0";

  //tomar texto del select
  var id = $("#idbancocuenta option:selected").val();
  var texto = $("#idbancocuenta option:selected").text();

  //Solo para bocatto y chocomilk
  /**/ if (texto == "CAJA CHICA") {
    buscarformapago1("EFECTIVO DOLLAR");
  } else {
    buscarformapago1("TRANSFERENCIA");
  }

  if (valor[1] == "Dollar") {
    $("#montopago").attr("readonly", false);
    montopago.style.backgroundColor = "#bdf59a";
    $("#montopagob").attr("readonly", true);
    montopagob.style.backgroundColor = "#dfe0e6";
  } else {
    $("#montopagob").attr("readonly", false);
    montopagob.style.backgroundColor = "#bdf59a";
    $("#montopago").attr("readonly", true);
    montopago.style.backgroundColor = "#dfe0e6";
  }
  console.log("valor[0] A de cuenta es: ", valor[0]);
  limpiarcheckbox();
  console.log("valor[0] D de cuenta es: ", valor[0]);
  if (valor[0] == "0") {
    $("#idbancocuenta").val(0);
    $("#idbancocuenta").selectpicker("refresh");
    $("#validado").val(0);
  }
  //console.log('valor[0] :'+valor[0]);
  //console.log('valor[1] :'+valor[1]);
}

function buscarformapago(forma, cuenta) {
  var select = document.getElementById("idformapago");
  for (var i = 1; i < select.length; i++) {
    console.log("select.options[i].text: " + select.options[i].text);
    if (select.options[i].text == forma) {
      // seleccionamos el valor que coincide
      //	console.log('select.options[i].value: '+select.options[i].value);
      $("#idformapago").val(select.options[i].value);
      $("#idformapago").selectpicker("refresh");
      console.log("igual y sale forma pago");
      buscarcuenta(cuenta);
      break;
    } else {
      $("#idformapago").val(0);
      $("#idformapago").selectpicker("refresh");
    }
  }
}

function buscarformapago1(forma) {
  var select = document.getElementById("idformapago");
  for (var i = 1; i < select.length; i++) {
    console.log("select.options[i].text: " + select.options[i].text);
    if (select.options[i].text == forma) {
      // seleccionamos el valor que coincide
      //	console.log('select.options[i].value: '+select.options[i].value);
      $("#idformapago").val(select.options[i].value);
      $("#idformapago").selectpicker("refresh");
      console.log("igual y sale forma pago");

      break;
    } else {
      $("#idformapago").val(0);
      $("#idformapago").selectpicker("refresh");
    }
  }
}

function buscarcuenta(cuenta) {
  var select = document.getElementById("idbancocuenta");
  console.log("cuenta: " + cuenta);
  for (var i = 1; i < select.length; i++) {
    console.log("select.options[i].text: " + select.options[i].text);
    if (select.options[i].text == cuenta) {
      // seleccionamos el valor que coincide
      console.log("igual y sale cuenta");
      $("#idbancocuenta").val(select.options[i].value);
      $("#idbancocuenta").selectpicker("refresh");
      cambiodecuenta();
      break;
    } else {
      $("#idbancocuenta").val(select.options[i].value);
      $("#idbancocuenta").selectpicker("refresh");
    }
  }
}

//Se busca el numero la tasa de cambio
function buscarTasaDeCambiocxc() {
  idempresa_venta = $("#idempresa_venta").val();
  //alert ('idempresa_venta: '+idempresa_venta);
  $.post(
    "controladores/empresaControlador.php?op=buscarTasaDeCambio",
    { idempresa_venta: idempresa_venta },
    function (data, status) {
      //alert ('estatus: '+status);
      data1 = JSON.parse(data);
      //console.log('tasa de cambiobd: '+data1.tasa_dollar);
      //$("#tasa_dollar").val(number_format(data1.tasa_dollar),2);
      $("#tasacambioventa").val(decimal(data1.tasa_dollar));
      console.log("tasa de cambio:" + $("#tasacambioventa").val());
      //	console.log('#tasacambioventa:'+$("#tasa_dollar").val());
      //$("#tasa_euro").val(number_format(data1.tasa_euro),2);
      //	$("#tasa_euro").val(data1.tasa_euro);
      //		alert ('Control: '+data1.nrocontrol+' Factura: '+data1.nrofactura);
    }
  );
}

//funcion para guardaryeditar
function modificarValoresAnumerico() {
  var cant = document.getElementsByName("montod[]");
  var cant1 = document.getElementsByName("montodd[]");
  var prec = document.getElementsByName("abono[]");
  var prev = document.getElementsByName("pendiente[]");
  //let notacredito = document.getElementsByName("notacreditode[]");
  let montonc = document.getElementsByName("montonc[]");


  let valor = $("#idbancocuenta").val().split("-");
  let cuenta = parseInt(valor[0]);
  //console.log("idbancocuentatoda-valoresnumerico: ", $("#idbancocuenta").val());
  //console.log("cuenta: ", cuenta);
  $("#idbancocuentap").val(cuenta);
  // console.log("$(#idbancocuentap).val(): ", $("#idbancocuentap").val());

  var total_pago1 = $("#total_pago").val();
  var total_pago2 = $("#total_pagob").val();
  var diferencia1 = $("#diferencia").val();
  var montopago1 = $("#montopago").val();
  var montopago1b = $("#montopagob").val();
  var tasacambio1 = $("#tasacambioventa").val();
  total_pago1 = numero(total_pago1);
  total_pago2 = numero(total_pago2);
  diferencia1 = numero(diferencia1);
  montopago1 = numero(montopago1);
  tasacambio1 = numero(tasacambio1);
  montopago1b = numero(montopago1b);
  $("#total_pago").val(total_pago1);
  $("#total_pagob").val(total_pago2);
  $("#diferencia").val(diferencia1);
  $("#montopago").val(montopago1);
  $("#tasacambioventa").val(tasacambio1);
  $("#montopagob").val(montopago1b);
  for (var i = 0; i < cant.length; i++) {
    var Cmod = cant[i];
    var Cmod1 = cant1[i];
    var Pcmod = prec[i];
    var Pvmod = prev[i];
    //var notac = notacredito[i];
    var notacm = montonc[i];
    console.log("Pago en $ antes: " + Cmod.value);
    Cmod.value = numero(Cmod.value);
    Cmod1.value = numero(Cmod1.value);
    Pcmod.value = numero(Pcmod.value);
    Pvmod.value = numero(Pvmod.value);
    notacm.value = numero(notacm.value);
    //notac.disabled = false;
    console.log("Pago en bs: " + Cmod1.value);
    console.log("Pago en $: " + Cmod.value);
  }
}

//funcion para guardaryeditar
function guardaryeditarc(e) {
  e.preventDefault(); //no se activara la accion predeterminada
  $("#btnGuardar").prop("disabled", true);
  var formData = new FormData($("#formulario")[0]);
  $.ajax({
    url: "controladores/pagoclienteControlador.php?op=guardaryeditarvendedorruta",
    type: "POST",
    data: formData,
    contentType: false,
    processData: false,

    success: function (datos) {
      bootbox.alert(datos);
      guardarradarcxc();
      mostrarform(false);
      listarruta();
      //tabla.ajax.reload();
    },
  });

  limpiar();
  //guardarradarcxc();
}

function guardarradarcxc() {
  console.log(
    "Id de cliente vale:" +
      $("#idcliente").val() +
      " y fecha: " +
      $("#fecha_hora1").val()
  );
  var idcliente1 = $("#idpersona").val();
  var fecha_hora11 = $("#fecha_hora").val();
  $.ajax({
    url: "controladores/radarControlador.php?op=guardarradarcxc",
    type: "POST",
    data: {
      idcliente1: idcliente1,
      fecha_hora11: fecha_hora11,
    },
    success: function (datos) {
      bootbox.alert(datos);
    },
  });
}

//funcion limpiar
function validarmonto() {
  alert("validando");
  return false;
}

//funcion listar
function listardeuda() {
  tabla = $("#tbllistado")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: ["copyHtml5", "excelHtml5", "csvHtml5", "pdf"],
      columnDefs: [
        {
          targets: -1,
          className: "dt-body-justify",
        },
      ],
      ajax: {
        url: "controladores/estadocuentaclienteControlador.php?op=listardeuda",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      drawCallback: function () {
        //alert("La tabla se está recargando");
        var api = this.api();
        //var tactual	= api.column(3, {page:'current'}).data().sum();
        //	var total	= api.column(2).data().sum();
        //	tactual		= number_format(tactual*1,2);
        //	var data	= api.column(2).data();
        var data1 = api.column(3).data();
        var data2 = api.column(2).data();
        //		var deuda = 0;
        //		var pagado=	0;
        var saldo = 0;
        var nro = 0;
        for (var i = 0; i < data2.length; i++) {
          //	deuda 	= deuda+numero(data[i]);
          //	pagado 	= pagado+numero(data1[i]);
          saldo = saldo + numero(data2[i]);
          nro = nro + numero(data1[i]);
        }

        //	deuda		= number_format(deuda*1,2);
        //		pagado	= number_format(pagado*1,2);
        saldo = number_format(saldo * 1, 2);
        /* $(api.column(4).footer()).html('Total Actual:');
			$(api.column(5).footer()).html(tactual); */
        $(api.column(0).footer()).html("Total:");
        //$(api.column(2).footer()).html(deuda);
        //$(api.column(3).footer()).html(pagado);
        $(api.column(2).footer()).html(saldo);
        $(api.column(3).footer()).html(nro);
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

function mostrar(idpersona) {
  mostrarform(true);
  $.post(
    "controladores/personaControlador.php?op=mostrar",
    { idpersona: idpersona },
    function (data, status) {
      data = JSON.parse(data);
      mostrarform(true);
      $("#nombre").val(data.nombre);
      $("#agenteretencion").val(data.agenteretencion);
      $("#idpersona").val(data.idpersona);
      $.post(
        "controladores/estadocuentaclienteControlador.php?op=listarDetallecobroradar&id=" +
          idpersona,
        function (r) {
          $("#detallescxc").html(r);
          detallescxc=1;
          console.log('$("#total_saldo").val(): ' + $("#total_saldo").val());
          $("#montosaldo").val($("#total_saldo").val());
        }
      );
      //console.log('ide de persona: '+$("#idpersona").val());
    }
  );
}

//funcion para desactivar
function eliminar(idpersona) {
  bootbox.confirm("¿Esta seguro de eliminar este dato?", function (result) {
    if (result) {
      $.post(
        "controladores/personaControlador.php?op=eliminar",
        { idpersona: idpersona },
        function (e) {
          bootbox.alert(e);
          tabla.ajax.reload();
        }
      );
    }
  });
}

//cancelar form
function cancelarform() {
  limpiar();
  mostrarform(false);
}

//funcion para el redondeo
function roundToTwo(num) {
  return +(Math.round(num + "e+2") + "e-2");
}

// Funcion para verificar el monto del pago
function actualizarpago() {
  var total_pago = document.getElementById("total_pago").value;
  var diferencia = document.getElementById("diferencia").value;
  var montopago = document.getElementById("montopago").value;

  // Convertir a numerico para hacer los calculo
  total_pago = numero(total_pago);
  diferencia = numero(diferencia);
  montopago = numero(montopago);

  diferencia = montopago - total_pago;

  // formatear numero para la vista.
  diferencia = number_format(diferencia, 2);
  document.getElementById("diferencia").style.color = "blue";
  $("#diferencia").val(diferencia);
}

/*
function change_checkbox(id, el) {
  //var monto1				=	document.getElementsByName("montod[]");
  var monto1 = document.getElementsByName("montodd[]");
  var monto1b = document.getElementsByName("montod[]");
  var abono1 = document.getElementsByName("abono[]");
  var pendiente1 = document.getElementsByName("pendiente[]");
  var tasa_dollar1 = document.getElementsByName("tasa_dollar[]");
  var abono11 = document.getElementsByName("abono1[]");
  var pendiente11 = document.getElementsByName("pendiente1[]");
  var estado1 = document.getElementsByName("estado1[]");
  var total_pago = document.getElementById("total_pago").value;
  var total_pagob = document.getElementById("total_pagob").value;
  var diferencia = document.getElementById("diferencia").value;
  var montopago = document.getElementById("montopago").value;
  var montof = monto1[id].value;
  var totalf = 0;
  var abono = 0;
  var pendiente = 0;
  var color = "";

  if (total_pago == "") {
    total_pago = 0;
  }
  // Se verifica si la variable seleccion de documento no esta definida y se le asigna un valor
  if (typeof seleccion === "undefined") {
    seleccion = "si";
  }
  // Se verifica si la variable seleccion de documento no esta definida y se le asigna un valor
  if (typeof idparcial === "undefined") {
    idparcial = -1;
  }
  // Convertir a numerico para hacer los calculo
  total_pago = numero(total_pago);
  diferencia = numero(diferencia);
  montopago = numero(montopago);
  montof = numero(montof);
  abono = numero(abono1[id].value);
  pendiente = numero(pendiente1[id].value);
  tasa_dollar = tasa_dollar1[id].value * 1;
  totalf = montof;
  console.log(
    "Antes tp: " + total_pago + " dif: " + diferencia + " montof: " + montof
  );
  if (el.checked) {
    console.log(
      "montopago: " + montopago + " dif: " + diferencia + " montof: " + montof
    );
    if (montopago > 0 && diferencia > 0) {
      abonoid = 0;
      pendienteid = 0;
      estado = "Pagada";
      if (abono > 0) {
        if (montof - abono > 0) {
          pendiente = montof - abono;
          totalf = abono;
          estado = "Parcial";
          color = "orange";
        } else {
          pendiente = 0;
          //	abono 					= 0;
          //	abono 					= 0;
          estado = "Pagada";
          color = "green";
        }
      } else {
        if (diferencia >= montof) {
          abono = montof;
          pendiente = 0;
          estado = "Pagada";
          color = "green";
        } else {
          pendiente = montof - diferencia;
          abono = montof - pendiente;
          totalf = abono;
          estado = "Parcial";
          color = "orange";
        }
      }

      marcado(id, abono, pendiente, estado, color);
      if (estado == "Parcial") {
        etiqueta = '<span class="badge bg-yellow">' + estado + "</span>";
      } else {
        etiqueta = '<span class="badge bg-green">' + estado + "</span>";
      }
      //$('#estado0').html('');

      $("#estado" + id).html(etiqueta);

      //$("#idtipopagos").html(etiqueta);
      total_pago = total_pago + totalf;
      total_pagob = total_pago * tasa_dollar;
      console.log(
        "total_pago: " +
          total_pago +
          " total_pagob: " +
          total_pagob +
          " tasa_dollar: " +
          tasa_dollar
      );
    } else {
      if (total_pago >= montopago && montopago > 0) {
        bootbox.alert(
          "Ya excedio el monto de pago y no puede seleccionar mas documentos"
        );
        el.checked = false;
      } else {
        if (total_pago <= 0) {
          bootbox.alert("Debe Colocar el Monto de Pago");
        }

        el.checked = false;
      }
    }
  } else {
    estado11 = estado1[id].value;

    if (abono > 0) {
      totalf = abono;
    }
    abono = 0;
    pendiente = 0;
    estado11 = estado1[id].value;
    console.log("estado11: " + estado11);
    if (estado11 == "Parcial") {
      etiqueta = '<span class="badge bg-yellow">' + estado11 + "</span>";
      color = "orange";
    } else {
      etiqueta = '<span class="badge bg-red">' + estado11 + "</span>";
      color = "red";
    }
    desmarcado(id, abono, pendiente, estado11, color);

    $("#estado" + id).html(etiqueta);

    total_pago = total_pago - totalf;
    total_pagob = total_pago * tasa_dollar;
    console.log(
      "total_pago: " +
        total_pago +
        " total_pagob: " +
        total_pago * tasa_dollar +
        " tasa_dollar: " +
        tasa_dollar
    );
  }
  diferencia = roundToTwo(montopago) - roundToTwo(total_pago);
  if (diferencia <= 0) {
    $("#montopagod").val(0);
    document.getElementById("diferencia").style.color = "red";
    document.getElementById("montopagod").style.color = "blue";
  } else {
    document.getElementById("diferencia").style.color = "blue";
    document.getElementById("montopagod").style.color = "red";
  }
  console.log(
    "Despues tp: " + total_pago + " dif: " + diferencia + " montof: " + montof
  );
  total_pago = number_format(total_pago, 2);
  total_pagob = number_format(total_pagob, 2);
  diferencia = number_format(diferencia, 2);
  console.log(
    "Despues formato tp: " +
      total_pago +
      " dif: " +
      diferencia +
      " montof: " +
      montof +
      " total_pagob: " +
      total_pagob
  );
  $("#total_pago").val(total_pago);
  $("#total_pagob").val(total_pagob);
  $("#diferencia").val(diferencia);
  $("#montopagod").val(diferencia);
}
*/

function change_checkbox(id, el) {
  //var monto1				=	document.getElementsByName("montod[]");
  var monto1 = document.getElementsByName("montodd[]");
  var monto1b = document.getElementsByName("montod[]");
  var abono1 = document.getElementsByName("abono[]");
  var pendiente1 = document.getElementsByName("pendiente[]");
  var tasa_dollar1 = document.getElementsByName("tasa_dollar[]");
  var abono11 = document.getElementsByName("abono1[]");
  var pendiente11 = document.getElementsByName("pendiente1[]");
  var estado1 = document.getElementsByName("estado1[]");
  var total_pago = document.getElementById("total_pago").value;
  var total_pagob = document.getElementById("total_pagob").value;
  var diferencia = document.getElementById("diferencia").value;
  var montopago = document.getElementById("montopago").value;
  let notacredito = document.getElementsByName("notacreditode[]");
  let notac = notacredito[id];
  // Verificar si el índice es válido
  if (id < 0 || id >= monto1.length) {
    console.error("Índice fuera de rango checkbox: ", id);
    return;
  }
  var montof = monto1[id].value;
  var totalf = 0;
  var abono = 0;
  var pendiente = 0;
  var color = "";

  if (total_pago == "") {
    total_pago = 0;
  }
  // Se verifica si la variable seleccion de documento no esta definida y se le asigna un valor
  if (typeof seleccion === "undefined") {
    seleccion = "si";
  }
  // Se verifica si la variable seleccion de documento no esta definida y se le asigna un valor
  if (typeof idparcial === "undefined") {
    idparcial = -1;
  }
  /* Convertir a numerico para hacer los calculo*/
  total_pago = numero(total_pago);
  diferencia = numero(diferencia);
  montopago = numero(montopago);
  montof = numero(montof);
  abono = numero(abono1[id].value);
  pendiente = numero(pendiente1[id].value);
  tasa_dollar = tasa_dollar1[id].value * 1;
  totalf = montof;
  console.log(
    "Antes tp: " + total_pago + " dif: " + diferencia + " montof: " + montof
  );
  if (el.checked) {
    console.log(
      "montopago: " + montopago + " dif: " + diferencia + " montof: " + montof
    );
    
    notac.disabled = false;
    //checkbox.checked = true; 
    if (montopago > 0 && diferencia > 0) {
      abonoid = 0;
      pendienteid = 0;
      estado = "Pagada";
      if (abono > 0) {
        if (montof - abono > 0) {
          pendiente = montof - abono;
          totalf = abono;
          estado = "Parcial";
          color = "orange";
        } else {
          pendiente = 0;
          //	abono 					= 0;
          //	abono 					= 0;
          estado = "Pagada";
          color = "green";
        }
      } else {
        if (diferencia >= montof) {
          abono = montof;
          pendiente = 0;
          estado = "Pagada";
          color = "green";
        } else {
          pendiente = montof - diferencia;
          abono = montof - pendiente;
          totalf = abono;
          estado = "Parcial";
          color = "orange";
        }
      }

      marcado(id, abono, pendiente, estado, color);
      if (estado == "Parcial") {
        etiqueta = '<span class="badge bg-yellow">' + estado + "</span>";
      } else {
        etiqueta = '<span class="badge bg-green">' + estado + "</span>";
      }
      //$('#estado0').html('');
      $("#estado" + id).html(etiqueta);
      //$("#idtipopagos").html(etiqueta);
      total_pago = total_pago + totalf;
      total_pagob = total_pago * tasa_dollar;
      console.log(
        "total_pago: " +
          total_pago +
          " total_pagob: " +
          total_pagob +
          " tasa_dollar: " +
          tasa_dollar
      );
    } else {
      if (total_pago >= montopago && montopago > 0) {
        bootbox.alert(
          "Ya excedio el monto de pago y no puede seleccionar mas documentos"
        );
        el.checked = false;
      } else {
        bootbox.alert("Debe Colocar el Monto de Pago");
        el.checked = false;
      }
    }
  } else {
    notac.disabled = true;
    notac.checked = false; // Asegura que también se desmarque
    notac.dispatchEvent(new Event('change')); // Forzar actualización del DOM
    estado11 = estado1[id].value;

    if (abono > 0) {
      totalf = abono;
    }
    abono = 0;
    pendiente = 0;
    estado11 = estado1[id].value;
    console.log("estado11: " + estado11);
    if (estado11 == "Parcial") {
      etiqueta = '<span class="badge bg-yellow">' + estado11 + "</span>";
      color = "orange";
    } else {
      etiqueta = '<span class="badge bg-red">' + estado11 + "</span>";
      color = "red";
    }
    desmarcado(id, abono, pendiente, estado11, color);

    $("#estado" + id).html(etiqueta);

    total_pago = total_pago - totalf;
    total_pagob = total_pago * tasa_dollar;
    console.log(
      "total_pago: " +
        total_pago +
        " total_pagob: " +
        total_pago * tasa_dollar +
        " tasa_dollar: " +
        tasa_dollar
    );
  }
  diferencia = roundToTwo(montopago) - roundToTwo(total_pago);
  if (diferencia <= 0) {
    $("#montopagod").val(0);
    document.getElementById("diferencia").style.color = "red";
    document.getElementById("montopagod").style.color = "blue";
  } else {
    document.getElementById("diferencia").style.color = "blue";
    document.getElementById("montopagod").style.color = "red";
  }
  console.log(
    "Despues tp: " + total_pago + " dif: " + diferencia + " montof: " + montof
  );
  total_pago = number_format(total_pago, 2);
  total_pagob = number_format(total_pagob, 2);
  diferencia = number_format(diferencia, 2);
  console.log(
    "Despues formato tp: " +
      total_pago +
      " dif: " +
      diferencia +
      " montof: " +
      montof +
      " total_pagob: " +
      total_pagob
  );
  $("#total_pago").val(total_pago);
  $("#total_pagob").val(total_pagob);
  $("#diferencia").val(diferencia);
  $("#montopagod").val(diferencia);
}


function change_checkbox2(id, el) {
  let notacredito = document.getElementsByName("notacreditode[]");
  let montonc = document.getElementsByName("montonc[]");
  let montonc1 = montonc[id];
  let checkmark = el.closest("label").querySelector(".checkmark");

   console.log('Antes (notacredito[id].value :',notacredito[id].value);
  // Verificar si el índice es válido
  if (id < 0 || id >= notacredito.length) {
    console.error("Índice fuera de rango radio: ", id);
    return;
  }

  if (el.checked) {
    if($('#notacredito').val()=='si'){
      notacredito[id].value = 'si';
      montonc1.style.backgroundColor = "#c4fda2"; // Cambiamos el color de fondo
      montonc1.removeAttribute("readonly"); // Quitamos el atributo readonly
    }else{
      el.checked = false;
      swal("Cancelado", "Seleccione un tipo de nota de crédito para habilitar las siguientes opciones.", "info");
    }
  } else {
    notacredito[id].value = 'no';
    montonc1.style.backgroundColor = "#ffffff"; // Regresa al color original
    montonc1.setAttribute("readonly", true); // Vuelve a ser readonly
    montonc1.value=0;
  }

  console.log('Despues (notacredito[id].value :',notacredito[id].value);
 
  
}


function marcado(id, abonoo, pendientee, estadoo, colorr) {
  var num_comprobante = document.getElementsByName("num_comprobante[]");
  var tipo_comprobante = document.getElementsByName("tipo_comprobante[]");
  var estado = document.getElementsByName("estado[]");
  var abono = document.getElementsByName("abono[]");
  var pendiente = document.getElementsByName("pendiente[]");

  num_comprobante[id].style.textDecoration = "line-through";
  tipo_comprobante[id].style.textDecoration = "line-through";

  if (pendientee > 0) {
    pendiente[id].style.color = "red";
  }

  abono[id].value = number_format(abonoo, 2);
  pendiente[id].value = number_format(pendientee, 2);
  estado[id].value = estadoo;
  estado[id].style.color = colorr;
}

function desmarcado(id, abonoo, pendientee, estadoo, colorr) {
  var num_comprobante = document.getElementsByName("num_comprobante[]");
  var tipo_comprobante = document.getElementsByName("tipo_comprobante[]");
  var estado = document.getElementsByName("estado[]");
  var abono = document.getElementsByName("abono[]");
  var pendiente = document.getElementsByName("pendiente[]");

  num_comprobante[id].style.textDecoration = "";
  tipo_comprobante[id].style.textDecoration = "";
  pendiente[id].style.color = "black";
  abono[id].value = number_format(abonoo, 2);
  pendiente[id].value = number_format(pendientee, 2);
  estado[id].value = estadoo;
  estado[id].style.color = colorr;
}

//Mostrar los cobros de un documento
function mostrarcobros(iddocumento, orden) {
  //alert("articulo "+idarticulo);
  console.log("iddocumento: " + iddocumento);
  console.log("orden: " + orden);
  $("#orden").html(orden);
  tabla = $("#tbcobros")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      paging: false,
      ordering: false,
      info: false,
      searching: false,
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: [],

      ajax: {
        url: "controladores/pagoclienteControlador.php?op=mostrarcobros",
        type: "POST",
        data: {
          iddocumento: iddocumento,
        },
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
        /* success: function(datos){
                  console.log(datos);
              } */
      },
      drawCallback: function () {
        var api = this.api();
        var data1 = api.column(1).data();
        /*	 var data2	= api.column(3).data();*/
        var data3 = api.column(4).data();
        /*var total1	=	0;
               var total2	=	0;*/
        var total3 = 0;

        for (var i = 0; i < data1.length; i++) {
          /*	total1 	= total1+numero(data1[i]);
                   total2 	= total2+numero(data2[i]);*/
          total3 = total3 + numero(data3[i]);
        }
        /*total1		= number_format(total1*1,2);
               total2		= number_format(total2*1,2);*/
        total3 = number_format(total3 * 1, 2);
        $(api.column(0).footer()).html("Total:");
        /*	$(api.column(1).footer()).html(total1);
               $(api.column(3).footer()).html(total2);*/
        $(api.column(4).footer()).html(total3);
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
  $("#myModalcobros").modal("show");
}

function actualizarSeleccion(seleccionado) {
  if (seleccionado) {
    //document.getElementById("radioSeleccionado").textContent = seleccionado.id;
    //document.getElementById("valorSeleccionado").textContent = seleccionado.value;
    console.log("📌 Radio seleccionado:", seleccionado.id);
    console.log("📌 Valor del radio:", seleccionado.value);
    $("#notacredito").val("si");
    $("#tiponotacredito").val(seleccionado.value);
  } else {
    //document.getElementById("radioSeleccionado").textContent = "Ninguno";
    //document.getElementById("valorSeleccionado").textContent = "N/A";
    console.log("📌 No hay radio seleccionado.");
    $("#notacredito").val("");
    $("#tiponotacredito").val("");
  }
  console.log("📌 Valor de $('#notacredito').val(''):", $("#notacredito").val());
  console.log("📌 Valor de $('#tiponotacredito').val(''):", $("#tiponotacredito").val());

}

//Verificar si selecciono una Tipo de Nota de Crédito
function verificarnc() {
  let notacredito = document.getElementsByName("notacreditode[]");
  let nc=false;
  for (var i = 0; i < notacredito.length; i++) {
    if(notacredito[i].value=='si'){
      nc=true;
      break;
    }
  }
  return nc;
}

//Verificar si selecciono una Tipo de Nota de Crédito
function verificarncmonto() {
  let notacredito   = document.getElementsByName("notacreditode[]");
  let notacreditom  = document.getElementsByName("montonc[]");
  let nc=true;
  for (var i = 0; i < notacredito.length; i++) {
    if(notacredito[i].value=='si'&&notacreditom[i].value=='0'){
      nc=false;
      break;
    }
  }
  return nc;
}


// Fin de CxC*********************

/************************************************************  Division de procesos */

// Pedido *************
function mostrarp(idpersona) {
  //bootbox.confirm("¿Desea realizar pedido?", function(result){

  /*  if (result) { */
  $("#listadoregistros").hide();
  $("#formularioregistros").hide();
  $("#formularioregistros1").hide();
  $("#formularioregistrosp").show();
  $("#formularioregistrosp1").show();
  listarArticulos(1);
  listarArticulosb(1);
  listarArticulosc(1);
  listarArticulosd(1);
  listarArticulose(1);
  listarServicios();
  buscarNroFacturaControl();
  buscarTasaDeCambio();
  buscarclienteid(idpersona);
  buscardespachoid(idpersona);
  $("#btnagregar").hide();
  $("#btnGuardar").hide();
  $("#btnCerra1").hide();
  $("#btnCancelar1").show();

  //detalles=0;
  $("#btnAgregarArt").show();
  $("#btnAgregarArtb").hide();
  $("#btnAgregarArtc").hide();
  $("#btnAgregarSer").hide();
  $("#cod_barra").val("");
  $("#cod_barra").focus();
  $("#idcliente").val(idpersona);
  $("#idcliente").selectpicker("refresh");
  //obtenemos la fecha actual
  var now = new Date();
  var today = new Date();
  var dd = ("0" + now.getDate()).slice(-2);
  var mm = ("0" + (now.getMonth() + 1)).slice(-2);
  var yyyy = now.getFullYear();
  var today = yyyy + "-" + mm + "-" + dd;
  $("#fecha_hora1").val(today);

  /* } 
	})*/
}
//Se busca el numero la tasa de cambio
function buscarTasaDeCambio() {
  idempresa_venta = $("#idempresa_venta").val();
  //alert ('idempresa_venta: '+idempresa_venta);
  $.post(
    "controladores/empresaControlador.php?op=buscarTasaDeCambio",
    { idempresa_venta: idempresa_venta },
    function (data, status) {
      //alert ('estatus: '+status);
      data1 = JSON.parse(data);
      //console.log('tasa de cambiobd: '+data1.tasa_dollar);
      //$("#tasa_dollar").val(number_format(data1.tasa_dollar),2);
      $("#tasa_dollar").val(data1.tasa_dollar);
      //console.log('tasa de cambio:'+$("#tasa_dollar").val());
      //$("#tasa_euro").val(number_format(data1.tasa_euro),2);
      $("#tasa_euro").val(data1.tasa_euro);
      //		alert ('Control: '+data1.nrocontrol+' Factura: '+data1.nrofactura);
    }
  );
}

function marcarImpuesto() {
  var tipo_comprobante = $("#tipo_comprobante option:selected").text();
  var impuestotexto = document.getElementById("impuesto");
  impuestotexto.style.backgroundColor = "#D5D5CE";
  if (tipo_comprobante == "Factura") {
    $("#impuesto").val(impuesto);
  } else {
    $("#impuesto").val("0");
  }
}

// funcion para buscar el cliente
function buscarcliente(tipo_documento, num_documento) {
  var tipo_documento11 = tipo_documento;
  var num_documento11 = num_documento;
  //alert ('tipo y numero: '+ tipo_documento11+ ' '+num_documento11);
  $.ajax({
    url: "controladores/personaControlador.php?op=buscarcliente",
    method: "post",
    data: {
      tipo_documento: tipo_documento11,
      num_documento: num_documento11,
    },
  })
    .done(function (datos) {
      /* Depuramos los datos recibidos */
      datos = JSON.parse(datos);
      console.log(datos);
      /* Se verifica si se delvovio algun resultado */
      if (datos == null || datos == "undefined") {
        /* hacer algo */
        bootbox.confirm(
          "El cliente no existe necesita crearlo",
          function (result) {
            if (result) {
              $("#tipo_documento1").val(tipo_documento11);
              $("#tipo_documento1").selectpicker("refresh");
              tipo_documento1.style.backgroundColor = "#D5D5CE";
              $("#num_documento1").val(num_documento11);
              num_documento1.style.backgroundColor = "#D5D5CE";
              $("#myModalCliente").modal("show");
            }
          }
        );
        return;
      }
      /* Colocamos los datos del cliente */
      //$("#nombre_cliente").val(datos.nombre);

      //nombre_cliente.style.backgroundColor 	= "#D5D5CE";
      //$('#formulario').bootstrapValidator('false');
      //alert ('nombre y id: '+ datos.nombre+ '--'+datos.idpersona);
      $("#idcliente").val(datos.idpersona);
      $("#idcliente").selectpicker("refresh");
      $("#licencia_licor").val(datos.licencia_licor);
      verificarlistaprecio(datos.idlistaprecio);
    })
    .fail(function () {
      alert("Error");
    })
    .always(function () {
      /* Seleccionamos el texto para que se pueda sobreescribir por la siguiente lectura */
      $("input[name='cod_barra']").select();
    });
}

//Buscamo la direccion de despacho del cliente
function buscardespachoid(idcliente) {
  var idpersona = idcliente;
  $.post(
    "controladores/personaControlador.php?op=buscardespachoid",
    { idpersona: idpersona },
    function (r) {
      $("#idclientedespacho").html(r);
      $("#idclientedespacho").selectpicker("refresh");
    }
  );
}

// funcion para buscar el cliente
function buscarclienteid(idcliente) {
  var idpersona = idcliente;
  //alert ('tipo y numero: '+ tipo_documento11+ ' '+num_documento11);
  $.ajax({
    url: "controladores/personaControlador.php?op=buscarclienteid",
    method: "post",
    data: {
      idpersona: idpersona,
    },
  })
    .done(function (datos) {
      /* Depuramos los datos recibidos */
      datos = JSON.parse(datos);
      console.log(datos);
      /* Se verifica si se delvovio algun resultado */
      if (datos == null || datos == "undefined") {
        /* hacer algo */
        bootbox.confirm(
          "El cliente no existe necesita crearlo",
          function (result) {
            if (result) {
              $("#tipo_documento1").val(tipo_documento11);
              $("#tipo_documento1").selectpicker("refresh");
              tipo_documento1.style.backgroundColor = "#D5D5CE";
              $("#num_documento1").val(num_documento11);
              num_documento1.style.backgroundColor = "#D5D5CE";
              $("#myModalCliente").modal("show");
            }
          }
        );
        return;
      }
      /* Colocamos los datos del cliente */
      //$("#nombre_cliente").val(datos.nombre);

      //nombre_cliente.style.backgroundColor 	= "#D5D5CE";
      //$('#formulario').bootstrapValidator('false');
      //alert ('nombre y id: '+ datos.nombre+ '--'+datos.idpersona);
      $("#num_documento").val(datos.num_documento);
      $("#tipo_documento").val(datos.tipo_documento);
      $("#tipo_documento").selectpicker("refresh");
      $("#idvendedor").val(datos.idvendedor);

      //Vamos a fijar los dias de crédito 7 dias

      //$("#diacredito").val(datos.diacredito);
      //$("#iddiacredito").val(datos.iddiasdecredito);
      $("#diacredito").val(7);
      $("#iddiacredito").val(1);

      console.log("datos.idvendedor: " + datos.idvendedor);
      $("#idvendedor").selectpicker("refresh");
      $("#licencia_licor").val(datos.licencia_licor);
      verificarlistaprecio(datos.idlistaprecio);
    })
    .fail(function () {
      alert("Error");
    })
    .always(function () {
      /* Seleccionamos el texto para que se pueda sobreescribir por la siguiente lectura */
      $("input[name='cod_barra']").select();
    });
}

//Se habilita la lista de precio para el cliente seleccionado
function verificarlistaprecio(idlistaprecio) {
  //idlistaprecio = idlistaprecio;
  //idlistaprecio = idlistaprecio;
  
  //Solo para Chocomilk se maneja la lista de precio 4 por defecto precio full
  idlistaprecio = 4;
  
  if (idlistaprecio == 1) {
    $("#btnAgregarArt").show();
    $("#btnAgregarArtb").hide();
    $("#btnAgregarArtc").hide();
    $("#btnAgregarArtd").hide();
    $("#btnAgregarArte").hide();
  } else if (idlistaprecio == 2) {
    $("#btnAgregarArt").hide();
    $("#btnAgregarArtb").show();
    $("#btnAgregarArtc").hide();
    $("#btnAgregarArtd").hide();
    $("#btnAgregarArte").hide();
  } else if (idlistaprecio == 3) {
    $("#btnAgregarArt").hide();
    $("#btnAgregarArtb").hide();
    $("#btnAgregarArtc").show();
    $("#btnAgregarArtd").hide();
    $("#btnAgregarArte").hide();
  } else if (idlistaprecio == 4) {
    $("#btnAgregarArt").hide();
    $("#btnAgregarArtb").hide();
    $("#btnAgregarArtc").hide();
    $("#btnAgregarArtd").show();
    $("#btnAgregarArte").hide();
  } else {
    $("#btnAgregarArt").hide();
    $("#btnAgregarArtb").hide();
    $("#btnAgregarArtc").hide();
    $("#btnAgregarArtd").hide();
    $("#btnAgregarArte").show();
  }
}

//Se busca el numero de factura y control
function buscarNroFacturaControl() {
  idempresa_venta = $("#idempresa_venta").val();
  var serie_comprobante = document.getElementById("serie_comprobante");
  var num_comprobante = document.getElementById("num_comprobante");
  var num_pedido = document.getElementById("num_pedido");
  //	alert ('idempresa_venta: '+idempresa_venta);
  $.post(
    "controladores/empresaControlador.php?op=buscarNroFacturaControl",
    { idempresa_venta: idempresa_venta },
    function (data, status) {
      //alert ('estatus: '+status);
      data1 = JSON.parse(data);
      /* $("#serie_comprobante").val(data1.nrocontrol);
			serie_comprobante.style.backgroundColor 	= "#D5D5CE";
			$("#num_comprobante").val(data1.nrofactura);
			num_comprobante.style.backgroundColor 		= "#D5D5CE"; */
      $("#num_pedido").val(data1.nropedido);
      num_pedido.style.backgroundColor = "#D5D5CE";
      //		alert ('Control: '+data1.nrocontrol+' Factura: '+data1.nrofactura);
    }
  );
}

//funcion listar
function listar() {
  tabla = $("#tbllistado")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: ["copyHtml5", "excelHtml5", "csvHtml5", "pdf"],
      ajax: {
        url: "controladores/pedidoControlador.php?op=listar",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

/* function listarArticulos(){
	tabla=$('#tblarticulos').dataTable({
		"aProcessing": true,//activamos el procedimiento del datatable
		"aServerSide": true,//paginacion y filrado realizados por el server
		dom: 'Bfrtip',//definimos los elementos del control de la tabla
		buttons: [

		],
		"ajax":
		{
			url:'controladores/pedidoControlador.php?op=listarArticulos',
			type: "get",
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[0,"desc"]]//ordenar (columna, orden)
	}).DataTable();
}

function listarArticulosb(){
	tabla=$('#tblarticulosb').dataTable({
		"aProcessing": true,//activamos el procedimiento del datatable
		"aServerSide": true,//paginacion y filrado realizados por el server
		dom: 'Bfrtip',//definimos los elementos del control de la tabla
		buttons: [

		],
		"ajax":
		{
			url:'controladores/pedidoControlador.php?op=listarArticulosb',
			type: "get",
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[0,"desc"]]//ordenar (columna, orden)
	}).DataTable();
}

function listarArticulosc(){
	tabla=$('#tblarticulosc').dataTable({
		"aProcessing": true,//activamos el procedimiento del datatable
		"aServerSide": true,//paginacion y filrado realizados por el server
		dom: 'Bfrtip',//definimos los elementos del control de la tabla
		buttons: [

		],
		"ajax":
		{
			url:'controladores/pedidoControlador.php?op=listarArticulosc',
			type: "get",
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[0,"desc"]]//ordenar (columna, orden)
	}).DataTable();
} */

function listarArticulos(idalmacen1) {
  console.log("Estamos en listara y almacen:" + idalmacen1);
  tablaa = $("#tblarticulos")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: [],
      ajax: {
        url: "controladores/ventanControlador.php?op=listarArticulos",
        type: "post",
        data: {
          idalmacen1: idalmacen1,
        },
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

function listarArticulosb(idalmacen1) {
  console.log("Estamos en listarb y almacen:" + idalmacen1);
  tablab = $("#tblarticulosb")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: [],
      ajax: {
        url: "controladores/ventanControlador.php?op=listarArticulosb",
        type: "post",
        data: {
          idalmacen1: idalmacen1,
        },
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

function listarArticulosc(idalmacen1) {
  console.log("Estamos en listarc y almacen:" + idalmacen1);
  tablac = $("#tblarticulosc")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: [],
      ajax: {
        url: "controladores/ventanControlador.php?op=listarArticulosc",
        type: "post",
        data: {
          idalmacen1: idalmacen1,
        },
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

function listarArticulosd(idalmacen1) {
  console.log("Estamos en listard y almacen:" + idalmacen1);
  tablad = $("#tblarticulosd")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: [],
      ajax: {
        url: "controladores/ventanControlador.php?op=listarArticulosd",
        type: "post",
        data: {
          idalmacen1: idalmacen1,
        },
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

function listarArticulose(idalmacen1) {
  console.log("Estamos en listare y almacen:" + idalmacen1);
  tablae = $("#tblarticulose")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: [],
      ajax: {
        url: "controladores/ventanControlador.php?op=listarArticulose",
        type: "post",
        data: {
          idalmacen1: idalmacen1,
        },
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

/* lista opcional 
function listarArticuloso(idalmacen1){
	tabla=$('#tblarticulosd').dataTable({
		"aProcessing": true,//activamos el procedimiento del datatable
		"aServerSide": true,//paginacion y filrado realizados por el server
		dom: 'Bfrtip',//definimos los elementos del control de la tabla
		buttons: [

		],
		"ajax":
		{
			url:'controladores/ventanControlador.php?op=listarArticulosd',
			type: "post",
			data: {
				idalmacen1 : idalmacen1
			},
			dataType : "json",
			error:function(e){
				console.log(e.responseText);
			}
		},
		"bDestroy":true,
		"iDisplayLength":-1,//paginacion
		"order":[[0,"desc"]]//ordenar (columna, orden)
	}).DataTable();
} */

function listarServicios() {
  tabla = $("#tblservicios")
    .dataTable({
      aProcessing: true, //activamos el procedimiento del datatable
      aServerSide: true, //paginacion y filrado realizados por el server
      dom: "Bfrtip", //definimos los elementos del control de la tabla
      buttons: [],
      ajax: {
        url: "controladores/pedidoControlador.php?op=listarServicios",
        type: "get",
        dataType: "json",
        error: function (e) {
          console.log(e.responseText);
        },
      },
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
}

function guardarcliente() {
  var formDataCliente = new FormData($("#formaguardarcliente")[0]);
  var tipo_documento1 = $("#tipo_documento1").val();
  var num_documento1 = $("#num_documento1").val();
  //alert('ahora vamos aguardar el cliente tipo documento y nro ' + tipo_documento1+' -- '+num_documento1);
  $.ajax({
    url: "controladores/personaclienteControlador.php?op=guardaryeditar",
    type: "POST",
    data: formDataCliente,
    contentType: false,
    processData: false,
    success: function (datos) {
      bootbox.alert(datos);
      buscarcliente(tipo_documento1, num_documento1);
    },
  });
  limpiarsolocliente();
}

//funcion para guardaryeditar
function guardaryeditar() {
  //e.preventDefault();//no se activara la accion predeterminada
  $("#btnGuardar").prop("disabled", true);
  var formData = new FormData($("#formulariop")[0]);
  console.log(
    "Id de cliente antes de guardar vale:" +
      $("#idcliente").val() +
      " y fecha: " +
      $("#fecha_hora1").val()
  );
  $.ajax({
    url: "controladores/pedidoControlador.php?op=guardaryeditarcyb",
    type: "POST",
    data: formData,
    contentType: false,
    processData: false,

    success: function (datos) {
      bootbox.alert(datos);
      guardarradarp();
      mostrarform(false);
      listarruta();
    },
  });

  limpiar();
}
//idpedido,fecha,idcliente,cliente,num_documento,tipo_documento,idusuario,usuario,tipo_comprobante
//serie_comprobante,num_comprobante,total_venta,impuesto,estado,tasa_dollar,total_ventad,num_pedido,
//idvendedor,num_pedido

function guardarradarp() {
  console.log(
    "Id de cliente vale:" +
      $("#idcliente").val() +
      " y fecha: " +
      $("#fecha_hora1").val()
  );
  var idcliente1 = $("#idcliente").val();
  var fecha_hora11 = $("#fecha_hora1").val();
  $.ajax({
    url: "controladores/radarControlador.php?op=guardarradarp",
    type: "POST",
    data: {
      idcliente1: idcliente1,
      fecha_hora11: fecha_hora11,
    },
    success: function (datos) {
      bootbox.alert(datos);
    },
  });
}

function mostrar1(idpedido) {
  $.post(
    "controladores/pedidoControlador.php?op=mostrar",
    { idpedido: idpedido },
    function (data, status) {
      data = JSON.parse(data);
      mostrarformc(true);

      $("#tipo_documento").val(data.tipo_documento);
      $("#tipo_documento").selectpicker("refresh");
      $("#num_documento").val(data.num_documento);
      $("#idcliente").val(data.idcliente);
      $("#idcliente").selectpicker("refresh");
      $("#fecha_hora").val(data.fecha);
      $("#idvendedor").val(data.idvendedor);
      $("#idvendedor").selectpicker("refresh");
      $("#tipo_comprobante").val(data.tipo_comprobante);
      $("#num_pedido").val(data.num_pedido);
      /* 

			$("#impuesto").val(data.impuesto);
			$("#tipo_documento").val(data.tipo_documento);
			$("#num_comprobante").val(data.num_comprobante);
			
			
			$("#idpedido").val(data.idpedido);
			$("#idtransportista").val(data.idtransportista);
			$("#idtransportista").selectpicker('refresh'); */

      //ocultar y mostrar los botones
      $("#btnGuardar").hide();
      $("#btnCancelar").show();
      $("#btnAgregarArt").hide();
      $("#btnAgregarSer").hide();
      $("#btnTotalizar").hide();
      $("#btnAgregarBar").hide();
    }
  );
  $.post(
    "controladores/pedidoControlador.php?op=listarDetalle&id=" + idpedido,
    function (r) {
      $("#detalles").html(r);
    }
  );
}

//funcion mostrar formulario
function mostrarformc(flag) {
  limpiar();
  if (flag) {
    $("#listadoregistros").hide();
    $("#formularioregistros").show();
    $("#formularioregistros1").show();
    //$("#btnGuardar").prop("disabled",false);
    $("#btnagregar").hide();
    $("#btnGuardar").hide();
    $("#btnCancelar").show();
    detalles = 0;
    $("#btnAgregarArt").show();
    $("#btnAgregarArtb").hide();
    $("#btnAgregarArtc").hide();
    $("#btnAgregarSer").hide();
    $("#cod_barra").val("");
    $("#cod_barra").focus();
  } else {
    $("#listadoregistros").show();
    $("#formularioregistros").hide();
    $("#formularioregistros1").hide();
    $("#btnagregar").show();
  }
}

//funcion para Anular una factura
function anular(idpedido, idusuario) {
  bootbox.confirm("¿Esta seguro de Anular esta factura?", function (result) {
    if (result) {
      console.log("idpedido y idusuario: " + idpedido + "--" + idusuario);
      $.post(
        "controladores/devolucionControlador.php?op=anular",
        { idpedido: idpedido, idusuario: idusuario },
        function (e) {
          bootbox.alert(e);
          tabla.ajax.reload();
        }
      );
    }
  });
}

function buscarcodigodebarra(codbarra) {
  //alert ('buscando codigo de barra: '+codbarra);
  $.ajax({
    url: "complemento/leercodigobarra.php",
    method: "post",
    data: {
      codigobarra: codbarra,
    },
  })
    .done(function (datos) {
      /* Depuramos los datos recibidos */
      console.log(datos);
      /* Si no se devolvió ningún registro (false) debería hacerse algo */
      if (datos === false) {
        /* hacer algo */
        //bootbox.alert('No se encontró el código de barras');
        //Ahora buscamos en la tarjeta de cliente
        buscarcodigodebarratarjetapendiente(codbarra);
        $("#cod_barra").val("");
        $("#cod_barra").focus();
        return;
      }
      /* Agregamos una fila con los datos obtenidos */
      agregarDetalle(
        datos.idarticulo,
        datos.nombre,
        datos.precio,
        datos.porcentaje,
        datos.numerolote,
        datos.fecha
      );
    })
    .fail(function () {
      alert("Error");
    })
    .always(function () {
      /* Seleccionamos el texto para que se pueda sobreescribir por la siguiente lectura */
      $("input[name='cod_barra']").select();
    });
}

function agregarDetalle(
  idarticulo,
  idalmacen,
  articulo,
  precio_venta,
  precio_ventad,
  porcentaje,
  nrolote,
  fechalote,
  exento,
  impuestoart18,
  preciopvp,
  preciopvpd
) {
  var cantidad = 1;
  var descuento = 0;
  var impoart18 = impuestoart18;
  var idpedido = -300;
  /* en pedido oculto el art18
	/* var imp18_empresa	=	$('#impuestoart18_empresa').val(); */
  var imp18_empresa = "no";
  var tasadollar = $("#tasa_dollar").val();
  if (idarticulo != "") {
    var iva = 0;
    var subtotal = 0;
    var subtotalsiniva = 0;
    var exentot = 0;
    var precio = 0;
    var preciod = 0;
    var salida = convertDateFormat(fechalote);
    var fechalotef = convertDateLote(fechalote);
    precio_venta = precio_ventad * tasadollar;
    preciopvp = preciopvpd * tasadollar;
    if (fechalote == "N/A") {
      fechalotef = fechalote;
    }
    if (exento == "si") {
      precio = precio_venta * 1;
      preciod = precio_ventad * 1;
      exentot = precio_venta * 1;
      articulo = articulo + " (E)";
      iva = 0;
    } else {
      iva = (precio_venta * impuesto) / 100;
      precio = precio_venta * 1;
      preciod = precio_ventad * 1;
      exentot = 0;
    }
    /* En pedido oculto art18 y pvpv */
    if (imp18_empresa == "si") {
      td =
        '<td><input type="text" name="impoart18[]" id="impoart18[]" style="text-align:right;width:120px" value="' +
        number_format(impoart18, 2) +
        '" ></td>';
      td1 =
        '<td><input type="text" name="precio_ventapvp[]" id="precio_ventapvp[]" style="text-align:right;width:120px" value="' +
        number_format(preciopvp, 2) +
        '"></td>';
    } else {
      td =
        '<input type="hidden" name="impoart18[]" id="impoart18[]" value="' +
        number_format(impoart18, 2) +
        '">';
      td1 =
        '<input type="hidden" name="precio_ventapvp[]" id="precio_ventapvp[]" value="' +
        number_format(preciopvp, 2) +
        '">';
    }

    subtotalsiniva = cantidad * precio_venta;
    subtotal = cantidad * precio;
    subtotald = cantidad * preciod;
    console.log(
      "fecha: " + salida + "precio: " + precio + "exentot: " + exentot
    );
    var fila =
      '<tr class="filas" id="fila' +
      cont +
      '">' +
      '<td style="text-align:center;width:20px"><button type="button" class="btn btn-danger" onclick="eliminarDetalle(' +
      cont +
      ')">X</button></td>' +
      '<td style="text-align:left;width:100px"><input type="hidden" name="idarticulo[]" value="' +
      idarticulo +
      '">' +
      articulo +
      "</td>" +
      '<td style="text-align:right;width:20px"><input type="text" name="cantidad[]" id="cantidad[]" style="text-align:right;width:60px;background-color:#c4fda2;border: 0" value="' +
      number_format(cantidad) +
      '"></td>' +
      /* en pedido oculto el precio en bolivares 
		'<td><input type="text" name="precio_venta[]" id="precio_venta[]" style="text-align:right;width:120px" value="'+number_format(precio,2)+'"></td>'+ */
      '<td style="text-align:right;width:25px"><input type="text" name="precio_ventad[]" id="precio_ventad[]" style="text-align:right;width:70px;background-color:#b4b6b6;border: 0" value="' +
      number_format(precio_ventad, 2) +
      '" readonly></td>' +
      td1 +
      '<input type="hidden" name="porcentaje[]" id="porcentaje[]" style="text-align:right;width:70px" value="' +
      number_format(porcentaje, 2) +
      '">' +
      '<input type="hidden" name="descuento[]" id="descuento[]" style="text-align:right;width:120px" value="' +
      number_format(descuento, 2) +
      '" >' +
      td +
      '<td style="text-align:right;width:25px"><input type="text" style="text-align:right;width:80px;background-color:#b4b6b6;border: 0" name="subtotald[]" id="subtotald[]"  value="' +
      number_format(subtotald, 2) +
      '" readonly></td>' +
      //'<td><span id="subtotal'+cont+'" name="subtotal">'+subtotal+'</span></td>'+
      '<td style="text-align:center;width:10px"><button type="button" onclick="modificarSubtotales()" class="btn btn-info"><i class="fa fa-refresh"></i></button>' +
      "</td>" +
      '<td style="visibility:hidden"><input type="hidden" name="nrolote[]" value="' +
      nrolote +
      '"> </input>' +
      '<input type="hidden" name="idpedidosolo[]" id="idpedidosolo[]" value="' +
      idpedido * 1 +
      '"></input>' +
      '<input type="hidden" name="idalmacen[]" id="idalmacen[]" value="' +
      idalmacen +
      '"></input>' +
      '<input type="hidden" name="iva[]" value="' +
      iva +
      '">' +
      '<input type="hidden" name="exentot[]" value="' +
      exentot +
      '"></input>' +
      '<input type="hidden" name="precio_venta[]" id="precio_venta[]" value="' +
      number_format(precio, 2) +
      '"></input>' +
      '<input type="hidden"  name="subtotal[]" id="subtotal[]"  value="' +
      number_format(subtotal, 2) +
      '"></input> </td>' +
      "</tr>";
    cont++;
    detalles++;
    $("#detallesp").append(fila);
    //let prevd = document.getElementsByName("precio_ventad[]");
    //listapreciod = prevd;
    //actualizarprecio(listapreciod);
    modificarSubtotales();
  } else {
    alert("error al ingresar el detalle, revisar las datos del articulo ");
  }
}

function modificarValoresAnumericopedido() {
  var cant = document.getElementsByName("cantidad[]");
  var prev = document.getElementsByName("precio_venta[]");
  var prevd = document.getElementsByName("precio_ventad[]");
  var desc = document.getElementsByName("descuento[]");
  var porc = document.getElementsByName("porcentaje[]");
  var sub = document.getElementsByName("subtotal[]");
  var exe = document.getElementsByName("exentot[]");
  var a18 = document.getElementsByName("impoart18[]");
  var pvp = document.getElementsByName("precio_ventapvp[]");
  var tasa = $("#tasa_dollar").val();

  //$("#tasa_dollar").val(numero(tasa));

  for (var i = 0; i < cant.length; i++) {
    var Cmod = cant[i];
    var Pvmod = prev[i];
    var Pvmodd = prevd[i];
    var Dmod = desc[i];
    var Ia18 = a18[i];
    var Pmod = porc[i];
    var Smod = sub[i];
    var Pvpd = pvp[i];
    Cmod.value = numero(Cmod.value);
    Dmod.value = numero(Dmod.value);
    Ia18.value = numero(Ia18.value);
    Pvmod.value = numero(Pvmod.value);
    Pvmodd.value = numero(Pvmodd.value);
    Pmod.value = numero(Pmod.value);
    Smod.value = numero(Smod.value);
    Pvpd.value = numero(Pvpd.value);
  }
}

function modificarSubtotales(boton) {
  var idart = document.getElementsByName("idarticulo[]");
  var cant = document.getElementsByName("cantidad[]");
  var prev = document.getElementsByName("precio_venta[]");
  var prevd = document.getElementsByName("precio_ventad[]");
  var desc = document.getElementsByName("descuento[]");
  var art8 = document.getElementsByName("impoart18[]");
  var porc = document.getElementsByName("porcentaje[]");
  var sub = document.getElementsByName("subtotal[]");
  var subd = document.getElementsByName("subtotald[]");
  var ivao = document.getElementsByName("iva[]");
  var exet = document.getElementsByName("exentot[]");
  var impart18emp = $("#impuestoart18_empresa").val();

  for (var i = 0; i < cant.length; i++) {
    var inpV = cant[i];
    var inpP = prev[i];
    var inpPd = prevd[i];
    var inpS = sub[i];
    var inpSd = subd[i];
    var des = desc[i];
    var iart18 = art8[i];
    var por = porc[i];
    var subt = sub[i];
    var subtd = subd[i];
    var ivat = ivao[i];
    var exento = exet[i];
    var imp = 1 + impuesto / 100;
    var precio = numero(inpP.value * imp);
    var preciod = numero(inpPd.value * imp);
    var precioSiva = numero(inpP.value);
    var precioSivad = numero(inpPd.value);
    var precioNew = 0;
    var precioNewCiva = 0;
    var ivaNew = 0;
    var porT = 0;
    var total = 0;

    console.log("impuesto" + imp);
    console.log("precio: " + precio);
    console.log("Precio sin iva: " + precioSiva);
    if (numero(por.value) > 0) {
      if (numero(inpP.value) > 0) {
        porT = (precioSiva * numero(por.value)) / 100;
        console.log("MontoPorcentaje: " + porT);
        precioNew = precioSiva - porT;
        ivaNew = (precioNew * impuesto) / 100;
        precioNewCiva = precioNew + ivaNew;
        if (impart18emp == "si") {
          inpS.value =
            numero(inpV.value) * precioNew +
            numero(inpV.value) * numero(iart18.value) -
            numero(des.value);
        } else {
          inpS.value = numero(inpV.value) * precioNew - numero(des.value);
        }

        console.log("precioNuevo: " + precioNew + " IvaNuevo:" + ivaNew);
        console.log("subtotal nuevo: " + inpS.value);
      } else {
        total = Totales();
        console.log("Total: " + total);
        porT = (total * numero(por.value)) / 100;
        ivaNew = (porT * impuesto) / 100;
        inpS.value = porT;
        //inpS.value=1000;
      }
      if (exento.value == 0) {
        ivat.value = number_format(ivaNew, 2);
      } else {
        ivaNew = 0;
        ivat.value = number_format(ivaNew, 2);
      }
    } else {
      inpS.value =
        numero(inpV.value) * numero(inpP.value) +
        numero(inpV.value) * numero(iart18.value) -
        numero(des.value);
      inpSd.value = numero(inpV.value) * numero(inpPd.value);
    }
    //document.getElementsByName("subtotal")[i].innerHTML=number_format(inpS.value,2);
    subt.value = number_format(inpS.value, 2);
    subtd.value = number_format(inpSd.value, 2);
  }
  calcularTotales(boton);
}

function calcularTotales(boton) {
  //var sub 	= document.getElementsByName("subtotal");
  var sub = document.getElementsByName("subtotal[]");
  var subd = document.getElementsByName("subtotald[]");
  var iv = document.getElementsByName("iva[]");
  var exento = document.getElementsByName("exentot[]");
  var cant = document.getElementsByName("cantidad[]");
  var pvp = document.getElementsByName("precio_ventapvp[]");
  var impart18emp = $("#impuestoart18_empresa").val();
  //var	imp 		= 	(impuesto/100);
  //Para no incluir iva
  var imp = 0;
  var total = 0;
  var totald = 0;
  var ivatt = 0;
  var exentott = 0;
  var totalconiva = 0;
  var totalpvpiva = 0;
  //var tasadollar  = numero($("#tasa_dollar").val());
  var tasadollar = $("#tasa_dollar").val();

  //Variable Global para el total de unidades
  cantidadtotalu = 0;

  console.log("Calculando totales y tasadollar: " + tasadollar);
  for (var i = 0; i < sub.length; i++) {
    var subt = sub[i];
    var subtd = subd[i];
    var ivat = iv[i];
    var exentot = exento[i];
    var CanT = cant[i];
    var pvpt = pvp[i];
    //total += document.getElementsByName("subtotal")[i].value;
    console.log("subtotal $", subtd.value);
    total += numero(subt.value);
    totald += numero(subtd.value);
    console.log("totald $", totald);
    ivatt += numero(subt.value) * imp;
    totalpvpiva += (numero(pvpt.value) * CanT.value - numero(subt.value)) * imp;
    exentott += numero(exentot.value) * CanT.value;
    cantidadtotalu = cantidadtotalu + numero(CanT.value) * 1;
  }
  console.log("impart18emp: " + impart18emp);
  // en pedido impart18emp='no'
  impart18emp = "no";
  if (impart18emp == "si") {
    totalconiva = total + ivatt + totalpvpiva;
  } else {
    totalconiva = total + ivatt;
  }

  /* $("#subtotal").html("Bs." + number_format(total,2)); */
  //$("#subtotald").html("$." +number_format(total/tasadollar,2));
  $("#subtotald").html("$." + number_format(totald, 2));
  /* $("#iva").html("Bs." + number_format(ivatt,2)); 
	$("#ivad").html("$." +number_format(ivatt/tasadollar,2));
	$("#ivap").html("Bs." + number_format(totalpvpiva,2));
	$("#ivapd").html("$." +number_format(totalpvpiva/tasadollar,2));
	$("#exento").html("Bs." + number_format(exentott,2));
	$("#exentod").html("$." +number_format(exentott/tasadollar,2)); 
	$("#total").html("Bs." + number_format(totalconiva,2));*/
  //$("#totald").html("$." + number_format(total/tasadollar,2));
  $("#totald").html("$." + number_format(totald, 2));
  $("#total_venta1").val(total);
  $("#total_venta").val("");
  $("#total_venta").val(total);
  $("#total_ventad").val(totald);
  evaluarcajas(cantidadtotalu, true);
  evaluar(boton);
}

function Totales() {
  //var sub 	= document.getElementsByName("subtotal");
  var sub = document.getElementsByName("subtotal[]");
  var prev = document.getElementsByName("precio_venta[]");
  var total = 0.0;

  for (var i = 0; i < sub.length; i++) {
    if (numero(prev[i].value) > 0) {
      total += numero(sub[i].value);
    }
  }
  return total;
}

function evaluar() {
  $("#cod_barra").val("");
  //$("#cod_barra").focus();
  console.log('Estoy en evaluar y detalle vale: ',detalles)
  if (detalles > 0) {
    $("#btnGuardar").show();
  } else {
    if (detallescxc==0) {
      $("#btnGuardar").hide();
      cont = 0; 
    }
  }
}

function evaluarcajas(cajas,evitarSubtotales = false) {
  // Obtener el elemento input por su ID
  var miInput = document.getElementById("diacredito");
  //Dependiendo de la lista de precio a manejar vamos utilizar id="idarticulode[]"
 

  //let precioda = document.getElementsByName("idarticulode[]");  //MAYOR
  let precioda = document.getElementsByName("idarticulodec[]");  //MAYOR
  let preciodb = document.getElementsByName("idarticulodeb[]"); //CADENAS-VOLUMEN A PARTIR 75 CAJAS
  //let preciodc = document.getElementsByName("idarticulodec[]"); //DISTRIBUIDORES
  let preciodc = document.getElementsByName("idarticulode[]"); //DISTRIBUIDORES
  let preciodd = document.getElementsByName("idarticuloded[]"); //MINORISTA-DETAL-PRECIO FULL
  let preciode = document.getElementsByName("idarticulodee[]"); //FAMILIAR

  let preciov;

  console.log("lista de precio: ", idlistaprecio);
  console.log('precioda.length : ',precioda.length);
  console.log('preciodb.length : ',preciodb.length);
  console.log('preciodc.length : ',preciodc.length);
  console.log('preciode.length : ',preciode.length);
  console.log('preciodd.length : ',preciodd.length);
  /*
  if (idlistaprecio == 1) {
    preciov = preciod;
  } else if (idlistaprecio == 2) {
    preciov = preciodb;
  } else if (idlistaprecio == 3) {
    preciov = preciodc;
  } else if (idlistaprecio == 4) {
    preciov = preciodd;
  } else {
    preciov = preciode;
  }
  */

  console.log("cajas: ", cajas);
  //Vamos Aplicar los criterios para los dias de Crédito
  liberarprecioarticulo(true);
  
  if (cajas < 75) {
    console.log("menor a 75");
    
    if (cajas >= 1 && cajas <= 10) {
      // Fijamos a 7 dias de Crédito
      $("#diacredito").val(7);
      $("#iddiacredito").val(1);
      // Cambiar la propiedad readOnly
      miInput.readOnly = true;
      //verificamos precio
      //chequearprecio(preciov);
    } else {
      if (cajas >= 11 && cajas < 75) {
        // Fijamos a 15 dias de Crédito
        $("#diacredito").val(15);
        $("#iddiacredito").val(2);
        // Cambiar la propiedad readOnly
        miInput.readOnly = true;
        //verificamos precio
        //chequearprecio(preciov);
      } 
    }
    console.log('preciodd.length : ',preciodd.length);
    chequearprecio(preciodd);
  } else if (cajas >= 75 && cajas < 300) {
    console.log("mayor 75 y menor 300");
    //Verificamos si los dias de crédito no
    if ($("#diacredito").val() < 1) {
      // Fijamos a 15 dias de Crédito
      $("#diacredito").val(15);
      $("#iddiacredito").val(2);
    }
    // Cambiar la propiedad readOnly Se deja libre los dias de credito
    
    // miInput.readOnly = false;
    //liberarprecioarticulo(false);
    chequearprecio(preciodb);
  } else if (cajas >= 300 && cajas < 1000) {
    console.log("mayor 300 y menor 1000");
    //Verificamos si los dias de crédito no
    if ($("#diacredito").val() < 1) {
      // Fijamos a 15 dias de Crédito
      $("#diacredito").val(15);
      $("#iddiacredito").val(2);
    }
    chequearprecio(preciodc);
  } else {
     console.log("mayor a 1000");
    //Verificamos si los dias de crédito no
    if ($("#diacredito").val() < 1) {
      // Fijamos a 15 dias de Crédito
      $("#diacredito").val(15);
      $("#iddiacredito").val(2);
    } 
    chequearprecio(precioda);
  }
  // ⚠️ Solo llamamos modificarSubtotales si lo permitimos
  if (!evitarSubtotales) modificarSubtotales();

}

function liberarprecioarticulo(estado) {
  let preciod = document.getElementsByName("precio_ventad[]");
  for (var i = 0; i < preciod.length; i++) {
    let preciodc = preciod[i];
    // Cambiar la propiedad readOnly según el estado
    preciodc.readOnly = estado;

    // Cambiar el color del texto
    preciodc.style.backgroundColor = estado ? "#b4b6b6" : "#c4fda2";
  }
  //actualizarprecio(listapreciod);
}

function chequearprecio(inputs) {
  let l = 0;
  let preciod = document.getElementsByName("precio_ventad[]");
  let idart = document.getElementsByName("idarticulo[]");
  console.log('Se procede a chequear la lista de precio')
  console.log('Lista de precio: ',inputs);
  console.log('inputs.length : ',inputs.length);
  console.log('inputs.length : ',idart.length)
  for (var i = 0; i < idart.length; i++) {
    
    var precd = preciod[i];
    var idartd = idart[i];
    console.log('id de articulo: ',idartd.value);
    Array.from(inputs).forEach((input) => {
      console.log("precio lista: ", input.value);
      data = input.value.split("/");
      ida = data[0];
      pred = data[1];
      preb = data[2]; // Aquí obtienes el valor de cada input
      if (ida == idartd.value) {
        console.log(
          "Iguales id. Precio formulario: ",
          precd.value,
          " Y Precio BD: ",
          pred
        );
        console.log('Precio de lista: ',precd.value,' Y precio de articulo: ',pred);
        if (numero(precd.value) != pred) {
          precd.value = number_format(pred, 2);
        }
      }
      //let preciodc = preciod[i];
      //preciodc.value = input.value;
    });
  }

  Array.from(inputs).forEach((input) => {
    console.log("precio lista: ", input.value); // Aquí obtienes el valor de cada input
    //let preciodc = preciod[i];
    //preciodc.value = input.value;
  });
  return;
  
  
}

function eliminarDetalle(indice) {
  $("#fila" + indice).remove();
  calcularTotales();
  detalles = detalles - 1;
}

init();
