Ir para conteúdo
  • Cadastre-se

nfe ciap erro schema gPagAntecipado


Ver Solução Respondido por italo.giurizzato.junior,

Recommended Posts

Postado (editado)

boa tarde.

estou gerando um nf de ciap e esta sendo adicionado essa tag

<gPagAntecipado/>

Citar

Falha na validação dos dados da nota: 24532

 --> 1871 - Element '{http://www.portalfiscal.inf.br/nfe}gPagAntecipado': Missing child element(s). Expected is ( {http://www.portalfiscal.inf.br/nfe}refNFe ).

porém verifiquei que isso se deve quando tem que ser referenciada a nota, porém não é o caso, é uma nota de ciap

<cUF>35</cUF>
<cNF>00024533</cNF>
<natOp>LANC DE CRED DE ICMS DO ATIVO PERMANENTE</natOp>
<mod>55</mod>
<serie>1</serie>
<nNF>24532</nNF>
<dhEmi>2026-06-30T13:18:27-03:00</dhEmi>
<dhSaiEnt>2026-06-30T13:18:27-03:00</dhSaiEnt>
<tpNF>0</tpNF>
<idDest>1</idDest>
<cMunFG>3513009</cMunFG>
<tpImp>1</tpImp>
<tpEmis>1</tpEmis>
<cDV>8</cDV>
<tpAmb>1</tpAmb>
<finNFe>1</finNFe>
<indFinal>0</indFinal>
<indPres>0</indPres>
<procEmi>0</procEmi>
<verProc>4.00</verProc>
<gPagAntecipado/>

como posso ajustar ?

Editado por emarcolongo
Postado

Mesma situação aqui:

TNFeXmlWriter.GerarIde



function TNFeXmlWriter.Gerar_gPagAntecipado: TACBrXmlNode;
var
  i: Integer;
begin
  Result := nil;

  if Assigned(NFe.Ide.gPagAntecipado) then   <---SEMPRE TRUE pois 'gPagAntecipado' é criado no TIde.Create;
  begin
    Result := FDocument.CreateElement('gPagAntecipado');

    for i := 0 to NFe.Ide.gPagAntecipado.refNFe.Count - 1 do
    begin
      Result.AppendChild(AddNode(tcStr,'BC02','refNFe', 44, 44, 1,
                                 NFe.Ide.gPagAntecipado.refNFe[i].refDFEChave,
                                 DSC_REFNFE));
    end;
  end;
end;


ACBrNFe.Classes
constructor TIde.Create;
begin
  inherited Create;

  FNFref := TNFrefCollection.Create();
  FgCompraGov := TgCompraGov.Create;
  FgPagAntecipado := TgPagAntecipado.Create();
end;

Se a gente for ver o método Gerar_Ide_CompraGov o tratamento é diferente pra criar a tag:
 

function TNFeXmlWriter.Gerar_Ide_CompraGov: TACBrXmlNode;
var
  i: Integer;
begin
  Result := nil;

  if (NFe.ide.gCompraGov.tpEnteGov <> tcgNenhum) and
     (NFe.ide.gCompraGov.tpOperGov <> togNenhum) then
  begin
    Result := FDocument.CreateElement('gCompraGov');

    Result.AppendChild(AddNode(tcStr, 'BB02', 'tpEnteGov', 1, 1, 1,
            tpEnteGovToStr(NFe.ide.gCompraGov.tpEnteGov), DSC_TPENTEGOV));

    Result.AppendChild(AddNode(tcDe4, 'BB03', 'pRedutor', 1, 7, 1,
                                    NFe.ide.gCompraGov.pRedutor, DSC_PREDUTOR));

    Result.AppendChild(AddNode(tcStr, 'BB04', 'tpOperGov', 1, 1, 1,
            tpOperGovToStr(NFe.ide.gCompraGov.tpOperGov), DSC_TPOPERGOV));

    for i := 0 to NFe.Ide.gCompraGov.refDFeAnt.Count - 1 do
    begin
      Result.AppendChild(AddNode(tcStr, 'BB05', 'refDFeAnt', 44, 44, 1,
                                        NFe.Ide.gCompraGov.refDFeAnt[i].refDFEChave,
                                        DSC_DFEANT));
    end;
  end;
end;

 

Postado

Por enquanto a solução encontrada pra 'quebrar galho' é matar essa instancia do gPagAntecipado quando não tem ele de fato, assim o Writer nao cria a tag no xml

 

    If Assigned(Ide.gPagAntecipado) Then
       FreeAndNil(Ide.gPagAntecipado);

 

Postado (editado)
7 minutos atrás, Italo Giurizzato Junior disse:

@Thobias Sobczak,

Muito obrigado pelo retorno.

Já enviei para o SVN.

Eu que agradeço

Italo a hora que puder, da uma lida nesse tópico:

Creio que tem outro bug rolando que já foi solucionado parcialmente rs
 

 

Editado por Thobias Sobczak

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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...