Página 3 de 4

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 01 Ago 2017 22:47
por Fernando queiroz
Agora ficou uma duvida quanto a NFCE
ela usa a mesma numeracao da NFe isto é segue a sequencia ou inicia uma nova sequencia somente para a NFCe
o tipo de impressao muda de 55 para 65

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 02 Ago 2017 00:06
por rubens
Fernando...

Você já está compilando a Classe do Quintas? embora sejam parecidas, quando tomei conhecimento que a classe do Quintas já tinha a impressão da Nfce o meu utilitário já estava pronto... Como gosto e uso a classe do quintas, só não perdi tempo porque aprendi mais da harupdf enquanto estava fazendo meu utilitário..

A Nfe e NFCe embora muito similares são "diferentes" a grosso modo.. Imagine a NFe como sendo aquele bloco de nota fiscal grande Série A1 e a NFCe como aquele bloco de nota fiscal pequeno o D1, que não necessitava informar o cliente... bastava colocar consumidor e informar os produtos. A numeração é diferente, cada uma começa do número e são independentes. Tanto em uma Nfe como em uma Nfce você pode numera-las por série também. Tipo você pode ter Nfce número 1 série 1 e NFce número 1 série 2. Qual seria o uso disso? Para não ficar preso somente a 1 pc que emite nota. Por exemplo em um mercado com 3 pdvs. Voce pode colocar todos os 3 pdvs para emitirem Nfce com séries diferentes. Daí não fica preso a uma sequencia de notas. Cada pdv é uma série. Pode usar também em um loja com varios caixas. Cada caixa é uma série.
Quanto ao 65 e 55 é referente ao modelo do documento. 55-Nfe 65-Nfce, aí tem o MDFe e CTe que não me lembro bem qual o modelo.. é bom dar uma estudada no Manual do contribuinte e nas NT normas técnicas.. https://www.nfe.fazenda.gov.br/portal/l ... ol5hhSYZk=

Quanto a implementação da hbNFeDaNFCe é relativamente simples.
Eu uso da seguinte forma:

Código: Selecionar todos

FUNCTION GERAPDFNFCe(cXml)
   LOCAL oDanfe
   LOCAL cFilePdf := 'NFCe011793.pdf'
   oDanfe:=  hbNFeDaNFCe():New()                               
   oDanfe:ToPDF(  Memoread( cXml ) , cFilePdf )
   PDFOpen( cFilePdf )
   RETURN nil   
o Danfe da Nfce ainda precisa de alguns ajustes...
Está sendo gerado assim:
NFCe011793.pdf
(8.45 KiB) Baixado 378 vezes
é só adaptar para o que voce precisa.

Rubens

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 03 Ago 2017 14:03
por Fernando queiroz
eu e o Quintas estamos testando a classe para NFCe , foram feitas algumas alteracoes para que a NFCe fosse validado para a UF=AC, agora ta fuincionando.

agora estou dando erro por falta das informacoes do QRCODE

ALGUMA DICA?????

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 03 Ago 2017 19:28
por JoséQuintas
Já percebeu que o Luciano anda contribuindo há algum tempo?
Tem a função de montagem do QRCode, dentre outras coisas.

https://github.com/JoseQuintas/sefazcla ... 3e088f7753

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 03 Ago 2017 19:33
por JoséQuintas
Eu ainda nem tinha visto essa NFCe em funcionamento.
Nem percebi antes que é da SefazClass.
Foi o Luciano que acrescentou na classe.

:{

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 03 Ago 2017 19:38
por JoséQuintas
Dica:

Nem precisa se preocupar com o tipo de documento:

Código: Selecionar todos

oDanfe := hbNfeDaGeral():New()
oDanfe:ToPDF( cXmlDocumento, cFilePdf, cFileAuxiliar )
Isso vale pra tudo: NFE, NFCE, CTE, MDFE, carta de correção, etc.

Como curiosidade, o método :ToPdf() dessa classe, que faz a chamada da correspondente.

Código: Selecionar todos

METHOD ToPDF( cXmlDocumento, cFilePDF, cXmlAuxiliar ) CLASS hbNFeDaGeral

   LOCAL oDanfe

   IF cXmlDocumento == NIL .OR. Empty( cXmlDocumento )
      RETURN "XML inválido"
   ENDIF
   IF Len( cXmlDocumento ) < 100
      IF File( cXmlDocumento )
         cXmlDocumento := MemoRead( cXmlDocumento )
      ENDIF
   ENDIF
   IF cXmlAuxiliar != NIL .AND. ! Empty( cXmlAuxiliar ) .AND. Len( cXmlAuxiliar ) < 100
      cXmlAuxiliar := MemoRead( cXmlAuxiliar )
   ENDIF
   DO CASE
   CASE "<infCte "    $ cXmlDocumento                                                                                                ; oDanfe := hbNFeDaCte():New()
   CASE "<infNFe "    $ cXmlDocumento .AND. "<NFe "  $ cXmlDocumento .AND. XmlNode( XmlNode( cXmlDocumento, "ide" ), "mod" ) == "55" ; oDanfe := hbNFeDaNFe():New()
   CASE "<infNFe "    $ cXmlDocumento .AND. "<NFe "  $ cXmlDocumento .AND. XmlNode( XmlNode( cXmlDocumento, "ide" ), "mod" ) == "65" ; oDanfe := hbNFeDaNFCe():New()
   CASE "<infMDFe "   $ cXmlDocumento .AND. "<MDFe " $ cXmlDocumento                                                                 ; oDanfe := hbNFeDaMDFe():New()
   CASE "<infEvento " $ cXmlDocumento                                                                                                ; oDanfe := hbNFeDaEvento():New()
   OTHERWISE
      RETURN "XML inválido"
   ENDCASE
   oDanfe:cLogoFile := ::cLogoFile
   oDanfe:cDesenvolvedor := ::cDesenvolvedor

   RETURN oDanfe:ToPDF( cXmlDocumento, cFilePDF, cXmlAuxiliar )

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 03 Ago 2017 19:53
por JoséQuintas
Tem como me mandar esse XML pra fazer ajustes no PDF?
Reparei que está rebatendo algumas coisas.

O controle de quebra está por colunas, e vou procurar ajustar igual NFE, por tamanho do texto impresso.

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 03 Ago 2017 20:07
por JoséQuintas
Mais uma dica, mas a rotina só serve pra mim, a não ser que também gravem os XMLs em Mysql no mesmo jeito.

https://github.com/JoseQuintas/JoseQuin ... mllist.prg

Essa função busca todos os XMLs relacionados a um documento e pode chamar a geração dos PDFs retornando tudo em array.

Com isso, em qualquer parte do aplicativo, seja email, tela de pedidos, estoque, nota fiscal, financeiro, etc. posso abrir o documento para o usuário.
Lembrando que permito salvar não apenas notas emitidas, mas notas de fornecedores.

Fica muito interessante o usuário poder tirar dúvidas sobre determinado documento.

Eu já fazia isso antes, quando usava o Unidanfe, puxando os PDFs do meu servidor.
Depois que a classe começou a gerar PDF, passei a fazer diretamente no cliente, instantâneo.

Aproveitando: são por essas coisinhas que os usuários nem sentem falta de tela gráfica.
Dependendo do caso tem mais recursos que muitos programas gráficos.... rs

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 03 Ago 2017 20:50
por Fernando queiroz
FUNCTION GeraQRCode( cXmlAssinado, cIdToken, cCSC )


O campo idToken é sequencial e deve ter no máximo 6 dígitos, por exemplo, 000001, 000002, 000003.

cCSC

Acre (AC):

Antes de obter o CSC, é necessário efetuar o credenciamento presencial mediante os documentos descritos aqui. Após, é possível acessar o site Sefaz Online e emitir o CSC no menu "NFC-e".

http://www.systronic.com.br/como-gerar- ... eu-estado/

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 03 Ago 2017 21:06
por JoséQuintas
Não faço idéia, mas no portal da NFE, documentos, manuais, tem manual próprio pra QRCode.

https://www.nfe.fazenda.gov.br/portal/l ... ol5hhSYZk=
qrcode.png

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 03 Ago 2017 21:09
por JoséQuintas
Cadastro de contribuinte, fornecido pela Sefaz
csc.png

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 04 Ago 2017 09:24
por rubens
Bom dia,
Não sei como é o QrCode do AC, mas se tá gerando o xml e validando então não pode ter problema com o QrCode porque ele está sendo lido do XML.
Qual o problema você está tendo ?

Rubens

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 04 Ago 2017 09:55
por Fernando queiroz
rubens escreveu:Bom dia,
Não sei como é o QrCode do AC, mas se tá gerando o xml e validando então não pode ter problema com o QrCode porque ele está sendo lido do XML.
Qual o problema você está tendo ?

Rubens
Rubens o problema é que nao estou gerando a Tag onde fica o QRCODE ai retorna o erro

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 04 Ago 2017 19:27
por JoséQuintas
A classe só precisa desses códigos CSC e idToken pra gerar o QRCode no XML.

ACBrPrinter - Utilit p/ impressao de NFCe e SAT

Enviado: 05 Ago 2017 09:03
por rubens
Bom dia
Rubens o problema é que nao estou gerando a Tag onde fica o QRCODE ai retorna o erro
Então não é problema do Danfe da NFCe, é na geração do XML... porque a classe do Danfe da NFCe tá correta, tem alguns detalhes de layout para corrigir, mas a estrutura está.. belezinha...
Você mesmo que tá gerando o seu XML? Eu gero com o ACBRMonitorPlus.

Rubens