EDIT: As alterações abaixo já se encontram no SVN desde o dia 23/02/2022.
Olá Pessoal,
Como sempre queremos facilitar pra vocês ao máximo o uso de nossos componentes e a manutenção de seu código.
Sendo assim, achamos apropriado fazer algumas alterações no componente ACBrNFSeX. O componente antigo, ACBrNFSe, não será alterado visto que não estamos fazendo melhorias nele, apenas manutenção de erros e falhas. Para saber mais sobre como migrar do ACBrNFSe para o ACBrNFSeX, veja esse link.
Vamos detalhar abaixo as mudanças e as motivações.
Anteriormente, no componente tínhamos as seguintes propriedades: XML, XMLOriginal, XMLAssinado e XMLNFSe.
Essas propriedades foram criadas seguindo o modelo do componente antigo e podiam ser lidas através da lista de notas, como por exemplo no código:
Elas tinham a seguinte função no componente antigo:
XML: o XML da NFS-e retornado pelo WebService;
XMLNFSe: o XML da NFS-e retornado pelo WebService;
XMLOriginal: o XML do RPS sem assinatura;
XMLAssinado: o XML do RPS (que pode estar assinado ou não dependendo do provedor);
Agora pense um pouco sobre o que viu. Temos duas propriedades que contem o XML da NFS-e e duas que contem o XML do RPS.
Não temos necessidade dessa redundância, principalmente porque o componente novo, ACBRNFSeX, está muito mais funcional na questão de separação de comportamento dos provedores.
Sendo assim, as propriedades XMLAssinado e XMLNFSe acabaram ficando sem utilidade. Estávamos na situação de que ao tentar ler as mesmas é retornado uma string vazia.
Já na propriedade XMLOriginal era retornado o XML do Rps (assinado ou não conforme o provedor).
Por firm, na propriedade XML era retornado o XML da NFS-e.
Estamos fazendo as seguintes alterações no ACBrNFSeX:
As propriedades XMLAssinado e XMLNFSe foram removidas. Elas não continham nenhuma informação.
A propriedade XML foi renomeada para XmlNfse, deixando mais claro o objetivo.
A propriedade XMLOriginal foi renomeada para XmlRps, dando mais clareza ao que ela contêm.
Assim ao invés de 4 propriedades com nomes talvez confusos e dados redundantes, agora temos 2 funcionais.
Para aqueles que desejam guardar o XML do Rps e ou da NFS-e no banco de dados basta ler as propriedades mencionadas acima podem usar um código semelhante ao abaixo
XMLReciboRPS := ACBrNFSeX1.NotasFiscais.Items[ i ].XmlRps;
XMLNotaServico := ACBrNFSeX1.NotasFiscais.Items[ i ].XmlNfse;
Onde "i" é o índice da nota na lista, que pode variar de zero até a quantidade de documentos menos 1.
Observações:
Se o valor da propriedade de configuração:
Configuracoes.Arquivos.Salvar for True os valores de XmlRps e XmlNfse serão salvos em disco;
O conteúdo de XmlRps será salvo na pasta Recibos e o de XmlNfse na pasta Notas;