<style>
  #modal-cliente .card {
    box-shadow: none !important;
    border-radius: 0 !important;
    margin-bottom: 0 !important;
  }

  #modal-cliente .card-header {
    box-shadow: 0px 1px rgb(0 0 0 / 20%) !important;
  }

  #modal-cliente .card-body {
    padding-left: 1.25rem !important;
    padding-top: 0px;
    padding-bottom: 0px;
    padding-right: 1.25rem !important;
  }

  #modal-cliente .header-content-page .title-page,
  #modal-cliente .title-content-page .title,
  #modal-cliente .title-page {
    font-size: 20px;
    line-height: normal;
    font-weight: 500;
    color: #343a40;
    margin: 0;
    font-family: Roboto, Arial, sans-serif;
  }

  #modal-cliente fieldset {
    padding: 0px !important;
  }
</style>

<!-- CASO VOCÊ ESTEJA AQUI PRA ADICIONAR MAIS CAMPOS NO MODAL, FAVOR OLHAR A FUNÇÃO bloqueiaCamposParametros() POR FAVOR!!!!!!!!!!!! -- BRUNO 02/08/2023 -->

<div id="modal-cliente" class="modal" tabindex="-1" role="dialog">
  <div class="modal-dialog modal-xl" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 id="myModalLabel" class="modal-title">Cadastro de Cliente <button id="btnModalNovoCliente" class="btn btn-sm btn-danger ml-2">+ Novo</button></h5>
        <input id="txtCodCli" class="d-none" />
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <fieldset>
          <form style="text-align:left!important;" id="form-cliente" name="form-cliente">
            <div class="card card-header" role="tab" id="geral">
              <a style="width:100%;" data-toggle="collapse" data-parent="#multiCollapseExample1" href="#multiCollapseExample1" aria-expanded="true" aria-controls="collapseOne1">
                <div class="row">
                  <div style="max-width:20px;margin-top:auto; margin-bottom: auto" class="col-1">
                    <i class="fas fa-angle-down"></i>
                  </div>
                  <div class="col-11">
                    <h4 class="title-page">
                      Geral
                    </h4>
                  </div>
                </div>
              </a>
            </div>
            <div class="collapse  show" id="multiCollapseExample1">
              <div class="card card-body">
                <div class=" tab-pane fade show active" role="tabpanel" aria-labelledby="geral-tab">
                  <div class="form-row pt-2 pl-1">
                    <div class="form-group form-check">
                      <input type="checkbox" class="form-check-input" id="cbConsumidorFinal" checked>
                      <label class="form-check-label pr-4" for="cbConsumidorFinal">Consumidor Final</label>
                    </div>
                    <div class="form-group form-check">
                      <input type="checkbox" class="form-check-input" id="cbAtivo" checked>
                      <label class="form-check-label pr-4" for="cbAtivo">Ativo</label>
                    </div>
                    <div class="form-group form-check">
                      <input type="checkbox" class="form-check-input" id="cbBloqueado">
                      <label class="form-check-label pr-4" for="cbBloqueado">Bloqueado</label>
                    </div>
                    <div class="form-group form-check">
                      <input type="checkbox" class="form-check-input" id="cbTipoCliente">
                      <label class="form-check-label pr-4" for="cbTipoCliente">Cliente</label>
                    </div>
                    <div class="form-group form-check">
                      <input type="checkbox" class="form-check-input" id="cbTipoFornecedor">
                      <label class="form-check-label pr-4" for="cbTipoFornecedor">Fornecedor</label>
                    </div>
                    <div class="form-group form-check">
                      <input type="checkbox" class="form-check-input" id="cbTipoTerceiros">
                      <label class="form-check-label pr-4" for="cbTipoTerceiros">Terceiros</label>
                    </div>
                    <div class="form-group form-check">
                      <input type="checkbox" class="form-check-input" id="cbTipoRepresentante">
                      <label class="form-check-label pr-4" for="cbTipoRepresentante">Representante</label>
                    </div>
                    <div class="form-group form-check">
                      <input type="checkbox" class="form-check-input" id="cbTipoProspecto">
                      <label class="form-check-label pr-4" for="cbTipoProspecto">Prospecto</label>
                    </div>
                    <div class="form-group form-check">
                      <input type="checkbox" class="form-check-input" id="cbTipoFuncionario">
                      <label class="form-check-label pr-4" for="cbTipoFuncionario">Funcionário</label>
                    </div>
                  </div>

                  <div class="form-row">
                    <div class="col-md-3  col-12 form-group" id="tourcodigo">
                      <label data-error="wrong" class="labelGeral" data-success="right" for="txtCodigoCliente">Código
                      </label>
                      <input type="text" class="input-default focus form-control" id="txtCodigoCliente" aria-describedby="codError" name="txtCodigoCliente" class="form-control" placeholder="Gerado automaticamente" readonly disabled>
                    </div>
                    <div class="form-group group-default col-md-3 col-12">
                      <div class="relative" id="cnpjTour">
                        <label>CNPJ/CPF *</label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control validate" id="txtCNPJModalCli" name="txtCNPJModalCli" required placeholder="CNPJ ou CPF">
                          <div class="input-group-append">
                            <button class="btn bg-danger" id="btnconsultaCadastral" type="button"><i class="m-0 p-0 fas fa-solid fa-globe"></i>
                            </button>
                          </div>
                        </div>
                      </div>
                    </div>
                    <div class="form-group col-md-3 col-12">
                      <label>Data de cadastro</label>
                      <input type="date" max="2500-12-31" class="input-default focus form-control" id="txtDataCadastro">
                    </div>
                    <div class="form-group col-md-3 col-12 d-none">
                      <label>Atual</label>
                      <input type="date" max="2500-12-31" class="input-default focus form-control" id="txtDataAlteracao">
                    </div>
                    <div class="form-group col-md-3 col-12">
                      <label>Data de nascimento</label>
                      <input type="date" max="2500-12-31" class="input-default focus form-control" id="txtDataNascimento" name="txtDataNascimento">
                    </div>
                  </div>

                  <div class="form-row">
                    <div class="form-group col-md-4" id="nomeTour">
                      <label>Nome *</label>
                      <input type="text" class="input-default focus form-control validate" id="txtNome" name="txtNome" required placeholder="Nome">
                    </div>
                    <div class="form-group col-md-4">
                      <label>Fantasia</label>
                      <input type="text" class="input-default focus form-control" name="txtFantasia" id="txtFantasia" placeholder="Fantasia">
                    </div>
                    <div class="form-group col-md-4">
                      <label>Indicador da IE do destinatário</label>
                      <select id="rgIE" class="input-default custom-select">
                        <option value="" selected disabled>Selecione uma opção</option>
                        <option value="1">Contribuinte ICMS (informar a IE do destinatário)
                        </option>
                        <option value="2">Contribuinte isento de Inscrição no cadastro de
                          Contribuintes do ICMS</option>
                        <option value="9">Não Contribuinte, que pode ou não possuir
                          Inscrição Estadual no Cadastro de Contribuintes do ICMS</option>
                      </select>
                    </div>
                  </div>
                  <div class="form-row">
                    <div class="form-group col-sm-6 col-md-6 col-12">
                      <label>Email</label>
                      <input type="email" class="input-default focus form-control" name="txtEmail" id="txtEmail" placeholder="exemplo@exemplo.com" maxlength="50">
                    </div>
                    <div class="form-group col-sm-2 col-md-2 col-12" id="dddTelefoneTour">
                      <label>DDD *</label>
                      <input type="number" class="input-default focus form-control validate" id="txtDDD" name="txtDDD" maxlength="3" required>
                    </div>
                    <div class="form-group col-sm-4 col-md-4 col-12" id="telefoneTour">
                      <label>Telefone *</label>
                      <input type="text" class="input-default focus form-control validate" id="txtTelefone" name="txtTelefone" maxlength="20" required>
                    </div>
                  </div>
                  <div class="form-group">
                    <label>Observação</label>
                    <textarea style="resize: none" id="txtObsCli" placeholder="Observação" class="input-default focus form-control" rows="3"></textarea>
                  </div>
                </div>
              </div>
            </div>

            <div class="card card-header" role="tab">
              <a style="width:100%;" id="documentoaba" data-toggle="collapse" data-parent="#multiCollapseExample2" href="#multiCollapseExample2" aria-expanded="true" aria-controls="collapseOne1">
                <div class="row">
                  <div style="max-width:20px;margin-top:auto; margin-bottom: auto" class="col-1">
                    <i class="fas fa-angle-right"></i>
                  </div>
                  <div class="col-11">
                    <h4 class="title-page">
                      Documento
                    </h4>
                  </div>
                </div>
              </a>
            </div>

            <div class="collapse" id="multiCollapseExample2">
              <div class="card card-body">
                <div class="tab-pane fade show active" role="tabpanel" aria-labelledby="documento-tab">
                  <div class="form-row pt-2">
                    <div class="form-group col-md-4 col-12">
                      <label>IE</label>
                      <input type="text" class="input-default focus form-control" id="txtIE" name="txtIE" placeholder="IE">
                    </div>
                    <div class="form-group col-md-4 col-12">
                      <label>RG</label>
                      <input type="text" class="input-default focus form-control" id="txtRG" name="txtRG" placeholder="RG">
                    </div>

                    <div class="form-group col-md-4 col-12">
                      <label>Emissor</label>
                      <input type="text" class="input-default focus form-control" id="txtEmissor" name="txtEmissor" placeholder="Emissor">
                    </div>
                  </div>

                  <div class="form-row">
                    <div class="form-group col-md-6 col-6">
                      <label>Sexo</label>
                      <select id="rgSexo" class="input-default custom-select ">
                        <option value="" selected disabled>Selecione uma opção</option>
                        <option value="M">Masculino</option>
                        <option value="F">Feminino</option>
                      </select>
                    </div>
                    <div class="form-group col-md-6 col-6">
                      <label>Porte Empresa</label>
                      <select id="rgPorteEmpresa" class="input-default focus custom-select ">
                        <option value="" selected disabled>Selecione uma opção</option>
                        <option value="SA">SA</option>
                        <option value="LTDA">LTDA</option>
                        <option value="SIMPLES">SIMPLES</option>
                        <option value="ME">ME</option>
                        <option value="EPP">EPP</option>
                        <option value="NORMAL">NORMAL</option>
                        <option value="MEI">MEI</option>
                        <option value="EIRELLI">EIRELLI</option>
                      </select>
                    </div>
                  </div>
                </div>
              </div>
            </div>

            <div class="card card-header" role="tab">
              <a style="width:100%;" id="endereco" data-toggle="collapse" data-parent="#multiCollapseExample3" href="#multiCollapseExample3" aria-expanded="true" aria-controls="collapseOne1">
                <div class="row">
                  <div style="max-width:20px;margin-top:auto; margin-bottom: auto" class="col-1">
                    <i class="fas fa-angle-right"></i>
                  </div>
                  <div class="col-11">
                    <h4 class="title-page">
                      Endereço
                    </h4>
                  </div>
                </div>
              </a>
            </div>
            <div class="collapse" id="multiCollapseExample3">
              <div class="card card-body">
                <div class="card card-header" role="tab">
                  <a style="width:100%;" id="EnderecoGeral" data-toggle="collapse" data-parent="#enderecoGeral" href="#enderecoGeral" aria-expanded="true" aria-controls="collapseOne1">
                    <div class="row">
                      <div style="max-width:20px;margin-top:auto; margin-bottom: auto" class="col-1">
                        <i class="fas fa-angle-right"></i>
                      </div>
                      <div class="col-11">
                        <h4 class="title-page">
                          Geral
                        </h4>
                      </div>
                    </div>
                  </a>
                </div>
                <div class="collapse" id="enderecoGeral">
                  <div class="card-body">
                    <div class="pt-2 form-row">
                      <div class="form-group col-12">
                        <label data-error="wrong" data-success="right" for="txtPais">País *
                        </label>
                        <div class="input-group">
                          <input type="text" autocomplete="off" class="input-default focus form-control validate" id="txtPais" name="txtPais" required placeholder="País *">
                          <div class="input-group-append">
                            <button class="btn bg-danger" id="btn-pais-entidade" name="btn-pais-entidade" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                            <button class="btn bg-danger" id="btn-limpar-pais-entidade" name="btn-limpar-pais-entidade" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                          </div>
                        </div>
                      </div>
                      <div class="form-group col-md-4 col-12" id="cepTour">
                        <label>Cep *</label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control validate" id="txtCep" name="txtCep" required>
                          <div class="input-group-append">
                            <button class="btn bg-danger" id="btnCep" name="btnCep" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                            <button class="btn bg-danger" id="btnLimpaCep" name="btnLimpaCep" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                          </div>
                        </div>
                      </div>
                      <div class="form-group col-md-4 col-12">
                        <label>Cidade</label>
                        <input type="text" class="input-default focus form-control" name="txtCidade" id="txtCidade" placeholder="Cidade" readonly>
                      </div>
                      <div class="form-group col-md-4 col-12">
                        <label>UF</label>
                        <input type="text" class="input-default focus form-control" name="txtUF" id="txtUF" placeholder="UF" readonly>
                      </div>
                    </div>
                    <div class="form-group">
                      <label>Rua *</label>
                      <input type="text" class="input-default focus form-control" name="txtRua" id="txtRua" placeholder="Rua" required>
                    </div>
                    <div class="form-row">
                      <div class="form-group col-md-6 col-12">
                        <label>Número *</label>
                        <input type="text" class="input-default focus form-control" name="txtNumero" id="txtNumero" placeholder="Número" required>
                      </div>
                      <div class="form-group col-md-6 col-12">
                        <label>Bairro *</label>
                        <input type="text" class="input-default focus form-control" name="txtBairro" id="txtBairro" placeholder="Bairro" required>
                      </div>
                      <div class="form-group col-md-12 col-12">
                        <label>Complemento</label>
                        <input type="text" class="input-default focus form-control" name="txtComplemento" id="txtComplemento" placeholder="Complemento">
                      </div>
                    </div>
                  </div>
                </div>

                <div class="card card-header" role="tab">
                  <a style="width:100%;" id="entrega" data-toggle="collapse" data-parent="#enderecoEntrega" href="#enderecoEntrega" aria-expanded="true" aria-controls="collapseOne1">
                    <div class="row">
                      <div style="max-width:20px;margin-top:auto; margin-bottom: auto" class="col-1">
                        <i class="fas fa-angle-right"></i>
                      </div>
                      <div class="col-11">
                        <h4 class="title-page">
                          Entrega
                        </h4>
                      </div>
                    </div>
                  </a>
                </div>
                <div class="collapse" id="enderecoEntrega">
                  <div class="card-body">
                    <div class="pt-2 form-row" id="endereco_entrega_geral">
                      <div class="form-group col-12" id="cepTour">
                        <div class="form-row pt-2">
                          <div class="form-group col-md-4 col-12">
                            <label>Cep</label>
                            <div class="input-group">
                              <input type="text" class="input-default focus form-control" id="txtCepEntrega" name="txtCepEntrega">
                              <div class="input-group-append">
                                <button class="btn bg-danger" id="btnCepEntrega" name="btnCepEntrega" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                                <button class="btn bg-danger" id="btnLimpaCepEntrega" name="btnLimpaCepEntrega" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                              </div>
                            </div>
                          </div>
                          <div class="form-group col-md-4 col-12">
                            <label>Cidade</label>
                            <input type="text" class="input-default focus form-control" id="txtCidadeEntrega" name="txtCidadeEntrega" placeholder="Cidade" readonly>
                          </div>
                          <div class="form-group col-md-4 col-12">
                            <label>UF</label>
                            <input type="text" class="input-default focus form-control" id="txtUFEntrega" name="txtUFEntrega" placeholder="UF" readonly>
                          </div>
                        </div>
                        <div class="form-group">
                          <label>Rua</label>
                          <input type="text" class="input-default focus form-control" id="txtRuaEntrega" name="txtRuaEntrega" placeholder="Rua">
                        </div>
                        <div class="form-row">
                          <div class="form-group col-md-4 col-12">
                            <label>Número</label>
                            <input type="text" class="input-default focus form-control" id="txtNumeroEntrega" name="txtNumeroEntrega" placeholder="Número">
                          </div>
                          <div class="form-group col-md-4 col-12">
                            <label>Bairro</label>
                            <input type="text" class="input-default focus form-control" id="txtBairroEntrega" name="txtBairroEntrega" placeholder="Bairro">
                          </div>

                          <div class="form-group col-md-4 col-12">
                            <label>Inscrição</label>
                            <input type="text" class="input-default focus form-control" id="txtInscEnt" name="txtInscEnt" placeholder="Inscrição">
                          </div>
                          <div class="form-group col-md-12 col-12">
                            <label>Complemento</label>
                            <input type="text" class="input-default focus form-control" id="txtComplementoEntrega" name="txtComplementoEntrega" placeholder="Complemento">
                          </div>
                        </div>

                      </div>
                    </div>
                  </div>
                </div>
                <div class="card card-header" role="tab">
                  <a style="width:100%;" id="cobranca" data-toggle="collapse" data-parent="#enderecoCobranca" href="#enderecoCobranca" aria-expanded="true" aria-controls="collapseOne1">
                    <div class="row">
                      <div style="max-width:20px;margin-top:auto; margin-bottom: auto" class="col-1">
                        <i class="fas fa-angle-right"></i>
                      </div>
                      <div class="col-11">
                        <h4 class="title-page">
                          Cobrança
                        </h4>
                      </div>
                    </div>
                  </a>
                </div>
                <div class="collapse" id="enderecoCobranca">
                  <div class="card-body">
                    <div class="pt-2 form-row" id="endereco_cobranca_geral">
                      <div class="form-group col-12" id="cepTour">
                        <div class="pt-2 form-row">
                          <div class="form-group col-md-4 col-12">
                            <label>Cep</label>
                            <div class="input-group">
                              <input type="text" class="input-default focus form-control" id="txtCepCobranca" name="txtCepCobranca">
                              <div class="input-group-append">
                                <button class="btn bg-danger" id="btnCepCobranca" name="btnCepCobranca" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                                <button class="btn bg-danger" id="btnLimpaCepCobranca" name="btnLimpaCepCobranca" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                              </div>
                            </div>
                          </div>
                          <div class="form-group col-md-4 col-12">
                            <label>Cidade</label>
                            <input type="text" class="input-default focus form-control" id="txtCidadeCobranca" name="txtCidadeCobranca" placeholder="Cidade" readonly>
                          </div>
                          <div class="form-group col-md-4 col-12">
                            <label>UF</label>
                            <input type="text" class="input-default focus form-control" id="txtUFCobranca" name="txtUFCobranca" placeholder="UF" readonly>
                          </div>
                        </div>
                        <div class="form-group">
                          <label>Rua</label>
                          <input type="text" class="input-default focus form-control" id="txtRuaCobranca" name="txtRuaCobranca" placeholder="Rua">
                        </div>
                        <div class="form-row">
                          <div class="form-group col-md-4 col-12">
                            <label>Número</label>
                            <input type="text" class="input-default focus form-control" id="txtNumeroCobranca" name="txtNumeroCobranca" placeholder="Número">
                          </div>
                          <div class="form-group col-md-4 col-12">
                            <label>Bairro</label>
                            <input type="text" class="input-default focus form-control" id="txtBairroCobranca" name="txtBairroCobranca" placeholder="Bairro">
                          </div>
                          <div class="form-group col-md-4 col-12">
                            <label>Inscrição</label>
                            <input type="text" class="input-default focus form-control" id="txtInscCob" name="txtInscCob" placeholder="Inscrição">
                          </div>
                          <div class="form-group col-md-12 col-12">
                            <label>Complemento</label>
                            <input type="text" class="input-default focus form-control" id="txtComplementoCobranca" name="txtComplementoCobranca" placeholder="Complemento">
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div class="card card-header" role="tab">
              <a style="width:100%;" id="venda" data-toggle="collapse" data-parent="#multiCollapseExample4" href="#multiCollapseExample4" aria-expanded="true" aria-controls="collapseOne1">
                <div class="row">
                  <div style="max-width:20px;margin-top:auto; margin-bottom: auto" class="col-1">
                    <i class="fas fa-angle-right"></i>
                  </div>
                  <div class="col-11">
                    <h4 class="title-page">
                      Venda
                    </h4>
                  </div>
                </div>
              </a>
            </div>
            <div class="collapse" id="multiCollapseExample4">
              <div class="card card-body">
                <div class="tab-pane fade show active" role="tabpanel" aria-labelledby="venda-tab">
                  <div class="pt-2 form-row">

                    <div class="col-6 col-md-6" id="GrupoInfoTour">
                      <label data-error="wrong" data-success="right" for="txtRepresentante-modal">Representante</label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtRepresentante-modal" name="txtRepresentante-modal" class="form-control" placeholder="Representante">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btn-representante-modal" name="btn-representante-modal" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btn-Arepresentante-modal" name="btn-Arepresentante-modal" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>

                    <div class="col-6 col-md-6" id="GrupoInfoTour">
                      <label data-error="wrong" data-success="right" for="txtTabela-modal">Tabela</label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtTabela-modal" name="txtTabela-modal" class="form-control" placeholder="Tabela">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btn-tabela-modal" name="btn-tabela-modal" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btn-Atabela-modal" name="btn-Atabela-modal" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>

                  </div>
                  <div class="form-row">
                    <div class="form-group col-md-3 col-12">
                      <label>Crédito Grupo</label>
                      <input type="number" class="input-default focus form-control" id="txtCreditoGrupoModal" min="0" disabled>
                    </div>
                    <div class="form-group col-md-3 col-12">
                      <label>Limite Crédito</label>
                      <input type="number" class="input-default focus form-control" id="txtLimiteCredito" min="0">
                    </div>
                    <div class="form-group col-md-3 col-12">
                      <label>Limite Usado</label>
                      <input type="number" class="input-default focus form-control" id="txtLimiteUsado" min="0" disabled>
                    </div>
                    <div class="form-group col-md-3 col-12">
                      <label>Limite Disponível</label>
                      <input type="number" class="input-default focus form-control" id="txtLimiteDisponivel" min="0" disabled>
                    </div>
                  </div>
                  <div class="form-row">
                    <div class="form-group col-md-3 col-12">
                      <label>Limite Fidelidade</label>
                      <input type="number" class="input-default focus form-control" id="txtLimiteFidelidade" min="0">
                    </div>
                    <div class="form-group col-md-3 col-12">
                      <label>Limite Usado</label>
                      <input type="number" class="input-default focus form-control" id="txtLimiteFidelidadeUsado" min="0" disabled>
                    </div>
                    <div class="form-group col-md-3 col-12">
                      <label>Limite Disponível</label>
                      <input type="number" class="input-default focus form-control" id="txtLimiteFidelidadeDisponivel" min="0" disabled>
                    </div>
                    <div class="form-group col-md-3 col-12">
                      <input type="checkbox" class="form-check-input" id="cbIntegraShop" style="margin-top: 31px; margin-left: 1px;">
                      <label class="form-check-label pr-2" for="cbIntegraShop" style="margin-top: 26px; margin-left: 20px;">Não integrar com Sistema do Shopping</label>
                    </div>
                  </div>
                </div>
              </div>
            </div>

            <div class="card card-header" role="tab">
              <a style="width:100%;" id="venda" data-toggle="collapse" data-parent="#multiCollapseContábil" href="#multiCollapseContábil" aria-expanded="true" aria-controls="collapseOne1">
                <div class="row">
                  <div style="max-width:20px;margin-top:auto; margin-bottom: auto" class="col-1">
                    <i class="fas fa-angle-right"></i>
                  </div>
                  <div class="col-11">
                    <h4 class="title-page">
                      Contábil
                    </h4>
                  </div>
                </div>
              </a>
            </div>
            <div class="collapse" id="multiCollapseContábil">
              <div class="card card-body">
                <div class="tab-pane fade show active" role="tabpanel" aria-labelledby="venda-tab">
                  <div class="pt-2 form-row" style="margin-bottom: 1.5%">

                    <div class="col-6" id="GrupoInfoTour">
                      <label data-error="wrong" data-success="right" for="txtContaClienteModal">Conta Cliente
                      </label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtContaClienteModal" name="txtContaClienteModal" class="form-control" placeholder="Conta Cliente">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btn-contaclienteModal" name="btn-contacliente" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btn-limpa-contaclienteModal" name="btn-limpa-contaclienteModal" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>

                    <div class="col-6" id="GrupoInfoTour">
                      <label data-error="wrong" data-success="right" for="ContaFornecedorModal">Conta Fornecedor
                      </label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtContaFornecedorModal" name="txtContaFornecedorModal" class="form-control" placeholder="Conta Fornecedor">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btn-contafornecedorModal" name="btn-contafornecedor" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btn-limpa-contafornecedorModal" name="btn-limpa-contafornecedorModal" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>

                    <div class="col-6" id="GrupoInfoTour">
                      <label data-error="wrong" data-success="right" for="ContaCAdiantamentoModal">Conta C. Adiantamento
                      </label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtContaCAdiantamentoModal" name="txtContaCAdiantamentoModal" class="form-control" placeholder="Conta Cliente Adiantamento">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btn-CadiantamentoModal" name="btn-Cadiantamento" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btn-limpa-CadiantamentoModal" name="btn-limpa-CadiantamentoModal" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>

                    <div class="col-6" id="GrupoInfoTour">
                      <label data-error="wrong" data-success="right" for="ContaFAdiantamentoModal">Conta F. Adiantamento
                      </label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtContaFAdiantamentoModal" name="txtContaFAdiantamentoModal" class="form-control" placeholder="Conta Fornecedor Adiantamento">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btn-FadiantamentoModal" name="btn-Fadiantamento" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btn-limpa-FadiantamentoModal" name="btn-limpa-FadiantamentoModal" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>

                    <div class="col-6" id="GrupoInfoTour">
                      <label data-error="wrong" data-success="right" for="txtContaCDevolucaoModal">Conta C.Devolução
                      </label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtContaCDevolucaoModal" name="txtContaCDevolucaoModal" class="form-control" placeholder="Conta Cliente Devolução">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btn-CdevolucaoModal" name="btn-Cdevolucao" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btn-limpa-CdevolucaoModal" name="btn-limpa-CdevolucaoModal" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>

                    <div class="col-6" id="GrupoInfoTour">
                      <label data-error="wrong" data-success="right" for="txtContaFDevolucaoModal">Conta F. Devolução
                      </label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtContaFDevolucaoModal" name="txtContaFDevolucaoModal" class="form-control" placeholder="Conta Fornecedor Devolução">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btn-FdevolucaoModal" name="btn-Fdevolucao" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btn-limpa-FdevolucaoModal" name="btn-limpa-FdevolucaoModal" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>

                    <div class="col-6" id="GrupoInfoTour">
                      <label data-error="wrong underline" data-success="right" href="" for="txtMoeda"><a id="lblMoeda" style="text-decoration: underline" class="hover-overlay" target="_blank">Moedas:</a>
                      </label>
                      <div class="input-group">
                        <select class="js-example-programmatic js-states form-control" id="txtMoedaModal" name="txtMoedaModal" multiple="multiple"> </select>
                        <!-- <input type="text" autocomplete="off" class="input-default focus form-control" id="txtContaFDevolucao" name="txtContaFDevolucao" class="form-control" placeholder="Conta Fornecedor Devolução"> -->
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btnMoedaModal" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btn-limpa-moedaModal" name="btn-limpa-moedaModal" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>

                  </div>

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


            <div class="card card-header" role="tab">
              <a style="width:100%;" id="Adicionais" data-toggle="collapse" data-parent="#multiCollapseExample5" href="#multiCollapseExample5" aria-expanded="true" aria-controls="collapseOne1">
                <div class="row">
                  <div style="max-width:20px;margin-top:auto; margin-bottom: auto" class="col-1">
                    <i class="fas fa-angle-right"></i>
                  </div>
                  <div class="col-11">
                    <h4 class="title-page">
                      Adicionais
                    </h4>
                  </div>
                </div>
              </a>
            </div>
            <div class="collapse" id="multiCollapseExample5">
              <div class="card card-body">
                <div class="tab-pane fade show active" role="tabpanel" aria-labelledby="adicionais-tab">
                  <div class="pt-2 form-row">
                    <div class="form-group col-4">
                      <label>Local de Trabalho</label>
                      <input type="text" class="input-default focus form-control validate" id="txtLocalTrab" name="txtLocalTrab" placeholder="Local de Trabalho" maxlength="50">
                      <input type="text" class="input-default focus form-control validate" id="txtRegiao" name="txtRegiao" placeholder="Região" hidden>
                    </div>
                    <div class="form-group col-4" id="ClasseInfoTour">
                      <label data-error="wrong" data-success="right" for="txtClasse">Classe *</label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtClasse" name="txtClasse" class="form-control" placeholder="Classe">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btn-Classe" name="btn-Classe" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btn-limpa-Classe" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>
                    <div class="form-group col-4" id="ClasseInfoTour">
                      <label data-error="wrong" data-success="right" for="txtConfXMLModal">Conf. XML</label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtConfXMLModal" name="txtConfXMLModal" class="form-control" placeholder="Conf. XML">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btnConfXMLModal" name="btnConfXMLModal" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btnLimpaConfXMLModal" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>
                    <div class="form-group col-4" id="nomepaitour">
                      <label> Nome Pai</label>
                      <input type="text" class="input-default focus form-control validate" id="txtNomePai" name="txtNomePai" placeholder="Nome Pai" maxlength="50">
                    </div>
                    <div class="form-group col-4" id="nomemaetour">
                      <label> Nome Mãe</label>
                      <input type="text" class="input-default focus form-control validate" id="txtNomeMae" name="txtNomeMae" placeholder="Nome Mãe" maxlength="50">
                    </div>
                    <div class="col-4" id="GrupoInfoTour">
                      <label data-error="wrong underline" data-success="right" href="" for="txtSetor"><a id="lblSetor" style="text-decoration: underline" class="hover-overlay" target="_blank">Setor:</a>
                      </label>
                      <div class="input-group">
                        <select class="js-example-programmatic js-states form-control" id="txtSetor" name="txtSetor" multiple="multiple"> </select>
                        <div class="input-group-append">
                          <button class="btn bg-danger d-none" id="btnSetor" name="btnSetor" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger d-none" id="btnLimpaSetor" name="btnLimpaSetor" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>

                    <div class="form-group col-4" id="estadociviltour">
                      <label> Estado Civil</label>
                      <input type="text" class="input-default focus form-control validate" id="txtEstadoCivil" name="txtEstadoCivil" placeholder="Estado Civil" maxlength="50">
                    </div>
                    <div class="form-group col-4" id="rendatour">
                      <label> Renda</label>
                      <input type="text" class="input-default focus form-control validate" id="txtRenda" name="txtRenda" placeholder="Renda" value="0.00" maxlength="50">
                    </div>
                    <div class="form-group col-4" id="dtadmissaotour">
                      <label> Data Admissão</label>
                      <input type="date" max="2500-12-31" class="input-default focus form-control validate" id="txtDtAdmissao" name="txtDtAdmissao" value="1899-12-30" maxlength="50">
                    </div>
                    <div class="form-group col-md-6">
                      <label>Tributação</label>
                      <select id="rgTributacao" class="input-default focus custom-select">
                        <option value="" selected>Selecione uma opção</option>
                        <option value="A">A - Normal s/ Substituição</option>
                        <option value="N">N - Normal c/ Substituição - Regime Normal</option>
                        <option value="L">L - Normal c/ Substituição - Simples Nacional</option>
                        <option value="D">D - Diferenciada c/ Substituição</option>
                        <option value="S">S - Simples</option>
                        <option value="R">R - Simples s/ Inscrição Estatual</option>
                        <option value="C">C - Carga Média</option>
                        <option value="P">P - Substituição com Alíq.Simples</option>
                      </select>
                    </div>
                    <div class="form-group col-6" id="GrupoInfoTour">
                      <label data-error="wrong" data-success="right" for="txtGrupo">Grupo</label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtGrupo" name="txtGrupo" class="form-control" placeholder="Grupo">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btn-Grupo" name="btn-Grupo" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btn-AGrupo" name="btn-AGrupo" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>
                    <div class="form-group col-md-6">
                      <label>Tipo Frete</label>
                      <select id="rgTipoFrete" class="input-default focus custom-select">
                        <option value="" selected>Selecione uma opção</option>
                        <option value="0">0 - Contratação do Frete por conta do Remetente (CIF)</option>
                        <option value="1">1 - Contratação do Frete por conta do Destinatário (FOB)</option>
                        <option value="2">2 - Contratação do Frete por conta de Terceiros</option>
                        <option value="3">3 - Transporte Próprio por conta do Remetente</option>
                        <option value="4">4 - Transporte Próprio por conta do Destinatário</option>
                        <option value="9">9 - Sem Ocorrência de Transporte</option>
                      </select>
                    </div>
                    <div class="form-group col-6">
                      <label data-error="wrong" data-success="right" for="txtTransportadoraModal">Transportadora</label>
                      <div class="input-group">
                        <input type="text" autocomplete="off" class="input-default focus form-control" id="txtTransportadoraModal" name="txtTransportadoraModal" placeholder="Transportadora">
                        <div class="input-group-append">
                          <button class="btn bg-danger" id="btnPesquisaTransportadoraModal" name="btnPesquisaTransportadoraModal" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                          <button class="btn bg-danger" id="btnLimpaTransportadoraModal" name="btnLimpaTransportadoraModal" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                        </div>
                      </div>
                    </div>
                    <div class="form-group col-12" id="MidiasSociaisInfoTour" style="margin-bottom: 8px;">
                      <label data-error="wrong" data-success="right" for="txtMidiaSocial">Midias Sociais</label>
                      <div class="input-group">
                        <textarea style="resize: none" id="txtMidiaSocial" maxlength="1000" placeholder="Midias Sociais" class="input-default focus form-control" rows="3"></textarea>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div id="modal-consultaCadastral" class="modal" tabindex="-1" role="dialog">
              <div class="modal-dialog modal-lg" role="document">
                <div class="modal-content" id="modalBody">
                  <div class="modal-header">
                    <h4 class="modal-title">Consulta Cadastral</h4>
                    <button type="button" id="btnCloseConsultaCadastral" class="close" aria-label="Close">
                      <span aria-hidden="true">&times;</span>
                    </button>
                  </div>
                  <div class="modal-body">
                    <div class="row">


                      <div class="col-lg-4" style="margin-top: 1%; border-bottom: 1px solid #e9ecef; padding-bottom: 10px">
                        <label data-error="wrong" data-success="right" for="txtCNPJConsulta">CNPJ: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtCNPJConsulta" name="txtCNPJConsulta" disabled>
                        </div>
                      </div>

                      <div class="col-lg-1" style="margin-top: 5%; border-bottom: 1px solid #e9ecef; padding-bottom: 10px">
                        <button class="btn btn-primary" id="btnReconsultar"><i class="m-0 p-0 fas fa-undo"></i></button>
                      </div>

                      <div class="col-lg-3" style="margin-top: 1%; border-bottom: 1px solid #e9ecef; padding-bottom: 10px">
                        <label data-error="wrong" data-success="right" class="d-none" for="txtCaptcha">Captcha: </label>
                        <div class="input-group d-none">
                          <input type="text" class="input-default focus form-control" id="txtCaptcha" name="txtCaptcha">
                        </div>
                      </div>

                      <div class="col-lg-4" id="divImagemCaptcha" style="margin-top: 1%; border-bottom: 1px solid #e9ecef; padding-bottom: 10px; align-items: center; justify-content: center; display: flex;">
                        <label for="imgCaptcha" class="d-none">
                          <img src="" id="imagemCaptcha" id=c alt="captcha" class="imgagem" width=300px height=50px>
                        </label>
                      </div>

                      <div class="col-lg-1 d-none" style="margin-top: 18px; border-bottom: 1px solid #e9ecef; padding-bottom: 10px">
                        <button class="btn btn-primary" id="btnConsultarReceita"><i class="m-0 p-0 fas fa-search"></i></button>
                      </div>

                      <div class="col-lg-12" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtRazaoSocialConsulta">Razão Social: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtRazaoSocialConsulta" name="txtRazaoSocialConsulta" placeholder="Razão Social">
                        </div>
                      </div>

                      <div class="col-lg-8" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtFantasiaConsulta">Fantasia: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtFantasiaConsulta" name="txtFantasiaConsulta" placeholder="Fantasia">
                        </div>
                      </div>

                      <div class="col-lg-4" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtDataAbertuta">Data Abertura: </label>
                        <div class="input-group">
                          <input type="date" max="2500-12-31" class="input-default focus form-control" id="txtDataAbertuta" name="txtDataAbertuta">
                        </div>
                      </div>

                      <div class="col-lg-5" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtRuaConsulta">Rua: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtRuaConsulta" name="txtRuaConsulta" placeholder="Rua">
                        </div>
                      </div>

                      <div class="col-lg-5" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtBairroConsulta">Bairro: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtBairroConsulta" name="txtBairroConsulta" placeholder="Bairro">
                        </div>
                      </div>

                      <div class="col-lg-2" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtNumeroConsulta">Número: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtNumeroConsulta" name="txtNumeroConsulta" placeholder="Número">
                        </div>
                      </div>

                      <div class="col-lg-4" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtMunicipioConsulta">Município: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtMunicipioConsulta" name="txtMunicipioConsulta" placeholder="Município">
                        </div>
                      </div>

                      <div class="col-lg-1" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtUFConsulta">UF: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtUFConsulta" name="txtUFConsulta" placeholder="UF">
                        </div>
                      </div>

                      <div class="col-lg-3" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtCEPConsulta">CEP: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtCEPConsulta" name="txtCEPConsulta" placeholder="CEP">
                        </div>
                      </div>

                      <div class="col-lg-4" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtComplementoConsulta">Complemento: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtComplementoConsulta" name="txtComplementoConsulta" placeholder="Complemento">
                        </div>
                      </div>

                      <div class="col-lg-4" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtSituacaoCadastralConsulta">Situação Cadastral: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtSituacaoCadastralConsulta" name="txtSituacaoCadastralConsulta" placeholder="Situação Cadastral">
                        </div>
                      </div>

                      <div class="col-lg-4" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtDataSituacaoConsulta">Data Situação: </label>
                        <div class="input-group">
                          <input type="date" max="2500-12-31" class="input-default focus form-control" id="txtDataSituacaoConsulta" name="txtDataSituacaoConsulta">
                        </div>
                      </div>

                      <div class="col-lg-4" style="margin-top: 1%;">
                        <label data-error="wrong" data-success="right" for="txtIEConsulta">IE: </label>
                        <div class="input-group">
                          <input type="text" class="input-default focus form-control" id="txtIEConsulta" name="txtIEConsulta" placeholder="IE">
                        </div>
                      </div>

                    </div>
                  </div>
                  <div class="modal-footer">
                    <div class="row">
                      <button class="btn btn-danger btn-sisp" id="btnFecharConsulta" style="margin-right: 10px;">Fechar</button>
                      <button class="btn btn-danger btn-sisp" id="btnImportarConsulta">Importar</button>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div class="modal fade" id="modalVinculaSetor" tabindex="-1" role="dialog" aria-labelledby="modalCondicao" aria-hidden="true">
              <div class="modal-dialog modal-lg">
                <div class="modal-content">
                  <div class="modal-header">
                    <h4 id="modalCondicao-titulo" class="modal-title">Adicionar Setor</h4>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                      <span aria-hidden="true">&times;</span>
                    </button>
                  </div>
                  <div class="modal-body p-4">
                    <div class="row">
                      <div class="col-sm-12">
                        <div class="row">
                          <div class="col-sm-12">
                            <label style="margin-bottom: .1rem!important;" data-error="wrong" data-success="right" for="txtAddSetor">Setor:</label>
                            <div class="input-group">
                              <input type="text" class="input-default focus form-control" id="txtAddSetor" name="txtAddSetor" class="form-control" placeholder="Setor">
                              <div class="input-group-append">
                                <button class="btn bg-danger" id="btnAddSetor" name="btnAddSetor" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                                <button class="btn bg-danger" id="btnLimpaAddSetor" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                              </div>
                            </div>
                          </div>
                          <div class="col-sm-4">
                            <label style="margin-bottom: .1rem!important;" data-error="wrong" data-success="right" for="txtPerc100">Perc_100:</label>
                            <div class="input-group">
                              <input type="text" class="input-default focus form-control" id="txtPerc100" name="txtPerc100" class="form-control" placeholder="Perc_100">
                            </div>
                          </div>
                          <div class="col-sm-4">
                            <label style="margin-bottom: .1rem!important;" data-error="wrong" data-success="right" for="txtPercPontualidade">Perc_Pontualidade:</label>
                            <div class="input-group">
                              <input type="text" class="input-default focus form-control" id="txtPercPontualidade" name="txtPercPontualidade" class="form-control" placeholder="Perc_Pontualidade">
                            </div>
                          </div>
                          <div class="col-sm-4">
                            <label style="margin-bottom: .1rem!important;" data-error="wrong" data-success="right" for="txtPercQual">Perc_Qual:</label>
                            <div class="input-group">
                              <input type="text" class="input-default focus form-control" id="txtPercQual" name="txtPercQual" class="form-control" placeholder="Perc_Qual">
                            </div>
                          </div>
                          <div class="col-sm-12" style="margin-top:5px">
                            <button id="txtAdicionarSetor" type="button" class="btn btn-primary btn-block mt-2">
                              Adicionar Setor
                            </button>
                          </div>

                          <div class="col-sm-12 mt-3 pb-4 table-responsive card-body">
                            <table id="tabelaSetor" class="table table-sm table-select table-hover" width="100%">
                              <thead>
                                <th>Código</th>
                                <th>Descrição</th>
                                <th>Perc_100</th>
                                <th>Perc_Pontualidade</th>
                                <th>Perc_Qual</th>
                              </thead>
                              <tbody>
                              </tbody>
                            </table>
                          </div>

                          <!-- <div class="col-sm-12" style="margin-top:5px">
                      <button id="txtGravarAddSetor" type="button" class="btn btn-danger btn-block mt-2">
                        Gravar
                      </button>
                    </div> -->

                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div class="modal fade" id="modalVinculaMoeda" tabindex="-1" role="dialog" aria-labelledby="modalVinculaMoeda" aria-hidden="true">
              <div class="modal-dialog modal-lg">
                <div class="modal-content">
                  <div class="modal-header">
                    <h4 id="modalCondicao-titulo" class="modal-title">Adicionar Moeda</h4>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                      <span aria-hidden="true">&times;</span>
                    </button>
                  </div>
                  <div class="modal-body p-4">
                    <div class="row">
                      <div class="col-sm-12">
                        <div class="row">
                          <div class="col-sm-12">
                            <label style="margin-bottom: .1rem!important;" data-error="wrong" data-success="right" for="txtAddMoeda">Moeda:</label>
                            <div class="input-group">
                              <input type="text" class="input-default focus form-control" id="txtAddMoeda" name="txtAddMoeda" class="form-control" placeholder="Moeda">
                              <div class="input-group-append">
                                <button class="btn bg-danger" id="btnAddMoeda" name="btnAddMoeda" data-button="absolute" type="button"><i class="m-0 p-0 fas fa-search"></i></button>
                                <button class="btn bg-danger" id="btnLimpaAddMoeda" type="button"><i class="m-0 p-0 fas fa-trash"></i></button>
                              </div>
                            </div>
                          </div>
                          <div class="col-sm-12" style="margin-top:5px">
                            <button id="txtAdicionarMoeda" type="button" class="btn btn-primary btn-block mt-2">
                              Adicionar Moeda
                            </button>
                          </div>
                          <div class="col-sm-12 mt-3 pb-4 table-responsive card-body">
                            <table id="tabelaMoedas" class="table table-sm table-select table-hover" width="100%">
                              <thead>
                                <th>Código</th>
                                <th>Descrição</th>
                              </thead>
                              <tbody>
                              </tbody>
                            </table>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <!-- </div> -->
            <!-- cabo os panel -->
            <div class="modal-footer">
              <button type="button" id="btnEstatisticas" style="font-size:15px;" class="btn btn-secondary btn-sisp btn-lg action-button-previous">Estatísticas</button>
              <button type="button" id="btnVoltar" style="font-size:15px;" class="btn btn-success btn-sisp btn-lg action-button-previous" data-dismiss="modal">Voltar</button>
              <input id="btnGravar" type="submit" style="font-size:15px;" class="btn btn-danger btn-sisp btn-lg action-button float-right" value="Gravar">
            </div>
          </form>
        </fieldset>
      </div>
      <!-- <div class="modal-footer">
                        <button id="btnYes" type="button" class="btn btn-primary btn-sisp">Sim</button>
                        <button id="btnNo" type="button" class="btn btn-secondary btn-sisp" data-dismiss="modal">Não</button>
                    </div> -->
    </div>
  </div>
</div>
<script src="../plugins/jquery/jquery.min.js"></script>
<script>
  $(document).ready(async function() {

    ///CASO VOCÊ ESTEJA AQUI PRA ADICIONAR MAIS CAMPOS NO MODAL, FAVOR OLHAR A FUNÇÃO bloqueiaCamposParametros() POR FAVOR!!!!!!!!!!!! -- BRUNO 02/08/2023

    function validarCaracteres(value) {
      const result = value.match(/[&\/\\#,+()$~%.'":*?<>{}´`]/g);
      return result?.length ?? 0;
    }

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

    let qtdeAberturasModal = 0;

    //masks
    var options = {
      onKeyPress: function(cpf, ev, el, op) {
        var masks = ['000.000.000-000', '00.000.000/0000-00'];
        $('#txtCNPJModalCli').mask((cpf.length > 14) ? masks[1] : masks[0], op);
      }
    }

    const paramCadastraSemCPF = await CopiaParametro('VENDA', 40);
    const usaCertificadoA3 = await CopiaParametro("FATURAMENTO", 2);
    const usuarioMasterSupervisor = await UsuarioMasterOuSupervisor();
    const cadastraEntidadeBloqueada = await CopiaParametro('ENTIDADE', 2);
    const bloqueiaEditarEntidade = await CopiaParametro('ENTIDADE', 3);


    $('#txtCNPJModalCli').length > 11 ? $('#txtCNPJModalCli').mask('00.000.000/0000-00', options) : $(
      '#txtCNPJModalCli').mask('000.000.000-00#', options);

    var SPMaskBehavior = function(val) {
        return val.replace(/\D/g, '').length === 9 ? '00000-0000' : '0000-00009';
      },
      spOptions = {
        onKeyPress: function(val, e, field, options) {
          field.mask(SPMaskBehavior.apply({}, arguments), options);
        }
      };

    $('#btnEstatisticas').on('click', async function() {
      await abreEstatisticasCliente($('#txtCodigoCliente').val(), $('#txtNome').val());
    });

    if (cadastraEntidadeBloqueada == 1) {
      $('#cbBloqueado').prop('checked', true);
      if (usuarioMasterSupervisor[0].TIPO == '0') {
        $('#cbBloqueado').on('change', function() {
          if (!$(this).is(':checked')) {
            msgErro("Usuário do tipo 'USUÁRIO' não tem permissão para cadastrar uma entidade desbloqueada! Impossível desmarcar essa opção.");
            $('#cbBloqueado').prop('checked', true);
            return;
          };
        });
      };
    };

    $('#modal-cliente').on('shown.bs.modal', async function() {
      if (qtdeAberturasModal > 0) {
        limpaCampos();
        await desbloqueiaCamposParametros();
      };
      qtdeAberturasModal = qtdeAberturasModal + 1;
    });

    $('#txtCNPJModalCli').change(async function() {
      try {
        if ($(this).val() == '') {
          return;
        }
        $.LoadingOverlay("show");

        let validaCNPJ = formata_cpf_cnpj($('#txtCNPJModalCli').val());
        if (validaCNPJ != false) {
          $("#txtCNPJModalCli").val(validaCNPJ);
        }

        let response = await requisicao('GET', '/Sisplan/Cliente/V1/Entidade?', `CNPJ=${$('#txtCNPJModalCli').val()}`);

        let jsonStr = await response.json();
        if (response.status != 200) {
          $.LoadingOverlay("hide");
          msgErro(jsonStr.mensagem);
          return;
        }

        if (jsonStr.length > 0) {
          $.LoadingOverlay("hide");
          toastr.warning(
            'CNPJ/CPF informado já existe!',
            'Atenção', {
              toastClass: 'alert',
              iconClasses: {
                error: 'alert-error',
                info: 'alert-info',
                success: 'alert-success',
                warning: 'alert-warning'
              },
              positionClass: "toast-top-center",
              progressBar: true,
              timeOut: 3000,
              fadeOut: 1000,
              onHidden: async function() {
                const clienteJson = jsonStr[0];
                $('#txtCodCli').val(clienteJson.CODCLI);
                await carregaDadosCliente(clienteJson);
              }
            }
          ).css({
            "margin-top": "20%",
            "width": "500px",
            "max-width": "500px",
            "color": "black"
          });
          return;
        }

        $.LoadingOverlay("hide");

        if ((!valida_cpf_cnpj($('#txtCNPJModalCli').val())) && (paramCadastraSemCPF != 1 ?? 0)) {
          $("#txtCNPJModalCli").rules('add', 'valida_cpf_cnpj');
          $('#txtCNPJModalCli').focus();
        }
        var cliente = $('#txtCodCli').val();
        const verifica_CPF_CNPJ = verifica_cpf_cnpj($('#txtCNPJModalCli').val()) == 'CNPJ';
        if ((verifica_CPF_CNPJ) && ((cliente == 'create') && ($('#txtNome').val() == ''))) {
          await buscaDadosCliente(cliente, $('#txtCNPJModalCli').val().replace(/[^0-9]/g, ''));
          if ($('#txtCodCli').val() == '') {
            $('#txtCodCli').val('create');
          }
        }

        if (!verifica_CPF_CNPJ) {
          $('#btnconsultaCadastral').attr('disabled', true);
        } else {
          $('#btnconsultaCadastral').attr('disabled', false);
        }

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

    $('#txtRenda').maskMoney({
      decimal: '.',
      thousands: '',
      precision: 2
    });

    jQuery.validator.addMethod('valida_cpf_cnpj', function(value, element) {
      return valida_cpf_cnpj(value);
    });

    jQuery.validator.addMethod("validarCaracteres", function(value) {
      return validarCaracteres(value) === 0;
    });


    $('#txtNome').on('input', function() {
      $('#txtNome').val($('#txtNome').val().toUpperCase());
    });

    //funcoes
    async function carregaDadosCliente(clienteJson) {
      const cliente = $('#txtCodCli').val();
      try {
        var response = await requisicao('GET', '/Sisplan/Funcoes/v1/pesquisa?',
          `JSON={ "tabela":"ENTIDADE", "camposSelect":["OBS"], "where": ["CODCLI = '${cliente}'"]}`, null)
        if (!response) {
          var obs = ''
          return;
        } else {
          var jsonStr = await response.json()
          if (response.status != 200) {
            $.LoadingOverlay("hide");
            msgErro(jsonStr['RESULT'][0].mensagem);
            return;
          }

          var obs = jsonStr['RESULT'][0][0].OBS;
        }
      } catch (error) {
        console.error(error);
        var obs = ''
      }

      try {
        var response = await requisicao('GET', '/sisplan/funcoes/v1/pesquisa?',
          `JSON={ "tabela":"ENTIDADE", "camposSelect":["ENTIDADE.CODREP", "REPRESEN.NOME"], "leftJoin": [{"tabela": "represen", "condicao": "entidade.codrep = represen.codrep"}], "where": ["ENTIDADE.CODCLI = '${cliente}'"]}`,
          null)
        if (!response) {
          var represen = ''
          return;
        } else {
          var jsonStr = await response.json();
          if (response.status != 200) {
            $.LoadingOverlay("hide");
            msgErro(jsonStr['RESULT'][0].mensagem);
            return;
          }

          var represen = `[${jsonStr['RESULT'][0][0].CODREP}] - ${jsonStr['RESULT'][0][0].NOME}`;
        }
      } catch (error) {
        console.error(error);
        var represen = ''
      }

      try {
        var response = await requisicao('GET', '/sisplan/funcoes/v1/pesquisa?',
          `JSON={ "tabela":"ENTIDADE", "camposSelect":["ENTIDADE.TABELA", "REGIAO.DESCRICAO"], "leftJoin": [{"tabela": "REGIAO", "condicao": "entidade.tabela = regiao.regiao"}], "where": ["ENTIDADE.CODCLI = '${cliente}'"]}`,
          null)
        if (!response) {
          var tabPreco = ''
          return;
        } else {
          var jsonStr = await response.json()
          if (response.status != 200) {
            $.LoadingOverlay("hide");
            msgErro(jsonStr['RESULT'][0].mensagem)
            return
          }

          var tabPreco = `[${jsonStr['RESULT'][0][0].TABELA}] - ${jsonStr['RESULT'][0][0].DESCRICAO}`
        }
      } catch (error) {
        console.error(error);
        var tabPreco = ''
      }

      try {
        var codigoPais = '';
        var response = await requisicao('GET', '/sisplan/funcoes/v1/pesquisa?', `JSON={ "tabela":"ENTIDADE", "camposSelect":["ENTIDADE.COD_PAIS", "CADPAIS.NOME"], "leftJoin": [{"tabela": "CADPAIS", "condicao": "ENTIDADE.COD_PAIS = CADPAIS.CODIGO"}], "where": ["ENTIDADE.CODCLI = '${cliente}'"]}`, null);
        if (!response) {
          codigoPais = '';
          return;
        }
        var jsonStr = await response.json();
        if (response.status != 200) {
          $.LoadingOverlay("hide");
          msgErro(jsonStr.RESULT[0].mensagem);
          return;
        }

        codigoPais = jsonStr.RESULT[0][0].COD_PAIS === '' ? '' : `[${jsonStr.RESULT[0][0].COD_PAIS}] - ${jsonStr.RESULT[0][0].NOME}`;

      } catch (error) {
        codigoPais = '';
      }

      try {
        var response = await requisicao(
          "GET",
          "/sisplan/funcoes/v1/pesquisa?",
          `JSON={ "tabela":"ENTIDADE", "camposSelect":["ENTIDADE.TRANSPORTE", "TABTRAN.NOME"], "leftJoin": [{"tabela": "TABTRAN", "condicao": "ENTIDADE.TRANSPORTE = TABTRAN.CODIGO"}], "where": ["ENTIDADE.CODCLI = '${cliente}'"]}`,
          null
        );
        if (!response) {
          var transportadora = "";
          return;
        }
        var jsonStr = await response.json();
        if (response.status != 200) {
          $.LoadingOverlay("hide");
          msgErro(jsonStr.RESULT[0].mensagem);
          return;
        }

        var transportadora =
          jsonStr.RESULT[0][0].TRANSPORTE === "" ?
          "" :
          `[${jsonStr.RESULT[0][0].TRANSPORTE}] - ${jsonStr.RESULT[0][0].NOME}`;
      } catch (error) {
        var transportadora = "";
      }

      try {
        var response = await requisicao(
          "GET",
          "/sisplan/funcoes/v1/pesquisa?",
          `JSON={ "tabela":"ENTIDADE", "camposSelect":["ENTIDADE.COD_CONF_XML", "FATCONF_XML.DESCRICAO"], "leftJoin": [{"tabela": "FATCONF_XML", "condicao": "ENTIDADE.COD_CONF_XML = FATCONF_XML.CODIGO"}], "where": ["ENTIDADE.CODCLI = '${cliente}'"]}`,
          null
        );
        if (!response) {
          var confXML = "";
          return;
        }
        var jsonStr = await response.json();
        if (response.status != 200) {
          $.LoadingOverlay("hide");
          msgErro(jsonStr.RESULT[0].mensagem);
          return;
        }

        var confXML =
          jsonStr.RESULT[0][0].COD_CONF_XML === "" ?
          "" :
          `[${jsonStr.RESULT[0][0].COD_CONF_XML}] - ${jsonStr.RESULT[0][0].DESCRICAO}`;
      } catch (error) {
        var confXML = "";
      }

      try {
        const response = await requisicao(
          "GET",
          "/sisplan/funcoes/v1/pesquisa?",
          `JSON={ "tabela":"ENT_MOEDA", "camposSelect":["ENT_MOEDA.CODMOE" , "MOEDA.DESCRICAO"], 
                    "where": ["ENT_MOEDA.CODCLI = '${cliente}'"], 
                    "leftjoin": [{"tabela": "MOEDA", "condicao" : "ENT_MOEDA.CODMOE = MOEDA.CODMOE"}]}`,
          null
        );
        if (!response) {
          var moedas = "";
          return;
        }
        const jsonStr = await response.json();
        if (response.status != 200) {
          $.LoadingOverlay("hide");
          msgErro(jsonStr.RESULT[0].mensagem);
          return;
        }

        var moedas = jsonStr.RESULT[0];
      } catch (error) {
        var moedas = "";
      }

      try {
        var codigoGrupo = '';
        var response = await requisicao('GET', '/sisplan/funcoes/v1/pesquisa?', `JSON={ "tabela":"ENTIDADE", "camposSelect":["ENTIDADE.GRUPO", "GRUPO_CLI.DESCRICAO"], "leftJoin": [{"tabela": "GRUPO_CLI", "condicao": "ENTIDADE.GRUPO = GRUPO_CLI.CODIGO"}], "where": ["ENTIDADE.CODCLI = '${cliente}'"]}`, null);
        if (!response) {
          codigoGrupo = '';
          return;
        }
        var jsonStr = await response.json();
        if (response.status != 200) {
          $.LoadingOverlay("hide");
          msgErro(jsonStr.RESULT[0].mensagem);
          return;
        }

        codigoGrupo = jsonStr.RESULT[0][0].GRUPO === '' ? '' : `[${jsonStr.RESULT[0][0].GRUPO}] - ${jsonStr.RESULT[0][0].DESCRICAO}`;

      } catch (error) {
        codigoGrupo = '';
      }

      $('#txtCNPJModalCli').val(clienteJson.CNPJ);
      $('#txtCNPJModalCli').attr('disabled', true);
      if (clienteJson.DATA_BUSCA != undefined) {
        $("#txtDataAlteracao").val(clienteJson.DATA_BUSCA.slice(0, 10));
      }
      if (clienteJson.DATA_CAD != undefined) {
        $("#txtDataCadastro").val(clienteJson.DATA_CAD.slice(0, 10));
      }
      $('#txtNome').val(clienteJson.NOME);
      $('#txtFantasia').val(clienteJson.FANTASIA);
      $('#txtObsCli').val(obs);
      $('#cbAtivo').prop('checked', clienteJson.ATIVO == 'S');
      $('#cbBloqueado').prop('checked', clienteJson.BLOQUEIO == 'S');
      $('#cbConsumidorFinal').prop('checked', clienteJson.CONS_FINAL == 'Sim');
      $('#cbIntegraShop').prop('checked', clienteJson.INTEGRA_SHOPP == 'N');
      $('#txtRG').val(clienteJson.NUM_RG);
      $('#txtEmissor').val(clienteJson.EMI_RG);
      $('#txtIE').val(clienteJson.INSCRICAO);
      $('#rgSexo').val(clienteJson.SEXO == "M" ? "M" : "F").change();
      // $('#txtDataNascimento').val(clienteJson.DT_NASC.slice(0, 10));
      if (clienteJson.DT_NASC != undefined) {
        $("#txtDataNascimento").val(clienteJson.DT_NASC.slice(0, 10));
      }
      $('#txtPais').val(codigoPais ? codigoPais : '[1058] - BRASIL');
      insereValor('#txtRegiao', clienteJson.REG_ESTADO, clienteJson.REG_ESTADO);
      $('#txtCep').val(clienteJson.CEP);
      $('#txtRua').val(clienteJson.ENDERECO);
      $('#txtNumero').val(clienteJson.NUMERO);
      $('#txtComplemento').val(clienteJson.COMPLEMENTO);
      $('#txtBairro').val(clienteJson.BAIRRO);
      $('#rgIE').val(clienteJson.IE_DESTINATARIO).change();
      $('#rgTributacao').val(clienteJson.SIMPLES);
      $('#txtGrupo').val(codigoGrupo);
      $("#rgTipoFrete").val(clienteJson.TP_FRETE);
      $("#txtTransportadoraModal").val(transportadora);
      $('#txtMidiaSocial').val(clienteJson.MIDIAS_SOCIAIS);

      var retorno = await BuscaCep($('#txtCep'));
      $('#txtCidade').val(retorno[0]);
      $('#txtUF').val(retorno[1]);

      $('#txtDDD').val(clienteJson.DDD_FONE);
      $('#txtTelefone').val(clienteJson.TELEFONE);
      $('#txtEmail').val(clienteJson.EMAIL);
      $('#txtCepEntrega').val(clienteJson.CEP_ENT);
      $('#txtRuaEntrega').val(clienteJson.END_ENT);
      $('#txtNumeroEntrega').val(clienteJson.NUM_ENT);
      $('#txtComplementoEntrega').val(clienteJson.COMP_ENT);
      $('#txtBairroEntrega').val(clienteJson.BAIRRO_ENT);

      var retorno = await BuscaCep($('#txtCepEntrega'));
      $('#txtCidadeEntrega').val(retorno[0]);
      $('#txtUFEntrega').val(retorno[1]);

      $('#txtCepCobranca').val(clienteJson.CEP_COB);
      $('#txtRuaCobranca').val(clienteJson.END_COB);
      $('#txtNumeroCobranca').val(clienteJson.NUM_COB);
      $('#txtComplementoCobranca').val(clienteJson.COMP_COB);
      $('#txtBairroCobranca').val(clienteJson.BAIRRO_COB);

      var retorno = await BuscaCep($('#txtCepCobranca'));
      $('#txtCidadeCobranca').val(retorno[0]);
      $('#txtUFCobranca').val(retorno[1]);

      $('#txtRepresentante-modal').val(represen);
      $('#txtCreditoGrupoModal').val(clienteJson.CRED_CONSIGNADO);
      $('#txtLimiteCredito').val(clienteJson.CREDITO);
      $('#txtLimiteUsado').val(clienteJson.CREDITO_UTILIZADO ?? 0);
      $('#txtLimiteDisponivel').val($('#txtLimiteCredito').val() - $('#txtLimiteUsado').val());
      $('#txtLimiteFidelidade').val(clienteJson.LIMITE_FID);
      $('#txtLimiteFidelidadeUsado').val(clienteJson.LIMITE_UTIL_FID ?? 0);
      $('#txtLimiteFidelidadeDisponivel').val($('#txtLimiteFidelidade').val() - $('#txtLimiteFidelidadeUsado').val());
      $('#txtTabela-modal').val(tabPreco);
      $('#txtLocalTrab').val(clienteJson.LOCAL_TRAB);
      $('#txtNomePai').val(clienteJson.NOME_PAI);
      $('#txtNomeMae').val(clienteJson.NOME_MAE);
      $('#txtEstadoCivil').val(clienteJson.ESTADO_CIVIL);
      $('#txtRenda').val(clienteJson.RENDA);
      if (clienteJson.DT_ADMISSAO != undefined) {
        $("#txtDtAdmissao").val(clienteJson.DT_ADMISSAO.slice(0, 10));
      }
      $('#txtCodigoCliente').val(clienteJson.CODCLI);
      $('#txtClasse').val(clienteJson.CLASSE);
      $("#txtConfXMLModal").val(confXML);
      $("#txtInscCob").val(clienteJson.INSC_COB);
      $("#txtInscEnt").val(clienteJson.INSC_ENT);


      if (clienteJson.TIPO_ENTIDADE.includes('C')) {
        $("#cbTipoCliente").prop("checked", true);
      }
      if (clienteJson.TIPO_ENTIDADE.includes('F')) {
        $("#cbTipoFornecedor").prop("checked", true);
      }
      if (clienteJson.TIPO_ENTIDADE.includes('T')) {
        $("#cbTipoTerceiros").prop("checked", true);
      }
      if (clienteJson.TIPO_ENTIDADE.includes('R')) {
        $("#cbTipoRepresentante").prop("checked", true);
      }
      if (clienteJson.TIPO_ENTIDADE.includes('P')) {
        $("#cbTipoProspecto").prop("checked", true);
      }

      if (clienteJson.TIPO_ENTIDADE.includes('E')) {
        $("#cbTipoFuncionario").prop("checked", true);
      }

      if (cliente != "" && cliente != "create" && cliente.length < 30) {
        await buscaDadosEntidadeContabil(cliente);
        $('#txtMoedaModal').empty().trigger('change');
        await insereValorPesquisaVarios('txtMoedaModal', 'CODMOE', 'DESCRICAO', moedas);
      }

      if (bloqueiaEditarEntidade == 1) {
        if (usuarioMasterSupervisor[0].TIPO == '0') {
          await bloqueiaCamposParametros();
        };
      };
    };

    async function bloqueiaCamposParametros() {
      $('#cbConsumidorFinal').addClass('cbModalClienteVenda');
      $('#cbAtivo').addClass('cbModalClienteVenda');
      $('#cbTipoCliente').addClass('cbModalClienteVenda');
      $('#cbTipoFornecedor').addClass('cbModalClienteVenda');
      $('#cbTipoTerceiros').addClass('cbModalClienteVenda');
      $('#cbTipoRepresentante').addClass('cbModalClienteVenda');
      $('#cbTipoProspecto').addClass('cbModalClienteVenda');
      $('#cbTipoFuncionario').addClass('cbModalClienteVenda');
      $('#txtCodigoCliente').prop('readonly', true);
      $('#txtCNPJModalCli').prop('readonly', true);
      $('#btnconsultaCadastral').prop('disabled', true);
      $('#txtDataCadastro').prop('readonly', true);
      $('#txtDataAlteracao').prop('readonly', true);
      $('#txtDataNascimento').prop('readonly', true);
      $('#txtNome').prop('readonly', true);
      $('#txtFantasia').prop('readonly', true);
      $('#rgIE').prop('disabled', true);
      $('#txtEmail').prop('readonly', true);
      $('#txtDDD').prop('readonly', true);
      $('#txtTelefone').prop('readonly', true);
      $('#txtObsCli').prop('readonly', true);
      $('#txtIE').prop('readonly', true);
      $('#txtRG').prop('readonly', true);
      $('#txtEmissor').prop('readonly', true);
      $('#rgSexo').prop('disabled', true);
      $('#rgPorteEmpresa').prop('disabled', true);
      $('#txtPais').prop('readonly', true);
      $('#btn-pais-entidade').prop('disabled', true);
      $('#btn-limpar-pais-entidade').prop('disabled', true);
      $('#txtCep').prop('readonly', true);
      $('#txtCep').prop('disabled', true);
      $('#btnCep').prop('disabled', true);
      $('#btnLimpaCep').prop('disabled', true);
      $('#txtCidade').prop('readonly', true);
      $('#txtUF').prop('readonly', true);
      $('#txtRua').prop('readonly', true);
      $('#txtNumero').prop('readonly', true);
      $('#txtBairro').prop('readonly', true);
      $('#txtComplemento').prop('readonly', true);
      $('#txtRepresentante-modal').prop('readonly', true);
      $('#btn-representante-modal').prop('disabled', true);
      $('#btn-Arepresentante-modal').prop('disabled', true);
      $('#txtTabela-modal').prop('readonly', true);
      $('#btn-tabela-modal').prop('disabled', true);
      $('#btn-Atabela-modal').prop('disabled', true);
      $('#txtCreditoGrupoModal').prop('readonly', true);
      $('#txtLimiteCredito').prop('readonly', true);
      $('#txtLimiteUsado').prop('readonly', true);
      $('#txtLimiteDisponivel').prop('readonly', true);
      $('#txtLimiteFidelidade').prop('readonly', true);
      $('#txtLimiteFidelidadeUsado').prop('readonly', true);
      $('#txtLimiteFidelidadeDisponivel').prop('readonly', true);
      $('#cbIntegraShop').addClass('cbModalClienteVenda');
      $('#txtContaClienteModal').prop('readonly', true);
      $('#btn-contaclienteModal').prop('disabled', true);
      $('#btn-limpa-contaclienteModal').prop('disabled', true);
      $('#txtContaFornecedorModal').prop('readonly', true);
      $('#btn-contafornecedorModal').prop('disabled', true);
      $('#btn-limpa-contafornecedorModal').prop('disabled', true);
      $('#txtContaCAdiantamentoModal').prop('readonly', true);
      $('#btn-CadiantamentoModal').prop('disabled', true);
      $('#btn-limpa-CadiantamentoModal').prop('disabled', true);
      $('#txtContaFAdiantamentoModal').prop('readonly', true);
      $('#btn-FadiantamentoModal').prop('disabled', true);
      $('#btn-limpa-FadiantamentoModal').prop('disabled', true);
      $('#txtContaCDevolucaoModal').prop('readonly', true);
      $('#btn-CdevolucaoModal').prop('disabled', true);
      $('#btn-limpa-CdevolucaoModal').prop('disabled', true);
      $('#txtContaFDevolucaoModal').prop('readonly', true);
      $('#btn-FdevolucaoModal').prop('disabled', true);
      $('#btn-limpa-FdevolucaoModal').prop('disabled', true);
      $('#txtMoedaModal').prop('disabled', true);
      $('#btnMoedaModal').prop('disabled', true);
      $('#btn-limpa-moedaModal').prop('disabled', true);
      $('#txtLocalTrab').prop('readonly', true);
      $('#txtClasse').prop('readonly', true);
      $('#btn-Classe').prop('disabled', true);
      $('#btn-limpa-Classe').prop('disabled', true);
      $('#txtConfXMLModal').prop('readonly', true);
      $('#btnConfXMLModal').prop('disabled', true);
      $('#btnLimpaConfXMLModal').prop('disabled', true);
      $('#txtNomePai').prop('readonly', true);
      $('#txtNomeMae').prop('readonly', true);
      $('#txtEstadoCivil').prop('readonly', true);
      $('#txtRenda').prop('readonly', true);
      $('#txtDtAdmissao').prop('readonly', true);
      $('#rgTributacao').prop('disabled', true);
      $('#txtGrupo').prop('readonly', true);
      $('#btn-Grupo').prop('disabled', true);
      $('#btn-AGrupo').prop('disabled', true);
      $('#rgTipoFrete').prop('disabled', true);
      $('#txtTransportadoraModal').prop('readonly', true);
      $('#btnPesquisaTransportadoraModal').prop('disabled', true);
      $('#btnLimpaTransportadoraModal').prop('disabled', true);
      $('#txtMidiaSocial').prop('readonly', true);
      $('#btnEstatisticas').prop('disabled', true);
      $('input.select2-search__field').parent().addClass('backgroundTransparent');
      $('input.select2-search__field').parent().parent().addClass('backgroundTransparent');
      $('input.select2-search__field').parent().parent().parent().addClass('backgroundTransparent');
      $('.cbModalClienteVenda').on('change', async function() {
        msgErro('Você não tem permissão pra alterar essa opção! Impossível continuar.');
        if ($(this).is(':checked')) {
          $(this).prop('checked', false);
        } else {
          $(this).prop('checked', true);
        }
        return;
      });
    };

    async function desbloqueiaCamposParametros() {
      $('.cbModalClienteVenda').off('change');
      $('#cbConsumidorFinal').removeClass('cbModalClienteVenda');
      $('#cbAtivo').removeClass('cbModalClienteVenda');
      $('#cbTipoCliente').removeClass('cbModalClienteVenda');
      $('#cbTipoFornecedor').removeClass('cbModalClienteVenda');
      $('#cbTipoTerceiros').removeClass('cbModalClienteVenda');
      $('#cbTipoRepresentante').removeClass('cbModalClienteVenda');
      $('#cbTipoProspecto').removeClass('cbModalClienteVenda');
      $('#cbTipoFuncionario').removeClass('cbModalClienteVenda');
      $('#txtCodigoCliente').prop('readonly', false);
      $('#txtCNPJModalCli').prop('readonly', false);
      $('#btnconsultaCadastral').prop('disabled', false);
      $('#txtDataCadastro').prop('readonly', false);
      $('#txtDataAlteracao').prop('readonly', false);
      $('#txtDataNascimento').prop('readonly', false);
      $('#txtNome').prop('readonly', false);
      $('#txtFantasia').prop('readonly', false);
      $('#rgIE').prop('disabled', false);
      $('#txtEmail').prop('readonly', false);
      $('#txtDDD').prop('readonly', false);
      $('#txtTelefone').prop('readonly', false);
      $('#txtObsCli').prop('readonly', false);
      $('#txtIE').prop('readonly', false);
      $('#txtRG').prop('readonly', false);
      $('#txtEmissor').prop('readonly', false);
      $('#rgSexo').prop('disabled', false);
      $('#rgPorteEmpresa').prop('disabled', false);
      $('#txtPais').prop('readonly', false);
      $('#btn-pais-entidade').prop('disabled', false);
      $('#btn-limpar-pais-entidade').prop('disabled', false);
      $('#txtCep').prop('readonly', false);
      $('#txtCep').prop('disabled', false);
      $('#btnCep').prop('disabled', false);
      $('#btnLimpaCep').prop('disabled', false);
      $('#txtCidade').prop('readonly', false);
      $('#txtUF').prop('readonly', false);
      $('#txtRua').prop('readonly', false);
      $('#txtNumero').prop('readonly', false);
      $('#txtBairro').prop('readonly', false);
      $('#txtComplemento').prop('readonly', false);
      $('#txtRepresentante-modal').prop('readonly', false);
      $('#btn-representante-modal').prop('disabled', false);
      $('#btn-Arepresentante-modal').prop('disabled', false);
      $('#txtTabela-modal').prop('readonly', false);
      $('#btn-tabela-modal').prop('disabled', false);
      $('#btn-Atabela-modal').prop('disabled', false);
      $('#txtCreditoGrupoModal').prop('readonly', false);
      $('#txtLimiteCredito').prop('readonly', false);
      $('#txtLimiteUsado').prop('readonly', false);
      $('#txtLimiteDisponivel').prop('readonly', false);
      $('#txtLimiteFidelidade').prop('readonly', false);
      $('#txtLimiteFidelidadeUsado').prop('readonly', false);
      $('#txtLimiteFidelidadeDisponivel').prop('readonly', false);
      $('#cbIntegraShop').removeClass('cbModalClienteVenda');
      $('#txtContaClienteModal').prop('readonly', false);
      $('#btn-contaclienteModal').prop('disabled', false);
      $('#btn-limpa-contaclienteModal').prop('disabled', false);
      $('#txtContaFornecedorModal').prop('readonly', false);
      $('#btn-contafornecedorModal').prop('disabled', false);
      $('#btn-limpa-contafornecedorModal').prop('disabled', false);
      $('#txtContaCAdiantamentoModal').prop('readonly', false);
      $('#btn-CadiantamentoModal').prop('disabled', false);
      $('#btn-limpa-CadiantamentoModal').prop('disabled', false);
      $('#txtContaFAdiantamentoModal').prop('readonly', false);
      $('#btn-FadiantamentoModal').prop('disabled', false);
      $('#btn-limpa-FadiantamentoModal').prop('disabled', false);
      $('#txtContaCDevolucaoModal').prop('readonly', false);
      $('#btn-CdevolucaoModal').prop('disabled', false);
      $('#btn-limpa-CdevolucaoModal').prop('disabled', false);
      $('#txtContaFDevolucaoModal').prop('readonly', false);
      $('#btn-FdevolucaoModal').prop('disabled', false);
      $('#btn-limpa-FdevolucaoModal').prop('disabled', false);
      $('#txtMoedaModal').prop('disabled', false);
      $('#btnMoedaModal').prop('disabled', false);
      $('#btn-limpa-moedaModal').prop('disabled', false);
      $('#txtLocalTrab').prop('readonly', false);
      $('#txtClasse').prop('readonly', false);
      $('#btn-Classe').prop('disabled', false);
      $('#btn-limpa-Classe').prop('disabled', false);
      $('#txtConfXMLModal').prop('readonly', false);
      $('#btnConfXMLModal').prop('disabled', false);
      $('#btnLimpaConfXMLModal').prop('disabled', false);
      $('#txtNomePai').prop('readonly', false);
      $('#txtNomeMae').prop('readonly', false);
      $('#txtEstadoCivil').prop('readonly', false);
      $('#txtRenda').prop('readonly', false);
      $('#txtDtAdmissao').prop('readonly', false);
      $('#rgTributacao').prop('disabled', false);
      $('#txtGrupo').prop('readonly', false);
      $('#btn-Grupo').prop('disabled', false);
      $('#btn-AGrupo').prop('disabled', false);
      $('#rgTipoFrete').prop('disabled', false);
      $('#txtTransportadoraModal').prop('readonly', false);
      $('#btnPesquisaTransportadoraModal').prop('disabled', false);
      $('#btnLimpaTransportadoraModal').prop('disabled', false);
      $('#txtMidiaSocial').prop('readonly', false);
      $('#btnEstatisticas').prop('disabled', false);
      $('input.select2-search__field').parent().removeClass('backgroundTransparent');
      $('input.select2-search__field').parent().parent().removeClass('backgroundTransparent');
      $('input.select2-search__field').parent().parent().parent().removeClass('backgroundTransparent');
    };

    $('#btnModalNovoCliente').on('click', async function() {
      await limpaCampos();
      insereValor('#txtPais', '1058', 'BRASIL');
      await carregaValoresPadroes();
      $('#txtCNPJModalCli').focus();
      await buscaRegiao();
    });

    $('#form-cliente').validate({
      debug: false,
      ignore: "",
      rules: {
        txtCNPJModalCli: {
          required: paramCadastraSemCPF != '1',
          valida_cpf_cnpj: paramCadastraSemCPF != '1',
        },
        txtNome: {
          required: true,
          validarCaracteres: true,
        },
        txtFantasia: {
          validarCaracteres: true,
        },
        txtPais: {
          required: true,
        },
        txtCep: {
          required: true,
        },
        txtRua: {
          required: true,
        },
        txtNumero: {
          required: true,
        },
        txtBairro: {
          required: true,
        },
        txtDDD: {
          required: true,
        },
        txtTelefone: {
          required: true,
        }
      },
      messages: {
        txtCNPJModalCli: {
          required: paramCadastraSemCPF != '1' ? "Informe um CNPJ/CPF válido." : '',
          valida_cpf_cnpj: paramCadastraSemCPF != '1' ? "Informe um CNPJ/CPF válido." : '',
        },
        txtNome: {
          required: "Informe um nome válido.",
          validarCaracteres: "Nome não pode conter caracteres especiais",
        },
        txtFantasia: {
          validarCaracteres: "Fantasia não pode conter caracteres especiais",
        },
        txtPais: {
          required: "Informe um País válido."
        },
        txtCep: {
          required: "Informe um CEP válido."
        },
        txtRua: {
          required: "Informe uma Rua válida.",
        },
        txtNumero: {
          required: "Informe um Número válido.",
        },
        txtBairro: {
          required: "Informe um Bairro válido.",
        },
        txtDDD: {
          required: "Informe um DDD válido"
        },
        txtTelefone: {
          required: "Informe um Telefone válido"
        }
      },
      errorElement: 'span',
      errorPlacement: function(error, element) {
        error.addClass('invalid-feedback');
        element.closest('.form-group').append(error);
      },
      highlight: function(element, errorClass, validClass) {
        $(element).addClass('is-invalid');
      },
      unhighlight: function(element, errorClass, validClass) {
        $(element).removeClass('is-invalid');
      },
      invalidHandler: function(e, validator) {
        if (validator.errorList.length) {
          if (validator.errorList[0].element.id == "txtCep" || validator.errorList[0].element.id == "txtPais") {
            if (!$("#multiCollapseExample3").hasClass("show")) {
              $("#multiCollapseExample3").collapse("show");
            }
          }
          if (validator.errorList[0].element.id == "txtRua") {
            if (!$("#multiCollapseExample3").hasClass("show")) {
              $("#multiCollapseExample3").collapse("show");
            }
          }
          if (validator.errorList[0].element.id == "txtNumero") {
            if (!$("#multiCollapseExample3").hasClass("show")) {
              $("#multiCollapseExample3").collapse("show");
            }
          }
          if (validator.errorList[0].element.id == "txtBairro") {
            if (!$("#multiCollapseExample3").hasClass("show")) {
              $("#multiCollapseExample3").collapse("show");
            }
          }
          let id = $(
            $(`#${$(validator.errorList[0].element).prop("id")}`)
            .closest(".card-body")
            .closest(".collapse")
          ).prop("id");
          if ((!$(`#${id}`).hasClass('show')) && id != "multiCollapseExample1") {
            $(`a[href='#${id}']`).trigger("click");
          }
        }
      },
      submitHandler: async function(form, event) {
        event.preventDefault();

        if ($('#modal-consultaCadastral').hasClass('modal show')) {
          return;
        }

        const cliente = $('#txtCodCli').val();
        if (cliente == 'create') {
          try {
            $.LoadingOverlay("show");
            if (paramCadastraSemCPF != '1') {
              let validaCNPJ = formata_cpf_cnpj($('#txtCNPJModalCli').val());
              if (validaCNPJ != false) {
                $("#txtCNPJModalCli").val(validaCNPJ)
              }

              let response = await requisicao('GET', '/Sisplan/Cliente/V1/Entidade?',
                `CNPJ=${$('#txtCNPJModalCli').val()}`);

              let jsonStr = await response.json();
              if (response.status != 200) {
                $.LoadingOverlay("hide");
                msgErro(jsonStr.mensagem);
                return;
              }

              if (jsonStr.length > 0) {
                $.LoadingOverlay("hide");
                msgAlerta('CNPJ/CPF informado já existe');
                // window.location.href = '<?php echo BASE_URI; ?>/cliente/' + jsonStr[0].CODCLI;
                return;
              }
            }

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

        try {
          $.LoadingOverlay("show");

          //replace nos cep
          var cep = $('#txtCep').val().replace(/\D/g, '');
          var cepCobranca = $('#txtCepCobranca').val().replace(/\D/g, '');
          var cepEntrega = $('#txtCepEntrega').val().replace(/\D/g, '');

          let response = await requisicao('GET', '/sisplan/funcoes/v1/pesquisa?',
            `JSON={"tabela":"CADCEP", "camposSelect":["CEP"], "where": ["CEP = '${cep}'"]}`, null);

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

          if (jsonStr['RESULT'][0].length <= 0) {
            $.LoadingOverlay("hide");
            msgAlerta('Cep não informado ou inválido.');
            $('#txtCep').focus();
            return;
          }

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

        try {
          $.LoadingOverlay("show");

          var codrep = $('#txtRepresentante-modal').val().substring(1, $('#txtRepresentante-modal').val().indexOf(
            '] - '));
          var tabela = $('#txtTabela-modal').val().substring(1, $('#txtTabela-modal').val().indexOf(
            '] - '));

          var entidade = new Object();

          let validaCNPJ = formata_cpf_cnpj($('#txtCNPJModalCli').val());
          if (validaCNPJ != false) {
            $("#txtCNPJModalCli").val(validaCNPJ)
          }

          const temCaracteresEspeciais = validarCaracteres($("#txtNome").val()) > 0;
          if (temCaracteresEspeciais) {
            msgErro("Nome não pode conter caracteres especiais");
            return;
          }

          const fantasiaTemCaracteresEspeciais = validarCaracteres($("#txtFantasia").val()) > 0;
          if (fantasiaTemCaracteresEspeciais) {
            msgErro("Fantasia não pode conter caracteres especiais");
            return;
          }

          entidade.CNPJ = $('#txtCNPJModalCli').val();
          entidade.DATA_CAD = $('#txtDataCadastro').val() + 'T00:00:00Z';
          entidade.DATA_BUSCA = $('#txtDataAlteracao').val() + 'T00:00:00Z';
          entidade.NOME = $('#txtNome').val();
          entidade.FANTASIA = $('#txtFantasia').val();
          entidade.OBS = $('#txtObsCli').val();
          entidade.ATIVO = $('#cbAtivo').is(":checked") ? 'S' : 'N';
          entidade.BLOQUEIO = $('#cbBloqueado').is(":checked") ? 'S' : 'N';
          entidade.CONS_FINAL = $("#cbConsumidorFinal").is(":checked") ? "Sim" : "Nao";
          entidade.INTEGRA_SHOPP = $("#cbIntegraShop").is(":checked") ? "N" : "S";
          entidade.NUM_RG = $('#txtRG').val();
          entidade.EMI_RG = $('#txtEmissor').val();
          entidade.INSCRICAO = $('#txtIE').val();
          entidade.SEXO = $('#rgSexo').val();
          entidade.PORTE_EMPRESA = $("#rgPorteEmpresa").val();
          entidade.DT_NASC = $('#txtDataNascimento').val();
          entidade.COD_PAIS = pegaChave('#txtPais');
          entidade.CEP = cep;
          entidade.ENDERECO = $('#txtRua').val();
          entidade.NUMERO = $('#txtNumero').val();
          entidade.COMPLEMENTO = $('#txtComplemento').val();
          entidade.BAIRRO = $('#txtBairro').val();
          entidade.TIPO = verifica_cpf_cnpj($('#txtCNPJModalCli').val()) == 'CNPJ' ? '2' : '1';
          entidade.IE_DESTINATARIO = $('#rgIE').val();
          entidade.DDD_FONE = $('#txtDDD').val();
          entidade.TELEFONE = $('#txtTelefone').val();
          entidade.EMAIL = $('#txtEmail').val();
          validaCNPJ = verifica_cpf_cnpj(entidade.CNPJ);
          entidade.SIMPLES = validaCNPJ == 'CNPJ' ? 'N' : 'S';
          entidade.CEP_COB = cepCobranca;
          entidade.END_COB = $('#txtRuaCobranca').val();
          entidade.NUM_COB = $('#txtNumeroCobranca').val();
          entidade.COMP_COB = $('#txtComplementoCobranca').val();
          entidade.BAIRRO_COB = $('#txtBairroCobranca').val();
          entidade.CEP_ENT = cepEntrega;
          entidade.END_ENT = $('#txtRuaEntrega').val();
          entidade.NUM_ENT = $('#txtNumeroEntrega').val();
          entidade.REG_ESTADO = pegaChave('#txtRegiao');
          entidade.COMP_ENT = $('#txtComplementoEntrega').val();
          entidade.BAIRRO_ENT = $('#txtBairroEntrega').val();

          entidade.CRED_CONSIGNADO = $('#txtCreditoGrupoModal').val();
          entidade.CREDITO = $('#txtLimiteCredito').val();
          entidade.CREDITO_UTILIZADO = $('#txtLimiteUsado').val();

          entidade.LIMITE_FID = $('#txtLimiteFidelidade').val();
          entidade.LIMITE_UTIL_FID = $('#txtLimiteFidelidadeUsado').val();
          entidade.LOCAL_TRAB = $("#txtLocalTrab").val();
          entidade.ESTADO_CIVIL = $("#txtEstadoCivil").val();
          entidade.NOME_PAI = $("#txtNomePai").val();
          entidade.NOME_MAE = $("#txtNomeMae").val();
          entidade.RENDA = $("#txtRenda").val();
          entidade.DT_ADMISSAO = $("#txtDtAdmissao").val();

          entidade.CODREP = codrep
          entidade.TABELA = tabela
          entidade.SIMPLES = $("#rgTributacao").val() != '' ? $("#rgTributacao").val() : ($('#txtCNPJModalCli').val().length == 14 ? 'S' : 'A');
          entidade.GRUPO = pegaChave("#txtGrupo");
          entidade.CLASSE = pegaChave("#txtClasse");
          entidade.COD_CONF_XML = pegaChave('#txtConfXMLModal');
          entidade.MIDIAS_SOCIAIS = $('#txtMidiaSocial').val();
          entidade.INSC_COB = $('#txtInscCob').val();
          entidade.INSC_ENT = $('#txtInscEnt').val();
          entidade.TP_FRETE = $('#rgTipoFrete').val();
          entidade.TRANSPORTE = pegaChave('#txtTransportadoraModal');
          entidade.MOEDA = parseInt($('#txtMoedaModal').val()[0]);
          // const moedas = await formataListas($('#txtMoedaModal').val().toString());

          entidade.TIPO_ENTIDADE = '';
          if ($("#cbTipoCliente").is(":checked")) {
            entidade.TIPO_ENTIDADE += 'C';
          }
          if ($("#cbTipoFornecedor").is(":checked")) {
            entidade.TIPO_ENTIDADE += 'F';
          }
          if ($("#cbTipoTerceiros").is(":checked")) {
            entidade.TIPO_ENTIDADE += 'T';
          }
          if ($("#cbTipoRepresentante").is(":checked")) {
            entidade.TIPO_ENTIDADE += 'R';
          }
          if ($("#cbTipoProspecto").is(":checked")) {
            entidade.TIPO_ENTIDADE += 'P';
          }
          if ($("#cbTipoFuncionario").is(":checked")) {
            entidade.TIPO_ENTIDADE += 'E';
          }

          const dados = buscaDadosSetores();
          const dadosMoedas = buscaDadosMoedas();

          const setores = {
            setores: dados
          }
          const moedas = {
            moedas: dadosMoedas
          }

          if (cliente != 'create') {
            entidade.CODCLI = cliente
          }

          var response = await requisicao(cliente != 'create' ? 'PUT' : 'POST',
            '/Sisplan/Cliente/V1/Entidade?', `CODUSUARIO=${getCookie('cod_usuario')}&MOEDAS=${JSON.stringify(moedas)}&SETORES=${JSON.stringify(setores)}`, `LISTADIAS=${encodeURIComponent(JSON.stringify({ ARR_DIAS_VENCTO: [] }))}&JSON=${encodeURIComponent(JSON.stringify(entidade))}`, 30000)

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

          var jsonStr = await response.json()
          if (response.status != 200) {
            $.LoadingOverlay("hide");
            msgErro(jsonStr.mensagem)
            return
          }

          await cadastroEntidadeContabil(jsonStr[0].CODCLI);

          $.LoadingOverlay("hide");
          toastr.success(
            'Cadastro efetuado com sucesso!',
            'Confirmação', {
              toastClass: 'alert',
              iconClasses: {
                error: 'alert-error',
                info: 'alert-info',
                success: 'alert-success',
                warning: 'alert-warning'
              },
              positionClass: "toast-top-center",
              progressBar: true,
              timeOut: 3000,
              fadeOut: 1000,
              onHidden: function() {
                try {
                  $('#modal-cliente').modal('hide');
                  $('#txt-cliente').val();
                  insereValor('#txtCliente', jsonStr[0].CODCLI, jsonStr[0].NOME);
                  insereValor('#txt-cliente', jsonStr[0].CODCLI, jsonStr[0].NOME);
                  $('#btn_confirmar_cliente').trigger('click');
                } catch {
                  console.log('erro ao fechar o modal cliente');
                }
              }
            }
          ).css({
            "margin-top": "20%",
            "width": "500px",
            "max-width": "500px"
          });

        } catch (error) {
          console.error(error);
          $.LoadingOverlay("hide");
          msgErro('Não foi possível gravar os dados do cliente: ' + error)
        }
      }
    });

    async function BuscaCep(cepInput) {
      try {
        var cep = cepInput.val().replace('-', '').trim()
        var response = await requisicao('GET', '/sisplan/funcoes/v1/pesquisa?',
          `JSON={ "tabela":"CADCEP", "camposSelect":["CIDADE.NOME CIDADE", "CIDADE.COD_UF UF"], "leftJoin": [{"tabela": "CIDADE", "condicao": "CADCEP.CODMUN = CIDADE.CODIGO"}], "where": ["CADCEP.cep = '${cep}'"]}`,
          null)
        if (!response) {
          var cidade = ''
          var uf = ''
        } else {

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

          var cidade = jsonStr['RESULT'][0][0].CIDADE
          var uf = jsonStr['RESULT'][0][0].UF
        }
      } catch (error) {
        console.error(error);
        var cidade = ''
        var uf = ''
      }
      return [cidade, uf]
    };

    async function BuscaECadastraCep(cepInput) {
      try {
        $.LoadingOverlay("show");
        try {
          const cep = cepInput.val().replace('-', '').trim();
          const response = await requisicao('GET', '/sisplan/cep/v1/CEP?', `CEP=${cep}`, null);

          if (!response) {
            return;
          }

          const jsonStr = await response.json();
          if (response.status != 200) {
            msgAlerta(jsonStr.mensagem, () => {
              abreCadastroCep(cepInput)
            }, undefined, undefined);
            return;
          }

          return [jsonStr.nOMCIDADE, jsonStr.eSTCEP, jsonStr.nOMCEP, jsonStr.bAIRRO];

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

    async function abreCadastroCep(cepField) {
      $('#modal-CEP').attr('cepField', cepField[0].id)
      $('#modal-CEP').modal('show');
      $('#txt_Cep').val('');
      $('#txtEndereco').val('');
      $('#txtBairroCEP').val('');
      $('#txtUfCEPCadastro').val('');
      $('#txtCidadeCEPCadastro').val('');
      $('#txtPaisCEPCadastro').val('');
      if ((cepField.val() != '') || (cepField.val() != undefined) || (cepField.val() != null)) {
        $('#txt_Cep').val(`${cepField.val().substr(0, 5)}-${cepField.val().substr(-3)}`);
      }
    };

    let infoCep = '';

    $('#txtCep').blur(async function() {
      await limpaCep();
      infoCep = $('#txtCep');
      try {
        let retorno = await BuscaECadastraCep(infoCep);
        if (retorno != undefined) {
          if (retorno[0] != '') {
            $("#txtCidade").val(retorno[0]);
          }
          if (retorno[1] != '') {
            $("#txtUF").val(retorno[1]);
          }
          if (retorno[2] != '') {
            $("#txtRua").val(retorno[2]);
          }
          if (retorno[3] != '') {
            $("#txtBairro").val(retorno[3]);
          }
        }
      } catch (error) {
        console.error(error);
      }
    });

    $('#txtCepEntrega').blur(async function() {
      await limpaCepEntrega()
      infoCep = $('#txtCepEntrega');
      try {
        let retorno = await BuscaECadastraCep(infoCep);
        if (retorno != undefined) {
          if (retorno[0] != '') {
            $("#txtCidadeEntrega").val(retorno[0]);
          }
          if (retorno[1] != '') {
            $("#txtUFEntrega").val(retorno[1]);
          }
          if (retorno[2] != '') {
            $("#txtRuaEntrega").val(retorno[2]);
          }
          if (retorno[3] != '') {
            $("#txtBairroEntrega").val(retorno[3]);
          }
        }
      } catch (error) {
        console.error(error);
      }
    });

    $('#txtCepCobranca').blur(async function() {
      await limpaCepCobranca();
      infoCep = $('#txtCepCobranca');
      try {
        let retorno = await BuscaECadastraCep(infoCep);
        if (retorno != undefined) {
          if (retorno[0] != '') {
            $("#txtCidadeCobranca").val(retorno[0]);
          }
          if (retorno[1] != '') {
            $("#txtUFCobranca").val(retorno[1]);
          }
          if (retorno[2] != '') {
            $("#txtRuaCobranca").val(retorno[2]);
          }
          if (retorno[3] != '') {
            $("#txtBairroCobranca").val(retorno[3]);
          }
        }
      } catch (error) {
        console.error(error);
      }
    });

    $("#btnLimpaCep").on('click', function() {
      limpaCep()
    });

    $("#btnLimpaCepEntrega").on('click', function() {
      limpaCepEntrega()
    });

    $("#btnLimpaCepCobranca").on('click', function() {
      limpaCepCobranca()
    });

    async function limpaCep() {
      $('#txtCidade').val('');
      $('#txtUF').val('');
      $('#txtRua').val('');
      $('#txtNumero').val('');
      $('#txtBairro').val('');
    }

    async function limpaCepEntrega() {
      $('#txtCidadeEntrega').val('');
      $('#txtUFEntrega').val('');
      $('#txtRuaEntrega').val('');
      $('#txtNumeroEntrega').val('');
      $('#txtBairroEntrega').val('');
    }

    async function limpaCepCobranca() {
      $('#txtCidadeCobranca').val('');
      $('#txtUFCobranca').val('');
      $('#txtRuaCobranca').val('');
      $('#txtNumeroCobranca').val('');
      $('#txtBairroCobranca').val('');
    }
    async function limpaCampos() {
      $('#txtCNPJModalCli').val('');
      $('#txtCNPJModalCli').attr('disabled', false);
      //valores padrões
      $('#rgIE').val('9').change();
      $('#txtDataCadastro').val(new Date().toISOString().slice(0, 10));
      $('#txtDataAlteracao').val(new Date().toISOString().slice(0, 10));
      $('#txtDataNascimento').val('1980-01-01');
      $('#rgSexo').val("M").change();
      $('rgPorteEmpresa').val('');
      $('#txtCodCli').val('create');
      $('#txtNome').val('');
      $('#txtFantasia').val('');
      $('#txtObsCli').val('');
      $('#cbAtivo').prop('checked', true);
      if (cadastraEntidadeBloqueada != 1) {
        $('#cbBloqueado').prop('checked', false);
      };
      $('#cbIntegraShop').prop('checked', false);
      $('#cbConsumidorFinal').prop('checked', true);
      $('#txtRG').val('');
      $('#txtEmissor').val('');
      $('#txtIE').val('');
      $('#txtCep').val('');
      $('#txtPais').val('');
      $('#txtRua').val('');
      $('#txtNumero').val('');
      $('#txtComplemento').val('');
      $('#txtBairro').val('');
      $('#txtCidade').val('');
      $('#txtUF').val('');
      $('#txtDDD').val('');
      $('#txtTelefone').val(''.TELEFONE);
      $('#txtEmail').val('');
      $('#txtCepEntrega').val('');
      $('#txtRuaEntrega').val('');
      $('#txtNumeroEntrega').val('');
      $('#txtComplementoEntrega').val('');
      $('#txtBairroEntrega').val('');
      $('#txtCidadeEntrega').val('');
      $('#txtUFEntrega').val('');
      $('#txtCepCobranca').val('');
      $('#txtRuaCobranca').val('');
      $('#txtNumeroCobranca').val('');
      $('#txtComplementoCobranca').val('');
      $('#txtBairroCobranca').val('');
      $('#txtCidadeCobranca').val('');
      $('#txtUFCobranca').val('');
      $('#txtRepresentante-modal').val('');
      $('#txtCreditoGrupoModal').val('');
      $('#txtLimiteCredito').val('');
      $('#txtLimiteUsado').val(0);
      $('#txtLimiteDisponivel').val(0);
      $('#txtLimiteFidelidade').val(0);
      $('#txtLimiteFidelidadeUsado').val(0);
      $('#txtLimiteFidelidadeDisponivel').val(0);
      $('#txtTabela-modal').val('');
      $('#txtCodigoCliente').val('');
      $('#txtLocalTrab').val('');
      $('#txtInscCob').val('');
      $('#txtInscCob').val('');
      $('#txtContaClienteModal').val('');
      $('#txtContaCAdiantamentoModal').val('');
      $('#txtContaCDevolucaoModal').val('');
      $('#txtContaFornecedorModal').val('');
      $('#txtContaFAdiantamentoModal').val('');
      $('#txtContaFDevolucaoModal').val('');
      $('#txtMoedaModal').empty().trigger('change');
      $("#cbTipoCliente").prop("checked", false);
      $("#cbTipoFornecedor").prop("checked", false);
      $("#cbTipoTerceiros").prop("checked", false);
      $("#cbTipoRepresentante").prop("checked", false);
      $("#cbTipoProspecto").prop("checked", false);
      $("#cbTipoFuncionario").prop("checked", false);
    };

    $(`#btnCep`).pesquisa_serverside([`#txtCep`, `#txtCepInv`], ["CADCEP.CEP", "CIDADE.NOME"], ["CADCEP.CEP", "CIDADE.NOME"], '{"tabela":"CADCEP", "camposSelect":["CADCEP.CEP", "CIDADE.NOME", "CIDADE.COD_UF"], "leftJoin": [{"tabela": "CIDADE", "condicao": "CADCEP.CODMUN = CIDADE.CODIGO"}], "where": null}', 'Pesquisa de CEP', '', [true, true]);
    $(`#btnCepEntrega`).pesquisa_serverside([`#txtCepEntrega`, `#txtCepInv`], ["CADCEP.CEP", "CIDADE.NOME"], ["CADCEP.CEP", "CIDADE.NOME"], '{"tabela":"CADCEP", "camposSelect":[ "CADCEP.CEP", "CIDADE.NOME", "CIDADE.COD_UF"],  "leftJoin": [{"tabela": "CIDADE", "condicao": "CADCEP.CODMUN = CIDADE.CODIGO"}],  "where": null}', 'Pesquisa de CEP', '', [true, true]);
    $(`#btnCepCobranca`).pesquisa_serverside([`#txtCepCobranca`, `#txtCepInv`], ["CADCEP.CEP", "CIDADE.NOME"], ["CADCEP.CEP", "CIDADE.NOME"], '{"tabela":"CADCEP", "camposSelect":[ "CADCEP.CEP", "CIDADE.NOME", "CIDADE.COD_UF"],  "leftJoin": [{"tabela": "CIDADE", "condicao": "CADCEP.CODMUN = CIDADE.CODIGO"}],  "where": null}', 'Pesquisa de CEP', '', [true, true]);

    $('#txtRepresentante-modal').autocompleta(1, `JSON={ "tabela":"represen", "camposSelect":[ "codrep chave", "nome descricao"], "where": null}`);
    $('#txtTabela-modal').autocompleta(1, `JSON={ "tabela":"regiao", "camposSelect":[ "regiao chave", "descricao descricao"], "where": null}`);
    $('#txtContaClienteModal').autocompleta(1, `JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO CHAVE", "DESCRICAO DESCRICAO"], "where": null}`);
    $('#txtContaCAdiantamentoModal').autocompleta(1, `JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO CHAVE", "DESCRICAO DESCRICAO"], "where": null}`);
    $('#txtContaCDevolucaoModal').autocompleta(1, `JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO CHAVE", "DESCRICAO DESCRICAO"], "where": null}`);
    $('#txtContaFornecedorModal').autocompleta(1, `JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO CHAVE", "DESCRICAO DESCRICAO"], "where": null}`);
    $('#txtContaFAdiantamentoModal').autocompleta(1, `JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO CHAVE", "DESCRICAO DESCRICAO"], "where": null}`);
    $('#txtContaFDevolucaoModal').autocompleta(1, `JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO CHAVE", "DESCRICAO DESCRICAO"], "where": null}`);
    $('#txtAddSetor').autocompleta(1, `JSON={ "tabela":"CADFLUXO", "camposSelect":[ "CODIGO CHAVE", "DESCRICAO DESCRICAO"], "where": null}`);
    $('#txtSetor').pesquisa_variosServerside(1, '{ "tabela":"CADFLUXO", "camposSelect":[ "CODIGO", "DESCRICAO" ], "where": null}', 'CODIGO', 'DESCRICAO');
    $("#txtAddMoeda").autocompleta(1, `JSON={ "tabela":"MOEDA", "camposSelect":["CODMOE CHAVE, DESCRICAO"], "where": [] }`);

    // AUTOCOMPLETA ADICIONADO NA PAGE DA VENDA E DA DEVOLUCAO
    // $('#txtMoedaModal').pesquisa_variosServerside(1, '{ "tabela":"MOEDA", "camposSelect":[ "CODMOE", "DESCRICAO" ], "where": null}', 'CODMOE', 'DESCRICAO');

    $('#btn-contaclienteModal').pesquisa('#txtContaClienteModal', 'CODIGO', 'DESCRICAO', `/sisplan/funcoes/v1/pesquisa?JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO", "DESCRICAO"]}`, 'Pesquisa Conta Cliente', 'CONTA_CONT');
    $('#btn-CadiantamentoModal').pesquisa('#txtContaCAdiantamentoModal', 'CODIGO', 'DESCRICAO', `/sisplan/funcoes/v1/pesquisa?JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO", "DESCRICAO"]}`, 'Pesquisa Conta Cliente', 'CONTA_CONT');
    $('#btn-CdevolucaoModal').pesquisa('#txtContaCDevolucaoModal', 'CODIGO', 'DESCRICAO', `/sisplan/funcoes/v1/pesquisa?JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO", "DESCRICAO"]}`, 'Pesquisa Conta Cliente', 'CONTA_CONT');
    $('#btn-contafornecedorModal').pesquisa('#txtContaFornecedorModal', 'CODIGO', 'DESCRICAO', `/sisplan/funcoes/v1/pesquisa?JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO", "DESCRICAO"]}`, 'Pesquisa Conta Fornecedor', 'CONTA_CONT');
    $('#btn-FadiantamentoModal').pesquisa('#txtContaFAdiantamentoModal', 'CODIGO', 'DESCRICAO', `/sisplan/funcoes/v1/pesquisa?JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO", "DESCRICAO"]}`, 'Pesquisa Conta Cliente', 'CONTA_CONT');
    $('#btn-FdevolucaoModal').pesquisa('#txtContaFDevolucaoModal', 'CODIGO', 'DESCRICAO', `/sisplan/funcoes/v1/pesquisa?JSON={ "tabela":"CONTA_CONT", "camposSelect":[ "CODIGO", "DESCRICAO"]}`, 'Pesquisa Conta Cliente', 'CONTA_CONT');
    $('#btnMoedaModal').pesquisa_serversideSel('#txtMoedaModal', `{ "tabela":"MOEDA", "camposSelect":[ "CODMOE", "DESCRICAO"], "where": null}`, 'Pesquisa de Moeda');
    $('#btnAddSetor').pesquisa('#txtAddSetor', 'CODIGO', 'DESCRICAO', `/sisplan/funcoes/v1/pesquisa?JSON={ "tabela":"CADFLUXO", "camposSelect":[ "CODIGO", "DESCRICAO"]}`, 'Pesquisa Setor', 'CADFLUXO');
    $('#btnSetor').pesquisa_serversideSel('#txtSetor', `{ "tabela":"CADFLUXO", "camposSelect":[ "CODIGO", "DESCRICAO"], "where": null}`, 'Pesquisa de Setor');
    $("#btnAddMoeda").pesquisa("#txtAddMoeda", "CODMOE", "DESCRICAO", '/sisplan/funcoes/v1/pesquisa?JSON={ "tabela":"MOEDA", "camposSelect":[ "CODMOE", "DESCRICAO" ], "where": null}', "Pesquisa Moeda", "MOEDA");

    $("#btn-limpa-contaclienteModal").on('click', function() {
      $('#txtContaClienteModal').val('');
    });

    $("#btn-limpa-CadiantamentoModal").on('click', function() {
      $('#txtContaCAdiantamentoModal').val('');
    });

    $("#btn-limpa-CdevolucaoModal").on('click', function() {
      $('#txtContaCDevolucaoModal').val('');
    });

    $("#btn-limpa-contafornecedorModal").on('click', function() {
      $('#txtContaFornecedorModal').val('');
    });

    $("#btn-limpa-FadiantamentoModal").on('click', function() {
      $('#txtContaFAdiantamentoModal').val('');
    });

    $("#btn-limpa-FdevolucaoModal").on('click', function() {
      $('#txtContaFDevolucaoModal').val('');
    });

    $("#btn-limpa-moedaModal").on('click', function() {
      $('#txtMoedaModal').empty().trigger('change');
    });

    $("#btnLimpaAddSetor").on('click', function() {
      $('#txtAddSetor').val('');
    });

    $('txtRepresentante-modal')

    $('#btn-representante-modal').pesquisa('#txtRepresentante-modal', "CODREP", "NOME", `/sisplan/funcoes/v1/pesquisa?JSON={ "tabela":"represen", "camposSelect":[ "codrep", "nome"]}`, "Pesquisa Representante", "represen");
    $('#btn-Arepresentante-modal').on('click', function() {
      $('#txtRepresentante-modal').val('');
    });

    $('#btn-tabela-modal').pesquisa('#txtTabela-modal', "REGIAO", "DESCRICAO", `/sisplan/funcoes/v1/pesquisa?JSON={ "tabela": "regiao", "camposSelect":[ "regiao", "descricao"] }`, "Pesquisa Tabela", "regiao");
    $('#btn-Atabela-modal').on('click', function() {
      $('#txtTabela-modal').val('');
    });

    $('#lblSetor').on('click', function() {
      $('#modalVinculaSetor').modal('show');
    });

    $('#tabelaSetor').DataTable({
      paging: false,
      filter: false,
      info: false,
      order: true,
      destroy: true,
      "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"
        }
      }
    });

    function retornaBotaoOpcoes(data) {
      var retorno = '<div style="text-align:start;"> ' +
        '    <button class="btn btn-info btn-sm dropdown-toggle btnVerificaOpcoes" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> ' +
        '      ' + data + ' ' +
        '    </button> ' +
        '    <div class="dropdown-menu"> ' +
        '    <button class="dropdown-item" type="button" title="Excluir" id="btn-excluir">Excluir</button>  ' +
        '</div>';
      return retorno;
    };

    $('#txtAdicionarSetor').on('click', async function() {
      $('#tabelaSetor').DataTable().rows().data().toArray().filter((item) => {
        let codigoTabela = item[0].match(/\d+/)[0];
        let codigoInput = pegaChave('#txtAddSetor');
        if (codigoTabela == codigoInput) {
          throw msgAlerta(`Não pode inserir duas vezes o mesmo código de setor (${codigoInput}), verifique!`);
        }
      })
      if (!$('#txtAddSetor').val()) {
        throw msgAlerta('Código de setor não preenchido, impossível continuar!')
      }
      $('#tabelaSetor')
        .DataTable()
        .row
        .add([
          retornaBotaoOpcoes(pegaChave('#txtAddSetor')),
          pegaDescricao('#txtAddSetor'),
          $('#txtPerc100').val(),
          $('#txtPercPontualidade').val(),
          $('#txtPercQual').val(),
        ]).draw(false);

      $('#txtAddSetor').val('')
      $('#txtPerc100').val('')
      $('#txtPercPontualidade').val('')
      $('#txtPercQual').val('')
    });

    $('#tabelaSetor').on('click', '#btn-excluir', async function() {
      msgAlerta('Você realmente deseja excluir esse registro?', async () => {
        const data = $("#tabelaSetor").DataTable().row($(this).parents("tr"));
        await excluirSetor(data);
        data.remove().draw(false);
        // if ($('#txtSetor').val() != '') {
        let newInput = atualizaInputSetor();
        $('#txtSetor').empty().trigger('change');
        await insereValorPesquisaVarios('txtSetor', 'CODIGO', 'DESCRICAO', newInput);
        // }
      });
    });


    function buscaDadosSetores() {
      const tabelaSetor = $('#tabelaSetor').DataTable().rows().data().toArray();

      const dados = tabelaSetor.map((item) => ({
        codCli: $('#txtCodCli').val(),
        setor: item[0].match(/\d+/)[0],
        percentual100: item[2],
        percentualPontualidade: item[3],
        percentualQualidade: item[4],
      }))

      return dados
    }

    $('#txtGravarAddSetor').on('click', async function() {
      if ($('#tabelaSetor').DataTable().rows().data().toArray().length == 0) {
        throw msgAlerta('Nenhum registro na tabela, impossível continuar!')
      }
      try {
        $.LoadingOverlay('show');
        const dados = buscaDadosSetores();

        const body = {
          setores: dados
        }

        const response = await requisicao('POST', `/sisplan/cliente/v1/gravasetores?`, '', JSON.stringify(body), 15000);

        if (!response) {
          return
        }

        if (response.status != 200) {
          throw msgAlerta('Setores não cadastrados, verifique!')
        }

        toastr.success(
          `Cadastro efetuado com sucesso!`,
          'Confirmação', {
            toastClass: 'alert',
            iconClasses: {
              error: 'alert-error',
              info: 'alert-info',
              success: 'alert-success',
              warning: 'alert-warning'
            },
            positionClass: "toast-top-center",
            progressBar: true,
            timeOut: 3000,
            fadeOut: 1000,
          }
        ).css({
          "margin-top": "20%",
          "width": "500px",
          "max-width": "500px"
        });

      } catch (err) {
        console.log(err)
      } finally {
        $.LoadingOverlay('hide');
      }
    });

    async function excluirSetor(data) {
      try {
        $.LoadingOverlay("show");
        try {
          let codSetor = data.data()[0].match(/\d+/)[0];
          let response = await requisicao("DELETE", "/sisplan/cliente/v1/excluirsetor?", `SETOR=${encodeURIComponent(codSetor)}&CODCLI=${$('#txtCodCli').val()}`, null);
          if (!response) {
            return;
          }

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

          toastr.success("Exclusão efetuada com sucesso!", "Confirmação", {
            toastClass: "success",
            iconClasses: {
              error: "alert-error",
              info: "alert-info",
              success: "alert-success",
              warning: "alert-warning",
            },
            positionClass: "toast-top-center",
            progressBar: true,
            timeOut: 3000,
            fadeOut: 1000,
          }).css({
            "margin-top": "20%",
            width: "500px",
            "max-width": "500px",
          });

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

    function atualizaInputSetor() {
      let array = []
      $('#tabelaSetor').DataTable().rows().data().toArray().filter((item) => {
        const codigo = item[0].match(/\d+/)[0]; // Extrai o código da primeira coluna
        const descricao = item[1];

        array.push({
          CODIGO: codigo,
          DESCRICAO: descricao
        });
      })

      return array
    }
    $('#tabelaMoedas').on('click', '#btn-excluir', async function() {
      msgAlerta('Você realmente deseja excluir esse registro?', async () => {
        const data = $("#tabelaMoedas").DataTable().row($(this).parents("tr"));
        await excluirMoeda(data);
        data.remove().draw(false);
        let newInput = atualizaInputMoeda();
        $('#txtMoeda').empty().trigger('change');
        await insereValorPesquisaVarios('txtMoeda', 'CODMOE', 'DESCRICAO', newInput);
      });
    });

    async function excluirMoeda(data) {
      try {
        $.LoadingOverlay("show");
        try {
          let codMoe = data.data()[0].match(/\d+/)[0];
          let response = await requisicao("DELETE", "/sisplan/cliente/v1/excluirmoeda?", `CODMOE=${encodeURIComponent(codMoe)}&CODCLI=${$('#txtCodCli').val()}`, null);
          if (!response) {
            return;
          }

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

          toastr.success("Exclusão efetuada com sucesso!", "Confirmação", {
            toastClass: "success",
            iconClasses: {
              error: "alert-error",
              info: "alert-info",
              success: "alert-success",
              warning: "alert-warning",
            },
            positionClass: "toast-top-center",
            progressBar: true,
            timeOut: 3000,
            fadeOut: 1000,
          }).css({
            "margin-top": "20%",
            width: "500px",
            "max-width": "500px",
          });

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

    $('#lblMoeda').on('click', function() {
      $('#modalVinculaMoeda').modal('show');
    });

    function atualizaInputMoeda() {
      let array = []
      $('#tabelaMoedas').DataTable().rows().data().toArray().filter((item) => {
        const codmoe = item[0].match(/\d+/)[0];
        const descricao = item[1];
        array.push({
          CODMOE: codmoe,
          DESCRICAO: descricao
        });
      })
      return array
    }

    $('#tabelaMoedas').DataTable({
      paging: false,
      filter: false,
      info: false,
      order: true,
      destroy: true,
      "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"
        }
      }
    });

    $('#txtAdicionarMoeda').on('click', async function() {
      $('#tabelaMoedas').DataTable().rows().data().toArray().filter((item) => {
        let codigoTabela = item[0].match(/\d+/)[0];
        let codigoInput = pegaChave('#txtAddMoeda');
        if (codigoTabela == codigoInput) {
          throw msgAlerta(`Não pode inserir duas vezes o mesmo código de Moeda (${codigoInput}), verifique!`);
        }
      })
      if (!$('#txtAddMoeda').val()) {
        throw msgAlerta('Código de moeda não preenchido, impossível continuar!')
      }
      $('#tabelaMoedas')
        .DataTable()
        .row
        .add([
          retornaBotaoOpcoes(pegaChave('#txtAddMoeda')),
          pegaDescricao('#txtAddMoeda'),
        ]).draw(false);

      $('#txtAddMoeda').val('')
    });

    function buscaDadosMoedas() {
      const tabelaMoedas = $('#tabelaMoedas').DataTable().rows().data().toArray();

      const dados = tabelaMoedas.map((item) => ({
        codCli: $('#txtCodCli').val(),
        codMoe: item[0].match(/\d+/)[0],
      }))

      return dados
    }

    async function retornaCaptcha() {
      let response;
      try {
        if (usaCertificadoA3 == '1') {
          response = await requisicao_ecf('GET', '/cliente/retornacaptcha?', '', '', 60000);
        } else {
          response = await requisicao('GET', '/sisplan/cliente/v1/captcha?', '', '', 60000);
        }

        if (!response) {
          throw new Error();
        }

        jsonCaptcha = await response.json();
        if (response.status != 200) {
          throw new Error(jsonCaptcha.mensagem);
        }

        $("#imagemCaptcha").css("width", "300px");
        $('#imagemCaptcha').attr('src', `data:image/png;base64,${jsonCaptcha.imagemCaptcha}`);

      } catch (error) {
        console.error(error);
        $("#imagemCaptcha").css("width", "250px");
        $("#imagemCaptcha").attr('src', `${BASE_URI}/dist/img/captcha.png`);
        msgAlerta("Não foi possível retornar o captcha, a consulta na Receita Federal pode estar indisponível! Tente novamente mais tarde.");
      }
    };

    async function limpaCamposConsultaCadastral() {
      $('#txtCNPJConsulta').val('');
      $('#txtCaptcha').val('');
      $('#txtRazaoSocialConsulta').val('');
      $('#txtFantasiaConsulta').val('');
      $('#txtDataAbertuta').val('');
      $('#txtRuaConsulta').val('');
      $('#txtBairroConsulta').val('');
      $('#txtNumeroConsulta').val('');
      $('#txtMunicipioConsulta').val('');
      $('#txtUFConsulta').val('');
      $('#txtCEPConsulta').val('');
      $('#txtComplementoConsulta').val('');
      $('#txtSituacaoCadastralConsulta').val('');
      $('#txtDataSituacaoConsulta').val('');
      $('#txtIEConsulta').val('');
    };

    $("#btnconsultaCadastral").on('click', async function() {
      const cnpj = $("#txtCNPJModalCli").val();
      if (cnpj != "") {
        $('#txtCNPJConsulta').val(cnpj);
      } else {
        throw msgAlerta("Necessário informar um CNPJ!");
      }

      $("#modal-consultaCadastral").modal("show");
      await consultaReceita(cnpj);
      // await retornaCaptcha();
    });

    $("#btnReconsultar").on("click", async function() {
      const cnpj = $("#txtCNPJConsulta").val();
      await consultaReceita(cnpj);
    })

    $("#btnImportarConsulta").on('click', async function() {
      $('#txtCNPJModalCli').val(formata_cpf_cnpj($("#txtCNPJConsulta").val()));
      $('#txtNome').val($('#txtRazaoSocialConsulta').val());
      $('#txtFantasia').val($('#txtFantasiaConsulta').val());
      $('#txtDataNascimento').val($('#txtDataAbertuta').val());
      $('#txtRua').val($('#txtRuaConsulta').val());
      $('#txtBairro').val($('#txtBairroConsulta').val());
      $('#txtNumero').val($('#txtNumeroConsulta').val());
      $('#txtCidade').val($('#txtMunicipioConsulta').val());
      $('#txtUF').val($('#txtUFConsulta').val());
      $('#txtCep').val($('#txtCEPConsulta').val());
      $('#txtComplemento').val($('#txtComplementoConsulta').val());
      $('#txtIE').val($('#txtIEConsulta').val());

      if (($('#txtIEConsulta').val() != '') && (verifica_cpf_cnpj($('#txtCNPJConsulta').val()) == 'CNPJ')) {
        $('#rgIE').val(1);
      } else if (($('#txtIEConsulta').val() == '') && (verifica_cpf_cnpj($('#txtCNPJConsulta').val()) == 'CNPJ')) {
        $('#rgIE').val(2);
      } else if (($('#txtIEConsulta').val() == '') && (verifica_cpf_cnpj($('#txtCNPJConsulta').val()) == 'CPF')) {
        $('#rgIE').val(3);
      } else if (($('#txtIEConsulta').val() != '') && (verifica_cpf_cnpj($('#txtCNPJConsulta').val()) == 'CPF')) {
        $('#rgIE').val(1);
      }

      $('#txtCNPJModalCli').prop('disabled', true);
      await limpaCamposConsultaCadastral();
      $("#modal-consultaCadastral").modal("hide");
    });

    $("#btnConsultarReceita").on('click', async function() {
      if ($('#txtCNPJConsulta').val() == '' && $('#txtCaptcha').val() == '' || $('#txtCaptcha').val() == '' || $('#txtCNPJConsulta').val() == '') {
        await msgAlerta('Para realizar a consulta é necessário preencher o CNPJ e o Captcha!');
        return;
      }

      let consultaReceita;

      if (usaCertificadoA3 == '1') {
        consultaReceita = await retornaConsultaWWW($('#txtCNPJConsulta').val(), $('#txtCaptcha').val(), jsonCaptcha, $('#txtUF').val(), usaCertificadoA3);
      } else {
        consultaReceita = await retornaConsultaWWW($('#txtCNPJConsulta').val(), $('#txtCaptcha').val(), jsonCaptcha, $('#txtUF').val());
      }


      $('#txtRazaoSocialConsulta').val(consultaReceita.NOME);
      $('#txtFantasiaConsulta').val(consultaReceita.FANTASIA);
      $('#txtDataAbertuta').val(consultaReceita.DT_NASC.slice(0, 10));
      $('#txtRuaConsulta').val(consultaReceita.ENDERECO);
      $('#txtBairroConsulta').val(consultaReceita.BAIRRO);
      $('#txtNumeroConsulta').val(consultaReceita.NUMERO);
      $('#txtCEPConsulta').val(consultaReceita.CEP);
      $('#txtComplementoConsulta').val(consultaReceita.COMPLEMENTO);
      $('#txtSituacaoCadastralConsulta').val(consultaReceita.SIT_CLI);
      $('#txtDataSituacaoConsulta').val(consultaReceita.DATA_CAD.slice(0, 10));
      $('#txtIEConsulta').val(consultaReceita.INSCRICAO);

      await BuscaECadastraCep($("#txtCEPConsulta"));
      let retorno = await BuscaCep($("#txtCEPConsulta"));

      $("#txtMunicipioConsulta").val(retorno[0]);
      $("#txtUFConsulta").val(retorno[1]);

    });

    $("#divImagemCaptcha").on('click', async function() {
      await retornaCaptcha();
    });

    $("#btnFecharConsulta").on('click', function() {
      $("#modal-consultaCadastral").modal("hide");
    });

    $("#btnCloseConsultaCadastral").on('click', function() {
      $("#modal-consultaCadastral").modal("hide");
    });

    $('#modal-cliente').on('shown.bs.modal', async function() {
      if (!$('#modal-consultaCadastral').hasClass('modal show')) { // condição para não limpar os campos quando abrir a consulta cadastral
        limpaCampos();
        insereValor('#txtPais', '1058', 'BRASIL');
      }

    });

    async function cadastroEntidadeContabil(codcli) {
      try {

        const entidadecontabil = {
          CODCLI: codcli,
          CON_CLI: pegaChave('#txtContaClienteModal'),
          ADI_CLI: pegaChave('#txtContaCAdiantamentoModal'),
          DEV_CLI: pegaChave('#txtContaCDevolucaoModal'),
          CON_FOR: pegaChave('#txtContaFornecedorModal'),
          ADI_FOR: pegaChave('#txtContaFAdiantamentoModal'),
          DEV_FOR: pegaChave('#txtContaFDevolucaoModal')
        };

        let response = await requisicao("POST", "/sisplan/cliente/V1/entidadecontabil?", `JSON=${encodeURIComponent(JSON.stringify(entidadecontabil))}&CODUSUARIO=${getCookie('cod_usuario')}`);

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

        if (jsonStr.RESULT[0].length <= 0) {
          msgAlerta("Erro ao gravar dados da conta");
          return;
        }

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

    async function buscaRegiao() {
      const usuarioLogado = getCookie('cod_usuario');
      const repCadastrado = await buscaValor('ACESSO_USUARIOS', 'CODREP', 'CODIGO', usuarioLogado);
      const buscaRegiao = await CopiaParametro('VENDA', 77);

      if (repCadastrado !== undefined && typeof repCadastrado === 'object') {
        if (buscaRegiao == '1') {
          const regiao = await buscaDepositoUltimoMovimento(repCadastrado.CODREP);
          insereValor('#txtRegiao', regiao.REGIAO, regiao.DESC_REGIAO);
        }
      }
    }

    async function buscaDadosEntidadeContabil(cliente) {
      try {
        var response = await requisicao(
          "GET",
          "/Sisplan/Funcoes/v1/pesquisa?",
          `JSON={ "tabela":"CONT_ENTIDADE", "camposSelect":["CODCLI", "CON_CLI", "ADI_CLI", "DEV_CLI", "CON_FOR", "ADI_FOR", "DEV_FOR"], "where": ["CODCLI = '${cliente}'"]}`,
          null
        );
        if (!response) {
          return;
        }
        var jsonStr = await response.json();

        try {
          let resposta1 = await requisicao(
            "GET",
            "/Sisplan/Funcoes/v1/pesquisa?",
            `JSON={ "tabela":"conta_cont", 
                    "camposSelect":["descricao"], 
                    "where": ["codigo = '${jsonStr.RESULT[0][0].CON_CLI}'"]}`,
            null
          );


          let jsonStr1 = await resposta1.json();

          insereValor(
            $("#txtContaClienteModal"),
            jsonStr.RESULT[0][0].CON_CLI,
            jsonStr1.RESULT[0][0].DESCRICAO
          );
        } catch (error) {}
        try {
          let resposta2 = await requisicao(
            "GET",
            "/Sisplan/Funcoes/v1/pesquisa?",
            `JSON={ "tabela":"conta_cont", 
                      "camposSelect":["descricao"], 
                      "where": ["codigo = '${jsonStr.RESULT[0][0].ADI_CLI}'"]}`,
            null
          );

          let jsonStr2 = await resposta2.json();

          insereValor(
            $("#txtContaCAdiantamentoModal"),
            jsonStr.RESULT[0][0].ADI_CLI,
            jsonStr2.RESULT[0][0].DESCRICAO
          );
        } catch (error) {}

        try {
          let resposta3 = await requisicao(
            "GET",
            "/Sisplan/Funcoes/v1/pesquisa?",
            `JSON={ "tabela":"conta_cont", 
                        "camposSelect":["descricao"], 
                        "where": ["codigo = '${jsonStr.RESULT[0][0].DEV_CLI}'"]}`,
            null
          );


          let jsonStr3 = await resposta3.json();

          insereValor(
            $("#txtContaCDevolucaoModal"),
            jsonStr.RESULT[0][0].DEV_CLI,
            jsonStr3.RESULT[0][0].DESCRICAO
          );
        } catch (error) {}

        try {
          let resposta4 = await requisicao(
            "GET",
            "/Sisplan/Funcoes/v1/pesquisa?",
            `JSON={ "tabela":"conta_cont", 
                          "camposSelect":["descricao"], 
                          "where": ["codigo = '${jsonStr.RESULT[0][0].CON_FOR}'"]}`,
            null
          );

          let jsonStr4 = await resposta4.json();

          insereValor(
            $("#txtContaFornecedorModal"),
            jsonStr.RESULT[0][0].CON_FOR,
            jsonStr4.RESULT[0][0].DESCRICAO
          );
        } catch (error) {}

        try {
          let resposta5 = await requisicao(
            "GET",
            "/Sisplan/Funcoes/v1/pesquisa?",
            `JSON={ "tabela":"conta_cont", 
                            "camposSelect":["descricao"], 
                            "where": ["codigo = '${jsonStr.RESULT[0][0].ADI_FOR}'"]}`,
            null
          );

          let jsonStr5 = await resposta5.json();

          insereValor(
            $("#txtContaFAdiantamentoModal"),
            jsonStr.RESULT[0][0].ADI_FOR,
            jsonStr5.RESULT[0][0].DESCRICAO
          );
        } catch (error) {}

        try {
          let resposta6 = await requisicao(
            "GET",
            "/Sisplan/Funcoes/v1/pesquisa?",
            `JSON={ "tabela":"conta_cont", 
                              "camposSelect":["descricao"], 
                              "where": ["codigo = '${jsonStr.RESULT[0][0].DEV_FOR}'"]}`,
            null
          );

          let jsonStr6 = await resposta6.json();

          insereValor(
            $("#txtContaFDevolucaoModal"),
            jsonStr.RESULT[0][0].DEV_FOR,
            jsonStr6.RESULT[0][0].DESCRICAO
          );
        } catch (error) {}


      } catch (error) {
        console.error(error);
        msgErro('Erro ao buscar dados do banco');
      }
    }

    async function carregaValoresPadroes() {
      const pesquisa = {
        camposSelect: ['CAMPO', 'VALOR'],
        tabela: 'TABPADRAO',
        where: [`TABPADRAO.TABELA = 'ENTIDADE'`]
      }
      const jsonStr = await retornaJsonPesquisaPadrao(JSON.stringify(pesquisa));

      jsonStr.map(async item => {
        switch (item.CAMPO) {
          case 'GRUPO_CLI': {
            insereValor('#txtGrupo', item.VALOR, {tabela: 'GRUPO_CLI', campoBusca: 'DESCRICAO', campoWhere: 'CODIGO', valorWhere: item.VALOR});
            break;
          }
          case 'SIT_DUP': {
            insereValor('#txtCstIpiSaida', item.VALOR, {tabela: 'TABSIT', campoBusca: 'DESCRICAO', campoWhere: 'CODIGO', valorWhere: item.VALOR});
            break;
          }
          case 'IE_DESTINATARIO': {
            $('#rgIE').val(item.VALOR).change();
            break;
          }
          case 'CODREP': {
            insereValor('#txtRepresentante-modal', item.VALOR, {tabela: 'REPRESEN', campoBusca: 'NOME', campoWhere: 'CODREP', valorWhere: item.VALOR});
            break;
          }
          case 'CONS_FINAL': {
            $('#cbConsumidorFinal').prop('checked', item.VALOR != 'Nao');
            break;
          }
          case 'TRANSPORTE': {
            insereValor('#txtTransportadoraModal', item.VALOR, {tabela: 'TABTRAN', campoBusca: 'NOME', campoWhere: 'CODIGO', valorWhere: item.VALOR});
            break;
          }
          case 'TP_FRETE': {
            $('#rgTipoFrete').val(item.VALOR).change();
            break;
          }
          case 'CLASSE': {
            insereValor('#txtClasse', item.VALOR, {tabela: 'CLASSE_GER', campoBusca: 'DESCRICAO', campoWhere: 'CODIGO', valorWhere: item.VALOR});
            break;
          }
          case 'EMAIL': {
            insereValor('#txtEmail', item.VALOR);
            break;
          }
          case 'MOEDAS': {
            if (item.VALOR != '') {
              try {
                const pesquisaMoeda = {
                  camposSelect: ['CODMOE', 'DESCRICAO'],
                  tabela: 'MOEDA',
                  where: [`CODMOE IN (${item.VALOR})`]
                };
                const jsonStr = await retornaJsonPesquisaPadrao(JSON.stringify(pesquisaMoeda));
                // await insereValorPesquisaVarios('txtMoedaModal', 'CODMOE', 'DESCRICAO', jsonStr);
                jsonStr.map((item) => {
                  $('#tabelaMoedas').DataTable().row.add([
                    '<div style="text-align:start;"> ' +
                    '    <button class="btn btn-info btn-sm dropdown-toggle btnVerificaOpcoes" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> ' +
                    '      ' + item.CODMOE + ' ' +
                    '    </button> ' +
                    '    <div class="dropdown-menu"> ' +
                    '    <button class="dropdown-item" type="button" title="Excluir" id="btn-excluir">Excluir</button>  ' +
                    '</div>',
                    item.DESCRICAO,
                  ]).draw(false)
                })

              } catch (error) {
                console.error(error);
              }
            }
            break;
          }
          case 'TIPO_ENTIDADE': {
            switch (item.VALOR) {
              case "CLIENTE":
                $("#cbTipoCliente").prop("checked", true);
                break;
              case "FORNECEDOR":
                $("#cbTipoFornecedor").prop("checked", true);
                break;
              case "TERCEIROS":
                $("#cbTipoTerceiros").prop("checked", true);
                break;
              case "REPRESENTANTE":
                $("#cbTipoRepresentante").prop("checked", true);
                break;
              case "PROSPECTO":
                $("#cbTipoProspecto").prop("checked", true);
                break;
              case "FUNCIONARIO":
                $("#cbTipoFuncionario").prop("checked", true);
                break;
              default:
                break;
            }
            break;
          }
          case 'CC_CLIENTE': {
            if (item.VALOR != '') {
              const contaContabilCliente = await buscaValor("CONTA_CONT", "DESCRICAO", "CODIGO", item.VALOR);
              insereValor('#txtContaClienteModal', item.VALOR, contaContabilCliente.DESCRICAO);
            }
            break;
          }
          case 'CC_FORNECEDOR': {
            if (item.VALOR != '') {
              const contaContabilFornecedor = await buscaValor("CONTA_CONT", "DESCRICAO", "CODIGO", item.VALOR);
              insereValor('#txtContaFornecedorModal', item.VALOR, contaContabilFornecedor.DESCRICAO);
            }
            break;
          }
          case 'CC_ADIANTAMENTO': {
            if (item.VALOR != '') {
              const contaContabilAdiantamento = await buscaValor("CONTA_CONT", "DESCRICAO", "CODIGO", item.VALOR);
              insereValor('#txtContaCAdiantamentoModal', item.VALOR, contaContabilAdiantamento.DESCRICAO);
            }
            break;
          }
          case 'CC_DEVOLUCAO': {
            if (item.VALOR != '') {
              const contaContabilDevolucao = await buscaValor("CONTA_CONT", "DESCRICAO", "CODIGO", item.VALOR);
              insereValor('#txtContaCDevolucaoModal', item.VALOR, contaContabilDevolucao.DESCRICAO);
            }
            break;
          }
          case 'CF_ADIANTAMENTO': {
            if (item.VALOR != '') {
              const contaFornecedorAdiantamento = await buscaValor("CONTA_CONT", "DESCRICAO", "CODIGO", item.VALOR);
              insereValor('#txtContaFAdiantamentoModal', item.VALOR, contaFornecedorAdiantamento.DESCRICAO);
            }
            break;
          }
          case 'CF_DEVOLUCAO': {
            if (item.VALOR != '') {
              const contaFornecedorDevolucao = await buscaValor("CONTA_CONT", "DESCRICAO", "CODIGO", item.VALOR);
              insereValor('#txtContaFDevolucaoModal', item.VALOR, contaFornecedorDevolucao.DESCRICAO);
            }
            break;
          }
        }
      });
    }

    $('.collapse').on('shown.bs.collapse', function(e) {
        let clicked = $(document).find("[href='#" + $(e.target).attr('id') + "']")

        clicked
          .parent()
          .find(".fa-angle-right")
          .removeClass("fa-angle-right")
          .addClass("fa-angle-down");
      })
      .on('hidden.bs.collapse', function(e) {
        let clicked = $(document).find("[href='#" + $(e.target).attr('id') + "']")

        clicked
          .parent()
          .find(".fa-angle-down")
          .removeClass("fa-angle-down")
          .addClass("fa-angle-right");
      });

  });
</script>