$(document).ready(async function () {

    $('#tutorial').on('click', function () {
      $(document).ready(async function () {
        const driver = new Driver({
          doneBtnText: 'Sair',
          closeBtnText: 'Fechar',
          nextBtnText: 'Próximo',
          prevBtnText: 'Anterior',
          allowClose: false
        });
        driver.defineSteps([{
          element: '#btnFiltros',
          popover: {
            title: 'Botão Filtros',
            description: 'Clique aqui para abrir os filtros e realizar alguma consulta.',
            position: 'right'
          }
        },
        {
          element: '#btnImprimir',
          popover: {
            title: 'Botão Imprimir',
            description: 'Clique aqui para Imprimir um relatório.',
            position: 'right'
          }
        }
        ]);
        driver.start();
      });
    });
  
    $('#btnFiltros').on('click', async function () {
      $('#modal-filtros').modal('show');
    });
  
    $('#txtTransportadora').autocompleta(1, `JSON={ "tabela":"TABTRAN", "camposSelect":[ "CODIGO CHAVE", "NOME DESCRICAO"], "where": null}`); // busca um por um
    $('#txtTransportadora2').autocompleta(1, `JSON={ "tabela":"TABTRAN", "camposSelect":[ "CODIGO CHAVE", "NOME DESCRICAO"], "where": null}`); // busca varios de uma vez
    $('#txtTipoCliente').autocompleta(3, `JSON={ "tabela":"ENTIDADE", "camposSelect":[ "CODCLI CHAVE", "NOME DESCRICAO"], "where": null}`);
    $('#txtRepresentante').autocompleta(3, `JSON={ "tabela":"ENTIDADE", "camposSelect":[ "CODCLI CHAVE", "NOME DESCRICAO"], "where": null}`);
    $('#txtCliente').autocompleta(3, `JSON={ "tabela":"ENTIDADE", "camposSelect":[ "CODCLI CHAVE", "NOME DESCRICAO"], "where": null}`);
    $('#txtUF').autocompleta(3, `JSON={ "tabela":"ENTIDADE", "camposSelect":[ "CODCLI CHAVE", "NOME DESCRICAO"], "where": null}`);
    $('#txtOperFiscal').autocompleta(3, `JSON={ "tabela":"ENTIDADE", "camposSelect":[ "CODCLI CHAVE", "NOME DESCRICAO"], "where": null}`);
    $('#txtListaNotas').autocompleta(3, `JSON={ "tabela":"ENTIDADE", "camposSelect":[ "CODCLI CHAVE", "NOME DESCRICAO"], "where": null}`);

//     $('#txtCliente').on('focus', async function () {
//         if ($('#listaVendas')[0].textLength >= 0) {
//             $('#listaVendas').css('height', '22px');
//         }
//         if ($('#listaVendas')[0].textLength > 50) {
//             $('#listaVendas').css('height', '75px');
//         }
//          $('#listaVendas').removeClass('d-none');
//     });

//     $('#txtCliente').on('blur', async function () {
//         $('#listaVendas').addClass('d-none');
//    });

//    let clientes = [];
//    $('#txtCliente').on('keypress', function (e) {
//     if (e.which == 13) {
//         if ($('#listaVendas')[0].textLength >= 0) {
//             $('#listaVendas').css('height', '22px');
//         }
//         if ($('#listaVendas')[0].textLength > 50) {
//             $('#listaVendas').css('height', '75px');
//         }
//         clientes.push(pegaChave('#txtCliente'));
//         $('#listaVendas').val(clientes);
//       }
    
//    });

   $('#txtCliente').listaFiltros();
  
    $('#btnCliente').pesquisa_serverside(['#txtCliente'], ['CODCLI'], ['NOME'], '{ "tabela":"ENTIDADE", "camposSelect":[ "CODCLI", "NOME"]}', 'Pesquisa de Cliente');
    $('#btnVendedor').pesquisa('#txtVendedor', 'CODREP', 'NOME', `/sisplan/funcoes/v1/pesquisa?JSON={ "tabela":"REPRESEN", "camposSelect":[ "CODREP", "NOME"], "where": ["ATIVO = 'S'"]}`, 'Pesquisa Vendedor', 'represen');
    
  
    $('#btnLimpaCliente').on('click', function () {
        if ($('#txtCliente').val() == '') {
            $('#listaCliente').val('');
        }
        $('#txtCliente').val('');
        $('#txtCliente').focus();
    });
  
    $('#btnLimpaVendedor').on('click', function () {
      $('#txtVendedor').val('');
    });
  
    $('#btnLimpaCaixaECF').on('click', function () {
      $('#txtCaixaECF').val('');
    });
  
    $('#btnImprimir').on('click', async function () {
      try {
        $.LoadingOverlay('show');
        try {
          let url = `/sisplan/impressao/v1/imprimirrelmoeda?`;
  
          const filtros = preencheFiltros();
          const bImprimeAutomatico = await verificaImprimirAutomatico('RelMoeda');
          let arquivo = await GeraRelatorio(`${url}${filtros}`, 'GET', 1000000, false, 'RelMoeda');
          if (arquivo != undefined) {
            if (!bImprimeAutomatico) {
              window.open(`${BASE_URI}/relatorios_api/pdf/${arquivo}`, '_blank');
            }
            await limparRelatorios();
          }
  
        } catch (error) {
          console.error(error);
        }
      } finally {
        $.LoadingOverlay('hide');
      }
    });
  
    $('#btnConsultar').on('click', function () {
      consultaMoeda();
    });
  
    async function preencheFiltros(){
      const sEmissaoDe = $('#dtEmissaoDe').val();
      const sEmissaoAte = $('#dtEmissaoAte').val();
      const sCliente = pegaChave('#txtCliente');
      const sVendedor = pegaChave('#txtVendedor');
      const sCaixaECF = pegaChave('#txtCaixaECF');
      const sEmpId = getCookie('emp_id');
  
      if ($('#radioTodosOP').prop('checked')) {
        sRadioOP = 0;
      }
      if ($('#radioSimOP').prop('checked')) {
        sRadioOP = 1;
      }
      if ($('#radioNaoOP').prop('checked')) {
        sRadioOP = 2;
      }
  
      if ($('#radioTodosNFCE').prop('checked')) {
        sRadioNFCE = 0;
      }
    
      if ($('#radioSimNFCE').prop('checked')) {
        sRadioNFCE = 1;
      }
  
      if ($('#radioNaoNFCE').prop('checked')) {
        sRadioNFCE = 2;
      }
      const retorno = `CLIENTE=${sCliente}`+
          `&VENDEDOR=${sVendedor}`+
          `&CAIXAECF=${sCaixaECF}`+
          `&EMISSAODE=${sEmissaoDe}`+
          `&EMISSAOATE=${sEmissaoAte}`+
          `&RADIOOP=${sRadioOP}`+
          `&RADIONFCE=${sRadioNFCE}`+
          `&EMP_ID=${sEmpId}`;
  
          return retorno;
    }
  
    async function consultaMoeda(bBotao = false) {
      try {
        $.LoadingOverlay("show");
        try {    
          dataSetCols = [];
          const url = `/sisplan/impressao/v1/consultarelmoeda?`
          const Filtros = await preencheFiltros();
          const response = await requisicao("GET", url, Filtros, '', 30000);
  
  
          if (!response) {
            return;
          }
  
          const jsonStr = await response.json();
  
          if (jsonStr.length == 0) {
            msgAlerta("Nenhum registro encontrado!");
            $("#txtMeta").val();
  
            return;
          }
  
          if (response.status != 200) {
            console.error(jsonStr.mensagem);
            return;
          }
  
          let keys = Object.keys(jsonStr[0]);
  
          keys.forEach((k) => {
            dataSetCols.push({
              title: k,
              data: k,
            });
          });
  
          let indiceValor;
  
          for (let i = 0; i < keys.length; i++) {
            if (keys[i] == 'VALOR') {
              indiceValor = i;
            }
          }
  
          $("#tabelaRelMoeda").DataTable({
            destroy: true,
            filter: false,
            info: false,
            order: false,
            language: {
              sEmptyTable: "Nenhum registro encontrado",
              sInfo: "_TOTAL_ registros",
              sInfoEmpty: " 0 registros",
              sInfoFiltered: "(Filtrados de _MAX_ registros)",
              sInfoPostFix: "",
              sInfoThousands: ".",
              sLengthMenu: "_MENU_ resultados",
              sLoadingRecords: "Carregando...",
              sProcessing: "Processando...",
              sZeroRecords: "Nenhum registro encontrado",
              sSearch: "Pesquisar",
              oPaginate: {
                sNext: "Próximo",
                sPrevious: "Anterior",
                sFirst: "Primeiro",
                sLast: "Último",
              },
              oAria: {
                sSortAscending: ": Ordenar colunas de forma ascendente",
                sSortDescending: ": Ordenar colunas de forma descendente",
              },
            },
            autoWidth: true,
            data: jsonStr,
            columns: dataSetCols,
            "columnDefs": [{
            },
            {
              "render": function (data) {
                return parseFloat(data).toLocaleString('pt-br', {
                  style: 'currency',
                  currency: 'BRL'
                });
              },
              "targets": +indiceValor
            }
            ],
          });
  
          $.LoadingOverlay("hide");
  
        } catch (error) {
          console.error(error);
        }
      } finally {
        $.LoadingOverlay("hide");
        $("#modal-filtros").modal("hide");
      }
  
    }
  });