$(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 uma consulta.',
          position: 'right'
        }
      },
      {
        element: '#btnImprimir',
        popover: {
          title: 'Botão Imprimir',
          description: 'Clique aqui para imprimir um relatório.',
          position: 'right'
        }
      },
      {
        element: '#divRelatorio',
        popover: {
          title: 'Tabela com os Dados',
          description: 'Aqui, após clicar em consultar ficam os dados filtrados.',
          position: 'bottom'
        }
      }
      ]);
      driver.start();
    });
  });

  let activeColVis = '';

  let colunas = JSON.parse(localStorage.getItem('colunasInvisiveisRelatorios'));

  if (colunas == null || colunas.relSolicitacoes == undefined) {
    localStorage.setItem('colunasInvisiveisRelatorios', JSON.stringify({ ...colunas, relSolicitacoes: [] }))
    colunas = JSON.parse(localStorage.getItem('colunasInvisiveisRelatorios'))
  }
  if (colunas == null || colunas.relTabelaCompras == undefined) {
    localStorage.setItem('colunasInvisiveisRelatorios', JSON.stringify({ ...colunas, relTabelaCompras: [] }))
    colunas = JSON.parse(localStorage.getItem('colunasInvisiveisRelatorios'))
  }

  await preencheOrdenacaoTela('RelSolicita');

  // confirma as colunas
  $('#btnConfirmarColunas').on('click', async function () {
    try {
      $.LoadingOverlay('show');

      const novasColunas = retornaNovasColunasInvisiveis();
      let cols = JSON.parse(localStorage.getItem('colunasInvisiveisRelatorios'));
      if (activeColVis == 'buttonColVisNotas') {
        tabela = '#tabelaCompras'
        localStorage.setItem('colunasInvisiveisRelatorios', JSON.stringify({ ...cols, relTabelaCompras: novasColunas }))
      }
      if (activeColVis == 'buttonColVis') {
        tabela = '#tabelaSolicitacoes'
        localStorage.setItem('colunasInvisiveisRelatorios', JSON.stringify({ ...cols, relSolicitacoes: novasColunas }))
      }
      $(tabela).DataTable().columns().visible(true);

      $(tabela).DataTable().columns().every(
        function () {
          if ((novasColunas).indexOf(this.dataSrc()) != -1) {
            this.visible(false);
          }
        })
    } finally {
      $.LoadingOverlay('hide');
      $('#modal-ColunasVisiveis').modal('hide');
    }
  })

  $('#btnLimparFiltros').on('click', async function () {

    setarDataAtual('dtCadastroDe', true);
    setarDataAtual('dtCadastroAte');
    setarDataAtual('dtEntregaDe', true);
    setarDataAtual('dtEntregaAte');

    $('#btnLimpaProduto').trigger('click');
    $('#btnLimpaMaterial').trigger('click');
    $('#btnLimpaNumero').trigger('click');
    $('#btnLimpaSolicitante').trigger('click');
    $('#btnLimpaGrupoMat').trigger('click');
    $('#btnLimpaSubGrupo').trigger('click');
    $('#btnLimpaTipo').trigger('click');
    $('#btnLimpaCentroCusto').trigger('click');
    $('#btnLimpaCliente').trigger('click');
    $('#btnLimpaComprador').trigger('click');
    $('#btnLimpaStatus').trigger('click');
    $('#btnLimpaCor').trigger('click');
    $('#btnLimpaDeposito').trigger('click');
  });

  $('#btnFiltros').on('click', async function () {
    $('#modal-filtros').modal('show');
  });

  $('#rdTipoProduto, #rdTipoMaterial, #rdTipoTodos').on('change', function () {
    $('#txtProduto').empty().trigger('change')
    $('#txtMaterial').empty().trigger('change')

    if ($('#rdTipoTodos').is(':checked')) {
      $('#inputMaterial').removeClass('d-none')
      $('#inputProduto').removeClass('d-none')
      $('#inputSubGrupo').removeClass('d-none')
      $('#inputGrupoMat').removeClass('d-none')

    } else if ($('#rdTipoProduto').is(':checked')) {
      $('#inputMaterial').addClass('d-none')
      $('#inputSubGrupo').addClass('d-none')
      $('#inputGrupoMat').addClass('d-none')
      $('#inputProduto').removeClass('d-none')
    } else {
      $('#inputMaterial').removeClass('d-none')
      $('#inputSubGrupo').removeClass('d-none')
      $('#inputGrupoMat').removeClass('d-none')
      $('#inputProduto').addClass('d-none')
    }
  });

  async function retornaFiltros() {
    const empresas = $('.empresa_selecionada:checked').length > 0 ? $('.empresa_selecionada:checked').toArray().map(input => { const label = $(`label[for="${input.id}"]`).text(); return label.split(' - ')[0].trim(); }).toString()
      : [getCookie('emp_path')];
    const tipo = $('#rdTipoTodos').is(':checked') ? '' : $('#rdTipoProduto').is(':checked') ? '1' : $('#rdTipoMaterial').is(':checked') ? '2' : '0';
    let valores = []
    $('input[name="sitItens"]:checked').each(function () {
      valores.push("'" + $(this).val() + "'");
    });
    const situacao_itens = valores.join(',')
    valores = []
    $('input[name="statusItens"]:checked').each(function () {
      valores.push("'" + $(this).val() + "'");
    });
    const statusItens = valores.join(',')
    const status_lib = $('#rdStausLibTodos').is(':checked') ? '' : $('#rdStausLibLiberado').is(':checked') ? '1' : $('#rdStausLibBloqueado').is(':checked') ? '2' : '0';
    const status_oc = $('#rdStatusOCTodos').is(':checked') ? '' : $('#rdStatusOCLiberado').is(':checked') ? '1' : $('#rdStatusOCBloqueado').is(':checked') ? '2' : '0';
    const cod_item = [await formataListas($('#txtProduto').val().toString()), await formataListas($('#txtMaterial').val().toString())].filter((a) => a != '').toString();

    const retorno =
      `DT_CADASTRO_DE=${$('#dtCadastroDe').val()}` +
      `&DT_CADASTRO_ATE=${$('#dtCadastroAte').val()}` +
      `&DT_ENTREGA_DE=${$('#dtEntregaDe').val()}` +
      `&DT_ENTREGA_ATE=${$('#dtEntregaAte').val()}` +
      `&COD_ITEM=${cod_item}` +
      `&COR=${await formataListas($('#txtCor').val().toString())}` +
      `&NUMERO=${await formataListas($('#txtNumero').val().toString())}` +
      `&SOLICITANTE=${await formataListas($('#txtSolicitante').val().toString())}` +
      `&GRUPO_MATERIAL=${await formataListas($('#txtGrupoMat').val().toString())}` +
      `&SUBGRUPO_MATERIAL=${await formataListas($('#txtSubGrupo').val().toString())}` +
      `&TIPO_INPUT=${await formataListas($('#txtTipo').val().toString())}` +
      `&DEPOSITO=${await formataListas($('#txtDeposito').val().toString())}` +
      `&CENTRO_CUSTO=${await formataListas($('#txtCentroCusto').val().toString())}` +
      `&EMPRESAS=${await formataListas(empresas)}` +
      `&SITUACAO_ITENS=${situacao_itens}` +
      `&TIPO=${tipo}` +
      `&STATUS_LIB=${status_lib}` +
      `&STATUS_OC=${status_oc}` +
      `&CLIENTE=${await formataListas($('#txtCliente').val().toString())}` +
      `&COMPRADOR=${await formataListas($('#txtComprador').val().toString())}` +
      `&STATUS=${await formataListas($('#txtStatus').val().toString())}` +
      `&STATUS_ITENS=${statusItens}`

    return retorno;
  }

  async function retornaFiltrosImpressao() {
    const empresas = $('.empresa_selecionada:checked').length > 0 ? $('.empresa_selecionada:checked').toArray().map(input => { const label = $(`label[for="${input.id}"]`).text(); return label.split(' - ')[0].trim(); }).toString()
      : [getCookie('emp_path')];
    const tipo = $('#rdTipoTodos').is(':checked') ? '' : $('#rdTipoProduto').is(':checked') ? '1' : $('#rdTipoMaterial').is(':checked') ? '2' : '0';
    let valores = []
    $('input[name="sitItens"]:checked').each(function () {
      valores.push("'" + $(this).val() + "'");
    });
    const situacao_itens = valores.join(',')
    valores = []
    $('input[name="statusItens"]:checked').each(function () {
      valores.push("'" + $(this).val() + "'");
    });
    const statusItens = valores.join(',')
    const status_lib = $('#rdStausLibTodos').is(':checked') ? '' : $('#rdStausLibLiberado').is(':checked') ? '1' : $('#rdStausLibBloqueado').is(':checked') ? '2' : '0';
    const status_oc = $('#rdStatusOCTodos').is(':checked') ? '' : $('#rdStatusOCLiberado').is(':checked') ? '1' : $('#rdStatusOCBloqueado').is(':checked') ? '2' : '0';
    const cod_item = [await formataListas($('#txtProduto').val().toString()), await formataListas($('#txtMaterial').val().toString())].filter((a) => a != '').toString();
    let codigosTabela = [];
    let coresTabela = [];

    if ($.fn.DataTable.isDataTable('#tabelaSolicitacoes')) {
      const table = $('#tabelaSolicitacoes').DataTable();

      table.rows().every(function () {
        const data = this.data();
        if (data?.CODIGO) {
          codigosTabela.push(`'${data.CODIGO}'`);
        }
        if (data?.COR) {
          coresTabela.push(`'${data.COR}'`);
        }
      });
    }

    codigosTabela = [...new Set(codigosTabela)];
    coresTabela = [...new Set(coresTabela)];

    const codigosStr = codigosTabela.join(',');
    const coresStr = coresTabela.join(',');

    const retorno =
      `DT_CADASTRO_DE=${$('#dtCadastroDe').val()}` +
      `&DT_CADASTRO_ATE=${$('#dtCadastroAte').val()}` +
      `&DT_ENTREGA_DE=${$('#dtEntregaDe').val()}` +
      `&DT_ENTREGA_ATE=${$('#dtEntregaAte').val()}` +
      // `&CODIGO=${cod_item}` +
      `&CODIGO=${codigosTabela}` +
      `&COR=${coresTabela}` +
      // `&COR=${await formataListas($('#txtCor').val().toString())}` +
      `&NUMERO=${await formataListas($('#txtNumero').val().toString())}` +
      `&SOLICITANTE=${await formataListas($('#txtSolicitante').val().toString())}` +
      `&GRUPO_MATERIAL=${await formataListas($('#txtGrupoMat').val().toString())}` +
      `&SUBGRUPO_MATERIAL=${await formataListas($('#txtSubGrupo').val().toString())}` +
      `&TIPO_INPUT=${await formataListas($('#txtTipo').val().toString())}` +
      `&DEPOSITO=${await formataListas($('#txtDeposito').val().toString())}` +
      `&CENTRO_CUSTO=${await formataListas($('#txtCentroCusto').val().toString())}` +
      `&EMPRESAS=${await formataListas(empresas)}` +
      `&SITUACAO_ITENS=${situacao_itens}` +
      `&TIPO=${tipo}` +
      `&STATUS_LIB=${status_lib}` +
      `&STATUS_OC=${status_oc}` +
      `&CLIENTE=${await formataListas($('#txtCliente').val().toString())}` +
      `&COMPRADOR=${await formataListas($('#txtComprador').val().toString())}` +
      `&STATUS=${await formataListas($('#txtStatus').val().toString())}` +
      `&STATUS_ITENS=${statusItens}` +
      `&ORDEM_ORDENACAO=${$('#txtOrdem').val()}`

    return retorno;
  }

  retornaHintRelatorio('btnImprimir', 'RelSolicita');

  $('#btnImprimir').on('click', async function () {
    try {
      $.LoadingOverlay('show');
      try {


        const url = `/sisplan/relsolicita/v1/imprimerelsolicita?`;
        const filtros = await retornaFiltrosImpressao();
        const bImprimeAutomatico = await verificaImprimirAutomatico('RelSolicita');
        const arquivo = await GeraRelatorio(`${url}${filtros}`, 'POST', 100000, false, 'RelSolicita');
        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', async function () {
    try {
      $.LoadingOverlay("show");
      const filtros = await retornaFiltros();
      var response = await requisicao('GET', '/sisplan/relsolicita/v1/consultadados?', filtros, null);

      if (!response) {
        return;
      }

      var jsonStr = await response.json();
      if (response.status != 200) {
        msgAlerta(jsonStr.mensagem);
        return;
      }

      if (jsonStr.length == 0) {
        msgAlerta('Nenhum registro encontrado.');
        return;
      }

      const columns = [
        { title: "Número", data: 'NUMERO' },
        { title: "Cor", data: 'COR' },
        { title: "Qtde", data: 'QTDE' },
        { title: "Qtde Cancelada", data: 'QTDE_CANC' },
        { title: "Situação", data: 'SITUACAO' },
        { title: "Especifica", data: 'ESPECIFICA' },
        { title: "Código", data: 'CODIGO' },
        { title: "Descrição", data: 'DESCRICAO' },
        { title: "Unidade", data: 'UNIDADE' },
        { title: "Uni. Compra", data: 'UNI_COM' },
        { title: "Ordem", data: 'ORDEM' },
        { title: "Qtde baixada", data: 'QTDE_B' },
        { title: "Tamanho", data: 'TAM' },
        { title: "Tipo Item", data: 'TP_ITEM' },
        { title: "Data", data: 'DATA' },
        { title: "Solicitante", data: 'SOLICITANTE' },
        { title: "Status", data: 'STATUS' },
        { title: "Cliente", data: 'CLIENTE' },
        { title: "Nome Cliente", data: 'CLIENTE_NOME' },
        { title: "Entrega", data: 'ENTREGA' },
        { title: "Tipo", data: 'TIPO' },
        { title: "Obs", data: 'OBS' },
        { title: "Setor", data: 'SETOR' },
        { title: "Número OF", data: 'NUM_OF' },
        { title: "Valor", data: 'VALOR' },
        { title: "Emissão", data: 'DT_EMISSAO' },
        { title: "Nome", data: 'NOME' },
        { title: "Desc. Cor", data: 'DESCCOR' },
        { title: "Comp1", data: 'COMP1' },
        { title: "Entrega Item", data: 'DT_ENTREGA_ITEN' },
        { title: "Depósito", data: 'DEPOSITO' },
        { title: "Centro Custo", data: 'C_CUSTO' },
        { title: "Desc. Centro Custo", data: 'DESC_CENTROCUSTO' },
        { title: "Comprador", data: 'COMPRADOR' },
        { title: "Comprador Nome", data: 'NOME_COMPRADOR' },
        { title: "Ordem Compra", data: 'ORDEM_COMPRA' },
        { title: "Número Cotação", data: 'NUM_COTACAO' },
        { title: "Empresa", data: 'EMPRESA' },
        { title: "Id Sol. Item", data: 'ID_SOL_ITEN' },
        { title: "Id Cotação", data: 'ID_COTACAO' },
        { title: "Sit. Cotação", data: 'SITUA_COTACAO' },
        { title: "Complemento Cor", data: 'COMPLEMENTO_COR' },
        { title: "Fornecedor Material", data: 'FORNECEDOR_MAT' },
        { title: "Nome Fornc. Mat.", data: 'NOME_FORNECEDOR_MAT' },
        { title: "Classe Gerencial", data: 'CLASSE_GER' },
        { title: "Desc. Classe Ger.", data: 'DESC_CLASSE_GER' },
        { title: "Preço", data: 'PRECO' },
        { title: "Status Material", data: 'STATUS_MAT' },
        { title: "Lista OF", data: 'LISTA_OF' },
        { title: "Divisor", data: 'DIVISOR' },
        { title: "Marca Material", data: 'MARCA_MAT' },
        { title: "Desc. Marca", data: 'DESC_MARCA' },
        { title: "Código Sit.", data: 'COD_SITPROD' },
        { title: "Desc. Sit.", data: 'DESC_SITPROD' },
        { title: "Conta Cont.", data: 'CONTA_CONT' },
        { title: "Id Cont.", data: 'ID_CCONT' },
        { title: "Desc. Conta Cont.", data: 'DESC_CONTA_CONT' }
      ]
      const colunasInvisiveis = JSON.parse(
        localStorage.getItem("colunasInvisiveisRelatorios")
      );

      criaDataTablePadrao('#tabelaSolicitacoes', true, true, false, true, true, true, '300px', jsonStr, columns, [], [14, 19, 29], [46], [], {}, '', 'buttonColVis', 'buttonExcel2');

      $('#tabelaSolicitacoes').DataTable().columns().every(
        function () {
          if ((colunasInvisiveis.relSolicitacoes).indexOf(this.dataSrc()) != -1) {
            this.visible(false);
          }
        }
      )

      $('#modal-filtros').modal('hide');

      $('#buttonColVis').on('click', async function () {
        $.LoadingOverlay('show');
        activeColVis = 'buttonColVis'
        $('#modal-ColunasVisiveis').modal('show');
        $.LoadingOverlay('hide');
      })

    } catch (error) {
      console.log(error);
    } finally {
      $.LoadingOverlay("hide");
    }
  });

  async function buscaItensSolicitacoes(data) {
    let urlRequisicao = `/sisplan/relsolicita/v1/consultadadositens?`;
    let codigo = data.CODIGO;
    let cor = data.COR;
    let dtcadastrode = data.DATA;
    let dtentregade = data.DT_ENTREGA_ITEN;
    let paramsRequisicao = `DT_CADASTRO=${dtcadastrode}&DT_ENTREGA=${dtentregade}&CODIGO=${codigo}&COR=${cor}&`;

    try {
      let response = await requisicao('GET', urlRequisicao, paramsRequisicao, null, 10000);

      if (!response) {
        return;
      }

      if (response.status != 200) {
        msgErro(jsonStr.RESULT[0].mensagem);
        return;
      }

      let jsonStr = await response.json();
      return jsonStr;
    } catch (error) {
      console.error(error);
      msgErro('Não foi possível buscar os dados.');
    }
  }

  async function retornaInformacoesItensSolicitacoes(item) {
    try {
      $.LoadingOverlay('show');
      const itens = await buscaItensSolicitacoes(item);

      const configuracaoTabelas = [
        { id: '#tabelaCompras', tipo: 'compras', storageKey: 'relTabelaCompras' },
        { id: '#tabelaConsumos', tipo: 'consumos', storageKey: 'relTabelaConsumos' },
        { id: '#tabelaUltCompra', tipo: 'ultimas_compras', storageKey: 'relUltCompra' }
      ];

      const colunasInvisiveis = JSON.parse(localStorage.getItem("colunasInvisiveisRelatorios")) || {};

      configuracaoTabelas.forEach(conf => {

        if ($.fn.DataTable.isDataTable(conf.id)) {
          $(conf.id).DataTable().destroy();
          $(conf.id).empty();
        }
        const bloco = itens.find(obj => obj[conf.tipo]);
        const dadosTabela = bloco?.[conf.tipo] ?? [];

        if (!dadosTabela || dadosTabela.length === 0) {
          criaDataTablePadrao(
            conf.id,
            true, false, false, false, true, true, false,
            dadosTabela,
            [], [], [], [], {}, '',
            'buttonColVisNotas',
            'buttonExcel2'
          );
          return;
        }

        const colunas = Object.keys(dadosTabela[0]).map(k => ({
          title: k,
          data: k
        }));

        criaDataTablePadrao(
          conf.id,
          true, false, false, false, true, true, false,
          dadosTabela,
          colunas,
          [], [], [], [], {}, '',
          'buttonColVisNotas',
          'buttonExcel3'
        );

        const invisiveis = colunasInvisiveis[conf.storageKey] || [];
        $(conf.id).DataTable().columns().every(function () {
          if (invisiveis.includes(this.dataSrc())) {
            this.visible(false);
          }
        });
      });

      $('#buttonExcel3').off('click').on('click', async function () {
        if ($('#tabCompras').on('active')) {
          const dados = $("#tabelaCompras").DataTable().data().toArray();
          await exportaCSV('', '', true, null, 'Relatório da solicitação de Compra', undefined, '', 999, false, false, dados);
        }
      });

      $('#buttonColVisNotas').off('click').on('click', function () {
        activeColVis = 'buttonColVisNotas';
        $('#modal-ColunasVisiveis').modal('show');
      });

    } catch (error) {
      console.error("Erro ao carregar dados:", error);
    } finally {
      $.LoadingOverlay('hide');
      $('#nav-tab').prop('disabled', false)
      $('#tabCompras').trigger('click');
    }
  }

  $('#tabelaSolicitacoes').on('click', 'tr', async function () {
    const table = $('#tabelaSolicitacoes').DataTable();

    $('#tabelaSolicitacoes tbody tr').removeClass('selected');

    $(this).addClass('selected');

    const data = table.row(this).data();
    table.draw(false);


    await retornaInformacoesItensSolicitacoes(data);
  });

  $('#modal-ColunasVisiveis').on('show.bs.modal', function () {
    const cols = [];
    let tabela = ''
    let colunasInvisiveis = JSON.parse(localStorage.getItem('colunasInvisiveisRelatorios'))

    if (activeColVis == 'buttonColVis') {
      tabela = '#tabelaSolicitacoes'
    }
    if (activeColVis == 'buttonColVisNotas') {
      tabela = '#tabelaCompras'
    }

    $(tabela).DataTable().columns().every(function () {
      cols.push({
        'title': $(this.header()).text().trim(),
        'data': this.dataSrc()
      })
    });

    if (activeColVis == 'buttonColVis') {
      adicionaColunas(cols, colunasInvisiveis.relSolicitacoes ?? [])
    }
    if (activeColVis == 'buttonColVisNotas') {
      adicionaColunas(cols, colunasInvisiveis.relTabelaCompras ?? [])
    }
  })

  $('#btnSelecionarEmpresas').on('click', function () {
    carregaEmpresasDisponiveis();
  });

  function addPesquisaAutocompleta() {
    componenteFiltro('produto', true, true);
    componenteFiltro('material', true, true);
    componenteFiltro('cor', true, true);
    componenteFiltro('subGrupo', true, true);
    componenteFiltro('tipo', true, true);
    componenteFiltro('status', true, true);
    componenteFiltro('cliente', true, true);
    componenteFiltro('centroCusto', true, true);
    componenteFiltro('deposito', true, true);

    $('#txtSolicitante').pesquisa_variosServerside(1, `{"tabela":"PESSOAL", "camposSelect":[ "CODIGO", "NOME" ]}`, "CODIGO", "NOME")
    $('#btnSolicitante').pesquisa_serversideSel('#txtSolicitante', `{"tabela":"PESSOAL", "camposSelect":[ "CODIGO", "NOME" ]}`, 'Pesquisa Solicitante');
    $('#btnLimpaSolicitante').on('click', function () { $('#txtSolicitante').empty().trigger('change') })

    $('#txtGrupoMat').pesquisa_variosServerside(1, `{"tabela":"GRUPO_MA", "camposSelect":[ "GRUPO_MA.CODIGO", "GRUPO_MA.DESCRICAO" ]}`, "ID", "NOME")
    $('#btnGrupoMat').pesquisa_serversideSel('#txtGrupoMat', `{"tabela":"GRUPO_MA", "camposSelect":[ "GRUPO_MA.CODIGO", "GRUPO_MA.DESCRICAO" ]}`, 'Pesquisa Grupo de Material');
    $('#btnLimpaGrupoMat').on('click', function () { $('#txtGrupoMat').empty().trigger('change') })

    $('#txtNumero').pesquisa_variosServerside(1, `{"tabela":"SOL_COMPRA", "camposSelect":[ "NUMERO", "SOLICITANTE" ]}`, "NUMERO", "SOLICITANTE")
    $('#btnNumero').pesquisa_serversideSel('#txtNumero', `{"tabela":"SOL_COMPRA", "camposSelect":[ "NUMERO", "SOLICITANTE" ]}`, 'Pesquisa Solicitação');
    $('#btnLimpaNumero').on('click', function () { $('#txtNumero').empty().trigger('change') })

    $('#txtComprador').pesquisa_variosServerside(1, `{"tabela":"ENTIDADE", "camposSelect":[ "CODCLI", "NOME", "FANTASIA" ]}`, "CODCLI", "NOME", "FANTASIA")
    $('#btnComprador').pesquisa_serversideSel('#txtComprador', `{"tabela":"ENTIDADE", "camposSelect":[ "CODCLI", "NOME", "FANTASIA" ]}`, 'Pesquisa Cliente');
    $('#btnLimpaComprador').on('click', function () { $('#txtComprador').empty().trigger('change') })
  }

  $('#tabCompras').on('click', async function () {
    $('#divConsumos').addClass('d-none')
    $('#divUltCompra').addClass('d-none')
    $('#divCompras').removeClass('d-none')
  })

  $('#tabConsumos').on('click', async function () {
    $('#divCompras').addClass('d-none')
    $('#divUltCompra').addClass('d-none')
    $('#divConsumos').removeClass('d-none')
  })
  $('#tabUltCompra').on('click', async function () {
    $('#divCompras').addClass('d-none')
    $('#divConsumos').addClass('d-none')
    $('#divUltCompra').removeClass('d-none')
  })

  $("#tabCompras, #tabConsumos, #tabUltCompra").on('click', async function () {
    setTimeout(() => {
      $('#tabelaCompras').DataTable().columns.adjust().draw(false);
      $('#tabelaConsumos').DataTable().columns.adjust().draw(false);
      $('#tabelaUltCompra').DataTable().columns.adjust().draw(false);
    }, 175);
  });

  $('#nav-tab').prop('disabled', true)

  function innitDateAtual() {
    setarDataAtual('dtCadastroDe', true);
    setarDataAtual('dtCadastroAte');
    setarDataAtual('dtEntregaDe', true);
    setarDataAtual('dtEntregaAte');
  }

  addPesquisaAutocompleta();
  innitDateAtual();

  // $('#btnConsultar').trigger('click');
});