Jump to content

dev botao

Averbação de NF-e


  • Este tópico foi criado há 1032 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 / e-mail: [email protected] / Fone: (16) 9-9701-5030 / 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.

The popup will be closed in 10 seconds...