window.onload = () => {
  $(".loader").hide();
  let current = localStorage.getItem("CS-ubicacion-accesos")
    ? JSON.parse(localStorage.getItem("CS-ubicacion-accesos"))
    : {};

  reporte.initTable();
  if (!current.sucursal) {
    Swal.fire({
      title: "¡Atención!",
      html: "Para poder visualizar el reporte debe configurar su ubicación",
      icon: "warning",
      confirmButtonText: "Ir a configuración",
      confirmButtonColor: "#00a8ff",
      showCancelButton: false,
      showConfirmButton: true,
      allowOutsideClick: false,
      allowEscapeKey: false,
      allowEnterKey: false,
      focusConfirm: false,
      showCloseButton: false,
    }).then(() => {
      window.top.location.href = "./?page=config";
    });
  } else {
    let ubicacion_actual = capitalizar_oracion(`${current.nombre_sucursal} - ${current.nombre_cluster}`);
    document.getElementById(
      "spn_ubicacion"
    ).innerHTML = `(${ubicacion_actual})`;
  }
};

const reporte = {
  tbl: null,
  cnt: 0,
  initTable: function () {
    return new Promise((resolve, reject) => {
      try {
        if ($("#tblResults").length) {
          reporte.tbl = $("#tblResults").DataTable({
            lengthChange: false,
            buttons: [
              { extend: "excel", title: "Reporte de visitas" },
              { extend: "pdf", title: "Reporte de visitas" },
            ],
            dateFormat: "uk",
            order: [0, "asc"],
            columnDefs: [
              {
                targets: [2, 3, 4],
                className: "text-start",
              },
            ],
            sortable: true,
            responsive: true,
          });

          reporte.tbl
            .buttons()
            .container()
            .appendTo("#tblResults_wrapper .col-md-6:eq(0)");

          //   reporte.tbl.columns.adjust().draw();
        }
      } catch (err) {
        reject(err.message);
      }
    });
  },
  search: function () {
    reporte.cnt = 0;
    reporte.tbl.clear().draw();
    let current = localStorage.getItem("CS-ubicacion-accesos")
      ? JSON.parse(localStorage.getItem("CS-ubicacion-accesos"))
      : {};
    fetchActions
      .post({
        file: "getVisitas",
        data: {
          fechaInicio: document.getElementById("fechaInicio").value,
          fechaFin: document.getElementById("fechaFin").value,
          sucursal: current.sucursal,
          cluster: current.cluster,
        },
      })
      .then((response) => {
        console.log(response, current);
        if (response.status == 200) {
          switch (response.message) {
            case "EXITO":
              response.data.forEach((row) => reporte.rowTbl.add({...row,sucursal:current.nombre_sucursal,cluster:current.nombre_cluster}));
              reporte.tbl.columns.adjust().draw().responsive.recalc();
              break;
            default:
              showMessages.error(response);
              break;
          }
        } else {
          showMessages.error(response);
        }
      })
      .catch(showMessages.error);
  },
  rowTbl: {
    add: function (data) {
      return new Promise((resolve, reject) => {
        try {
          reporte.cnt++;
          reporte.tbl.row
            .add([
              reporte.cnt,
              data.sucursal,
              data.cluster,
              data.numero_documento,
              data.nombre_completo,
              `Polígono ${data.poligono}, Casa #${data.casa}`,
              data.motivo,
              data.fecha_registro,
            ])
            .node().id = "trResultado" + reporte.cnt;
          resolve();
        } catch (err) {
          reject(err.message);
        }
      });
    },
  },
};
