Ir para conteúdo
  • Cadastre-se

  • Este tópico foi criado há 144 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Devido ao momento atual da reforma tributária, com mudança dos provedores para o padrão nacional está ocorrendo por demanda, e ficar compilando .exe ou tendo que conectar no ambiente cliente a cliente, torna-se muito custoso.

Como posso alterar o provedor de uma cidade runtime, de forma a carregar as definições escolhidas pelo usuário?

Observei que as configurações de provedores esta condicionada a usar os dados do ini já embarcados como recurso, ou caso exista o arquivo carrega as configurações locais.

Essa carga ocorre ao definir o código do município.

Para tentar conseguir força a mudança, fiz a troca do provedor posterior ao código do município, porem internamente o ACBr faz verificações do descritivo "xProvedor" que não permite a escrita, carregando indevidamente os schemas do provedor do arquivo.

O que posso fazer para conseguir atender essa necessidade?

segue código exemplo:

    ACBr.Configuracoes.Geral.CodigoMunicipio   := Emitente.Endereco.Cidade.CodigoMunicipio;

    // Se em parâmetro foi definido, redefine
    var LProvedorManual := StrToProvedor(Emitente.DOCe.NFSeProvedor));
    if LProvedorManual <> TnfseProvedor.proNenhum then
    begin
      ACBr.Configuracoes.Geral.Provedor := LProvedorManual;
      ACBr.Configuracoes.Geral.Versao := Emitente.DOCe.VersaoNFSe;
      ACBr.Configuracoes.Geral.LayoutNFSe := Emitente.DOCe.LayoutNFSe;
      ACBr.SetProvider;
    end;

 

  • Consultores
Postado

Tem que carregar o INI novamente. 

sugestão se tu não tem o componente ACBrNFSeX deveria de estar em uma classe ou uma interface e assim ele iria liberar após o uso e quando fosse chamar novamente e o ini modificado ele carregava novamente 

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado (editado)

Compreendo, mas essa forma de alterar o ini afeta diretamente a infra estrutura, dando acesso a parte restrita do servidor "arquivos".

Acredito que isso poderia ser tratado somente para as situações das URLs, que devido a falta de padrões dos demais provedores existe situações específicas.

A carga via arquivo .ini gera outros problemas:

1. Quando a prefeitura altera o provedor e a estrutura do conteúdo xml deles tem particularidades, Exemplo: 2024 era o proEL, em 2025 trocou para o proSaatri?
2. Agora com a mudança da reforma de 2025 para 2026, muitas prefeituras alteram para o provedor nacional, a leitura do XML é completamente diferente, não sendo possível carregar os dados do xml que havia sido emitido por outro provedor.
3. Não faz sentido alterar o arquivo .ini do client todo vez que precisar imprimir notas porque foram emitidos por provedores diferentes.

O uso das propriedades do tipo do provedor "publico" e nome do provedor xProvedor "privado" carregado exclusivamente pelo arquivo .ini, gera um conflito e limita o uso do componente, além de abrir falhas em ter um type definido um provedor e o nome carregado forçadamente pelo .ini diferentes, como forme apresentei o código na abertura.

O que acha e sugere sobre essa situação?

Editado por theiller
  • Este tópico foi criado há 144 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.