Ir para conteúdo
  • Cadastre-se

dev botao

TAG <detpag> não está sendo criada


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

Recommended Posts

Postado

Boa tarde, 

Atualizei os fontes do acbr (incluindo os schemas), e após a atualização as notas em homologação pararam de funcionar. Olhei o XML e percebi que a tag <detpag> não está sendo criada. Os valores de <tpag> e <vpag> estão sendo passados, conforme anexo abaixo. O erro diz o seguinte: 

Citar

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

with TpagCollectionItem do
begin
	if not FConsulta.IsEmpty then
	begin
	    if FConsulta.FieldByName('FL_CHEQUE').AsString = PGTO_DINHEIRO then
	        tPag := fpDinheiro
	    else if FConsulta.FieldByName('FL_CHEQUE').AsString = PGTO_CHEQUE then
	        tPag := fpCheque
	    else if FConsulta.FieldByName('FL_CHEQUE').AsString = PGTO_OUTROS then
	        tPag := fpOutro;

	    vPag := Iif(FConsulta.FieldByName('VL_ENTRADA').asCurrency > 0, FConsulta.FieldByName('VL_ENTRADA').asCurrency, FConsulta.FieldByName('VL_SAIDA').asCurrency)
	end;
end;
    

Grata,

Bárbara.

42190303657739000169558550000021231860846835-nfe.xml

Postado

Não, os antigos programadores fizeram dessa forma no sistema. Então, ontem fui atualizar o ACBr e deu erro justamente nessa parte. Antes era feito da seguinte forma: 

procedure TManipuladorArquivoNFe.pSetInfPagamentos(Pag: TpagCollection)
begin
	item := TPagCollectionItem.Create(Pag);

Acusou o erro no create que não poderia ser passado parâmetros, porém antes da atualização funcionava perfeitamente. Então tirei o parâmetro e o detPag deixou de ser criado no XML.

Agora tentei ajustar o código como no Demo e dá acess violation logo na primeira linha. As variáveis foram declaradas da mesma forma que o Demo.

item := NotaF.NFe.pag.Add;

 

  • Moderadores
Postado

Acredito que basta você passar a informação da seguinte Forma:

with ACBrNFe1.NotasFiscais.Add.NFe do
  ...
  begin
    with pag.New do
    begin
      tPag := fpDinheiro;
      vPag := 100;
      ...
    end;
end;


 

  • Curtir 3
Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • 3 semanas depois ...
Postado

Bom dia, tentei de todas as formas possíveis. Fiz como você mandou acima e continua dando o mesmo erro. Debugando ele passa por todas as linhas corretamente. Segui o exemplo do demo do acbr e fiz igual e mesmo assim não funcionou. 

Postado
procedure TManipuladorArquivoNFe.pInfPagamentos(objNfe: TNfe; Pag: TpagCollection; ID_NF_CONTABIL_C: Int64);
var
    item     : TpagCollectionItem;
    FConsulta: TConsultaSQL;
    fTroco   : Currency;
    vPag     : Extended;
    totalPag : Extended;
    difPag   : Extended;

begin

    if (ACBrNFe.Configuracoes.Geral.VersaoDF = ve400) then
        if (objNfe.Ide.finNFe in [fnComplementar, fnAjuste, fnDevolucao]) or (FL_Igonrar_cxa) then
        begin

            with ACBrNFe.NotasFiscais.Add.nfe do
            begin

                with Pag.New do
                begin

                    tPag := fpSemPagamento;
                    vPag := 0;

                end;

            end;

            Exit;

        end;

    end;

end;

O código inteiro é feito com ACBrNFe e não com ACBrNFe1 como sugerido acima. Porém está funcionando tudo corretamente, exceto essa tag.

  • Solution
Postado

Obrigada a todos pela ajuda, consegui resolver o problema da seguinte forma:

Quando a função era chamada, era passado objNfe como parâmetro. Visto que, objNfe é ACBrNFe.NotasFiscais.Add.nfe, apenas alterei o with para objNfe e a a tag passou a ser gerada.

  • Curtir 1
  • Este tópico foi criado há 2055 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.