Página 1 de 2

Contagem de linhas na danfe incorreta

Enviado: 09 Dez 2022 08:28
por malcarli
Bom dia Mestre Quintas, em anexo danfe e xml com contagem de linhas errada. Já corrigi na minha classe aqui, mas posto para correção. obg

Contagem de linhas na danfe incorreta

Enviado: 09 Dez 2022 14:10
por JoséQuintas
À primeira vista, como cabe uma linha a menos nos produtos, seria aqui:
uma linha a menos no total.

Código: Selecionar todos

METHOD ItensDaFolha( nFolha ) CLASS hbNFeDaNFe

   LOCAL nQuadro := 630, nParcelas

   nFolha := iif( nFolha == NIL, ::nFolha, nFolha )

   IF nFolha == 1
      nQuadro := 291 + ;
         iif( ::lLaser, 54, 0  ) + ;
         iif( Val( ::aIssTotal[ "vServ" ] ) <= 0, 24, 0 )
      nParcelas := Len( MultipleNodeToArray( ::cCobranca, "dup" ) )
      IF nParcelas > 0
         nQuadro -= ( ( 1 + Int( ( nParcelas - 1 ) / 3 ) ) ) * 8 + 2
      ELSEIF Len( ::aDetPag ) > 0
         nQuadro -= ( ( 1 + Int( ( Len( ::aDetPag ) - 1 ) / 3 ) ) ) * 8 + 2
      ENDIF
      IF ::lQuadroEntrega
         IF ! Empty( ::aEntrega[ "xLgr" ] )
            nQuadro -= 55
         ENDIF
         IF ! Empty( ::aRetirada[ "xLgr" ] )
            nQuadro -= 55
         ENDIF
      ENDIF
   ENDIF

   RETURN Int( nQuadro / LAYOUT_FONTSIZE ) - 1

Contagem de linhas na danfe incorreta

Enviado: 09 Dez 2022 15:24
por malcarli
obrigado. funcionou perfeitamente

Contagem de linhas na danfe incorreta

Enviado: 27 Jan 2023 08:36
por malcarli
Bom dia, Mestre Quintas, agora outro xml com o problemas na contagem de linhas. Alterei colocando -2, mas não funcionou. Acho que a solução seria aumentar o quadro de produtos e ai ficaria correto. Obg e bfds

Contagem de linhas na danfe incorreta

Enviado: 27 Jan 2023 12:55
por JoséQuintas
Não entendi, afinal no whatsapp é você? pelo menos o XML é o mesmo.

Aqui dividiu correto, tá diferente desse, usei o programa teste da sefazclass.

Contagem de linhas na danfe incorreta

Enviado: 27 Jan 2023 13:25
por malcarli
no wz deve ter sido o Eduardo, que pediu para eu entrar em contato contigo, sobre o problema dela, mas não sabia que ele tinha entrado em contato contigo. estou com os fontes atualizados e dá o erro postado acima. Compilei o test com os fontes do gitub e deu o mesmo erro

Contagem de linhas na danfe incorreta

Enviado: 27 Jan 2023 15:10
por JoséQuintas
Ele entrou em contato ontem.
Falei de entrar remoto, mas ele está tentando ver sozinho primeiro.

Já teve fonte que atualizou mas foi conferir e não estava atualizado.
No momento, parece que a compilação parou.

Aqui rodei o test da sefazclass e saiu correto.

Aguardando.

Contagem de linhas na danfe incorreta

Enviado: 27 Jan 2023 15:40
por malcarli
ele me passou agora o que fez

ele usa para imprimir:

oDanfe:= hbnfeDanfe():new()

no test vc usa

oDanfe := hbNfeDaGeral():New()

Faz alguma diferença?

Contagem de linhas na danfe incorreta

Enviado: 27 Jan 2023 16:30
por JoséQuintas
Nada a ver com nada que poderíamos imaginar.

Os nomes de fontes na sefazclass mudaram há algum tempo.

Ao copiar os fontes, estava misturando antigos com novos, e a compilação pegava os fontes de nome antigo, sem atualização.

exemplo:
ze_speddanfe.prg
ze_sefazdanfe.prg

Como ele está usando IDE da HMG pra compilar, o projeto da lib está na IDE.... usava nomes velhos, e fontes velhos.

Contagem de linhas na danfe incorreta

Enviado: 27 Jan 2023 16:33
por JoséQuintas
CUIDADO ao postar arquivos de terceiros.
Isso pode dar processo, porque não tem autorização pra isso.
Lembre-se da lei de proteção de dados, se já era ruim, agora piorou.
Editei lá e removi.

Contagem de linhas na danfe incorreta

Enviado: 27 Jan 2023 18:20
por malcarli
obg vdd

Contagem de linhas na danfe incorreta

Enviado: 27 Jan 2023 19:06
por JoséQuintas
No final, ele alterou pra -4.
Estou achando que pode ser versão de harupdf, a da minigui pode estar diferente.

Contagem de linhas na danfe incorreta

Enviado: 28 Jan 2023 06:56
por JoséQuintas
Fiz uma alteração em XmlNode() que extrai informações do XML.
Fui testar olhando o Danfe e..... aqui passou a dar o mesmo problema com o Danfe.
Alterei pra - 4 também.
Esquisito que não tem nada a ver uma coisa com a outra.


Mas vai precisar revisão geral.

Código: Selecionar todos

METHOD ItensDaFolha( nFolha ) CLASS hbNFeDaNFe
...
   RETURN Int( nQuadro / LAYOUT_FONTSIZE ) - 4
Isso não vale pra calcular quantos ítens cabem no quadro, e sim pra calcular quantas linhas cabem no quadro.
Acaba afetando o cálculo de folhas também.

Justamente o que o XML tem, é informação adicional em cada produto, o que não dá só uma linha.

Contagem de linhas na danfe incorreta

Enviado: 28 Jan 2023 22:44
por JoséQuintas
Favor testarem alterações com PDFs de muitas páginas.
Com o XML deste tópico tudo ok.

Antes:
dividia a qtde. de linhas pelos produtos pra saber quantos produtos cabiam por página - errado - cálculo e impressão estavam diferentes
Problemas causados: produto invadindo além do quadro, cálculo de páginas errado pra muitas páginas
Um exemplo foi postado neste tópico ref. texto invadindo área, e houve comentário de um pdf de 9 páginas sendo mostrado como 10 páginas.
O problema era eventual, só em XMLs específicos.

Agora:
faz um a um mesmo, testa primeiro pra ver se cabe descrição + adicionais de cada produto

Faltam mais testes com possibilidades variadas, mas não tenho XML pra isso.

Contagem de linhas na danfe incorreta

Enviado: 30 Jan 2023 07:10
por malcarli
obrigado irei testar e qq problema reporto