Página 1 de 1

Nfce - SP

Enviado: 11 Nov 2024 09:54
por malcarli
Bom dia Devs, com a desobrigação do uso do sat, pode-se agora emitir nfce em substituição ao sat.

A classe do Mestre Quintas já está preparada para isso a tempos.

A tempos atrás fiz emissão da nfce para um colega, que tem um cliente no rs e fiz a seguinte rotina para informar o qrcode na época:

Código: Selecionar todos

      If parametrosiniciais->modnfe == [65] .and. Alltrim(parametrosiniciais->ceibge) == [43] // Nfce e RS
         oXml+= [<infNFeSupl>]
          
          cHashCSC:= hb_sha1(cId + [|2|] + Str(parametrosiniciais->tpanfe, 1) + [|] + Alltrim(STR(parametrosiniciais->IDENTCSC)) + parametrosiniciais->NRCSC)

         oXml+= [<qrCode>https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx?p=] + cId + [|2|] + Str(parametrosiniciais->tpanfe, 1) + [|] + Alltrim(STR(parametrosiniciais->IDENTCSC)) + [|] + Upper(cHashCSC) + [</qrCode>]
         oXml+= [<urlChave>www.sefaz.rs.gov.br/nfce/consulta</urlChave>]
         oXml+= [</infNFeSupl>]
      Endif
Vi na classe que já tem os endereços dos qrcode e a minha dúvida é a seguinte: Como faço para automatizar a informação acima passando somente os parâmetros do csc e identificador sem tem que informar a urlChave? Tem algum parametro para setar na classe?

Obrigado

Att.

Marcelo A. L. Carli
Marília/SP
Capital Nacional do Alimento ®
https://malc-informatica.ueniweb.com
Insta: @malcarli25
Email / Skype: marceloalcarli@gmail.com

Nfce - SP

Enviado: 11 Nov 2024 10:36
por JoséQuintas
Parece meio óbvio dizer isso, mas é só informar os parâmetros.

Código: Selecionar todos

   /* pra NFCe */
   VAR    cIdToken        INIT ""                      // Para NFCe obrigatorio identificador do CSC Código de Segurança do Contribuinte
   VAR    cCSC            INIT ""                      // Para NFCe obrigatorio CSC Código de Segurança do Contribuinte
   /* configuração não comum */
   VAR    cVersaoQrCode   INIT "2.00"                  // Versao do QRCode

Nfce - SP

Enviado: 11 Nov 2024 11:42
por malcarli
Obrigado Mestre,

Só confimando ao passar esses parâmetros, vai automaticamente incluir na tag o qrcode e demais informações?

Obg

Nfce - SP

Enviado: 11 Nov 2024 13:44
por JoséQuintas
Isso mesmo.
Foi contribuição de alguém.
Antes mesmo da NFE atual, e a mudança pra atual também.

Nfce - SP

Enviado: 11 Nov 2024 14:29
por malcarli
obg e boa semana

Nfce - SP

Enviado: 12 Nov 2024 13:58
por malcarli
Boa tarde Meste Quintas,

Consegui gerar Nfce, mas acho que tem algum erro na classe, pois não imprimiu a url de consulta. Olhei no fonte e não consegui identificar o erro. Poderia verificar se é bug ou caca minha?

acho que o bug está aqui, pois só monstra o restante dos 14 caracteres da segunda linha

Código: Selecionar todos

   ELSE
      ::DrawTexto( 6, ::nLinhaPDF, 220, NIL, Trim( MemoLine( cUrl, 69, 1 ) ), HPDF_TALIGN_CENTER, ::oPDFFontBold, 7 )
      ::nLinhaPDF -= 10
      ::DrawTexto( 6, ::nLinhaPDF, 220, NIL, Trim( MemoLine( cUrl, 69, 2 ) ), HPDF_TALIGN_CENTER, ::oPDFFontBold, 7 )
      ::nLinhaPDF -= 10
   ENDIF
obrigado

Nfce - SP

Enviado: 12 Nov 2024 15:07
por JoséQuintas
Pelo jeito 69 como referência foi muito, tem que ser menos.
Só mesmo SP e PA tem endereço gigante.
No PDF quando não cabe no espaço definido não aparece
Vou ter que fabricar um aqui pra teste.

Nfce - SP

Enviado: 12 Nov 2024 15:14
por JoséQuintas
nfce.png
Alterando pra 65 ok
Pela imagem dá pra ver que o limite é 65 mesmo.
Alterei o IF, e os dois MemoLine()), 3 lugares

Código: Selecionar todos

   IF Len( cUrl ) <= 65
      ::DrawTexto( 6, ::nLinhaPDF, 220, NIL, cUrl, HPDF_TALIGN_CENTER, ::oPDFFontBold, 7 )
      ::nLinhaPDF -= 10
   ELSE
      ::DrawTexto( 6, ::nLinhaPDF, 220, NIL, Trim( MemoLine( cUrl, 65, 1 ) ), HPDF_TALIGN_CENTER, ::oPDFFontBold, 7 )
      ::nLinhaPDF -= 10
      ::DrawTexto( 6, ::nLinhaPDF, 220, NIL, Trim( MemoLine( cUrl, 65, 2 ) ), HPDF_TALIGN_CENTER, ::oPDFFontBold, 7 )
      ::nLinhaPDF -= 10
   ENDIF
Obrigado por mostrar a parte do fonte, ajudou a ir direto no problema.

Nfce - SP

Enviado: 12 Nov 2024 16:24
por JoséQuintas
Aproveitei pra uma mudança mais radical.

Sigla da UF, já tem função pra isso, removi a lista dessa rotina
Lista de endereços, já tem na sefazclass.ch inclusive usado na autorização, removi a lista dessa rotina
Impressão, agora ilimitado, vai que precisa mais de 2 linhas, já fica pronto.

Acho que apaguei 50 linhas de fonte, melhor pra manutenção futura.

https://github.com/JoseQuintas/sefazcla ... 1c1e4eda76

Nfce - SP

Enviado: 12 Nov 2024 17:39
por malcarli
obg e parabéns