kapiaba Posted September 12, 2014 Report Share Posted September 12, 2014 Galera, ajuda ahi: Alguém coseguiu fazer esta função da FLEXDOCS funcionar? #include "FiveWin.ch" FUNCTION Main() &&-------------------------------------------------------------------------------------- && && Funcionalidade para consultar as NF-e destinadas para um CNPJ && &&-------------------------------------------------------------------------------------- && DECLARAÇÃO DE PARÂMETROS DE ENTRADA DA FUNCIONALIDADE &&-------------------------------------------------------------------------------------- Local siglaWS && sigla do WS: AN para Ambiente Nacional ou RS Local siglaUF && sigla da UF do destinatário Local tipoAmbiente && Ambiente: 1-Produção e 2-Homologação Local nomeCertificado && campo assunto do certificado digital Local versao && versão= 1.01 Local CNPJ && CNPJ do destinatário da NF-e Local indNFe && 0-todas as notas, && 1-somente as que não tiveram manifestação concluisva, & 2-todas as que tiveram manifestação Local indEmi && 0-todas as NF-e, && 1-somente as NF-e que não tenham destinatário/remetente && com a mesma raiz CNPJ Local ultNSU && último NSU recebido pela empresa Local proxy && IP e porta do proxy, informar se existir proxy Local usuario && usuario do proxy Local senha && senha do proxy Local licenca && licenca de uso, necessário informar para produção &&-------------------------------------------------------------------------------------- && DECLARAÇÃO DE PARÂMETROS DE RETORNO DA FUNCIONALIDADE &&-------------------------------------------------------------------------------------- Local msgDados && retorna o XML enviado ao WS Local msgRetWS && retorna o XML de resposta do WS Local cStat && retorna o código do resultado da chamada Local msgResultado && retorna o literal do resultado da chamada Local dhResp && retorna a data e hora da resposta Local indCont && retorna o indicador de continuação && 0-não existem mais NF-e && 1-existem mais NF-e Local ultNSUConsultado && retorna o Último NSU pesquisado na SEFAZ. && Se for o caso, o solicitante pode continuar a consulta && a partir deste NSU para obter novos resultados. Local txtNFe && retorna o TXT com as informações das notas localizadas Local objNFeUtil &&-------------------------------------------------------------------------------------- && INICIALIZAÇÃO DE PARÂMETROS &&-------------------------------------------------------------------------------------- siglaWS := "RS"; siglaUF := "RS"; tipoAmbiente := 2 nomeCertificado := "CN=M R M KATO ASAKURA - EPP:69621187915, OU=AC CAIXA PJ-1 V1, OU=Caixa Economica Federal, O=ICP-Brasil, C=BR" versao := "1.01"; msgDados := ""; msgRetWS := "" cStat := 0 ; msgResultado := ""; CNPJ := "10142785000190" indNFe := 0; indEmi := 0; ultNSU := "0"; proxy := "" usuario := ""; senha := ""; licenca := ""; dhResp := "" indCont := 1 ; ultNSUConsultado := "0"; txtNFe := "" &&-------------------------------------------------------------------------------------- && instancia classe &&-------------------------------------------------------------------------------------- //objNFeUtil := CREATEOBJECTEX("NFe_Util_2G.Util","","") // original objNFeUtil := CREATEOBJECT("NFe_Util_2G.Util") &&-------------------------------------------------------------------------------------- && chama funcionalidade &&-------------------------------------------------------------------------------------- DO WHILE (indCont = 1) txtNFe := objNFeUtil:ConsultaNFDest(siglaWS,siglaUF,tipoAmbiente,nomeCertificado,versao,@msgDados,@msgRetWS,@cStat,@msgResultado,CNPJ,indNFe,indEmi,ultNSU,@dhResp,@indCont,@ultNSUConsultado,proxy,usuario,senha,licenca) IF cStat = 138 && && tratar txtNFe && ? msgResultado ? txtNFe ELSEIF cStat <> 137 && && tratar erro da chamada && indCont = 9 ENDIF ultNSU = UltNSUConsultado ENDDO ? txtNFe &&-------------------------------------------------------------------------------------- && libera classe &&-------------------------------------------------------------------------------------- objNFeUtil = nil //null RETURN nil Obg. abs. Quote Link to comment Share on other sites More sharing options...
miragerr Posted September 12, 2014 Report Share Posted September 12, 2014 Ola kapi Faz assim Method BuscaNFeDestinadas( ) Class TVoNFeUtil2G ********************************************************************************************************************** ** Local msgDados := '' Local msgRetWS := '' Local cStat := 0 Local msgResultado := '' Local indNFe := 0 Local indEmi := 0 Local ultNSU := '0' Local dhResp := '' Local indCont := 0 Local ultNSUConsultado := '0' Local cResult Local aResul := {} Local aNFes := {} Local oDlg, nNotas := Space(50) Local cTime := Time() DEFINE DIALOG oDlg TITLE "Aguarde..." @ 2, 11 SAY "Buscando Nfe Destinadas" @ 3, 11 SAY oSay VAR nNotas ACTIVATE DIALOG oDlg CENTERED ; ON INIT PlaceGif( oDlg ) NOWAIT Do While .t. //indCont == 0 cResult := ::oNFEUtil:ConsultaNFDest( 'AN', USERINFO_UF, 1, ::cCertificado, '1.01', @msgDados, @msgRetWS, @cStat, @msgResultado, USERINFO_CNPJ, indNFe, indEmi, ultNSU, @dhResp, @indCont, @ultNSUConsultado,::proxy, ::usuario, ::senha, ::Licenca) ultNSU := ultNSUConsultado SysRefresh() IF cStat == 138 aResul := HB_ATOKENS( cResult, CHR(13) ) FOR k=1 TO Len( aResul ) IF !Empty( aResul[k] ) aResul2 := HB_ATOKENS( aResul[k], '|' ) IF aResul2[ 1 ] == '[resNFe]' .AND. aResul2[ 9 ] == '1' AADD( aNFes, aResul2 ) Endif EndIf Next nNotas := "Qtd.:"+AlltrimStr( Len( aNFes ) )+" Tempo..:"+Elaptime( cTime, Time() ) oSay:Refresh() EndIf IF indCont == 0 exit EndIF EndDo //XBrowse( aNFes ) oDlg:End() Return aNFes ai pra chamar o metodo faz assim //----------------------------------------------------------------------------------------------------------------------// // Buscar NFe destinadas ao CNPJ //----------------------------------------------------------------------------------------------------------------------// #include "FiveWin.ch" #include "xBrowse.ch" #include "Dbfs.ch" #include "Opcoes.ch" #include "hbxml.ch" #include "DTPICKER.CH" Function WEstAt48() *********************************************************************************************************** *** *** Local oNFeUtil := TVoNFeUtil2g():New( USERINFO_UF , 1, Alltrim(aGeralIni[187]),,,,aGeralIni[188],.t.,,LocalDBF+"\SAC") Local aRet := oNFeUtil:BuscaNFeDestinadas() Local aFont[2], oDlg, aBmp[2] Local oBrowse, cCmd, aRet2 Local oNfe := GetGerNfe() Local cChave := Space(44) FOR k=1 TO Len( aRet ) aRet[ k, 1 ] := .F. aRet[ k, 8 ] := StoD( StrTran( aRet[k,8], '-','' ) ) aRet[ k, 10] := Val( aRet[k,10] ) aRet[ k, 14] := .F. cCmd := "Select arnomfor FROM pg02 WHERE arcgcfor = '"+Alltrim( aRet[k,4] )+"' LIMIT 1" aRet2 := Array_Sql( cCmd,,,.f. ) IF !Empty( aRet2 ) aRet[ k, 6 ] := aRet2[1,1] cCmd := "Select sr_recno FROM ent1nota WHERE arnr_nfe = '"+Alltrim( aRet[k,3] )+"' LIMIT 1" aRet2 := Array_Sql( cCmd,,,.f. ) IF !Empty( aRet2 ) aRet[ k, 14 ] := .T. EndIf EndIf Next DEFINE FONT aFont[1] NAME "Times New Roman" SIZE NIL,-12 DEFINE FONT aFont[2] NAME "Times New Roman" SIZE NIL,-26 BOLD ITALIC DEFINE DIALOG oDlg RESOURCE "BUSCA_NFE_DESTINADA" FONT aFont[1] oTT := TitleEx():Redefine( 4020, , "BUSCA NFe DESTINADAS",CLR_WHITE, aFont[2], oDlg, 1 ) REDEFINE XBROWSE oBrowse ARRAY aRet AUTOSORT; OF oDlg; ID 5000 ADD COLUMN oCol0 TO oBrowse BITMAP BMPDATA { || IIF( aRet[ oBrowse:nArrayAt,14], 2, 1 ) } IN "CHEKON","CHEKOFF"; HEADER " "; SIZE 20 oCol0:nFooterType := AGGR_COUNT oCol0:bLDClickData := {|| MsgRun("Conectando com o Portal da NFe","Aguarde...", ; {|| oNfe:Consulta( aRet[ oBrowse:nArrayAt,03] ) } ), ; IIf( File( oNfe:cFileNameNfe ),; ( lLimpaDir := .T., MsgInfo("Consulta Executada com sucesso, arquivo salvo em:"+CRLF+oNfe:GetFileName()+" !","TGerNfe") ),; MsgStop("Falha na consulta !","TGerNfe") ) } ADD COLUMN TO oBrowse DATA ARRAY ELM 3 ; HEADER "Chave NFe" ; SIZE 270 ; ON EDIT { |o,x,n| x := n }; ALIGN LEFT ADD COLUMN TO oBrowse DATA ARRAY ELM 8 ; HEADER "Emissão" ; SIZE 80 ; ALIGN CENTER ADD COLUMN TO oBrowse DATA ARRAY ELM 6 ; HEADER "Fornecedor" ; SIZE 300 ; ALIGN LEFT ADD COLUMN TO oBrowse DATA ARRAY ELM 10 ; HEADER "Valor R$" ; SIZE 100 ; PICTURE "@E 999,999.99"; ALIGN RIGHT oBrowse:MakeTotals() CorListBox( oBrowse ) oBrowse:lFooter := .t. oBrowse:nStretchCol := STRETCHCOL_LAST REDEFINE BTNBMP aBmp[1] LEFT RESOURCE "IMPRESS" 2007 ID 4001 OF oDlg ACTION ( lSai := .F., aBmp[1]:Disable(), oDlg:Update(), aBmp[2]:bAction := {|| lSai := .T. },; Imprime_Destinadas( aRet ), oDlg:SetFocus(), aBmp[1]:Enable(), aBmp[2]:bAction := {|| dBCloseAll(), oDlg:End() } ) Update REDEFINE BTNBMP aBmp[2] LEFT RESOURCE "BITMAP_3" 2007 ID 4002 OF oDlg ACTION ( oDlg:End() ) Update aBmp[2]:bClrGrad := GRAD_BTNSAI oDlg:lHelpIcon := .F. ACTIVATE DIALOG oDlg CENTERED RELEASE BTNBMP aBmp[1], aBmp[2] RELEASE FONT aFont[1], aFont[2] Return Static Function Imprime_Destinadas( aDados ) ************************************************************************************************************ *** *** Local aRet := {} Local k For k=1 TO Len( aDados ) // 1 -> Fornecedor // 2 -> Dt. Emissão // 3 -> Valor da Nota // 4 -> Se dado entrada // 5 -> Chave NFe AADD( aRet, { aDados[k, 6], aDados[k, 8], aDados[k, 10], aDados[k, 14], aDados[k, 1] } ) Next Impress_FastReport( "NotasDestinadas", "Notas Destinadas" ,,,, { "NOTAS_DESTI","FORNECEDOR;EMISSAO;VALOR;FOI_ENTRADA;CHAVE_NFE", aRet } ) //xBrowse( aDados ) Return mole-mole Espero ter ajudado. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.