Jump to content
Fivewin Brasil

Classe Gilmer(Method distNSU)


Luiz Fernando

Recommended Posts

Colegas, alguém esta usando este method, caso sim consegue enxergar algo errado no codigo abaixo, pois o retorno esta sendo sempre falso.

 

  oNfeUtil:=TVoNfeUtil2G():New(aEmpresa[1,1],aEmpresa[1,4],aEmpresa[1,3],,,,aEmpresa[1,2],,aEmpresa[1,25])

  cUltNSURecebido:=100
  cUltNsu := "0"
  cMaxNsu := "30"
  cQtdeDocto := 1
  aRegistros:={}
  aSize(aRegistros,0)
  cRetorno    := ''
  if oNfeUtil:distNSU(aEmpresa[1,1],sonumero(aEmpresa[1,6]),@cUltNSURecebido,"",@cUltNsu,@cMaxNsu,@cQtdeDocto,@cRetorno,@aRegistros)
	  ? 'ok'
  else
     ? 'não ok'  // esta caindo aqui, o arquivo manifest.txt é criado vazio
  endif	  

obg

Luiz Fernando

Link to comment
Share on other sites

Olá

Já tem um bom tempo que fiz, mas pelo que me lembro há problemas ao se passar as variáveis por referencia... Estou utilizando assim e dá certo:

 oNfeUtil:distNSU(cUfManif,cCnpjManif,cUltNsuRec,"",@cUltNsu,@cMaxNsu,1,@aRegistros)

Passe por referência apenas as variáveis estritamente necessárias e retire "@" das demais, conforme acima.

Att.

Herberson Gontijo
 

Link to comment
Share on other sites

Faça assim:

   oNfeUtil:distNSU(cUfManif,cCnpjManif,cUltNsuRec,"",@cUltNsu,@cMaxNsu,1,@aRegistros)
   If oNfeUtil:cStsNFe=="7001" .or. oNfeUtil:cStsNFe=="7003"
      fMsgStop("Licença da dll da FlexDocs não confere, contacte o suporte.", "Atenção")
      cChaveDll:=" "
      Return .f.
   Endif
   If Len(aRegistros)==0
      MsgAlert("Não existe nenhum documento pendente.","Consulta")
   Else

     xbrowse(aRegistros)

   Endif

 

Att.

Herberson Gontijo

Link to comment
Share on other sites

Empresoft

Você está fazendo o teste com o certificado do cliente e está configurado para PRODUCAO? Porque se tiver para HOMOLOGAÇÃO, não mostrará as NF-e's que foram emitidas contra o CNPJ dele em produção não.

Tente passar o cUltNsuRec :="0" para processar desde o começo.

Att.

Herberson Gontijo

 

Link to comment
Share on other sites

Herberson aqui estava mesmo em homologação mudei para produção como tb  deixei desta forma cUltNsuRec :="0,  sem sucesso no retorno, sem querer abusar de sua ajuda , sera que esta parte da minha classe esta igual a sua.

 

Method distNSU(cSiglaUFDestinado,cCNPJDestinatario,cUltNSURecebido,cVerAplic,cUltNsu,cMaxNsu,nQtdeDocto,uRetorno,lRetArray) Class TVoNFeUtil2G
Local nStat:=0
Local cMsgResultado:="",nIndContinuacao:=1
local cMsgDados:="", cMsgRetWS:="",cRetTxt:="",aRegistro:={},oTxt

Default cSiglaUFDestinado:=::SiglaUF,cUltNSURecebido:="0",cUltNsu:="0",lRetArray:=.t.
Default cVerAplic:="",cMaxNsu:="",nQtdeDocto:=1
   ::Limpa()
   If ::CertificadoSelecionado()
      If ::ConsultaStatus()
         Try
/*
    cRetTxt+=::oNFEUtil:distNSU("AN",::Ambiente, ::cCertificado,;
          "4.00", @cMsgDados, @cMsgRetWS,@nStat,;
          @cMsgResultado,cCNPJDestinatario,cSiglaUFDestinado,;
          cUltNSURecebido,@cVerAplic,@::Recebimento,@cUltNsu,;
          @cMaxNsu,@nQtdeDocto,;
          ::proxy,::usuario,::senha,::Licenca)
*/


    cRetTxt+=::oNFEUtil:distNSU("AN",::Ambiente, ::cCertificado,;
          "4.00", @cMsgDados, cMsgRetWS,@nStat,;
          cMsgResultado,cCNPJDestinatario,cSiglaUFDestinado,;
          cUltNSURecebido,cVerAplic,::Recebimento,@cUltNsu,;
          @cMaxNsu,@nQtdeDocto,;
          ::proxy,::usuario,::senha,::Licenca)

obg

Luiz Fernando

Link to comment
Share on other sites

Realmente, acho que tive que mexer na classe, só agora estou lembrando... vou colar aqui.

// Consulta NF-e destinadas
Method distNSU(cSiglaUFDestinado,cCNPJDestinatario,cUltNSURecebido,cVerAplic,cUltNsu,cMaxNsu,nQtdeDocto,uRetorno,lRetArray) Class TVoNFeUtil2G
    Local nStat:=0
    Local cMsgResultado:="",nIndContinuacao:=1
    local cMsgDados:="", cMsgRetWS:="",cRetTxt:="",aRegistro:={},oTxt
   Default cSiglaUFDestinado:=::SiglaUF,cUltNSURecebido:="0",cUltNsu:="0",lRetArray:=.t.
    Default cVerAplic:="",cMaxNsu:="",nQtdeDocto:=1
   ::Limpa()
   If ::CertificadoSelecionado()
       If ::ConsultaStatus()
            Try
/*
                cRetTxt+=::oNFEUtil:distNSU("AN",::Ambiente, ::cCertificado,;
                                  "4.00", @cMsgDados, @cMsgRetWS,@nStat,;
                                  @cMsgResultado,cCNPJDestinatario,cSiglaUFDestinado,;
                                  cUltNSURecebido,@cVerAplic,@::Recebimento,@cUltNsu,;
                                  @cMaxNsu,@nQtdeDocto,;
                                  ::proxy,::usuario,::senha,::Licenca)
*/
                cRetTxt+=::oNFEUtil:distNSU("AN",::Ambiente, ::cCertificado,;
                                  "4.00", @cMsgDados, cMsgRetWS,@nStat,;
                                  cMsgResultado,cCNPJDestinatario,cSiglaUFDestinado,;
                                  cUltNSURecebido,cVerAplic,::Recebimento,@cUltNsu,;
                                  @cMaxNsu,@nQtdeDocto,;
                                  ::proxy,::usuario,::senha,::Licenca)

            Memowrit("manifest.txt", cRetTxt, .f.)
          Catch oError
              fMsgStop("Erro! oNFeUtil:DistNSU."+CRLF+;
                      "Error: " + cValToChar( oError:GenCode) + CRLF + ;
                      "SubC: " + cValToChar( oError:SubCode ) + CRLF + ;
                      "OSCode: " + cValToChar( oError:OsCode ) + CRLF + ;
                      "SubSystem: " + cValToChar( oError:SubSystem ) + CRLF + ;
                      "Operação: " + cValToChar( oError:Operation ) + CRLF + ;
                      "Mensagem: " + oError:Description, CAPTION_MSG)
                Return(.f.)
            End Try
            ::cStsNFe     := Alltrim(Str(nStat))
            ::cStsNFeMsg  := cMsgResultado
            ::Protocolo   := cUltNsu
       Else
              //Tratar erro para servidor fora
       Endif
       If !Empty(cRetTxt)
            ::lAutorizada:=.t.
            If lRetArray
                While .t.
                   nPos:=At(CHR(13), cRetTxt)
                   If nPos>0
                        AAdd(uRetorno, {Subs(cRetTxt,1,15), Subs(cRetTxt,17,35), Subs(cRetTxt,53,nPos-53)})
                        cRetTxt:=Subs(cRetTxt,nPos+1)
                    Else
                       Exit
                    Endif
                Enddo 
             Else
                  uRetorno:=cRetTxt
           Endif
        Endif
   Endif
Return( ::lAutorizada )
 

 

Att.

Herberson Gontijo

 

 

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...