Página 7 de 10

hbNFe dúvidas

Enviado: 10 Ago 2012 00:45
por pauloa1
Olá!

Informei as classes para gerar o xml e validar.

Ao executar da a mensagem de 'Problema ao validar EAN'
linha 1309 do HBNFECreator.prg
aRetorno['MsgErro'] := 'Problema ao validar EAN'

o cEAN deixei em branco .

Código: Selecionar todos

            oNF:AddItem()
            WITH OBJECT oNF:Item[oNF:nItens]    // INICIO PRODUTOS
                 :cProd  := VAL(PRODUTO->CODPDT) //1
                 :cEAN   := ''
                 :xProd  := retiraacento(PRODUTO->NOME)+" "+retiraacento(produto->nomeadic) //'PRODUTO 1'
                 :NCM    := PRODUTO->NCM_SH //'28467328'
                 :CFOP   := IFISCAL->CFOP //'5102'
                 :uCom   := PRODUTO->UNIDADE //'PC'
                 :qCom   := IFISCAL->QTIDADE //4.00
                 :vUnCom := IFISCAL->VR_UNI //10.00
                 :vProd  := IFISCAL->VR_TOTAL //40.00
                 :vDesc  := IFISCAL->VR_DES //10.00
                 :indTot := 1 //0
Oque estou fazendo de errado?

Paulo

hbNFe dúvidas

Enviado: 10 Ago 2012 08:56
por andersoncamilo
Paulo

Bom dia

Coloca o conteúdo dessa variavel como Nil, e testa, acredito que vai dar certo.

Anderson Camilo

hbNFe dúvidas

Enviado: 10 Ago 2012 09:56
por Imatech
Trata-se de informação obrigatória na NFe e deve ser informada quando existir...

Código: Selecionar todos


      oNF:AddItem()

      WITH OBJECT oNF:Item[oNF:nItens]  // INICIO PRODUTOS
        :cProd := VAL(PRODUTO->CODPDT) //1
        IF !( EMPTY( PRODUTO->EAN ) )
          :cEAN := PRODUTO->EAN
        ENDIF
        :xProd := retiraacento(PRODUTO->NOME)+" "+retiraacento(produto->nomeadic) //'PRODUTO 1'
        :NCM  := PRODUTO->NCM_SH //'28467328'
        :CFOP := IFISCAL->CFOP //'5102'
        :uCom := PRODUTO->UNIDADE //'PC'
        :qCom := IFISCAL->QTIDADE //4.00
        :vUnCom := IFISCAL->VR_UNI //10.00
        :vProd := IFISCAL->VR_TOTAL //40.00
        :vDesc := IFISCAL->VR_DES //10.00
        :indTot := 1 //0


hbNFe dúvidas

Enviado: 10 Ago 2012 14:03
por pauloa1
Fiz de tudo e não adianta.

Unica forma foi comentar algumas linhas e deixa só adicionar a tag vazia.

Código: Selecionar todos

        * TRY
                 *    IF ::oFuncoes:validaEan(:cEAN)[1] = .T.
                        ::incluiTag('cEAN'     ,:cEAN)   //<cEAN />
                 *    ELSE
                 *       aRetorno['OK'] := .F.
                 *       aRetorno['MsgErro'] := 'Problema ao validar EAN ' + ::oFuncoes:validaEan(:cEAN)[2]
                 *    ENDIF
                 * CATCH
                 *    aRetorno['OK'] := .F.
                 *    aRetorno['MsgErro'] := 'Problema ao validar EAN'
                 * END
                 * IF aRetorno['OK'] = .F.
                 *    RETURN(aRetorno)
                 * ENDIF

Pra que servem os arquivos da pasta \HBNFE\fontes_cod_barra do SVN?

preciso adicionar algum arquivo no meu sistema? não seria isso o problema da cEAN ?


Leonardo!

Tem um erro na linha 1518 do HBNFECreator.prg

IF :CST $ '40,41,50'
// ::incluiTaincluiTagGrupo('/ICMS40') //errado
::incluiTagGrupo('/ICMS40') // correto
ELSE
::incluiTagGrupo('/ICMS'+:CST)
ENDIF

Quando for possível seria bom acertar e adicionar no SVN.




Paulo

hbNFe dúvidas

Enviado: 10 Ago 2012 15:12
por sygecom
Olá Paulo,
pauloa1 escreveu: Unica forma foi comentar algumas linhas e deixa só adicionar a tag vazia.
Eu não uso EAN por que só trabalho com industria, mas vamos esperar para mais alguém que trabalhe com EAN para ver se tem o mesmo problema, para tentarmos arrumar na HBNFE.
Pra que servem os arquivos da pasta \HBNFE\fontes_cod_barra do SVN?
Serve apenas para impressão do DANFE em PDF, não interfere com qualquer outro passo da NFE, nem na DANFE em FASTREPORT.
preciso adicionar algum arquivo no meu sistema? não seria isso o problema da cEAN ?
Se for usar a DANFE em PDF sim precisa, mas apenas para o uso da DANFE. E não é esse o problema do cEAN.
Tem um erro na linha 1518 do HBNFECreator.prg
Fiz o ajuste no SVN, muito obrigado pela dica. Abraços

hbNFe dúvidas

Enviado: 10 Ago 2012 16:15
por andersoncamilo
Boa tarde a todos

Fiz duas modificações no HbNFeCreator.PRG, para corrigir esse problema do EAN.

1 - Na linha 1076 o valor era aRetorno[ 'OK' ] := .F. // Errado
mudei para aRetorno[ 'OK' ] := .T. // Correto

2 - Comentei as linhas 1308 e 1309
1308 // aRetorno['OK'] := .F.
1309 // aRetorno['MsgErro'] := 'Problema ao validar EAN'

inclui na linha 1310,
::incluiTag('cEAN' ,'') //<cEAN />


Leonardo se puder comitar, agradeço.

Obrigado

Anderson Camilo

hbNFe dúvidas

Enviado: 10 Ago 2012 16:22
por sygecom
Olá Anderson.
1- Se eu mudar a linha 1076 para .T. ele tem vários RETURN antes do final que dão problema e deve retornar .F.
Veja que lá pela linha 1937 ele muda para:
aRetorno[ 'OK' ] := .T.
Acho que devemos manter assim. De uma revisada.
2- Ok, alterado.

hbNFe dúvidas

Enviado: 10 Ago 2012 16:31
por andersoncamilo
Leonardo

Se não mudar para .T. ele vai continuar dando o erro no EAN, a qualquer momento que ele encontrar algum erro ele vai mudar o valor para .F., então acredito que não vai dar nenhum efeito colateral.

Nas linhas 1313 e 1338 tem esse teste abaixo:
IF aRetorno['OK'] = .F.
RETURN(aRetorno)
ENDIF

Se não mudar na 1076 ele sempre vai ser .F., e onde provoca o erro, outra alternativa seria mudar o valor para .T. em outro lugar, ou mudar os locais destes dois testes.


Eu gerei um arquivo xml e funcionou certinho.


Anderson Camilo

hbNFe dúvidas

Enviado: 10 Ago 2012 21:54
por pauloa1
Estou achando estranho algumas coisas.

gerei o xml + assinar+envio.

deu mensagem "lote recebido com sucesso"

Fui consultar a nfe e a mesma não consta no sefaz.

Consultei ela pelo acbr e realmente não consta.

Fui enviar ela pelo acbr e deu um erro "Nota(s) não confirmadas:
7327->Rejeicao: Valor do Produto difere do produto Valor Unitario de Tributacao e Quantidade Tributavel"

Não estou me referindo ao erro em si, mas o motivo do HBNFE não ter me informado esse erro em vez de ter dado a mensagem de "Lote Recebido".


A forma como estou fazendo:

Informo os dados no oNF:

Depois coloquei assim:

Código: Selecionar todos

	

   *********/// gerar  validar e assinar xml
         aRetorno := oNF:geraXML()
         oNF := Nil
         IF aRetorno[ 'OK' ] = .F.
            MSG(aRetorno[ 'MsgErro' ])
          * ELSE
          * MSG('Gerou XML')
         ENDIF


       ******/// Enviar xml assinado 
        oEnviaNFe := hbNFeRecepcaoLote()
        oEnviaNFe:ohbNFe := oNfe // Objeto hbNFe
        oEnviaNFe:idLote := '2' //idLote
        oEnviaNFe:aXMLDados := {mFILE_XML}  //{ cXMLFileAssinado }
        oEnviaNFe:lAguardaRetorno := .T.
        aRetorno := oEnviaNFe:execute()
        oEnviaNFe := Nil

        IF aRetorno['OK'] == .F.
           MSG(aRetorno['MsgErro'])
          ELSE
         *  MSG( aRetorno['versao']  )
         *  MSG( aRetorno['tpAmb']   )
         *  MSG( aRetorno['verAplic'])
         *  MSG( aRetorno['cStat']   )   // deu 103
         *  MSG( aRetorno['xMotivo'] ) // lote recebido com sucesso 
          * MSG( aRetorno['cUF']     )
          * MSG( aRetorno['dhRecbto'])
          *  MSG( aRetorno['nRec']    )
          * MSG( aRetorno['tMed']    )
        ENDIF
      *****************************************************************
     //Pega retorno se deu erro ou não
       oRetornoNFe := hbNFeRetornoRecepcao()
        oRetornoNFe:ohbNFe := oNfe // Objeto hbNFe
        oRetornoNFe:nRec := aRetorno['nRec'] //nRecibo
        aRetorno := oRetornoNFe:execute()
        oRetornoNFe := Nil

        IF aRetorno['OK'] == .F.
             msg( aRetorno['MsgErro']  )
	  ELSE
         //retornou aqui 
            msg( aRetorno['tpAmb']     )
            msg( aRetorno['verAplic']  )
            msg( aRetorno['nRec']      )
            msg( aRetorno['cStat']     )
            msg( aRetorno['xMotivo']   )
            msg( aRetorno['cUF']       )
            msg( aRetorno['cMsg']      )
            msg( aRetorno['xMsg']      )
            FOR nI = 1 TO aRetorno['nNFs']
              msg( aRetorno['NF'+STRZERO(nI,2)+'_tpAmb']     )
              msg( aRetorno['NF'+STRZERO(nI,2)+'_verAplic']  )
              msg( aRetorno['NF'+STRZERO(nI,2)+'_chNFe']     )
              msg( aRetorno['NF'+STRZERO(nI,2)+'_dhRecbto']  )
              msg( aRetorno['NF'+STRZERO(nI,2)+'_nProt']     )
              msg( aRetorno['NF'+STRZERO(nI,2)+'_digVal']    )
              msg( aRetorno['NF'+STRZERO(nI,2)+'_cStat']     )
              msg( aRetorno['NF'+STRZERO(nI,2)+'_xMotivo']   )
              msg( aRetorno['NF'+STRZERO(nI,2)+'_protNFe']   )
           NEXT
        ENDIF

      ****/// consultar nfe se consta no sefaz
		  
//montar chave

mFILE_XML=LEFT(PERS->CIDNFE,2)+substr(strzero(year(NFISCAL->EMISSAO),4),3,4)+strzero(month(NFISCAL->EMISSAO),2);
      +Tiraponto(PERS->CGCMF)+"55001"+strsimb(NFISCAL->NUMERO,9)+"1"+strsimb(NFISCAL->NUMERO,8) 
mDVNFE=MODULO11_NFE(mFILE_XML)
mFILE_XM=ALLTRIM(PERS->NFE_PNFE)+"\\"+mFILE_XML+ALLTRIM(STR(mDVNFE))+'-nfe.xml'

        oConsulta := hbNFeConsulta()
        oConsulta:ohbNFe := oNfe // Objeto hbNFe
       oConsulta:cNFeFile := mFILE_XM  
       aRetorno := oConsulta:execute()
        oConsulta := Nil

        IF aRetorno['OK'] == .F.
             msg(aRetorno['MsgErro'] )  //aqui ta retornando que nota não consta no sefaz.
          ELSE
         *  msg( aRetorno['tpAmb']     )
         *  msg( aRetorno['verAplic']  )
         *  msg( aRetorno['dhRecbto']  )
         *  msg('nprod '+ aRetorno['nProt']     )
         *  msg( aRetorno['digVal']    )
         *  msg( aRetorno['cStat']     )
           msg( aRetorno['xMotivo']   )
         *  msg( aRetorno['protNFe']   )
       ENDIF
	***** se ok gravar retornos e gerar danfe	  
Paulo

hbNFe dúvidas

Enviado: 11 Ago 2012 08:58
por pauloa1
Coloquei a nota de referencia e não adicionou no xml.

Código: Selecionar todos

WITH OBJECT oNF:Ide:NFref:refNFP
            :cUF    := left(vcodmun,2)
             :AAMM   := substr(dtos(NFISCAL->EMISSAO),3,2)+substr(dtos(NFISCAL->EMISSAO),5,2)
             :CNPJ   := PERS->CGCMF
             :CPF    := xCNPJ
             :IE     := alltrim(xIEPROD) 
             :mod    := '04'
             :serie  := '0'
             :nNF    := strsimb(NFISCAL->Nbloco,9) //bloco produtor rural
            // :refCTe := Nil
         END WITH
Paulo

hbNFe dúvidas

Enviado: 11 Ago 2012 09:28
por pauloa1
Fui tentar gerar usando o arquivo INI do acbr.

e da esse erro:

Error BASE/1132 Erro de limite: acesso de array
Called from HBNFEINITOXML.PRG->HBNFEINITOXML:CRIANFE(229)
Called from HBNFEINITOXML.PRG->HBNFEINITOXML:EXECUTE(109)
Called from SCCNFE.PRG->NFE_CRIANFE(637)
Called from SCC161.PRG->CNOTA(399)
Called from SCC161.PRG->NOTANOVA(172)
Called from SCC161.PRG->SCC161(24)
Called from SCCN.PRG->(b)PRINCIPAL(318)
Called from COMPATIB.PRG->KEYPRESS(174)
Called from COMPATIB.PRG->(b)CONFIGURA_SCC(53)
Called from ->INKEY(0)
Called from SCCN.PRG->PRINCIPAL(605)

HwGUI 2.17 xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9612)
Date:11/08/2012
Time:09:13:56


Bom, acho que para o meu caso o HBNFE ainda não está 100%, mas para aqueles que funciona, recomendo.

Como o tempo é curto demais, vou retornar ao uso do ACBR.

Paulo

hbNFe dúvidas

Enviado: 13 Ago 2012 00:38
por sygecom
Olá Paulo,
Eu uso exclusivamente gerando os arquivos INI no formato do ACBR e funciona 100%.
Tem erros que são por falta de atenção ou por falta de teste, como não tem um manual especifico para a HBNFE o entendimento de como funciona é necessário. No seu caso faltou carregar os dados do certificado, mesmo assim fiz uma alteração na HBNFE para dar um aviso sobre isso.

hbNFe dúvidas

Enviado: 16 Ago 2012 15:36
por pauloa1
Depois da última atualização ta dando essa mensagem, caso gerar nfe com a tag nfp

exemplo no arquivo ini
[NFRef001]
Tipo=NFP
cUF=43
AAMM=1207
IE=1631026744
CNPJ=05686058000154
CPF=08318889894
Modelo=04
Serie=0
nNF=000123456


'000123456' viola a restrição pattern de '[1-9]{1}[0-9]{0,8}'.
Falha da análise do elemento '{http://www.portalfiscal.inf.br/nfe}nNF' com valor '000123456'.

Pelo acbr está passando, usando o mesmo arquivo ini.

Paulo

hbNFe dúvidas

Enviado: 17 Ago 2012 10:36
por andersoncamilo
Paulo

Bom dia

No HBNFE não tem tratamento dos dados que vem do arquivo INI, então conforme o manual da nfe o conteúdo do campo nNF tem que ter somente os números válidos não podendo ter zeros a esquerda e outro detalhe o tamanho desse campo é 6 caracteres, eu também tenho um programa que ainda utiliza o ACBRNFEMONITOR, e quando comecei a utilizar o hbnfe passei fazer os tratamentos de alguns campos no momento de criar o arquivo INI, que na verdade eu acho que seja a forma mais correta, porque assim os dados ficam gravados como realmente devem ser.

Qualquer dúvida é so chamar.

Um abraço

Andeson Camilo

hbNFe dúvidas

Enviado: 29 Ago 2012 13:53
por Devair
Conheci a HBNfe, e resolvi fazer uns testes.

Mais to com problema pra assinar o XML.
A função hbNFeAssina faz a assinatura no XML, mais qdo se faz a validação do XML, no aplicativo da SEFAZ, diz que ta com erro. Percebi, analizando a função, que ela pega o cabeçalho do XML " <?xml version="1.0" encoding="UTF-8"?>" , uma parte e após assinar ela coloca novamente a parte que falta no xml, isto que causa o erro, pois após a assinatura não se pode acrescentar nada.

Creio estar fazendo algo errado, ou não entendendo como funciona, uso xHarbour.

Se alguem puder me dar uma dica, agradeço.