Jump to content

dev botao

Averbação de NF-e


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

Recommended Posts

  • Consultores

Olá Pessoal,

Uma empresa que vende e realiza o transporte de sua mercadoria normalmente fazem seguro da carga que esta sendo transportada. A averbação é a declaração das mercadorias em estado de risco.

O que vai ser apresentado abaixo é como averbar uma NF-e se utilizando do componente ACBrANe e a empresa responsável pela averbação será a AT&M.

 

A averbação de uma NF-e é muito simples, os passos são:

1. Emitir a NF-e utilizando o componente ACBrNFe;

2. Averbar a NF-e utilizando o componente ACBrANe;

 

O programa exemplo do componente ACBrANe é bastante simples e de fácil compreensão.

Abaixo a rotina que alimenta o componente ACBrANe para realizar a averbação de uma NF-e:

procedure TfrmACBrANe.AlimentarComponente(ANomeArq: String);
begin
  ACBrANe1.Documentos.Clear;

  with ACBrANe1.Documentos.Add.ANe do
  begin
    // ATM
    Usuario := ACBrANe1.Configuracoes.Geral.Usuario;
    Senha   := ACBrANe1.Configuracoes.Geral.Senha;
    codatm  := ACBrANe1.Configuracoes.Geral.CodATM;

    // ELT
    NomeArq := ExtractFileName(ANomeArq);
    CNPJ    := ACBrANe1.Configuracoes.Geral.CNPJEmitente;

    // ATM e ELT
    xmlDFe  := DocNFeCTe;
  end;
end;

O componente permite averbar documentos com a AT&M e ELT, como dito estamos exemplificando o processo com base na AT&M.

Para a AT&M precisamos informar o Usuário, Senha e o Código AT&M gerado para cada usuário.

A variável DocNFeCTe é do tipo string e ela contem o conteúdo do XML.

Detalhe importante: podemos averbar uma NF-e ou CT-e, nessa postagem estarei mostrando a averbação de uma NF-e, logo o conteúdo da variável DocNFeCTe do programa exemplo vai conter o XML de uma NF-e.

Após alimentar o componente com os dados necessários, basta executar o método Enviar, como é mostrado pela codificação do botão [Criar e Enviar] do programa exemplo.

 

A questão maior é quando o segurado possui coberturas adicionais em sua apólice tais como: Operação de carga e descarga, içamento de carga, contêiner, acessórios, entre outros.

No Manual da AT&M (WebService 2.0 - REST 1.1) temos no item 21.0 e subitens uma relação das coberturas adicionais e os seus valores padrões.

A titulo de exemplo vamos pegar a cobertura: Operação de Carga e Descarga.

O valor padrão é "N" ou seja o segurado não tem essa cobertura.

Caso o segurado venha a ter se faz necessário constar no XML da NF-e a informação que ele tem a cobertura para a Operação de Carga e Descarga.

Como fazer isso?

Vamos utilizar (conforme consta no manual da AT&M) o grupo de observação do contribuinte.

Exemplo genérico:

with InfAdic.ObsCont.New do
begin
  xCampo := 'Nome do Campo';
  xTexto := 'Valor do Campo';
end;

Informando que o segurado tem cobertura para a Operação de Carga e Descarga na rotina que alimenta o componente ACBrNFe:

with InfAdic.ObsCont.New do
begin
  xCampo := 'OCD';
  xTexto := 'S';
end;

Isso vai fazer com que ao gerar o XML da NF-e ele vai conter as tags:

<infAdic>
	<obsCont xCampo =“OCD”>
		<xTexto>S</xTexto>
	</obsCont>
</infAdic>

Vamos supor que o segurando além de ter a cobertura de Operação de Carga e Descarga tenha também a cobertura para içamento de carga da mercadoria.

with InfAdic.ObsCont.New do
begin
  xCampo := 'OCD';
  xTexto := 'S';
end;
with InfAdic.ObsCont.New do
begin
  xCampo := 'IC';
  xTexto := 'S';
end;

No XML teremos:

<infAdic>
	<obsCont xCampo =“OCD”>
		<xTexto>S</xTexto>
	</obsCont>
	<obsCont xCampo =“IC”>
		<xTexto>S</xTexto>
	</obsCont>
</infAdic>

Um XML com esses dados vai ser autorizado pela SEFAZ sem nenhum problema, uma vez que essas informações são observações do contribuinte informadas no XML de forma estruturada.

Ao enviar o XML da NF-e com essas tag para o webservice da AT&M ela identifica essas informações no XML e averba a NF-e levando em consideração as coberturas informadas.

Detalhe Importante:

O grupo obsCont só pode ocorrer no XML no máximo 10 vezes (no exemplo acima temos 2 ocorrências), logo não informe uma cobertura que você não tenha ou com o seu valor padrão.

Exemplo: Se o segurado tenha uma cobertura para uma mercadoria especifica deverá constar no XML, caso contrario não informe.

<infAdic>
	<obsCont xCampo =“MERCESPECIFICA”>
		<xTexto>S</xTexto>
	</obsCont>
</infAdic>

 

Espero ter ajudado.

  • Like 5
  • Thanks 2
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.