Ir para conteúdo
  • Cadastre-se

dev botao

Local de Retirada e Local de Entrega DANFe Paisagem Fortes


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

Recommended Posts

Bom dia a todos...

Sempre utilizei o fortes no formato retrato para impressão do DANFe, porém, agora um cliente solicitou que fosse impresso no formato paisagem. Fácil configurar, porém me deparei com uma dificuldade.

Meu sistema controla a geração do endereço de retirada e de entrega nas informações complementares da nota fiscal, ou seja, o sistema gera a informação na TAG "InfAdic.infCpl".

Para o formato "Retrato" funciona certinho pois é impresso apenas o que está no XML, mas no formato paisagem, há uma implementação que verifica se no arquivo xml tem o endereço de retirada e de entrega preenchido nos campos próprios e preenche novamente o endereço no momento que está gerando o DANFe. Ou seja, imprime as informações complementares diferente do que está no arquivo XML.

Eu poderia implementar um parâmetro para isso no componente, mas antes de qualquer coisa gostaria da opinião dos demais colegas do fórum:

1) Remover esta funcionalidade do layout paisagem, sendo que esta informação não foi para o arquivo xml (o que pode ter um agravante pois deve ter alguém que utiliza dessa forma). Aqui ainda fica a dúvida, se alguém utiliza dessa forma, utiliza somente no formato paisagem?

2) Criar um parâmetro de configuração para o endereço de entrega e de retirada e implementar também no layout retrato para que fique padrão (o que também poderia ter alguns agravantes, pois quem utiliza no formato retrato, talvez já faça como eu, enviar as informações de retirada e de entrega já no arquivo xml, onde a impressão ocorre normalmente e se implementada dessa forma irá duplicar as informações).

Implementação na unit "ACBrNFeDANFeRLPaisagem.pas" no método "procedure TfrlDANFeRLPaisagem.DadosAdicionais;" onde é chamado os métodos a seguir:

 

InsereLinhas(EnderecoRetirada, iLimiteCaracteresLinha, rlmDadosAdicionaisAuxiliar);

InsereLinhas(EnderecoEntrega, iLimiteCaracteresLinha, rlmDadosAdicionaisAuxiliar);

 

Fico no aguardo da opinião de mais alguém.

Grato!

 

 

 

 

Link para o comentário
Compartilhar em outros sites

@hleorj

Segue PDF e um print mostrando a duplicidade da informação. No caso dessa nota é apenas o endereço de entrega, mas o mesmo se aplica ao endereço de retirada.

A primeira informação de entrega que aparece é colocada automaticamente pelo componente ACBr. A segunda informação de entrega é montada pelo meu sistema e enviada junto no arquivo xml na TAG infCpl.

Att.

Rosemir

42180876344407000106550020000215641000215640-nfe.pdf

duplicidade_entrega.jpg

Link para o comentário
Compartilhar em outros sites

  • Moderadores

O ideal seria ter uma propriedade para dar mas liberdade.

Mas novas propriedades estão sofrendo uma grande crítica dos desenvolvedores do acbr.

Sugiro que mantenha o padrão do ACBR. 

 

Podeira enviar o arquivo de xml. Pois não vi a impressão dos dados de retirada ( igual a entrega ) no pdf.

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

Para manter o padrão, teria que ser desenvolvida a mesma funcionalidade no formato retrato, ou remover do formato paisagem, pois como está, os 2 layouts estão se comportando de forma diferente. A única questão e que não concordo, é gerar na informação complementar do DANFe, um texto que não foi enviado no arquivo XML. Para dar mais liberdade, na minha humilde opinião, é que se desejar imprimir o local de retirada e de entrega, envia junto no arquivo xml, e será impresso normalmente.

Dessa forma não teria que ficar criando parâmetros de configuração (mais um entre tantos, rsss).

Alguém mais concorda?

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Sim e não, Existem funcionalidades que são impressas automaticamente em informações adicionais ex

    

procedure TfrlDANFeRLRetrato.DadosAdicionais;
var
  sProtocolo, sSuframa : String;
begin
  rlmDadosAdicionaisAuxiliar.Lines.BeginUpdate;
  rlmDadosAdicionaisAuxiliar.Lines.Clear;

  // Protocolo de autorização, nos casos de emissão em contingência
  if (FNFe.Ide.tpEmis in [teContingencia, teFSDA]) and
        (FNFe.procNFe.cStat = 100) then
  begin
    sProtocolo := ACBrStr('PROTOCOLO DE AUTORIZAÇÃO DE USO: ') +
      FNFe.procNFe.nProt + ' ' + DateTimeToStr(FNFe.procNFe.dhRecbto);
    InsereLinhas(sProtocolo, iLimiteCaracteresLinha, rlmDadosAdicionaisAuxiliar);
  end;

  // Inscrição Suframa
  if FNFe.Dest.ISUF > '' then
  begin
    sSuframa := ACBrStr('INSCRIÇÃO SUFRAMA: ') + FNFe.Dest.ISUF;
    InsereLinhas(sSuframa, iLimiteCaracteresLinha, rlmDadosAdicionaisAuxiliar);
  end;

  InsereLinhas( TACBrNFeDANFeRL(Owner).ManterDocreferenciados( FNFe,FImprimirDadosDocReferenciados )  +
                  ManterInfAdFisco +
                  ManterObsFisco +
                  ManterProcreferenciado +
                  ManterInfContr +
                  ManterInfCompl  ,
                  iLimiteCaracteresLinha,
                  rlmDadosAdicionaisAuxiliar);

  rlmDadosAdicionaisAuxiliar.Lines.EndUpdate;

end;

Que não sofrem críticas dos usuários :)

Caso , deseje enviar uma  sugestão para manter o padrão entre as danfes ( retrato e paisagem ), será de boa ajuda.

 

 

22 minutos atrás, Rosemir disse:

Para manter o padrão, teria que ser desenvolvida a mesma funcionalidade no formato retrato, ou remover do formato paisagem, pois como está, os 2 layouts estão se comportando de forma diferente. A única questão e que não concordo, é gerar na informação complementar do DANFe, um texto que não foi enviado no arquivo XML. Para dar mais liberdade, na minha humilde opinião, é que se desejar imprimir o local de retirada e de entrega, envia junto no arquivo xml, e será impresso normalmente.

Dessa forma não teria que ficar criando parâmetros de configuração (mais um entre tantos, rsss).

Alguém mais concorda?

Envie o arquivo xml. para facilitar alguns testes.

  • Curtir 1
Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

Para resolver o meu problema, a sugestão seria remover a geração do local de retirada e entrega no layout paisagem, embora fico aqui me preocupando com quem precisa dessa funcionalidade. Mas retirando e deixando a critério de cada um decidir como implementar esse texto, deixaria mais flexível a todos. Se observar abaixo, a única diferença para o método "DadosAdicionais" do retrato, é a questão dos endereços.


procedure TfrlDANFeRLPaisagem.DadosAdicionais;
var
  sProtocolo, sSuframa   : String;
begin
  rlmDadosAdicionaisAuxiliar.Lines.BeginUpdate;
  rlmDadosAdicionaisAuxiliar.Lines.Clear;

  // Protocolo de autorização, nos casos de emissão em contingência
  if (FNFe.Ide.tpEmis in [teContingencia, teFSDA]) and
        (FNFe.procNFe.cStat = 100) then
  begin
    sProtocolo := ACBrStr('PROTOCOLO DE AUTORIZAÇÃO DE USO: ') +
                     FNFe.procNFe.nProt + ' ' + DateTimeToStr(FNFe.procNFe.dhRecbto);
    InsereLinhas(sProtocolo, iLimiteCaracteresLinha, rlmDadosAdicionaisAuxiliar);
  end;

  // Inscrição Suframa
  if FNFe.Dest.ISUF > '' then
  begin
    sSuframa := ACBrStr('INSCRIÇÃO SUFRAMA: ' ) + FNFe.Dest.ISUF;
    InsereLinhas(sSuframa, iLimiteCaracteresLinha, rlmDadosAdicionaisAuxiliar);
  end;

  //InsereLinhas(EnderecoRetirada, iLimiteCaracteresLinha, rlmDadosAdicionaisAuxiliar);

  //InsereLinhas(EnderecoEntrega, iLimiteCaracteresLinha, rlmDadosAdicionaisAuxiliar);


  InsereLinhas(   TACBrNFeDANFeRL(Owner).ManterDocreferenciados(FNFe, FImprimirDadosDocReferenciados )  +
                  ManterInfAdFisco +
                  ManterObsFisco +
                  ManterProcreferenciado +
                  ManterInfContr +
                  ManterInfCompl  ,
                  iLimiteCaracteresLinha,
                  rlmDadosAdicionaisAuxiliar);

  rlmDadosAdicionaisAuxiliar.Lines.EndUpdate;
end;

 

Mas por outro lado, se colocar a implementação no layout retrato, também pode afetar quem utiliza somente este layout.

Posso realizar a alteração, mas ainda não cheguei a conclusão qual seria a melhor forma de resolver: remover no paisagem ou acrescentar no retrato?

Por mim seria remover do paisagem, mas claro que precisamos analisar e ver se mais alguém tem algum ponto de vista diferente.

 

 

 

 

Link para o comentário
Compartilhar em outros sites

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

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