Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

  • Consultores
  • Solution
Postado

Boa tarde!

1 hour ago, Paulo Alexandre Hostert said:

Quando passamos para o ACBr ler este XML de uma NFS-e não é preenchida nenhuma propriedade da ACBr, alguma ideia do que pode estar acontecendo? Acredito que a causa seja devido a versão do XML ser a 1.00

42024042227794937000132000000000008224107268840353.xml 6.12 kB · 0 downloads

Observe que o seu arquivo XML possui um grupo <DPS>.

Isso significa que está nota foi emitida no Padrão Nacional e por isso, para que o componente realize a correta leitura da mesma, você deve definir:

//Layout no qual foi gerada emitida.
//Pode ter os valores lnfsProvedor ou lnfsPadraoNacionalv1
//Com o seu XML, deve ser utilizada a opção do Padrão Nacional
ACBrNFSeX1.Configuracoes.Geral.LayoutNFSe := lnfsPadraoNacionalv1;

//Código do município do prestador de serviço.
//Em seu XML, é o de Blumenau/SC
ACBrNFSeX1.Configuracoes.Geral.CodigoMunicipio := 4202404;

 

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

  • Consultores
Postado
1 minute ago, Paulo Alexandre Hostert said:

Colocar o layout no padrão nacional v1 funcionou, porém é preciso verificar sempre esta tag em tempo de execução para adicionar o layout nacional?

Se o arquivo tiver um grupo DPS, então ele está no padrão nacional.

Você pode usar ela para fazer esta verificação.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

  • Consultores
Postado
9 minutes ago, Paulo Alexandre Hostert said:

Mas o ACBR não poderia fazer essa verificação automaticamente para evitar que nós tenhamos que controlar essa configuração?

O componente ACBrNFSeX possui diversas units para realizar a leitura do XML, sendo uma para cada provedor.

Ele foi feito dessa forma para atender as diversas especificidades dos diversos provedores existentes que fornecem os web services de geração de NFSe para os municípios.

 diversos.jpg

Desta forma, a rotina de leitura do IPM, por exemplo, não vai interferir com a rotina de leitura do SigISS e vice versa.

Isso quer dizer, que a leitura do XML é feita pela unit do provedor.

Veja a linha do Result:

function TNotaFiscal.LerXML(const AXML: string): Boolean;
var
  FProvider: IACBrNFSeXProvider;
  TipoXml: TtpXML;
  XmlTratado: string;
begin
  FProvider := TACBrNFSeX(FACBrNFSe).Provider;

  if not Assigned(FProvider) then
    raise EACBrNFSeException.Create(ERR_SEM_PROVEDOR);

  Result := FProvider.LerXML(AXML, FNFSe, TipoXml, XmlTratado);

  if TipoXml = txmlNFSe then
    FXmlNfse := XmlTratado
  else
    if TipoXml = txmlEspelho then
      FXmlEspelho := XmlTratado
    else
      FXmlRps := XmlTratado;
end;

Isso é o mesmo que estar fazendo:

Result := IPM.LerXML;
//OU
Result := NFEletronica.LerXML;
//OU
Result := ISSBarueri.LerXML;
//OU
Result := eGoverneISS.LerXML;
//Acredito que tenha entendido a lógica...

Então, em resumo, para que o XML seja lido, ele depende de o provedor estar previamente configurado.

O provedor é configurado quando você define o CodigoMunicipio ou o Layout.

Sem essa informação, não teríamos um parâmetro para definir qual é a rotina .LerXML que deve ser chamada.

  • Curtir 1
Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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 !!

Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.