var tabla;
var controlmensajesvalido = [];
//declaramos variables necesarias para trabajar con las Ventas y sus detalles

var cont = 0;
var cont1 = 0;

$("#btnGuardar").hide();

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

function obtenerDatosPlan() {
  // Realizamos la solicitud AJAX
  $.ajax({
    url: "sms/mensajeplan.php", // Archivo PHP que vamos a llamar
    type: "GET", // Método HTTP
    dataType: "json", // Esperamos recibir datos JSON
    success: function (response) {
      // Mostramos los datos recibidos en la consola
      console.log("Datos recibidos:", response);

      // Puedes usar los datos como necesites
      const plan = response.plan;
      const enviado = response.enviado;
      const respan = response.respan;

      // Ejemplo: Mostrar datos en el DOM
      //<p class="text-green">Text green to emphasize success</p>
      document.getElementById("plan-info").innerHTML = `
              
              <div class="alert alert-info alert-dismissible">
                <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
                <p class="text-white"><h4><i class="fa fa-tag"></i> Plan de Sms: ${plan}</h4></p>
                <p class="text-white"><h4><i class="fa fa-tag"></i> Sms Enviados: ${enviado}</h4></p>
                <p class="text-light-blue"><h4><i class="fa fa-tag"></i> Restan: ${respan} Sms</h4></p> 

                <h4><i class="fa fa-bullhorn"></i> Importante: El Plan Vence los primeros 5 días de cada Mes.</h4>
              </div> 
          `;
    },
    error: function (error) {
      console.error("Error en la solicitud:", error);
    },
  });
}

// Llama a la función al cargar la página o cuando sea necesario
document.addEventListener("DOMContentLoaded", obtenerDatosPlan);

function idp(data) {
  const arraySubcadenas = data.split("-");
  return arraySubcadenas[1];
}

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

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

  //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();
    $("#btnGuardar").hide();
    $("#btnCancelar").show();
    detalles = 0;
  } 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: [
        {
          text: "Excel",
          extend: "excelHtml5",
          className: "btn btn-danger",
          footer: true,
          filename: "SMS Clientes con Deuda",
          //orientation: 'landscape', //portrait
          //pageSize: 'A4', //A3 , A5 , A6 , legal , letter
          title: "",
          exportOptions: {
            columns: ":visible",
            search: "applied",
            order: "applied",
          },
        },
        {
          text: "PDF",
          extend: "pdfHtml5",
          className: "btn btn-danger",
          footer: true,
          filename: "SMS Clientes con Deuda",
          orientation: "landscape", //portrait
          pageSize: "A4", //A3 , A5 , A6 , legal , letter
          title: "",
          exportOptions: {
            columns: ":visible",
            search: "applied",
            order: "applied",
          },
        },
        {
          text: "Enviar Selección", // Texto del botón personalizado
          className: "btn btn-primary btn-sm btn-rounded",
          action: function (e, dt, node, config) {
            // Acción a realizar cuando se hace clic en el botón personalizado
            //seleccioncxc();
            selecciondemensaje();
          },
        },
        {
          text: "Seleccionar Todo", // Texto del botón personalizado
          className: "btn btn-primary btn-sm btn-rounded",
          action: function (e, dt, node, config) {
            // Acción a realizar cuando se hace clic en el botón personalizado
            //seleccioncxc();
            seleccionartodo();
          },
        },
        {
          text: "Limpiar Selección", // Texto del botón personalizado
          className: "btn btn-primary btn-sm btn-rounded",
          action: function (e, dt, node, config) {
            // Acción a realizar cuando se hace clic en el botón personalizado
            limpiarseleccion();
          },
        },
      ],
      /* "columnDefs": [ //Oculto La columna por donde ordeno
			{
					"targets": [ 9 ],
					"visible": false,
					"searchable": false
			}
		], */
      ajax: {
        url: "controladores/mensajeControlador.php?op=listarclientedeuda",
        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).data().sum();
		//	tactual		= number_format(tactual*1,2);
			total		= number_format(total*1,2);
			/* $(api.column(4).footer()).html('Total Actual:');
			$(api.column(5).footer()).html(tactual); */
      /*	$(api.column(6).footer()).html('Total:');
			$(api.column(7).footer()).html(total);
	  },  */
      bDestroy: true,
      iDisplayLength: -1, //paginacion
      order: [[0, "desc"]], //ordenar (columna, orden)
    })
    .DataTable();
  //tabla.column(8).visible(8);
  //tabla.dataTable();
  //table.;
  //	$('#tbllistado').DataTable().ajax.reload();
}

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

// Funcion para cambiar el estado y fecha de la cxc seleccionada
function selecciondemensajeOld() {
  let inicio = 0;
  let checks1 = document.getElementsByName("iddocumento[]");
  let personacontacto = document.getElementsByName("personacontacto[]");
  let personacontactotelefono = document.getElementsByName(
    "personacontactotelefono[]"
  );
  let mensaje = document.getElementsByName("mensaje[]");
  let data = "";
  let arraymensaje = [];

  //recorremos los clientes para seleccionar solo lo que tengas tilde
  console.log("checks1.length, total de clientes:", checks1.length);
  for (var i = 0, j = checks1.length; i < j; i++) {
    if (checks1[i].checked == true) {
      //Armamos la data a enviar
      data =
        personacontacto[inicio].value +
        "*/*" +
        personacontactotelefono[inicio].value +
        "*/*" +
        mensaje[inicio].value;
      arraymensaje[inicio] = data;
      inicio = inicio + 1;
    }
  }
  controlmensajesvalido = arraymensaje;
  /*
  console.log(
    "controlmensajesvalido.length, total de clientes tildados:",
    controlmensajesvalido.length
  );
  for (var i = 0, j = controlmensajesvalido.length; i < j; i++) {
    console.log(
      "controlmensajesvalido[i] guardados: ",
      controlmensajesvalido[i]
    );
    */
  //const arraySubcadenas = controlmensajesvalido[i].split("*/*");
  /*
    console.log("Persona: ", arraySubcadenas[0]);
    console.log("Telefono: ", arraySubcadenas[1]);
    console.log("Mensaje: ", arraySubcadenas[2]);
  } 
 */

  /*
  $("#myModalFechayEstadodespachogrupo").modal("show");
  // Limpia el contenedor por si tiene elementos anteriores
  container.innerHTML = "";
  */
}

function limpiarseleccion() {
  let checks1 = document.getElementsByName("iddocumento[]");
  for (var i = 0, j = checks1.length; i < j; i++) {
    checks1[i].checked = false;
  }
}

function seleccionartodo() {
  let checks1 = document.getElementsByName("iddocumento[]");
  for (var i = 0, j = checks1.length; i < j; i++) {
    checks1[i].checked = true;
  }
}

function validarmarcadocxc() {
  let checks1 = document.getElementsByName("iddocumento[]");
  let total = 0;
  let retorno = true;
  for (var i = 0, j = checks1.length; i < j; i++) {
    if (checks1[i].checked == false) {
      total = total + 1;
    }
  }

  if (total >= checks1.length) {
    retorno = false;
  }

  return retorno;
}

function evaluar() {
  $("#cod_barra").val("");
  $("#cod_barra").focus();
  if (detalles > 0) {
    $("#btnGuardar").show();
  } else {
    $("#btnGuardar").hide();
    cont = 0;
  }
}

function Enviarmensaje(
  indice,
  idpersona,
  idvendedor,
  cliente,
  vendedor,
  saldo,
  nrocxc,
  personacontacto2,
  personacontactotelefono2,
  mensaje1
) {
  //Detalle
  let personacontactom = document.getElementsByName("personacontacto[]");
  let personacontactotelefonom = document.getElementsByName(
    "personacontactotelefono[]"
  );
  let mensajem = document.getElementsByName("mensaje[]");

  //Envio de mensaje
  let persona = personacontactom[indice].value;
  let telefono = personacontactotelefonom[indice].value;
  let mensaje =
    mensajem[indice].value +
    ". A La persona: " +
    persona +
    " Y al Telefóno: " +
    telefono;
  let mensajesms = mensajem[indice].value;
  console.log("indice: ", indice);
  console.log("mensaje: ", mensaje);
  //BD
  let tipomensaje = "DeudaPendiente";
  let idcliente = idpersona;

  swal({
    title: "¿Está seguro de que desea enviar el siguiente mensaje?",
    text: mensaje,
    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í, enviar",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((value) => {
    if (value) {
      swal(
        "Mensaje enviado",
        "El mensaje ha sido enviado al cliente.",
        "success"
      );
      $.ajax({
        url: "sms/mensajeone.php",
        type: "POST",
        data: {
          persona: persona,
          telefono: telefono,
          mensaje: mensajesms,
          tipomensaje: tipomensaje,
          idcliente: idcliente,
        },
        success: function (response) {
          console.log("Respuesta del servidor:", response);
        },
        error: function (xhr, status, error) {
          console.log("Error:", error);
        },
      });
    } else {
      swal("Cancelado", "El mensaje no ha sido enviado.", "info");
    }
  });
}

function selecciondemensaje() {
  let inicio = 0;
  let checks1 = document.getElementsByName("iddocumento[]");
  let personacontacto = document.getElementsByName("personacontacto[]");
  let personacontactotelefono = document.getElementsByName(
    "personacontactotelefono[]"
  );
  let mensaje = document.getElementsByName("mensaje[]");
  let data = "";
  let arraymensaje = [];

  //recorremos los clientes para seleccionar solo lo que tengas tilde
  console.log("checks1.length, total de clientes:", checks1.length);
  for (var i = 0, j = checks1.length; i < j; i++) {
    if (checks1[i].checked == true) {
      //Mostramos el valor del cliente
      const arraySubcadenas = checks1[i].value.split("*/*/");
      const tipomensaje = "DeudaPendiente";
      const idcliente = arraySubcadenas[0];
      //console.log("id de cliente: ", arraySubcadenas[0]);

      //Armamos la data a enviar
      data =
        personacontacto[i].value +
        "%" +
        personacontactotelefono[i].value +
        "%" +
        mensaje[i].value +
        "%" +
        idcliente +
        "%" +
        tipomensaje;
      arraymensaje[inicio] = data;
      inicio = inicio + 1;
    }
  }

  //Vamos armar los datos que vamos a enviar

  // Contenedor donde agregarás los nuevos elementos input (puede ser un div, form, etc.)
  var container = document.getElementById("controlmensajevalido-container");

  // Limpia el contenedor por si tiene elementos anteriores
  container.innerHTML = "";

  // Crea los elementos input dinámicamente y asígnales los valores
  for (let i = 0; i < arraymensaje.length; i++) {
    // Crea un nuevo elemento input
    let input = document.createElement("input");

    // Configura el input
    input.type = "hidden"; // Cambia el tipo si es necesario
    input.name = "mensajesaenviar[]";
    input.value = arraymensaje[i];

    // Agrega el input al contenedor
    container.appendChild(input);
  }

  var lotemensajesaenviar = Array.from(
    document.getElementsByName("mensajesaenviar[]")
  ).map((input) => input.value);

  //Ahora procedemos con el proceso de envio de mensaje en lote
  swal({
    title:
      "¿Está seguro de que desea enviar los mensajes a los clientes seleccionados?",
    text: "Envío de mensajes en lote",
    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í, enviar",
        value: true,
        visible: true,
        className: "btn-success",
        closeModal: true,
      },
    },
    dangerMode: true,
  }).then((willSend) => {
    if (willSend) {
      // Aquí va la lógica para enviar el mensaje
      swal(
        "Inicio de envio de mensaje",
        "Los mensaje seran enviado a los cliente.",
        "success"
      );
      //Vamos hacer pruebas para enviar el mensaje
      $.ajax({
        url: "sms/mensajelote.php",
        type: "POST",
        data: {
          lotemensajesaenviar: lotemensajesaenviar,
        },
        success: function (response) {
          console.log("Respuesta del servidor:", response);
        },
        error: function (xhr, status, error) {
          console.log("Error:", error);
        },
      });
    } else {
      swal("Cancelado", "El mensaje no ha sido enviado.", "info");
    }
  });

  /*
  console.log(
    "controlmensajesvalido.length, total de clientes tildados:",
    controlmensajesvalido.length
  );
  for (var i = 0, j = controlmensajesvalido.length; i < j; i++) {
    console.log(
      "controlmensajesvalido[i] guardados: ",
      controlmensajesvalido[i]
    );
    */
  //const arraySubcadenas = controlmensajesvalido[i].split("*/*");
  /*
    console.log("Persona: ", arraySubcadenas[0]);
    console.log("Telefono: ", arraySubcadenas[1]);
    console.log("Mensaje: ", arraySubcadenas[2]);
  } 
 */

  /*
  $("#myModalFechayEstadodespachogrupo").modal("show");
  // Limpia el contenedor por si tiene elementos anteriores
  container.innerHTML = "";
  */
}

init();
