Jump to content
Fivewin Brasil

dorneles

Membros
  • Posts

    712
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by dorneles

  1. pelo DemoNFe_Util.exe/Flexdocs, funciona normal. Method consChNFe(cChaveNfe,cCNPJDestinatario,cVerAplic,cNSUXML,cSchemaXML,uRetorno) Class TVoNFeUtil2G Local nStat:=0 Local cMsgResultado:="" local cMsgDados:="", cMsgRetWS:="",cRetTxt:="",aLinha,f Default cVerAplic:="",cNSUXML:="",cSchemaXML:="" ::Limpa() If ::CertificadoSelecionado() If ::ConsultaStatus() cRetTxt+=::oNFEUtil:consChNFe("AN",::Ambiente, ::cCertificado,; "4.00", @cMsgDados, @cMsgRetWS,@nStat,; @cMsgResultado,cCNPJDestinatario,cChaveNfe,; @cVerAplic,; ,@cNSUXML,@cSchemaXML,; ::proxy,::usuario,::senha,::Licenca) ::cStsNFe := Alltrim(Str(nStat)) ::cStsNFeMsg := cMsgResultado Endif If !Empty(cRetTxt) ::lAutorizada:=.t. uRetorno:=cRetTxt Endif Endif Return( ::lAutorizada )
  2. tem que constar todos os municipios e as nfe, só finaliza quando fizer a ultima descarga
  3. nao tem while, e da erro somente nessa funcionalidade consChNFe, as outra da NFe, CTe, MDFe, esta normal
  4. para cadas município de descarga vc tem que relacionar a NFe, -<infDoc> -<infMunDescarga> <cMunDescarga>2902203</cMunDescarga> <xMunDescarga>ARAMARI</xMunDescarga> -<infNFe> <chNFe>46464646464646445646464621000101029</chNFe> </infNFe> </infMunDescarga> -<infMunDescarga> <cMunDescarga>2928000</cMunDescarga> <xMunDescarga>SANTALUZ</xMunDescarga> -<infNFe> <chNFe>46464654646465465464646466465464654613113</chNFe> </infNFe> </infMunDescarga> </infDoc>
  5. ja tentei de tudo, ate o suporte
  6. alguma sugestao? https://prnt.sc/mqvftr
  7. alguem esta consguindo usar essa funcionalidade consChNFe da flexdocs? quando chama, ele nao responde oNFEUtil:consChNFe("AN",::Ambiente, ::cCertificado,; "4.00", @cMsgDados, @cMsgRetWS,@nStat,; @cMsgResultado,cCNPJDestinatario,cChaveNfe,; @cVerAplic,; ,@cNSUXML,@cSchemaXML,; ::proxy,::usuario,::senha,::Licenca)
  8. uma coisa é certa...vc vai perder ou ja perdeu esse cliente. vc faz uma pergunta na TERCA, e os amigos tenta ti ajudar e vc reponde na sexta.
  9. oque vc esta usando DLL, ACBR, ?
  10. SOLUÇÃO DO PROBLEMA, na hora de exportar tem que estar como na imagem https://prnt.sc/kavnns
  11. o problema esta na planilha depois que é exportada, tanto via comando como clicando no botao.
  12. a imagem esta no link https://prnt.sc/kaecrc https://prnt.sc/kaecmk
  13. quando exporta para excel o campo data vc nao consegui filtrar, alguem tem alguma solucao para isso? essa eu digitei a data na coluna https://prnt.sc/kaecmk essa foi exportada da fastreport https://prnt.sc/kaecrc
  14. 001 //////////////////////////////////////////////////////////////////////////////// 002 // Programa: ACBR.PRG // 003 // Funcao..: FUNCAO AcbrMonitor/Boleto Em: 15/06/2016 // 004 // // 005 // Programador...: DORNELES // 006 // Skype.........: soft.tres // 007 // soft-tres@uol.com.br // 008 // www.soft-tres.com.br // 009 //////////////////////////////////////////////////////////////////////////////// 010 011 #include "fivewin.ch" 012 #include "fileio.ch" 013 #INCLUDE ".\Include\RetornoI.Ch" 014 015 #define ETX chr(3) 016 #define CR chr(13) 017 #define LF chr(10) 018 019 Static sENDER := '' ,; 020 SEM_ERRO := .F. ,; 021 RET_IMP := '' 022 023 Static sSOCKET 024 025 //////////////////////////////////////////////////////////////////////////////// 026 #IFDEF __PLATFORM__Linux 027 #DEFINE PATH_DEL '/' 028 #DEFINE DIR_DEL '' 029 #DEFINE K_GO_TOP 409 030 #DEFINE K_GO_BOTTOM 417 031 #ELSE 032 #DEFINE PATH_DEL '\' 033 #DEFINE DIR_DEL ':' 034 #DEFINE K_GO_TOP chr(31) 035 #DEFINE K_GO_BOTTOM chr(30) 036 #ENDIF 037 038 * MODO DA WINDOW * 039 #define SW_HIDE 0 040 #define SW_SHOWNORMAL 1 041 #define SW_NORMAL 1 042 #define SW_SHOWMINIMIZED 2 043 #define SW_SHOWMAXIMIZED 3 044 #define SW_MAXIMIZE 3 045 #define SW_SHOWNOACTIVATE 4 046 #define SW_SHOW 5 047 #define SW_MINIMIZE 6 048 #define SW_SHOWMINNOACTIVE 7 049 #define SW_SHOWNA 8 050 #define SW_RESTORE 9 051 052 * DEFAULT -> Caso a variavel seja nula substitui pelo valor passado. 053 #command DEFAULT <p> TO <val> [,<pn> TO <valn>] ; 054 => ; 055 <p> = iif(<p> = NIL,<val>,<p>) ; 056 [;<pn> = iif(<pn> = NIL,<valn>,<pn>)] 057 058 * ADEL_VET -> Apaga um elemento do vetor e reajusta o seu tamanho 059 #DEFINE ADEL_VET(VET,NUM) adel(VET,NUM) ; asize(VET,len(VET) - 1) 060 061 * AINS_VET -> Insere in elemento em um vetor 062 #define AINS_VET(vetor,n_elem,conteudo) ; 063 iif(n_elem > len(vetor),aadd(vetor,conteudo),vetor[n_elem] := conteudo) 064 065 * COMPILE -> Transforma uma varivel em um bloco de codigo 066 #define COMPILE(c_expr) &("{||"+c_expr+"}") 067 068 //////////////////////////////////////////////////////////////////////////////// 069 Function ACBR_INIT(ENDERECO) // Abre a comunicação com o ACBrmonitor 070 * ENDERECO -> Diretorio ( quando usando TXT) Ex: C:\ACBR\ 071 //////////////////////////////////////////////////////////////////////////////// 072 Local P, RET := .T., TFIM, IP, PORTA, RESP 073 074 if ! empty(sENDER) // J est aberto... 075 return .t. 076 endif 077 078 SEM_ERRO := .F. 079 sENDER := alltrim(ENDERECO) 080 IP := '' 081 PORTA := 0 082 083 P := at(':',sENDER) 084 if P = 0 085 P := len(sENDER)+1 086 endif 087 IP := substr(sENDER,1,P-1) 088 if empty(IP) 089 RET := .F. 090 else 091 PORTA := val(substr(sENDER,P+1)) 092 if PORTA = 0 093 PORTA := 3434 094 endif 095 inetinit() 096 RET := .F. 097 TFIM := Seconds() + 5 /// Tenta conectar durante 5 segundos /// 098 do while Seconds() < TFIM .and. ! RET 099 sSOCKET := inetconnect(IP,PORTA) 100 RET := (ineterrorcode(sSOCKET) = 0) 101 SysWait(0.2) 102 enddo 103 endif 104 if RET 105 106 TRY 107 InetSetTimeout( sSOCKET, 300 ) // Timeout de Recepção 3 seg // 108 RESP := InetRecvEndBlock( sSOCKET, ETX ) 109 CATCH 110 END 111 112 RET := ('Conectado' $ RESP ) // Recebeu as boas vindas ? 113 114 endif 115 if ! RET 116 sENDER := '' 117 endif 118 return RET 119 //////////////////////////////////////////////////////////////////////////////// 120 function ACBR_BOL_Comando( cIndice, cDados ) 121 //////////////////////////////////////////////////////////////////////////////// 122 LOCAL ret_line := "chr(13)+chr(10)" 123 LOCAL cTcpIp := "1" 124 LOCAL lReturn := .T. 125 126 // Checar se o ACBR está instalado... 127 cPath := "C:\ACBrMonitorPLUS" 128 IF ! lIsDir(cPath) 129 MsgInfo("O ACBrMonitor não está instalado", "Aviso") 130 RETURN(.F.) 131 ENDIF 132 133 cTcpIp := GetPvProfString( "ACBrMonitor", "Modo_TCP", " ", "C:\ACBrMonitorPLUS\ACBrMonitor.ini") 134 cIsTxt := GetPvProfString( "ACBrMonitor", "Modo_TXT", " ", "C:\ACBrMonitorPLUS\ACBrMonitor.ini") 135 c_Gate := GetPvProfString( "ACBrMonitor", "TCP_Porta", "3434", "C:\ACBrMonitorPLUS\ACBrMonitor.ini") 136 c_Ende := "" 137 IF cTcpIp = "1" ; c_Ende := "127.0.0.1:"+c_Gate ; ENDIF 138 IF cIsTxt = "1" ; c_Ende := "C:\ACBrMonitorPLUS" ; ENDIF 139 IF EMPTY(c_Ende) ; MSGINFO("Detectado erro de configuração no ACBrMonitor","Aviso"); RETURN .F. ; ENDIF 140 cDirDoMonitor := cPath 141 errfile := "ENT.CMD" 142 cDados := iif(ValType(cDados)#"C","",cDados) 143 cBuffer := cIndice + iif( len( cDados )=0,"()","(" + cDados + ")") 144 145 IF cIsTxt = "1" 146 147 errhandle := FCREATE(errfile) 148 FWRITE(errhandle,cBuffer+&ret_line.) 149 FCLOSE(errhandle) 150 FERASE( cDirDoMonitor+"\ENT.TXT" ) 151 FERASE( cDirDoMonitor+"\SAI.TXT" ) 152 COPY FILE &(errfile) TO &(cDirDoMonitor+"\"+errfile) 153 FRENAME( cDirDoMonitor+"\"+errfile, cDirDoMonitor+"\ENT.TXT" ) 154 155 ELSEIF cTcpIp = "1" 156 157 TRY 158 IF ! ACBR_INIT(c_Ende) 159 SysRefresh() 160 ACBR_END() 161 SysRefresh() 162 MsgAlert("Erro ao tentar abrir a porta de comunicação!","Aviso!") 163 lReturn := .F. 164 ENDIF 165 CATCH 166 END 167 168 IF !lReturn 169 RETURN(.F.) 170 ENDIF 171 172 SysRefresh() 173 IF ! ACBR_ABERTA() ; RETURN .F. ; ENDIF 174 SysRefresh() 175 ACBR_COMANDO( cBuffer ) 176 SysRefresh() 177 ENDIF 178 179 RETURN(.T.) 180 //////////////////////////////////////////////////////////////////////////////// 181 Function ACBR_ABERTA() // Retorna .t. se a COM ja est aberta 182 //////////////////////////////////////////////////////////////////////////////// 183 return ! empty(sENDER) 184 //////////////////////////////////////////////////////////////////////////////// 185 Function IBR_OK(RESP) // Retorna .T. se a String inicia com OK: 186 //////////////////////////////////////////////////////////////////////////////// 187 return (substr(RESP,1,3) == 'OK:') 188 //////////////////////////////////////////////////////////////////////////////// 189 Function ACBR_END() // Fecha a porta da Impressora 190 * Encerra a comunicacao com a impressora, nao precisa de parametros 191 //////////////////////////////////////////////////////////////////////////////// 192 if ! empty(sENDER) 193 inetsendall( sSocket, 'ACBR.bye' ) 194 endif 195 if sSOCKET <> NIL 196 inetclose(sSOCKET) 197 inetdestroy(sSOCKET) 198 inetcleanup() 199 SysWait(0.2) 200 sSOCKET := NIL 201 endif 202 sENDER := '' 203 return(.t.) 204 //////////////////////////////////////////////////////////////////////////////// 205 Function ACBR_COMANDO(CMD,VET_PARAM,ESPERA,TENTA) 206 * Funcao de uso interno para enviar os comandos e 207 * registrar os erros retornados. Exibe os erros se existirem 208 //////////////////////////////////////////////////////////////////////////////// 209 Local REQ, RESP, TEMPOR, TINI, TFIM, BLOCO, BYTES, I, TIPO_PARAM 210 211 if empty(sENDER) 212 if ! SEM_ERRO 213 MsgAlert('ACBrMonitor n†o foi inicializado.',"Aviso") 214 endif 215 return '' 216 endif 217 218 DEFAULT VET_PARAM to {} ,; 219 ESPERA to 900 ,; // 5 minutos 220 TENTA to .t. 221 222 RET_IMP := '' 223 c_Cmmd := SUBSTR(CMD,1,AT("(",CMD)-1) 224 SysRefresh() 225 226 //////// Transmitindo o comando ///////// 227 CMD := ALLTRIM(CMD)+CRLF+"."+CRLF // Requisitos do ACBR 228 229 TRY 230 InetSetTimeout( sSOCKET, 300 ) // Timeout de Envio 3 seg // 231 CATCH 232 END 233 234 if inetsendall( sSOCKET, CMD ) <= 0 235 RET_IMP := 'ERRO: Nao foi possivel transmitir dados para o ACBrMonitor|'+; 236 '('+AllTrim(Str(InetErrorCode( sSOCKET )))+') '+; 237 InetErrorDesc( sSOCKET ) + ETX 238 endif 239 240 TINI := Seconds() 241 do while (right(RET_IMP,1) <> ETX) 242 243 SysRefresh() 244 BLOCO := space(64) 245 246 //////// Lendo a resposta //////// 247 TRY 248 InetSetTimeout( sSOCKET, 300 ) 249 BYTES := inetrecv(sSOCKET, @BLOCO, 64) 250 CATCH 251 END 252 253 RET_IMP += left(BLOCO,BYTES) 254 255 if Seconds() > (TINI + ESPERA) 256 if ! TENTA 257 RET_IMP := 'ERRO: Sem resposta do ACBrMonitor em '+alltrim(str(ESPERA))+; 258 ' segundos (TimeOut)' + ETX 259 else 260 if ALERT('O ACBrMonitor n†o est respondendo. '+; 261 'Deseja tentar novamente ?',{'SIM','NAO'}) # 1 262 RET_IMP := 'ERRO: Sem resposta do ACBrMonitor em '+alltrim(str(ESPERA))+; 263 ' segundos (TimeOut)' + ETX 264 else 265 TINI := Seconds() 266 endif 267 endif 268 endif 269 enddo 270 271 do while right(RET_IMP,1) $ CR+LF+ETX // Remove sinalizadores do final 272 RET_IMP := left(RET_IMP,len(RET_IMP)-1) 273 enddo 274 275 return RET_IMP 276 //////////////////////////////////////////////////////////////////////////////// 277 FUNCTION ACBR_GravaCedente() 278 //////////////////////////////////////////////////////////////////////////////// 279 LOCAL cLinha := "" 280 LOCAL cArquivo := "C:\ACBrMonitorPLUS\Cedente.ini" 281 LOCAL lCloseEmp := .F. 282 LOCAL lCloseCon := .F. 283 284 IF FILE(cArquivo) 285 FErase(cArquivo) 286 ENDIF 287 288 IF SELECT("Empresa") = 0 289 IF !AbreDbfNtx({"Empresa"}) 290 RETURN(.F.) 291 ENDIF 292 lCloseEmp := .T. 293 ENDIF 294 295 IF SELECT("Convenio") = 0 296 IF !AbreDbfNtx({"Convenio"}) 297 RETURN(.F.) 298 ENDIF 299 lCloseCon := .T. 300 ENDIF 301 302 SELECT Empresa 303 SET ORDE TO 1 304 ClearMyFilter() 305 SetMyFilter(cCod_Emp,cCod_Emp) 306 307 SELECT Convenio 308 SET ORDE TO 3 309 SetMyFilter("1") 310 Convenio->(DbGoTop()) 311 312 cLinha := "[Cedente]"+CRLF 313 cLinha += "Nome="+Empresa->nm_empresa+CRLF 314 cLinha += "CNPJCPF="+TRANSF(Empresa->cnpjcpf,"@R 99.999.999/9999-99")+CRLF 315 cLinha += "Logradouro="+Empresa->endereco+CRLF 316 cLinha += "Numero="+TRANSF(Empresa->nro,"99999")+CRLF 317 cLinha += "Bairro="+Empresa->bairro+CRLF 318 cLinha += "Cidade="+Empresa->cidade+CRLF 319 cLinha += "CEP="+TRANSF(Empresa->cep,"@R 99.999-999")+CRLF 320 cLinha += "Complemento="+CRLF 321 cLinha += "UF="+Empresa->uf+CRLF 322 cLinha += "RespEmis=0"+CRLF //[0] Cliente Emite [1] Banco Emite [2] Banco Reemite [3] Banco não Reemite 323 cLinha += "TipoPessoa=1"+CRLF //[0] Pessoa Física [1] Pessoa Juridica [2] Outros 324 cLinha += "CodigoCedente="+LTRIM(Convenio->codcedente)+CRLF 325 cLinha += "LayoutBol="+TRANSF(Convenio->idlayout,"9")+CRLF //[0] Padrão [1] Carnê [2] - Fatura (Não implementado = Padrão) [3] Padrão Entrega 326 cLinha += "Modalidade=3"+CRLF 327 cLinha += "CaracTitulo=0"+CRLF //[0] Cobrança Simples [1] Cobrança Vinculada [2] Cobrança Caucionada [3] Cobrança Descontada [4] Cobrança Vendor 328 cLinha += "Convenio="+LTRIM(Convenio->nroconveni)+CRLF 329 cLinha += ""+CRLF 330 cLinha += "[Conta]"+CRLF 331 cLinha += "Conta="+LTRIM(TRANS(Convenio->nroconta,"@!"))+CRLF 332 cLinha += "DigitoConta="+LTRIM(TRANS(Convenio->digconta,"9"))+CRLF 333 cLinha += "Agencia="+LTRIM(TRANS(Convenio->nroage,"@!"))+CRLF 334 cLinha += "DigitoAgencia="+LTRIM(TRANS(Convenio->digage,"@!"))+CRLF 335 cLinha += ""+CRLF 336 cLinha += "[Banco]"+CRLF 337 cLinha += "Numero="+LEFT(TRANS(Convenio->nrobancodv,"@!"),3)+CRLF 338 cLinha += "CNAB=0"+CRLF 339 cLinha += "IndiceACBr="+LTRIM(TRANS(Convenio->idbanco,"99"))+CRLF 340 341 /* INDICEACBR 342 Este campo não é obrigatório, desde que o número do banco seja informado. 343 Caso ambos sejam informados, o Número terá prioridade. 344 1 - Banco do Brasil 345 2 - Santander 346 3 - Caixa Econômica Federal (Convênio SIGCB) 347 4 - Caixa Econômica Federal (Convênio SICOB) 348 5 - Bradesco 349 6 - Itaú 350 7 - Banco Mercantil 351 8 - Sicred 352 9 - Bancoob 353 10 - Banrisul 354 11- HSBC 355 12- Banestes 356 13- Banco do Nordeste 357 14- Banco BRB */ 358 359 FWriteLine(cArquivo , cLinha ) 360 FClose(cArquivo) 361 362 IF lCloseEmp 363 CloseFile("Empresa") 364 ENDIF 365 366 IF lCloseCon 367 CloseFile("Convenio") 368 ENDIF 369 370 RETURN(.T.) 371 //////////////////////////////////////////////////////////////////////////////// 372 FUNCTION ACBR_GravaTitulo() 373 //////////////////////////////////////////////////////////////////////////////// 374 LOCAL cLinha := "" 375 LOCAL cArquivo := "C:\ACBrMonitorPLUS\titulos.ini" 376 LOCAL nNroTitulo:=0 377 378 IF FILE(cArquivo) 379 FErase(cArquivo) 380 ENDIF 381 382 DbSelectArea("aTitulos") 383 aTitulos->(DbGoTop()) 384 385 WHILE aTitulos->(!EOF()) 386 387 nNroTitulo++ 388 cLinha += "[titulo"+LTRIM(STR(nNroTitulo,2))+"]"+CRLF 389 cLinha += "NumeroDocumento="+LTRIM(aTitulos->NUMERODOC)+CRLF 390 cLinha += "NossoNumero="+LTRIM(aTitulos->NOSSONUME)+CRLF 391 cLinha += "Carteira="+LTRIM(aTitulos->carteira)+CRLF 392 cLinha += "ValorDocumento="+STRTRAN(LTRIM(TRANSF(aTitulos->VALORDOC,"999,999,999.99")),".",",")+CRLF 393 cLinha += "Vencimento="+LTRIM(TRANSF(aTitulos->DTVCTO,"@D"))+CRLF 394 cLinha += "DataDocumento="+LTRIM(TRANSF(aTitulos->DTEMISSAO,"@D"))+CRLF 395 cLinha += "DataProcessamento="+LTRIM(TRANSF(aTitulos->DTPROCESSA,"@D"))+CRLF 396 cLinha += "DataAbatimento="+LTRIM(TRANSF(aTitulos->DTABATIMEN,"@D"))+CRLF 397 cLinha += "DataDesconto="+LTRIM(TRANSF(aTitulos->DTDESCONTO,"@D"))+CRLF 398 cLinha += "DataProtesto="+LTRIM(TRANSF(aTitulos->DTPROTESTO,"@D"))+CRLF 399 cLinha += "PercentualMulta="+LTRIM(TRANSF(aTitulos->PERMULTA,"99.99"))+CRLF 400 cLinha += "LocalPagamento=Pagavel em qualquer agência bancaria mesmo após o vencimento"+CRLF 401 cLinha += "EspecieDoc="+LTRIM(TRANSF(aTitulos->ESPECIE,"@!"))+CRLF 402 cLinha += "EspecieMod="+LTRIM(TRANSF(aTitulos->MOEDA,"@!"))+CRLF 403 cLinha += "Sacado.NomeSacado="+LTRIM(aTitulos->CLIENTE)+ " / "+TRANS(aTitulos->ID_CLIENTE,"99999")+CRLF 404 cLinha += "Sacado.CNPJCPF="+LTRIM(aTitulos->CNPJCPF)+CRLF 405 cLinha += "Sacado.Pessoa="+aTitulos->pessoa+CRLF 406 cLinha += "Sacado.Logradouro="+LTRIM(aTitulos->ENDERECO)+CRLF 407 cLinha += "Sacado.Numero="+LTRIM(TRANSF(aTitulos->NRO,"99999"))+CRLF 408 cLinha += "Sacado.Bairro="+LTRIM(aTitulos->BAIRRO)+CRLF 409 cLinha += "Sacado.Complemento="+CRLF 410 cLinha += "Sacado.Cidade="+LTRIM(aTitulos->CIDADE)+CRLF 411 cLinha += "Sacado.UF="+LTRIM(aTitulos->ESTADO)+CRLF 412 cLinha += "Sacado.CEP="+LTRIM(TRANSF(aTitulos->CEP,"@r 99.999-999"))+CRLF 413 cLinha += "Sacado.Email="+LTRIM(aTitulos->EMAIL)+CRLF 414 cLinha += "Mensagem="+aTitulos->MENSAGEM+CRLF 415 cLinha += "Aceite="+LTRIM(aTitulos->ACEITE)+CRLF 416 cLinha += "OcorrenciaOriginal=0"+CRLF 417 cLinha += "Parcela=1"+CRLF 418 cLinha += "TotalParcelas=1"+CRLF 419 cLinha += "SeuNumero="+LTRIM(aTitulos->NOSSONUME)+CRLF+CRLF 420 421 aTitulos->(DbSkip()) 422 END 423 424 FWriteLine(cArquivo , cLinha ) 425 FClose(cArquivo) 426 427 RETURN(.T.) 428 //////////////////////////////////////////////////////////////////////////////// 429 FUNCTION CriaTmpTitulo() 430 //////////////////////////////////////////////////////////////////////////////// 431 LOCAL xxArq1 := {} 432 433 IF SELECT("aTitulos") <> 0 434 CloseFile("aTitulos",.T.) 435 ENDIF 436 437 aadd( xxArq1, { 'ID_CLIENTE', 'N', 5, 0 } ) 438 aadd( xxArq1, { 'CLIENTE ', 'C', 40, 0 } ) 439 aadd( xxArq1, { 'FANTASIA ', 'C', 20, 0 } ) 440 aadd( xxArq1, { 'LOGRADOR ', 'C', 3, 0 } ) 441 aadd( xxArq1, { 'ENDERECO ', 'C', 40, 0 } ) 442 aadd( xxArq1, { 'NRO ', 'N', 5, 0 } ) 443 aadd( xxArq1, { 'CEP ', 'C', 9, 0 } ) 444 aadd( xxArq1, { 'BAIRRO ', 'C', 15, 0 } ) 445 aadd( xxArq1, { 'CIDADE ', 'C', 60, 0 } ) 446 aadd( xxArq1, { 'ESTADO ', 'C', 2, 0 } ) 447 aadd( xxArq1, { 'CNPJCPF ', 'C', 20, 0 } ) 448 aadd( xxArq1, { 'PESSOA ', 'C', 1, 0 } ) //0 - Pessoa Física 1 - Pessoa Juridica 449 aadd( xxArq1, { 'EMAIL ', 'C', 80, 0 } ) 450 451 aadd( xxArq1, { 'NUMERODOC' , 'C', 20, 0 } ) //Numero Doc 452 aadd( xxArq1, { 'NOSSONUME' , 'C', 20, 0 } ) //Nosso Numero 453 aadd( xxArq1, { 'CARTEIRA' , 'C', 03, 0 } ) //Carteira 454 455 aadd( xxArq1, { 'VALORDOC' , 'N', 16, 2 } ) //Valor do Boleto 456 aadd( xxArq1, { 'VALMULTA' , 'N', 16, 2 } ) //texto com o valor da multa 457 aadd( xxArq1, { 'VALJUROS' , 'N', 16, 2 } ) //texto com o valor do juros 458 aadd( xxArq1, { 'VALDESCT' , 'N', 16, 2 } ) //texto com o valor do desconto 459 aadd( xxArq1, { 'PERMULTA' , 'N', 16, 2 } ) //Percendual de multa 460 461 aadd( xxArq1, { 'DTVCTO' , 'D', 08, 0 } ) //Data Vencimento 462 aadd( xxArq1, { 'DTEMISSAO ', 'D', 08, 0 } ) //Data Emissao 463 aadd( xxArq1, { 'DTPROCESSA', 'D', 08, 0 } ) //Data Processamento 464 aadd( xxArq1, { 'DTABATIMEN', 'D', 08, 0 } ) //Data ABATIMENTO 465 aadd( xxArq1, { 'DTDESCONTO', 'D', 08, 0 } ) //Data Processamento 466 aadd( xxArq1, { 'DTPROTESTO', 'D', 08, 0 } ) //Data Protesto 467 468 aadd( xxArq1, { 'ESPECIE' , 'C', 3, 0 } ) //Especie 469 aadd( xxArq1, { 'ACEITE' , 'C', 1, 0 } ) //Aceite 470 aadd( xxArq1, { 'MOEDA' , 'C', 2, 0 } ) //MOEDA 471 aadd( xxArq1, { 'MENSAGEM' , 'C',300, 0 } ) //MENSAGEM 472 473 HB_DBCreateTemp("aTitulos",xxArq1,"DBFCDX") 474 475 RETURN(.T.) 476 //////////////////////////////////////////////////////////////////////////////// 477 FUNCTION ACBF_SHOW() 478 //////////////////////////////////////////////////////////////////////////////// 479 LOCAL hWnd 480 If ( hWnd := SeekACBR() ) == 0 481 If ( hWnd := SeekACBR() ) == 0 482 BringWindowToTop( hWnd ) 483 ShowWindow( hWnd, 8 ) // SW_RESTORE ) 484 ENDIF 485 Else 486 BringWindowToTop( hWnd ) 487 ShowWindow( hWnd, 8 ) // SW_RESTORE ) 488 Endif 489 Return Nil 490 //////////////////////////////////////////////////////////////////////////////// 491 STATIC FUNCTION SeekACBR() 492 //////////////////////////////////////////////////////////////////////////////// 493 494 LOCAL aCaptions := { 'ACBrMonitorPLUS', 'ACBrMonitor', 'ACBrMonitorPLUS','ACBrMonitorPLUS' } 495 LOCAL nPos, hWnd 496 For nPos = 1 to Len(aCaptions) 497 If ( hWnd := FindWindow( 0, aCaptions[nPos] ) ) > 0 498 Return hWnd 499 EndIf 500 Next 501 Return hWnd 502 //////////////////////////////////////////////////////////////////////////////// 503 FUNCTION ACBR_Imprimir_Boleto() 504 //////////////////////////////////////////////////////////////////////////////// 505 506 ACBR_GravaCedente() 507 508 ACBR_GravaTitulo() 509 510 ** ACBF_SHOW() 511 512 IF !ACBR_INIT("localhost:3434") 513 MsgStop("Erro de comunicação com o ACBR","ATENÇÃO !!!") 514 ENDIF 515 516 cCmd := "bAltTab" 517 **ACBR_BOL_Comando( "ACBr.Run", ["]+cCmd+["] ) 518 519 cCmd := "ACBrMonitorPLUS" 520 // ACBR_BOL_Comando( "ACBr.AppActivate", ["]+cCmd+["] ) 521 522 cCmd := "" 523 //LIMPAR LISTA 524 ACBR_BOL_Comando( "BOLETO.LimparLista", ["]+cCmd+["] ) 525 526 //CONFIGURAR CEDENTE 527 cCmd := "C:\ACBrMonitorPLUS\cedente.ini" 528 ACBR_BOL_Comando( "BOLETO.ConfigurarDados", ["]+cCmd+["] ) 529 530 cCmd := "%{TAB}" 531 ACBR_BOL_Comando( "ACBr.SendKeys", ["]+cCmd+["] ) 532 533 cArquivo := "C:\ACBrMonitorPLUS\titulos.ini" 534 535 cImprime := "I" //IMPRIMIR 536 cImprime := "E" //EMAIL 537 cImprime := "P" //PDF 538 cImprime := "" 539 IF Convenio->email 540 cImprime := "E" 541 ENDIF 542 543 cCmd := ["]+cArquivo+[","]+cImprime 544 ACBR_BOL_Comando( "BOLETO.IncluirTitulos",cCmd+["]) 545 546 cCmd := "" 547 //ACBR_NFE_Comando( "BOLETO.GerarPDF", cCmd ) 548 ACBR_BOL_Comando( "BOLETO.Imprimir", cCmd ) 549 //ACBR_NFE_Comando( "BOLETO.GerarHTML", cCmd ) 550 551 //cCmd := "bAltTab" 552 //ACBR_BOL_Comando( "ACBr.Run", ["]+cCmd+["] ) 553 554 // cCmd := "ACBrMonitor.exe" 555 // ACBR_BOL_Comando( "ACBr.AppExists", ["]+cCmd+["] ) 556 557 ACBR_END() 558 559 RETURN(.T.) 560 //////////////////////////////////////////////////////////////////////////////// 561 FUNCTION ACBR_Remessa_Boleto(nNroRemessa) 562 //////////////////////////////////////////////////////////////////////////////// 563 ACBR_GravaCedente() 564 565 ACBR_GravaTitulo() 566 567 IF !ACBR_INIT("localhost:3434") 568 MsgStop("Erro de comunicação com o ACBR","ATENÇÃO !!!") 569 ENDIF 570 571 cCmd := "" 572 //LIMPAR LISTA 573 ACBR_BOL_Comando( "BOLETO.LimparLista", ["]+cCmd+["] ) 574 575 //CONFIGURAR CEDENTE 576 cCmd := "C:\ACBrMonitorPLUS\cedente.ini" 577 ACBR_BOL_Comando( "BOLETO.ConfigurarDados", ["]+cCmd+["] ) 578 579 cArquivo := "C:\ACBrMonitorPLUS\titulos.ini" 580 cImprime := "" 581 cCmd := ["]+cArquivo+[","]+cImprime 582 ACBR_BOL_Comando( "BOLETO.IncluirTitulos",cCmd+["]) 583 584 cCmd := "" 585 ACBR_BOL_Comando( "BOLETO.GerarRemessa","c:\remessa\",nNroRemessa,STRZERO(nNroRemessa,6)+".rem" ) 586 ACBR_END() 587 588 RETURN(.T.) 589 //////////////////////////////////////////////////////////////////////////////// 590 Function ACBR_Retorno_Boleto() 591 //////////////////////////////////////////////////////////////////////////////// 592 LOCAL nIDR := 0 593 LOCAL nItem := 0 594 LOCAL nValor := 0 595 LOCAL aFiles := cGetFile("Arquivos (*.ret) |*.RET|" ,"Selecione o Arquivo!") 596 LOCAL nLinhas := 0 597 LOCAL nTotRec := 0 598 LOCAL cLinha := "" 599 LOCAL aRetorno := {} 600 LOCAL oTxt 601 LOCAL nRat 602 603 fErase("C:\Retorno\Retorno.ini") 604 605 IF EMPTY(ALLTRIM(aFiles)) 606 MsgStop("ERRO na Abertura do Arquivo!","Atenção") 607 RETURN(.T.) 608 ENDIF 609 610 IF !ACBR_INIT("localhost:3434") 611 MsgStop("Erro de comunicação com o ACBR","ATENÇÃO !!!") 612 RETURN(.T.) 613 ENDIF 614 615 cCmd := "" 616 ACBR_BOL_Comando( "BOLETO.LimparLista", ["]+cCmd+["] ) 617 618 cFile := cFileName(aFiles) 619 nRat := Rat( "\", aFiles ) 620 621 SELECT RetLog 622 SET ORDE TO 2 623 RetLog->(DbSeek(cFile)) 624 625 IF FOUND() 626 MsgStop("Arquivo Retorno já foi processado!","ATENÇÃO !!!") 627 SELECT RetLog 628 ORDDESCEND(,, .T.) 629 RetLog->(DbGoTop()) 630 RETURN(.F.) 631 ENDIF 632 633 cPasta := Subs( aFiles, 1, nRat )//"c:\retorno\" 634 cArquivo := cFile 635 cCmd := cPasta+[","]+cArquivo 636 ACBR_BOL_Comando( "BOLETO.LerRetorno", ["]+cCmd+["] ) 637 638 ACBR_END() 639 640 SELECT ReTitulo 641 SET ORDE TO 2 642 SetMyFilter("1") 643 644 ReTitulo->(DbGoBottom()) 645 ReTitulo->(DbSkip()) 646 aRetorno := ReTitulo->(InitData()) 647 648 aFiles := "C:\Retorno\Retorno.ini" 649 650 IF !FILE(aFiles) 651 MsgStop("ERRO na Abertura do Arquivo/Retorno!","Atenção") 652 RETURN(.T.) 653 ENDIF 654 655 nIDR := PsqControle( Retorno->(dbf()) ) 656 657 oTxt := TTxtFile():New( ALLTRIM(aFiles) ) 658 nLinhas := oTxt:nTLines 659 nTotRec := oTxt:nTLines 660 oTxt:Gotop() 661 662 FOR i = 1 TO nLinhas 663 664 cLinha := oTxt:cLine 665 666 IF AT("Vencimento=", cLinha) <> 0 667 aRetorno.ret_dtvcto := CTOD(Subs(cLinha,12,10)) 668 ELSEIF AT("DataDocumento=", cLinha) <> 0 669 //DataDocumento=30/12/1899 //2 670 //aRetorno.ret_dtvcto := CTOD(Subs(cLinha,12,10)) 671 ELSEIF AT("NumeroDocumento=", cLinha) <> 0 672 aRetorno.ret_numerodoc := Subs(cLinha,17,10) 673 ELSEIF AT("DataProcessamento=", cLinha) <> 0 674 aRetorno.ret_data := CTOD(Subs(cLinha,19,10)) 675 ELSEIF AT("NossoNumero=", cLinha) <> 0 676 aRetorno.ret_nossonro := Subs(cLinha,13,17) 677 ELSEIF AT("ValorDocumento=", cLinha) <> 0 678 aRetorno.ret_vltitulo := ConverteCartValor(Subs(cLinha,15,15)) 679 ELSEIF AT("DataOcorrencia=", cLinha) <> 0 680 aRetorno.ret_dtocorrenc := CTOD(Subs(cLinha,15,10)) 681 ELSEIF AT("DataCredito=", cLinha) <> 0 682 aRetorno.ret_dtcredito := CTOD(Subs(cLinha,12,10)) 683 ELSEIF AT("ValorDespesaCobranca=", cLinha) <> 0 684 aRetorno.ret_vltaxa := ConverteCartValor(Subs(cLinha,11,15)) 685 ELSEIF AT("ValorAbatimento=", cLinha) <> 0 686 //aRetorno.ret_vltitulo := VAL(Subs(cLinha,16,15)) 687 ELSEIF AT("ValorDesconto=", cLinha) <> 0 688 aRetorno.ret_vldesconto := ConverteCartValor(Subs(cLinha,15,15)) 689 ELSEIF AT("ValorMoraJuros=", cLinha) <> 0 690 aRetorno.ret_vljuros := ConverteCartValor(Subs(cLinha,16,15)) 691 ELSEIF AT("ValorIOF=", cLinha) <> 0 692 //ValorIOF=0 //13 693 ELSEIF AT("ValorOutrasDespesas=", cLinha) <> 0 694 //ValorOutrasDespesas=0 //14 695 ELSEIF AT("ValorOutrosCreditos=", cLinha) <> 0 696 aRetorno.ret_vlmulta := ConverteCartValor(Subs(cLinha,20,15)) 697 ELSEIF AT("ValorRecebido=", cLinha) <> 0 698 //ValorRecebido=237,61 //16 699 aRetorno.ret_vlpago := ConverteCartValor(Subs(cLinha,15,15)) 700 ELSEIF AT("DescricaoTipoOcorrencia=", cLinha) <> 0 701 702 aRetorno.ret_id_ocorren := Subs(cLinha,25,2) 703 aRetorno.ret_nm_ocorren := Subs(cLinha,28,50) 704 705 IF VAL(aRetorno.ret_id_ocorren) = 6 .OR. VAL(aRetorno.ret_id_ocorren) = 17 //ver nos outros bancos se é esses mesmo codigos 706 707 SELECT Receber 708 SET ORDE TO 10 709 Receber->(DbSeek(aRetorno.ret_nossonro)) 710 711 IF FOUND() 712 aRetorno.ret_id_cliente := Receber->id_cliente 713 aRetorno.ret_nm_cliente := Receber->nm_cliente 714 aRetorno.ret_vltitulo := Receber->valor 715 aRetorno.ret_id_conta := Receber->id_conta 716 nValor += Receber->valor 717 ELSE 718 aRetorno.ret_id_cliente := 99999 719 aRetorno.ret_nm_cliente := "CLIENTE SEM IDENTIFICACAO" 720 ENDIF 721 722 nItem++ 723 aRetorno.ret_id_retorno := nIDR 724 aRetorno.ret_dt_retorno := DATE() 725 aRetorno.ret_status := "1" 726 727 IF aRetorno.ret_id_cliente <> 99999 .AND. aRetorno.ret_vlpago <> 0 728 aRetorno.ret_seleciona:= .T. 729 ENDIF 730 731 SELECT ReTitulo 732 SET ORDE TO 2 733 IF ReTitulo->(AddRec(10)) 734 ReTitulo->(ReplData(aRetorno)) 735 ReTitulo->(FINALI()) 736 ENDIF 737 738 ENDIF 739 740 ReTitulo->(DbGoBottom()) 741 ReTitulo->(DbSkip()) 742 aRetorno := ReTitulo->(InitData()) 743 744 ENDIF 745 746 oTxt:skip() 747 748 NEXT 749 750 /*Os códigos de movimento '06', '09' e '17' estão relacionados com a descrição C047-C. Domínio: 751 752 '02' = Entrada Confirmada 753 '03' = Entrada Rejeitada 754 '04' = Transferência de Carteira/Entrada 755 '05' = Transferência de Carteira/Baixa 756 '06' = Liquidação 757 '07' = Confirmação do Recebimento da Instrução de Desconto 758 '08' = Confirmação do Recebimento do Cancelamento do Desconto 759 '09' = Baixa 760 '11' = Títulos em Carteira (Em Ser) 761 '12' = Confirmação Recebimento Instrução de Abatimento 762 '13' = Confirmação Recebimento Instrução de Cancelamento Abatimento 763 '14' = Confirmação Recebimento Instrução Alteração de Vencimento 764 '15' = Franco de Pagamento 765 '17' = Liquidação Após Baixa ou Liquidação Título Não Registrado 766 '19' = Confirmação Recebimento Instrução de Protesto 767 '20' = Confirmação Recebimento Instrução de Sustação/Cancelamento de Protesto 768 '23' = Remessa a Cartório (Aponte em Cartório) 769 '24' = Retirada de Cartório e Manutenção em Carteira 770 '25' = Protestado e Baixado (Baixa por Ter Sido Protestado) 771 '26' = Instrução Rejeitada 772 '27' = Confirmação do Pedido de Alteração de Outros Dados 773 '28' = Débito de Tarifas/Custas */ 774 775 SELECT RetLog 776 ORDDESCEND(,, .T.) 777 RetLog->(DbGoTop()) 778 779 SELECT ReTitulo 780 SET ORDE TO 2 781 ClearMyFilter() 782 SetMyFilter("1") 783 784 RETURN(.T.) 785 //////////////////////////////////////////////////////////////////////////////// 786 STATIC FUNCTION ConverteCartValor(vValor) 787 //////////////////////////////////////////////////////////////////////////////// 788 RETURN(VAL(STRTRAN(vValor,",","."))) 789 ////////////////////////////////////////////////////////////////////////////////
  15. Olá giovanyvecchivc tem algum exemplo de como usar instalar, onde baixar?
  16. o valor +- R$ 200 ate 1000 boleto, tem varios pacote mas o diferencial é o envio automatico para o banco
  17. essa solucao da tecnospeed é interessante, vc emite o boleto dentro do seu sistema, e ela ja envia para o banco e pega os retorno, sem vc precisar entrar no site do banco. https://tecnospeed.com.br/boleto/?utm_campaign=news_17072018&utm_medium=email&utm_source=RD Station
  18. http://www.nfe.fazenda.gov.br/portal/principal.aspx Em 02/08/2018, a versão 3.10 da NF-e será desativada.
  19. http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=Y6Lj7G0uHwc=
  20. Não pode esquece de fazer essa configuração. WINDOW 7 https://prnt.sc/jv20mn WINDOWS 10 https://prnt.sc/jv21ke
  21. diga-se de passagem...acho que foi ate o guarda noturno que respondeu...foi um caso esporádico , pior o cliente estava com um caminhao em SP e estava dando uma REJEICAO do CT-e. hora da abertura do ticket : 08-05-2018 22:54:57 hora da resposta Data: 08-05-2018 23:17:47 Nome: Equipe de Suporte Mensagem: Prezado Sr. Dorneles,
  22. https://medium.com/harbour-magazine/como-ser-mejor-programador-harbour-da35bf94067d
  23. oque vc esta utilizando para compilar?
×
×
  • Create New...