var tabla;
//declaramos variables necesarias para trabajar con las Ventas y sus detalles


//funcion que se ejecuta al inicio
function init() {
  mostrarform(false, false);
  listar();
    

  // Se validad y formatea el monto de Nota de Crédito
  $("#montoncm").keyup(function (event) {
    // skip for arrow keys
    if (event.which >= 37 && event.which <= 40) {
      event.preventDefault();
    }
    var value = $(this).val();
    $(this).val(decimal(value));
    
  });

  /*Se captura el evento de guardar los datos */
  $("#btnGuardarnc").on("click", function (e) {
    /* Evitamos el envío real del formulario */
    e.preventDefault();
    $("#myModalmostrarnc").modal("hide");
    let iddetalle_cobrom = $("#iddetalle_cobro").val();
    let montoncm = numero($("#montoncm").val());
    let tiponcm = obtenerRadioSeleccionado();

    console.log('iddetalle_cobrom: ',iddetalle_cobrom);
    console.log('montoncm: ',montoncm);
    console.log('tiponcm: ',tiponcm);
    swal({
      title: "¿Está seguro de que desea actualizar esta Nota de Crédito?",
      text: "",
      icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación
  
      buttons: {
        cancel: {
          text: "No, cancelar",
          value: null,
          visible: true,
          className: "btn-secondary",
          closeModal: true,
        },
        confirm: {
          text: "Sí, Guardar",
          value: true,
          visible: true,
          className: "btn-success",
          closeModal: true,
        },
      },
      dangerMode: true,
    }).then((value) => {
      if (value) {
        //if (solouno == 0) {
          $.ajax({
            url: "controladores/pagoclienteControlador.php?op=actualizarnc",
            type: "POST",
            data: {
              iddetalle_cobrom: iddetalle_cobrom,
              montoncm:montoncm,
              tiponcm:tiponcm
            },
            success: function (response) {
              console.log("Respuesta del servidor:", response);
              swal(
                "Nota de Crédito",
                "Ha sido Actualizada.",
                "success"
              );
              tabla.ajax.reload();
            },
            error: function (xhr, status, error) {
              console.log("Error:", error);
            },
          });
        //}
      } else {
        swal("Cancelado", "La Nota de Crédito no ha sido actualizada.", "info");
      }
    });

   
  });
  
}

// Función para obtener el radio seleccionado
function obtenerRadioSeleccionado() {
  let nc ='';
  let seleccionado = document.querySelector('input[name="optionsRadios"]:checked');
  if (seleccionado) {
      console.log("Radio seleccionado:", seleccionado.value);
      nc = seleccionado.value;
  } else {
      console.log("No hay radio seleccionado.");
      nc ='no';
  }
  return nc;
}

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());
  */

}

function actualizar() {
  location.reload();
}


//funcion limpiar
function limpiar() {
  $("#formulario").data("bootstrapValidator").resetForm(true);
  
  //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);


}

//funcion mostrar formulario
function mostrarform(flag, bu) {
  limpiar();
  if (flag) {
    $("#listadoregistros").hide();
    $("#formularioregistros").show();
    $("#formularioregistros1").show();
    $("#btnagregar").hide();
   } else {
    $("#listadoregistros").show();
    $("#formularioregistros").hide();
    $("#formularioregistros1").hide();
    $("#btnagregar").hide();
  }
}


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

//funcion listar
function listar() {
  //$('#tbllistado').DataTable().destroy();
  //$('#tbllistado').DataTable().fnResetAllFilters();
  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: [
        //Oculto La columna por donde ordeno
        {
          targets: [12],
          visible: false,
          searchable: false,
        },
      ],
      */
      ajax: {
        url: "controladores/pagoclienteControlador.php?op=listarnotacreditovendedores",
        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(9, { page: "current" }).data().sum();
        var total1 = api.column(10, { page: "current" }).data().sum();
        //	tactual		= number_format(tactual*1,2);
        total = number_format(total * 1, 2);
        total1 = number_format(total1 * 1, 2);

        // $(api.column(4).footer()).html('Total Actual:');
		//	$(api.column(5).footer()).html(tactual); 

        $(api.column(7).footer()).html("Total:");
        $(api.column(9).footer()).html(
          '<div align="Right">' + total + "</div>"
        );
        $(api.column(10).footer()).html(
          '<div align="Right">' + total1 + "</div>"
        );
      },
      */
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [], //ordenar (columna, orden)
    })
    .DataTable();
  //tabla.column(8).visible(8);
  //tabla.dataTable();
  //table.;
  //	$('#tbllistado').DataTable().ajax.reload();
}

//funcion para procesar pago
function procesarp(iddetalle_cobro) {
  
  solouno = 0;
  swal({
    title: "¿Está seguro de que desea validar esta Nota de Crédito?",
    text: "",
    icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación

    buttons: {
      cancel: {
        text: "No, cancelar",
        value: null,
        visible: true,
        className: "btn-secondary",
        closeModal: true,
      },
      confirm: {
        text: "Sí, validar",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((value) => {
    if (value) {
      if (solouno == 0) {
        $.ajax({
          url: "controladores/pagoclienteControlador.php?op=procesarncv",
          type: "POST",
          data: {
            iddetalle_cobro: iddetalle_cobro,
            
          },
          success: function (response) {
            console.log("Respuesta del servidor:", response);
            swal(
              "Nota de Crédito",
              "Ha sido validada.",
              "success"
            );
            tabla.ajax.reload();
          },
          error: function (xhr, status, error) {
            console.log("Error:", error);
          },
        });
      }
    } else {
      swal("Cancelado", "La Nota de Crédito no ha sido validada.", "info");
    }
  });
}

//funcion para procesar pago
function procesarpq(iddetalle_cobro) {
  
  solouno = 0;
  swal({
    title:
      "¿Está seguro de que desea quitar el estado de validado a esta Nota de Crédito?",
    text: "",
    icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación

    buttons: {
      cancel: {
        text: "No",
        value: null,
        visible: true,
        className: "btn-secondary",
        closeModal: true,
      },
      confirm: {
        text: "Sí",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((value) => {
    if (value) {
      if (solouno == 0) {
        $.ajax({
          url: "controladores/pagoclienteControlador.php?op=procesarncvno",
          type: "POST",
          data: {
            iddetalle_cobro: iddetalle_cobro,
           
          },
          success: function (response) {
            console.log("Respuesta del servidor:", response);
            swal(
              "Nota de Crédito",
              "El estado de validado ha sido retirado.",
              "success"
            );
            tabla.ajax.reload();
          },
          error: function (xhr, status, error) {
            console.log("Error:", error);
          },
        });
      }
    } else {
      swal(
        "Cancelado",
        "No se le quito el estado de validado a la Nota de Crédito.",
        "info"
      );
    }
  });
}

//funcion para procesar pago
function anularp(iddetalle_cobro) {
  
  solouno = 0;
  swal({
    title:
      "¿Está seguro que NO desea validar a esta Nota de Crédito?",
    text: "",
    icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación

    buttons: {
      cancel: {
        text: "No",
        value: null,
        visible: true,
        className: "btn-secondary",
        closeModal: true,
      },
      confirm: {
        text: "Sí",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((value) => {
    if (value) {
      if (solouno == 0) {
        $.ajax({
          url: "controladores/pagoclienteControlador.php?op=anularnc",
          type: "POST",
          data: {
            iddetalle_cobro: iddetalle_cobro,
           
          },
          success: function (response) {
            console.log("Respuesta del servidor:", response);
            swal(
              "Nota de Crédito",
              "El estado de Pendite ha sido retirado por no Procede.",
              "success"
            );
            tabla.ajax.reload();
          },
          error: function (xhr, status, error) {
            console.log("Error:", error);
          },
        });
      }
    } else {
      swal(
        "Cancelado",
        "No se le quito el estado de Pendiente a la Nota de Crédito.",
        "info"
      );
    }
  });
}

//funcion para procesar pago
function procesarpv(iddetalle_cobro) {
  
  solouno = 0;
  swal({
    title: "¿Está seguro de que ya proceso esta Nota de Crédito?",
    text: "",
    icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación

    buttons: {
      cancel: {
        text: "No, cancelar",
        value: null,
        visible: true,
        className: "btn-secondary",
        closeModal: true,
      },
      confirm: {
        text: "Sí, validar",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((value) => {
    if (value) {
      if (solouno == 0) {
        $.ajax({
          url: "controladores/pagoclienteControlador.php?op=procesarncvv",
          type: "POST",
          data: {
            iddetalle_cobro: iddetalle_cobro,
            
          },
          success: function (response) {
            console.log("Respuesta del servidor:", response);
            swal(
              "Nota de Crédito",
              "Ha sido cambiado el estado de 'Validada' a 'Procesada'.",
              "success"
            );
            tabla.ajax.reload();
          },
          error: function (xhr, status, error) {
            console.log("Error:", error);
          },
        });
      }
    } else {
      swal("Cancelado", "La Nota de Crédito no ha sido procesada.", "info");
    }
  });
}

//funcion para procesar pago
function procesarpqv(iddetalle_cobro) {
  
  solouno = 0;
  swal({
    title:
      "¿Está seguro de que desea quitar el estado de Procesada a esta Nota de Crédito?",
    text: "",
    icon: "https://img.icons8.com/?size=100&id=kc5OYLzDFTvJ&format=png&color=000000", // URL del icono de signo de interrogación

    buttons: {
      cancel: {
        text: "No",
        value: null,
        visible: true,
        className: "btn-secondary",
        closeModal: true,
      },
      confirm: {
        text: "Sí",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((value) => {
    if (value) {
      if (solouno == 0) {
        $.ajax({
          url: "controladores/pagoclienteControlador.php?op=procesarncvnov",
          type: "POST",
          data: {
            iddetalle_cobro: iddetalle_cobro,
           
          },
          success: function (response) {
            console.log("Respuesta del servidor:", response);
            swal(
              "Nota de Crédito",
              "El estado de Procesada ha sido retirado.",
              "success"
            );
            tabla.ajax.reload();
          },
          error: function (xhr, status, error) {
            console.log("Error:", error);
          },
        });
      }
    } else {
      swal(
        "Cancelado",
        "No se le quito el estado de Procesada a la Nota de Crédito.",
        "info"
      );
    }
  });
}

//onclick="mostrarcm('.$reg->iddetalle_cobro.','.$reg->montonc.',\''.$reg->cliente.'\',\''.$reg->cxc.'\',\''.$reg->factura.'\',\''.$reg->tiponotacredito.'\'
function mostrarcm(iddetalle_cobro,montonc,cliente,cxc,factura,tiponotacredito) {
  console.log('iddetalle_cobro: ',iddetalle_cobro);
  console.log('montonc: ',montonc);
  console.log('cliente: ',cliente);
  console.log('cxc: ',cxc);
  console.log('factura: ',factura);
  console.log('tiponotacredito: ',tiponotacredito);

  $("#iddetalle_cobro").val(iddetalle_cobro);
  $("#clientenc").val(cliente);
  $("#facturanc").val(factura);
  $("#cxcnc").val(cxc);
  
  switch (tiponotacredito) {
    case "NOTA DE CREDITO POR PRONTO PAGO":
      document.getElementById("notacredito1").checked = true;
      break;
    case "NOTA DE CREDITO POR PAGO DIVISAS":
      document.getElementById("notacredito2").checked = true;
      break;
    case "NOTA DE CREDITO POR AJUSTE DE PRECIO":
      document.getElementById("notacredito3").checked = true;
      break;
    default:
      document.getElementById("notacredito4").checked = true;
      break;
  }

  $("#montoncm").val(number_format(montonc,2));
  let input = document.getElementById("montoncm");
  input.style.backgroundColor = "#c4fda2"; // Cambia el color de fondo
  input.style.color = "#535151"; // Cambia el color del texto
  input.style.border = "0"; // Cambia el borde
  input.style.textAlign = "center"; // Centrar el texto
  $("#myModalmostrarnc").modal("show");
 
  
}






init();
