Jump to content
Fivewin Brasil

NFC-e primeiros passos


MARSAN

Recommended Posts

Bom dia senhores,

Peco ajuda de quem ja desenvolveu o nfc-e.

Estou meio perdido como alguns colegas e devido ao tempo escasso e urgencia nesta implementacao eu pergunto atraves deste forum por onde comecar a estudar e implementar?

Hoje utilizo a classe gilmer com flexdocs.

Aguardo retorno e desde ja agradeco a boa vontade dos amigos.

Link to comment
Share on other sites

Não querendo ser chato, mas já o sendo e ao mesmo tempo sendo prático para você, baixe o manual do portal acompanhe o guia da flexdocs e veja quais os campos que vc deve acrescentar, muda pouca coisa.

boa sorte.

Link to comment
Share on other sites

Ola Caro Marsan

Eu preferir fazer mudancas no projetos HBNFE para o modelo 55 ja funciona perfeitamente e para o modelo 65 NFC-E ja conseguir transmitir com sucesso ja conseguir fazer o qrcode funcionar e agora estou adaptando ao meu frente de loja

Hilton

josehiltonribeiro2014@gmail.com

Link to comment
Share on other sites

  • 1 month later...
  • 1 year later...

Boa noite

ou dar meu pitaco, antes de tudo saia ou nem inicie utilizando TXT, vá direto pro XML, pq até o emissor gratuito já tem data certa pra morrer. Sobre as alterações que vc tem da 55 para 65, são poucas, no manual vc acha fácil, mas aviso, se for para Sampa, não esqueça que o Sat é obrigatório.

[]s,

Link to comment
Share on other sites

  • 2 weeks later...

Bom dia ,

Caro Marsan , vc consegui fazer o seu nfc-e ? , agora estou nessa luta to igual a vc nem sei por onde começar , uso a flexdocs na minha nf-e ja a muito tempo ,

gostaria que vc ou alguem me desse uma luz onde encontro material para o desenvolvimento tambem na flexdocs , desde ja obrigado , no aguardo

Link to comment
Share on other sites

Bom dia ,

Caro Marsan , vc consegui fazer o seu nfc-e ? , agora estou nessa luta to igual a vc nem sei por onde começar , uso a flexdocs na minha nf-e ja a muito tempo ,

gostaria que vc ou alguem me desse uma luz onde encontro material para o desenvolvimento tambem na flexdocs , desde ja obrigado , no aguardo

Judson

Como eu disse acima, são poucas alterações em relação a NFE, caso vc ja use, vc irá alterar o tipo de documento e mais algumas obrigações, relativas a pagamento, tipo da venda e etc... E poderá ou não ter destinatário.

[]s,

Link to comment
Share on other sites

  • 1 month later...

Bom dia , alguem pode me dar uma dica o porque desse

Rejeição (450): Modelo da NF-e difere de 55 

pois estou colocando oNFe:SetValue("ide"   , 'mod'     , "65" )  , ja visualizei a xml esta com 65 .

segue parte do codigo:

Function EnviaSefaz (cDocXml,cTipoAmbiente,oNfeUtil,cChaveAcesso,cXmlAssinado,cRecibo,wnota , oSayMsg , oSayDet )
*******************
      
   wnota:=strzero(val(wnota),10)
   cCertificado := GetPvProfString( "CONFIGURACAO", "CERTIFICADO", "", "VoNfeCertSign.Ini")

   If oNfeUtil==Nil
      oNFeUtil  := TVoNFeUtil2G():New(cEstadoEmitenteNFe, cTipoAmbiente, cCertificado,,,,cLicenca,.t.,lcontingencia,lnfce)
   Endif

   if oNFeUtil == Nil
      return( .f. )
   Endif

   If Empty(oNFEUtil:cCertificado)

      MsgInfo("Informe um certificado Valido!","Atenção")
      oNfeUtil:End()
      Return( .f. )

   Endif

   WritePProString( "CONFIGURACAO", "CERTIFICADO", oNFeUtil:cCertificado, "VoNfeCertSign.Ini" )

   // Faz validação para NFe
   if !oNFeUtil:ValidaXml(cDocXml, 52 ) // mudou aqui para versao 3.00 ( 19 )
      oNfeUtil:End()
      return( .f. )
   Endif

    ** NFCE **

   cCertificado  := GetPvProfString( "CONFIGURACAO", "CERTIFICADO", "", "VoNfeCertSign.Ini") 
   idtoken       := defa->idtoken            //  "000001"                   // incl. defa
   n_csc_sefaz   := alltrim(defa->csc_sefaz) // "007610711607221221337235" // incl. defa
   versaoQRCode  := "100"
   URLConsulta   := ""       
   indSinc       := "0"
   resultado_dll := 0
   msgResultado  := ""
   lote          := ""
   URLNFCe       := ""
   
   objNFeUtil := CreateObject("NFe_Util_2G.util")
   
   retornoAssinar := ""
   acDocXml       := cDocXml
   retornoAssinar := objNFeUtil:AssinarNFCE( @cDocXml,cCertificado,idtoken,n_csc_sefaz,versaoQRCode,@URLConsulta,indSinc,@resultado_dll,@msgResultado,@lote,@URLNFCe )
   cDocXml        := retornoAssinar

    ** NFCE **   // 
    
   cXmlAssinado := ""
   cRecibo      := ""
   cDataRecebimento := ""

   if oNFeUtil:EnviaNFe( cDocXml, @cXmlAssinado, @cRecibo , @cDataRecebimento) //  > 100

         wnfe_saydest:="Codigo de Acesso: "+cChaveAcesso + CRLF +;
                     "          Recibo: "+cRecibo + CRLF +;
                     "Dia/Hora do Recebimento: "+cDataRecebimento 
      oSayDet:setcolor(CLR_BLUE, CLR_LBLUE)
      oSayDet:refresh()      
           
      dbselectarea("vend") ; dbsetorder(1)
      dbseek(wcdmo+wnota+wseri)         
         if trava(2)
         replace chave with cchaveacesso , recibo with crecibo , recebi with oNFeUtil:Recebimento
         dbunlock()
      endif
      
      // tela da nfe
      wkey_acesso:=vend->chave ; oSaykey_acesso:refresh()
      oSayMsg:ctitle("Pedir autorização a Secretaria da Fazenda...") ; oSayMsg:refresh()

    else
    
      msginfo('Não foi possível enviar NFC-e. Tente novamente','Atenção')
      sefazsair := .t.    
    
   Endif

   oNfeUtil:End()
Return( .t. )

No aguardo ...:(

 

Link to comment
Share on other sites

Pessoal nao estou conseguindo colocar mais de uma forma de pagamento na nfce tipo DINHEIRO E CHQUE  , o que pode ser ?

*****************

   dbselectarea("PGTO")
   dbseek(wnota)
   do while wnota=pgto->nota .and. !eof()
   
      form->(dbseek(pgto->cdfp))
      
      lforma_nome := upper(alltrim(form->desc))
      ltpag:="01"
      
      if "DINHEIRO" $ lforma_nome
         ltpag:="01"
      elseif "CHEQUE" $ lforma_nome
         ltpag:="02"
      elseif "CARTAO" $ lforma_nome
         ltpag:="03"
      elseif lforma_nome $ "FIADO | CREDIARIO"
         ltpag:="04"
      elseif lforma_nome $ "VALE ALIMENTACAO"
         ltpag:="10"
      elseif lforma_nome $ "VALE REFEICAO"
         ltpag:="11"
      elseif lforma_nome $ "VALE PRESENTE"
         ltpag:="12"
      elseif lforma_nome $ "VALE COMBUSTIVEL"
         ltpag:="13"
      else
         ltpag:="99"          //  OUTROS        
      endif

      oIPgto := TVoNFePag()
        WITH OBJECT oIPgto

            // pagamentos
           :tPag     := ltpag                                 // forma de pagamento
            :vPag     := pgto->valo                       // valor do pagamento
            
        END

        oNFe:AddItem( oIPgto )
      
      pgto->( dbSkip() )

    Enddo

 

Link to comment
Share on other sites

Eu uso o flexdocs, através da classe do gilmer, e funciona blz

confere com o seu aí:

*** cabeçalho da nfe:

    oNfe := TVoNFe2g():New()
    oNFe:SetValue("ide"   , 'cUF'     , RetCodUFIBGE(UPPER(UF_Emi)) )
    oNFe:SetValue("ide"   , 'cNF'     , StrZero( val("815273"),8) )
    oNFe:SetValue("ide"   , 'natOp'   , cNatureza)
    oNFe:SetValue("ide"   , 'indPag'  , nTpPagto )
    oNFe:SetValue("ide"   , 'mod'     , iif(nfc_e="S","65","55") )
    oNFe:SetValue("ide"   , 'serie'   , VAL(N_SER00) )
    oNFe:SetValue("ide"   , 'nNF'     , VAL(ALLTRIM(NPNF)) ) // Numero Nota Fiscal
    oNFe:SetValue("ide"   , 'dhEmi'   , TimeZone(DEM0,HE0,"1") )
    if nfc_e#"S"
       oNFe:SetValue("ide"   , 'dhSaiEnt', TimeZone(sai0,hs0,"2") )
    endif
    oNFe:SetValue("ide"   , 'tpNF'    , cTpNF )
    oNFe:SetValue("ide"   , 'idDest'  , iif(uf_e=uf01 .OR. nfc_e="S","1","2") )
    oNFe:SetValue("ide"   , 'cMunFG'  , RetCodMunIBGE(UPPER(CI_E), UPPER(UF_E) ))
    oNFe:SetValue("ide"   , 'tpImp'   , iif(nfc_e="S","4",cTpImp) ) // tipo impressora
    oNFe:SetValue("ide"   , 'tpEmis'  , cTpEmis ) // ctpambiente
    oNFe:SetValue("ide"   , 'cDV'     , cDV ) //Não informar
    oNFe:SetValue("ide"   , 'tpAmb'   , cTpAmb )
    oNFe:SetValue("ide"   , 'finNFe'  , iif(tpnf=3,"4",cFinalidade) )
    IF cFinalidade$"23" .AND. NFE_CHAVE#" "
**       oNFe:SetValue("ide"   , 'refNFe'  , nfe_chave )
    endif
    oNFe:SetValue("ide"   , 'indFinal'  , iif(nfc_e="S","1",iif(len(TIRA(CNPJ0,"Z"))=11 .or. ie0="     ","1","0")) )
    oNFe:SetValue("ide"   , 'indPres'  , "1" )
    oNFe:SetValue("ide"   , 'procEmi' , "0")
    oNFe:SetValue("ide"   , 'verProc' , left(var_sys,14))
 

****************************

forma de pagamento:

 

    if nfc_e="S"
       IF CH_AV>0 .OR. CH_AP>0  // cheques
          t:=CH_AV+CH_AP-tro
          t:=round(t,2)
          LoadPagamentos( oNFe ,"02" ,t)
       ENDIF
       IF C_CTE>0 .or. VL_RL>0 .or. C_BOL>0 .or. vl_ct>0   // c/c, receber no local, boleto, carnêt
          t:=C_CTE+VL_RL+C_BOL+vl_ct-tro
          t:=round(t,2)
          LoadPagamentos( oNFe,"05",t )
       ENDIF
       IF VL_DIN>0   // dinheiro
          t:=vl_din-tro
          t:=round(t,2)
          LoadPagamentos( oNFe ,"01",t)
       ENDIF
       IF TT_CRED>0 .OR. TT_DEBI>0 // cartões de credito e debitos
          t:=TT_CRED+TT_DEBI-TRO
          t:=round(t,2)
          LoadPagamentos( oNFe,"03",t )
**        LoadPagamentos( oNFe,"03",t ,"47558127000194" ,"01","345678263537")
       ENDIF
    endif
 

**********************************************

 

 

Function LoadPagamentos( oNFe , tpPag , nVlpg , cnpj_card,band_card,aut_card)
   local cString := ""
   local nItem := 0
   default cnpj_card:=space(14),band_card:=space(10),aut_card:=space(10)
  
   oItem := TVoNFePag()
   WITH OBJECT oItem
        :tPag  := tpPag        
        :vPag  := nVlpg
        if cnpj_card#" "
           :CNPJ :=cnpj_card
        endif
        if band_card#" "
           :tBand :=band_card
        endif
        if aut_card#" "
           :cAut:=aut_card
        endif
   END
   oNFe:AddItem( oItem )

return nil

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...