<?php include_once('../../config.php') ?>

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>Sisplan WEB | Entrar </title>
  <!-- Tell the browser to be responsive to screen width -->
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <!-- Font Awesome -->
  <link rel="stylesheet" href="plugins/fontawesome-free/css/all.min.css?versao=3.245.9.1">
  <!-- Ionicons -->
  <link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
  <!-- icheck bootstrap -->
  <link rel="stylesheet" href="plugins/icheck-bootstrap/icheck-bootstrap.min.css?versao=3.245.9.1">
  <!-- Theme style -->
  <link rel="stylesheet" href="dist/css/adminlte.min.css?versao=3.245.9.1">
  <link rel="shortcut icon" href="favicon.ico">
  <link rel="stylesheet" href="plugins/select2/css/select2.min.css?versao=3.245.9.1">
  <link rel="stylesheet" href="plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css?versao=3.245.9.1">

  <link rel="stylesheet" href="dist/css/sisplan.css?versao=3.245.9.1">
  <!-- SweetAlert2 -->
  <link rel="stylesheet" href="plugins/sweetalert2-theme-bootstrap-4/bootstrap-4.min.css?versao=3.245.9.1">

  <style>
    .login-page {
      background-position: right;
      background-repeat: no-repeat;
      background-size: cover;
    }

    .select2-container--default .select2-selection--single {
      height: 38px !important;
    }
  </style>

  <!-- Google Font: Source Sans Pro -->
  <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700" rel="stylesheet">
  <script type="text/javascript" src="dist/js/datadog-logs-v4.js?versao=3.245.9.1"></script>
  <script>
    const enviarLogs = '<?php if (defined('ENVIAR_LOGS')) {
                          echo ENVIAR_LOGS;
                        } else {
                          echo 1;
                        } ?>';

    if (enviarLogs == '1') {
      window.DD_LOGS &&
        DD_LOGS.init({
          clientToken: 'pub22c993c7a1e62229227b490bbdc2613f',
          forwardErrorsToLogs: true,
          sampleRate: 100,
          beforeSend: (log) => {
            if (log.http && log.http.status_code === 0) {
              return false;
            }

            log.usuario = {
              usuario: getCookie('usuario') ?? '',
              empresa: sessionStorage.getItem('g_nome_empresa_logada') ?? '',
              ipExterno: '<?php echo IP_EXTERNO; ?>',
              versao: VERSAO,
            }
          },
        })
    }
  </script>
</head>

<body class="login-page">
  <!-- /.login-logo -->
  <div class="row loginRow">
    <div class="col-12 col-lg-7 d-none d-lg-flex"></div>
    <div class="col-12 col-lg-5 loginCard">
      <div class="imgLogo">
        <img src="dist/img/logo-dark.png" id="logoImage" alt="">
      </div>
      <div class="loginForm">
        <h5 class="mt-5 mb-4 text-center">Autentique-se para acessar o sistema</h5>
        <div class="formControl">
          <label for="">Usuário</label>
          <div class="inputGroupLogin">
            <div class="inputLeftElement">
              <span class="fas fa-user"></span>
            </div>
            <input type="text" id="txtEmail" oninput="handleInput(event)" class="form-control inputLogin" placeholder="Usuário">
          </div>
        </div>

        <div class="formControl">
          <label for="">Senha</label>
          <div class="inputGroupLogin">
            <div class="inputLeftElement">
              <span class="fas fa-lock"></span>
            </div>
            <input id="txtSenha" type="password" class="form-control inputLogin" placeholder="Senha">
          </div>
        </div>

        <div class="form-group newSelect mt-2 d-none" id="selectEmpresa">
          <label for="">Empresa</label>
          <select style="width:100%;" class="form-control inputLogin select2 select2-danger focus" data-dropdown-css-class="select2-danger" id="rgEmpresa" class="custom-select focus ">
            <option value="">Selecione uma empresa</option>
          </select>
        </div>

        <div class="form-group selectFantasia mt-2 d-none" disabled id="selectFantasia">
          <select style="width:100%;" disabled class="form-control inputLogin select2 select2-danger focus" data-dropdown-css-class="select2-danger" id="rgFantasia" class="custom-select focus ">
            <option value="">Fantasia</option>
          </select>
        </div>

        <div class="row mt-4">
          <div class="col-12">
            <button type="submit" class="btnEntrar btn">Entrar</button>
          </div>
          <div id="adilsinho"></div>
          <div id="tiaguinho"></div>
        </div>
      </div>
    </div>
  </div>

  <div class="modal fade" id="modal-danger">
    <div class="modal-dialog modal-dialog-centered">
      <div class="modal-content bg-danger">
        <div class="modal-header">
          <h4 id="modal-danger-titulo" class="modal-title">Danger Modal</h4>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="modal-body">
          <textarea style="resize: none;border:0px;" id="modal-danger-conteudo" placeholder="Mensagem:" class="form-control bg-danger" rows="5" readonly></textarea>
        </div>
        <div id="modal-danger-rodape" class="modal-footer justify-content-between">

        </div>
      </div>
      <!-- /.modal-content -->
    </div>
    <!-- /.modal-dialog -->
  </div>
  <div style="z-index:99999999999!important;" class="modal fade" id="modal-warning">
    <div class="modal-dialog modal-dialog-centered">
      <div class="modal-content">
        <div class="modal-header">
          <i class="fas fa-exclamation-triangle text-yellow" style="margin-right: 20px;font-size: 35px;margin-right: 20;"></i>
          <h4 id="modal-warning-titulo" class="modal-title">Atenção</h4>
          <button type="button" class="close" id="btn-warning-close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="modal-body">
          <textarea style="resize: none; border:0px;" id="modal-warning-conteudo" placeholder="Mensagem:" class="form-control" rows="5" readonly></textarea>
        </div>
        <div id="modal-warning-rodape" class="modal-footer justify-content-between">

        </div>
      </div>
    </div>
  </div>

  <script src="plugins/jquery/jquery.min.js?versao=3.245.9.1"></script>
  <script type="text/javascript" src="dist/js/jquery.dataTables.js?versao=3.245.9.1"></script>
  <script type="text/javascript" src="dist/js/dataTables.bootstrap4.min.js?versao=3.245.9.1"></script>
  <script src="plugins/bootstrap/js/bootstrap.bundle.min.js?versao=3.245.9.1"></script>
  <script src="plugins/sweetalert2/sweetalert2.min.js?versao=3.245.9.1"></script>
  <script src="plugins/toastr/toastr.min.js?versao=3.245.9.1"></script>
  <script src="dist/js/adminlte.min.js?versao=3.245.9.1"></script>
  <script src="dist/js/loadingoverlay.min.js?versao=3.245.9.1"></script>
  <script src="dist/js/requisicoes.js?versao=3.245.9.1"></script>
  <script type="text/javascript" src="utils/login.js?versao=3.245.9.1"></script>
  <script type="text/javascript" src="utils/funcoes.js?versao=3.245.9.1"></script>
  <script type="text/javascript" src="utils/cookies.js?versao=3.245.9.1"></script>
  <script src="plugins/select2/js/select2.full.min.js?versao=3.245.9.1"></script>
  <script type="text/javascript" src="config.js?versao=3.245.9.1"></script>
  <script type="text/javascript">
    function handleInput(e) {
      var ss = e.target.selectionStart;
      var se = e.target.selectionEnd;
      e.target.value = e.target.value.toUpperCase();
      e.target.selectionStart = ss;
      e.target.selectionEnd = se;
    }
    $(document).ready(async function() {
      if ($('#txtEmail').val() != '') {
        await retornaEmpresasCadastradas();
      }
      await insereJavaScriptPagina('dist/js/sisplan.js?versao=3.245.9.1');
      if ($('html').hasClass('theme-light')) {
        $('#logoImage').prop('src', 'dist/img/logo-light.png')
      }


          var emp_id = 1;
          ipInterno = '<?php echo IP_INTERNO; ?>';
          ipExterno = '<?php echo IP_EXTERNO; ?>';
          basicAuth = '<?php echo BASIC_AUTH; ?>';

          $('#txtEmail').focus();

          //Initialize Select2 Elements
          $('.select2').select2();

          //Initialize Select2 Elements
          $('.select2bs4').select2({
            theme: 'bootstrap4'
          });

          $(".btnEntrar").keyup(function(event) {
            if (event.keyCode === 13) {
              $(".btnEntrar").click();
            }
          });

          $('#txtSenha').on('blur', function() {
            if (($('#txtSenha').val() != '') && ($('#txtEmail').val() != '') && ($('#rgEmpresa').val() != '')) {
              $('.btnEntrar').focus();
              $('.btnEntrar').trigger('click');
            }
          });

          $('#rgEmpresa').change(async function() {
            $('#selectFantasia').removeClass('d-none');
            if ($('#rgEmpresa').val() == '') {
              $('#selectFantasia').addClass('d-none');
            }
            $('#rgFantasia').val($('#rgEmpresa').val());
            $('#rgFantasia').trigger('change');
          })

          $('#txtEmail').blur(async function() {
            try {
              if ($('#txtEmail').val() == '') {
                return
              }
              $.LoadingOverlay('show');
              $("#rgEmpresa").attr('disabled', true);
              await retornaEmpresasCadastradas();
              $("#rgEmpresa").attr('disabled', false);
            } finally {
              $.LoadingOverlay('hide');
            }
          });
          await insereJavaScriptPagina('dist/js/sisplan.js?versao=3.245.9.1');

          async function buscaCodigoUsuario() {
            let usuario;
            try {
              usuario = $('#txtEmail').val();

              if (usuario == '') {
                return;
              }

              const response = await requisicao('GET', '/sisplan/usuario/v1/dadoslogin?', `EMPRESA=_001&USUARIO=${usuario}`, null);

              if (!response) {
                return;
              }

              const jsonStr = await response.json();
              if (response.status != 200) {
                msgAlerta(jsonStr.RESULT[0].mensagem);
                return;
              }

              if (jsonStr[0].TOKEN_WHATSAPPWEB && jsonStr[0].TOKEN_WHATSAPPWEB != '') {
                setCookie('Token@Whatsapp', jsonStr[0].TOKEN_WHATSAPPWEB);
                setCookie('Session@Whatsapp', jsonStr[0].NOME_WHATSAPPWEB);
              }

              if (jsonStr.length > 0) {
                return jsonStr[0].CODIGO;
              } else {
                msgAlerta('Usuário inválido!');
                return;
              }

            } catch (error) {
              console.error(error);
            }
          }

          async function retornaImagemLogin() {
            try {
              $.LoadingOverlay('show')
              const response = await requisicao('GET', '/sisplan/funcoes/v1/imagemweb?', `EMPRESA=_001&USUARIO=0000`, null);

              if (!response) {
                $(`.login-page`).css('background-image', `url('dist/img/bg-01.jpg')`);
                console.error('não conseguiu conectar na api para encontrar a imagem.');
                return;
              }

              const jsonStr = await response.json();

              if (response.status !== 200) {
                $(`.login-page`).css('background-image', `url('dist/img/bg-01.jpg')`);
                return
              }

              if (jsonStr.mensagem !== '') {
                $(`.login-page`).css('background-image', `url('${jsonStr.mensagem}')`);
              } else {
                $(`.login-page`).css('background-image', `url('dist/img/bg-01.jpg')`);
              }


            } catch (error) {
              console.error(error);
              $(`.login-page`).css('background-image', `url('dist/img/bg-01.jpg')`);
            } finally {
              $.LoadingOverlay('hide')
            }
          }
          await retornaImagemLogin();

          async function reconectaWhatsappWeb() {
            try {
              const _url = `/sisplan/funcoes/v1/pesquisa?`;
              const response = await requisicao('GET', _url, `EMPRESA=_001&JSON={ "tabela":"WHATSAPPWEB", "camposSelect": ["ID", "NOME", "TELEFONE", "TOKEN", "(SELECT COUNT(*) FROM WHATSAPPWEB) QTDE_CONEXOES_WPP"] }`, null);

              if (!response) {
                msgAlerta('Não foi possível consultar se existe sessões ativas no serviço do Whatsapp Web.');
                return;
              };

              const jsonStr = await response.json();

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

              let qtdeSessoesWpp = 0;

              if (jsonStr['RESULT'][0].length > 0) {
                qtdeSessoesWpp = parseInt(jsonStr['RESULT'][0][0].QTDE_CONEXOES_WPP);
              };

              if (jsonStr['RESULT'][0].length <= 0) {
                console.log('Não existem conexões do WhatsappWeb.');
                return;
              };

              if (qtdeSessoesWpp > 0) {
                const responseReconectaWpp = await requisicao_wpp('POST', `/api/SECURETOKENBYSISPLANSISTEMAS/start-all`, '', '', null, jsonStr['RESULT'][0][0].TOKEN);

                if (!responseReconectaWpp) {
                  console.log('Não foi possível consultar se existe sessões ativas no serviço do Whatsapp Web.');
                  return;
                };

                const jsonStrReconectaWpp = await responseReconectaWpp.json();

                if (jsonStrReconectaWpp.status.toUpperCase() != 'SUCCESS') {
                  console.log('Não foi possível consultar se existe sessões ativas no serviço do Whatsapp Web.');
                  return;
                };

                if (jsonStrReconectaWpp.status.toUpperCase() == 'SUCCESS') {
                  console.log('Conexões de Whatsapp reativadas com sucesso.');
                };
              };
            } catch (error) {
              console.error(error);
              return;
            };
          };

          function gerarGuid() {
            return ([1e7] + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>
              // eslint-disable-next-line no-bitwise
              (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
            );
          }

          async function retornaEmpresasCadastradas() {
            try {
              $("#rgEmpresa").empty();
              $("#rgEmpresa").append(' <option value="">Selecione uma empresa</option>');
              const codigoUsuario = await buscaCodigoUsuario();
              let response;
              if (codigoUsuario != '') {
                const response = await requisicao('GET', '/sisplan/usuario/v1/empresas?', `EMPRESA=_001&USUARIO=${codigoUsuario}`, null);

                if (!response) {
                  $.LoadingOverlay("hide");
                  return;
                }

                const jsonStr = await response.json();
                if (response.status != 200) {
                  $.LoadingOverlay("hide");
                  msgAlerta(jsonStr['RESULT'][0].mensagem)
                  return;
                }

                for (const empresa of jsonStr) {
                  var opcao = new Option(`${empresa.EMP_PAT.substring(1)} - ${empresa.EMP_NOME}`, `${empresa.EMP_PAT}`);
                  var opcao2 = new Option(`Fantasia: ${empresa.EMP_FANTASIA}`, `${empresa.EMP_PAT}`);
                  $(opcao).html(`${empresa.EMP_PAT.substring(1)} - ${empresa.EMP_NOME}`);
                  $("#rgEmpresa").append(opcao);
                  $("#rgFantasia").append(opcao2);
                  $('#selectEmpresa').removeClass('d-none');
                  if (jsonStr.length == 1) {
                    $('#rgEmpresa').val(empresa.EMP_PAT);
                    $('#rgFantasia').val(empresa.EMP_PAT);
                    $('#rgEmpresa').trigger('blur');
                  }
                }
              } else {
                $("#rgEmpresa").empty();
                $("#rgEmpresa").append(' <option value="">Selecione uma empresa</option>');
              }
            } catch (error) {
              console.error(error);
            }

            $('#rgEmpresa').trigger('blur');
          }

          $(function() {
              sessionStorage.removeItem('g_usuario_logado');
              sessionStorage.removeItem('g_empresa_logada');
              sessionStorage.removeItem('g_emp_id_empresa_logada');
              sessionStorage.removeItem('g_nome_empresa_logada');
              sessionStorage.removeItem('g_cnpj_empresa_logada');
              sessionStorage.removeItem('g_vendedor_logado');
              sessionStorage.removeItem('g_caixa_logado');
              sessionStorage.removeItem('g_deposito_vendedor_caixa');
              sessionStorage.removeItem('g_tabpreco_vendedor_caixa');
              sessionStorage.removeItem('@telasAbertas');
              deleteCookie('usuario');
              deleteCookie('emp_id');
              deleteCookie('empresa');
              deleteCookie('cod_usuario');
              deleteCookie('acessos_web');
              deleteCookie('Token@Whatsapp');
              deleteCookie('Session@Whatsapp');

              $('.btnEntrar').click(async function() {
                  try {
                    if ($('#txtEmail').val() == '') {
                      msgAlerta('Usuário não informado');
                      return;
                    }

                    if ($('#txtSenha').val() == '') {
                      msgAlerta('Senha não informada');
                      return;
                    }

                    if ($('#rgEmpresa').val() == '' || $('#rgEmpresa').val() == null) {
                      msgAlerta('Empresa não informada');
                      return;
                    }

                    const ip_interno_php = '<?php echo IP_INTERNO; ?>';
                    const ip_externo_php = '<?php echo IP_EXTERNO; ?>';
                    const api_whatsapp_php = '<?php echo defined('API_WHATSAPP') ? API_WHATSAPP : "" ?>';
                    const base_uri_php = '<?php echo BASE_URI; ?>';
                    const chave_api_php = '<?php echo CHAVE_API; ?>';
                    const API_WHATSAPP_JS = typeof(API_WHATSAPP) == 'undefined' ? '' : API_WHATSAPP;

                    if (ip_interno_php != IP_INTERNO) {
                      msgAlerta('Tag IP_INTERNO dos arquivos de configuração diferentes, confira os arquivos CONFIG.PHP e CONFIG.JS');
                      return;
                    }

                    if (ip_externo_php != IP_EXTERNO) {
                      msgAlerta('Tag IP_EXTERNO dos arquivos de configuração diferentes, confira os arquivos CONFIG.PHP e CONFIG.JS');
                      return;
                    }

                    if (base_uri_php != BASE_URI) {
                      msgAlerta('Tag BASE_URI dos arquivos de configuração diferentes, confira os arquivos CONFIG.PHP e CONFIG.JS');
                      return;
                    }

                    if (chave_api_php != CHAVE_API) {
                      msgAlerta('Tag CHAVE_API dos arquivos de configuração diferentes, confira os arquivos CONFIG.PHP e CONFIG.JS');
                      return;
                    }

                    if (api_whatsapp_php != API_WHATSAPP_JS) {
                      msgAlerta('Tag API_WHATSAPP dos arquivos de configuração diferentes, confira os arquivos CONFIG.PHP e CONFIG.JS');
                      return;
                    }

                    $.LoadingOverlay("show");
                    const login = new Login();
                    let user = $('#txtEmail').val().toUpperCase();
                    const estaInterno = $(`#rgEmpresa option[value=${$('#rgEmpresa').val()}`).html() == '001 - SISPLAN SISTEMAS SUPORTE';
                    if (estaInterno && !user.includes('SISPLAN.')) {
                      user = 'SISPLAN.' + user;
                    }
                    let senha = login.encriptografarSenha($('#txtSenha').val().toUpperCase());;
                    if (user.includes('SISPLAN.')) {
                      senha = login.encriptografarSenha($('#txtSenha').val());
                    }
                    const senhaEncode = encodeURIComponent(senha);
                    const porta_api_local = '<?php echo PORTA_API_LOCAL; ?>';
                    const ipPortaServidor = '<?php if (defined('IP_API_SERVIDOR')) {
                                                echo IP_API_SERVIDOR;
                                              } else {
                                                echo '';
                                              } ?>';

                    setCookie('porta_api_local', porta_api_local, 1500);
                    setCookie('ipPortaServidor', ipPortaServidor, 1500);
                    setCookie('empresa', $('#rgEmpresa').val());
                    verificaSeTemIdNaMaquina();
                    gravaIdAba();

                    var response = await requisicao('GET', '/Sisplan/Funcoes/V1/LoginWeb?', `email=${user}&senha=${senhaEncode}&empresa=${$('#rgEmpresa').val()}`);
                    if (response.status != 200) {
                      var jsonResponse = await response.json();
                      msgAlerta(jsonResponse.mensagem);
                      return;
                    }

                    var jsonResponse = await response.json();

                    if (jsonResponse.codUsuario == "") {
                      msgAlerta('Usuário não liberado para este aplicativo');
                      return;
                    }
                    setCookie('codrepUsuario', jsonResponse.codRep);
                    if (user.includes('SISPLAN.') && jsonResponse.funcao != '') {
                        setCookie('funcaoUsuario', btoa(jsonResponse.funcao));
                      }
                      setCookie('accessToken', jsonResponse.accessToken); setCookie('refreshToken', jsonResponse.refreshToken);

                      const versaoApi = await buscaVersaoAPI();
                      if (VERSAO !== versaoApi) {
                        msgAlerta(`Acesso Bloqueado. Versão do Sistema Web (${VERSAO}) está diferente da API (${versaoApi}). Favor corrigir ou contate o SUPORTE da Sisplan Sistemas.`);
                        return;
                      }

                      sessionStorage.setItem('g_usuario_logado', $('#txtEmail').val().replace("SISPLAN.", "")); sessionStorage.setItem('g_empresa_logada', $('#rgEmpresa').val()); emp_id = await busca_emp_id();

                      await reconectaWhatsappWeb(); /// RECONECTA SESSÕES DO WHATSAPPWEB TODA VEZ QUE LOGA

                      setCookie('cod_usuario', jsonResponse.codUsuario);
                      const cnpj = await busca_cnpj();
                      if (cnpj && cnpj.startsWith("00.000.000")) {
                        $.LoadingOverlay("hide");
                        msgAlerta('Acesso Bloqueado. Verifique se o CNPJ está devidamente configurado na tabela Empresa. Contate o SUPORTE ou o COMERCIAL da Sisplan Sistemas.');
                        return;
                      }
                      const bloqueio = await verificarBloqueio(cnpj);
                      if (!bloqueio) {
                        $.LoadingOverlay("hide");
                        return;
                      }

                      const bloqueioUsuarios = await verificarQuantidadeUsuarios(cnpj, $('#txtEmail').val().replace("SISPLAN.", ""), getCookie('idMaquina'));

                      if (!bloqueioUsuarios) {
                        $.LoadingOverlay("hide");
                        msgAlerta('Acesso Bloqueado. Limite de usuários simultâneos atingiu o máximo permitido. Espere até que outro usuário feche o sistema ou contate o setor COMERCIAL da Sisplan Sistemas.');
                        const log = {
                          descricao: `Aviso de limite de usuários simultâneos atingido: ${cnpj}`,
                          tela: 'loginWeb',
                          chave: getCookie('cod_usuario')
                        }

                        requisicao('POST', `/sisplan/funcoes/v1/geralogerp?`, '', `JSON=${encodeURIComponent(JSON.stringify(log))}`);
                        return;

                      } else {
                        await funcaoLogar(emp_id, cnpj);
                      }
                    }
                    catch (error) {
                      console.error(error)
                      return;
                    } finally {
                      $.LoadingOverlay("hide");
                    }
                  });

                async function funcaoLogar(emp_id, cnpj, enviarLog) {
                  if (typeof emp_id === 'undefined') {
                    $.LoadingOverlay("hide");
                    msgAlerta('Não foi possível buscar os dados da empresa logada.');
                    return;
                  }
                  sessionStorage.setItem('g_emp_id_empresa_logada', emp_id);
                  sessionStorage.setItem('g_cnpj_empresa_logada', cnpj);
                  sessionStorage.setItem('g_nome_empresa_logada', $("#rgEmpresa option:selected").text());

                  setCookie('usuario', $('#txtEmail').val().replace("SISPLAN.", ""), 30);
                  setCookie('emp_id', emp_id, 30);
                  setCookie('empresa', $('#rgEmpresa').val(), 30);
                  setCookie('enviando_comando', 'false');
                  await carregaParametrosLogin();
                  await carregaEmpValorLogin();

                  const temRegistroNaEmpValorNatureza = await fazSelectNaEmpValor('', 'NATUREZA');
                  if (temRegistroNaEmpValorNatureza.length > 0) {
                    setCookie('naturezanaempvalor', 'S', 30);
                  } else {
                    setCookie('naturezanaempvalor', 'N', 30);
                  }

                  await loginUsuario();

                  if (!$('#txtEmail').val().startsWith("SISPLAN.")) {
                    enviarVersao(cnpj);
                    enviarDados(cnpj);
                  }

                  if (enviarLog) {
                    const log = {
                      descricao: `Aviso de limite de usuários simultâneos atingido: ${cnpj}`,
                      tela: 'loginWeb',
                      chave: getCookie('cod_usuario')
                    }

                    requisicao('POST', `/sisplan/funcoes/v1/geralogerp?`, '', `JSON=${encodeURIComponent(JSON.stringify(log))}`);
                  }

                  window.location.href = "index";
                }

                function enviarVersao(cnpj) {
                  requisicao('POST', '/sisplan/versaoweb/v1/versaoweb?', `TIPO=WEB&CNPJ=${cnpj}`);
                }

                function enviarDados(cnpj) {
                  const interno = ipInterno.split(':')[0];
                  const porta = ipInterno.split(':')[1];
                  const externo = ipExterno.split(':')[0];
                  const portaExterna = ipExterno.split(':')[1];

                  if ($('#txtEmail').val().startsWith('SISPLAN.')) {
                    return;
                  }

                  if (!porta) {
                    return;
                  }
                  if (!portaExterna) {
                    return;
                  }
                  if (!interno) {
                    return;
                  }
                  if (!externo) {
                    return;
                  }
                  if (interno === '127.0.0.1' || interno === 'localhost') {
                    return;
                  }

                  const object = {
                    cNPJ: cnpj,
                    ipExterno: externo,
                    porta_Externo: portaExterna,
                    IpInterno: interno,
                    Porta_Interno: porta,
                    Ativo: 1,
                    tipo: "WEB"
                  }

                  requisicao('POST', `/sisplan/funcoes/v1/salvarconexao?`, '', JSON.stringify(object));
                }

                async function busca_emp_id() {
                  try {
                    $.LoadingOverlay("show");

                    var _url = `/sisplan/funcoes/v1/pesquisa?`;
                    var response = await requisicao('GET', _url,
                      `EMPRESA=_001&JSON={ "tabela":"EMPRESA", "camposSelect": ["EMP_ID"], "where": ["emp_pat = '${sessionStorage.getItem('g_empresa_logada')}'"] }`,
                      null);

                    if (!response) {
                      $.LoadingOverlay("hide");
                      return;
                    }

                    var jsonStr = await response.json()
                    if (response.status != 200) {
                      $.LoadingOverlay("hide");
                      msgAlerta(jsonStr['RESULT'][0].mensagem)
                      return;
                    }

                    return jsonStr['RESULT'][0][0].EMP_ID;

                  } catch (error) {
                    console.error(error);
                    $.LoadingOverlay("hide");
                    msgAlerta('Não foi possível buscar os dados da empresa logada.');
                  }
                };
              });
          });
  </script>
</body>

</html>