Ir para conteúdo
  • Cadastre-se

NFSe Padrão Nacional - Ocorrendo o erro E0370 (o grupo informações de obra é obrigatório).


Ver Solução Respondido por Juliomar Marchetti,
  • Este tópico foi criado há 147 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde!

Hoje, após atualizar o ACBr e os schemas, começou a ocorrer o erro E0370 mesmo informando a tag "ConstrucaoCivil.CodigoObra". 

image.png.f48cb58a3b5af8aeef9d6fb13ef7fd61.png

Desde já, grato.

Leandro

Postado

Ola mesmo problema aqui, tenho vários clientes que o serviço é da familia de obras. Acontece que tem vários casos que a obra não é uma obra em si, então não tem dados como "inscImobFisc", acontece que no ACBr esta fixiando esta condição para gerar o bloco de obra.

 

Fiz os seguintes ajustes listados abaixo (Fonte esta anexo e foi utiliza um fonte atualizado hoje a tarde)

Ajustado a rotina de condição para gerar o bloco.

function TNFSeW_PadraoNacional.DevoGerarXMLObra: Boolean;
begin
  Result := (NFSe.ConstrucaoCivil.inscImobFisc <> '') or (NFSe.ConstrucaoCivil.CodigoObra <> '') or (NFSE.ConstrucaoCivil.Cib > 0);
end;

Ajustado o bloco onde gera

function TNFSeW_PadraoNacional.GerarXMLObra: TACBrXmlNode;
begin
  Result := CreateElement('obra');

  if NFSe.ConstrucaoCivil.inscImobFisc <> '' then
  begin
    Result.AppendChild(AddNode(tcStr, '#1', 'inscImobFisc', 1, 30, 1,
                                        NFSe.ConstrucaoCivil.inscImobFisc, ''));
  end;

  if NFSe.ConstrucaoCivil.CodigoObra <> '' then
  begin
    Result.AppendChild(AddNode(tcStr, '#1', 'cObra', 1, 30, 1,
                                          NFSe.ConstrucaoCivil.CodigoObra, ''));
  end;

  if NFSE.ConstrucaoCivil.Cib > 0 then
  begin
    Result.AppendChild(AddNode(tcStr, '#1', 'cCIB', 1, 8, 1,
                                          Poem_Zeros(NFSe.ConstrucaoCivil.Cib, 8)));
  end;

  if (NFSe.ConstrucaoCivil.Endereco.CEP <> '') or
     (NFSe.ConstrucaoCivil.Endereco.Endereco <> '') then
  begin
    Result.AppendChild(GerarXMLEnderecoObra);
  end;
end;

 

Rotina testada e validada.

 

PadraoNacional.GravarXml.pas

  • Consultores
  • Solution
Postado

No SVN a correção

  • Obrigado 1

 

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

  • Membros Pro
Postado
5 horas atrás, Diogo Loff disse:

function TNFSeW_PadraoNacional.DevoGerarXMLObra: Boolean;
begin
  Result := (NFSe.ConstrucaoCivil.inscImobFisc <> '') or (NFSe.ConstrucaoCivil.CodigoObra <> '') or (NFSE.ConstrucaoCivil.Cib > 0) or (NFSe.ConstrucaoCivil.Endereco.Endereco <> '');
end;

 

O correto não seria adicionar tb o (NFSe.ConstrucaoCivil.Endereco.Endereco <> '') ? pois pode-se informar somente o endereço da obra sem os campos inscImobFisc, CodigoObra e Cib.

Londrina - PR

Postado

Não porque quando se coloca endereço mesmo não tendo obra, o campo NFSe.ConstrucaoCivil.CodigoObra se torna obrigatório, a questão é que o layout não é nada explicativo neste bloco de obras.

Valeu obrigado, segunda já vou atualizar.

  • Membros Pro
Postado (editado)
1 hora atrás, Diogo Loff disse:

Não porque quando se coloca endereço mesmo não tendo obra, o campo NFSe.ConstrucaoCivil.CodigoObra se torna obrigatório, a questão é que o layout não é nada explicativo neste bloco de obras.

Valeu obrigado, segunda já vou atualizar.

É que estou me baseando pelo emissor nacional, vamos analisar:

Ao preencher manualmente a nota pelo site, ao chegar na parte da obra temos as opções:

1 - Código da obra: é obrigatório apenas o campo código da obra, inscrição imobiliária fiscal é opcional

image.png.2814e40af79da14eaeb8698c9781ce86.png

2 - Código do cadastro imobiliário brasileiro - CIB: somente o código CIB é obrigatório.

image.png.d815ccf6d9f8a206d2aa14eca4eaa8ac.png

3 - Endereço no Brasil: apenas CEP, município, bairro, logradouro e número são obrigatórios.

image.thumb.png.8fe862ba1d2a03f45c8496be731b77be.png

4 - Endereço no exterior: que não se aplica no caso.

image.thumb.png.290ea8d6933ba7665491334ef4ad914d.png

 

Então creio que o endereço pode ser informado mesmo sem o inscImobFisc CodigoObra  e Cib .

Por isso acho necessário ter a validação de deixar informar o endereço mesmo sem esses 3 campos.

Meus clientes emitem quase que 100% das notas com dados de obra pois trabalham com concreto.

Editado por armando.boza

Londrina - PR

  • Consultores
Postado
Em 10/01/2026 at 11:13, armando.boza disse:

Então creio que o endereço pode ser informado mesmo sem o inscImobFisc CodigoObra  e Cib .

Por isso acho necessário ter a validação de deixar informar o endereço mesmo sem esses 3 campos.

Meus clientes emitem quase que 100% das notas com dados de obra pois trabalham com concreto.

Você está correto.
De acordo com os schemas e a confirmação pelos prints do portal, essas 3 informações fazem parte de um choice, pra gerar: cObra, cCIB, Endereço ou não gerar nada
Ou não gera grupo de obra ou gera apenas um desses 3
Em todos os casos, o inscImobFisc é opcional e poderá ser gerado

Enviada correção ao SNV na Rev-44188, atualizem, reinstalem os componentes e vejam se foi o resultado esperado.

  <xs:complexType name="TCInfoObra">
    <xs:sequence>
      <xs:element minOccurs="0" name="inscImobFisc" type="TSInscImobFisc">
        <xs:annotation>
          <xs:documentation>Inscrição imobiliária fiscal (código fornecido pela Prefeitura Municipal para a identificação da obra ou para fins de recolhimento do IPTU)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:choice minOccurs="1">
        <xs:element name="cObra" type="TSCodObra">
          <xs:annotation>
            <xs:documentation
              >Número de identificação da obra.
              Cadastro Nacional de Obras (CNO) ou Cadastro Específico do INSS (CEI).
            </xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="cCIB" type="TSCodCIB">
          <xs:annotation>
            <xs:documentation>
              Código do Cadastro Imobiliário Brasileiro - CIB.
            </xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="end" type="TCEnderObraEvento">
          <xs:annotation>
            <xs:documentation>Grupo de informações do endereço da obra do serviço prestado
            </xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

 

  • Curtir 1
  • 2 semanas depois ...
  • Este tópico foi criado há 147 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
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.

The popup will be closed in 10 segundos...