rossine escreveu:Na verdade estou meio perdido nas configurações que são muitas e se alguém puder dar uma força já agradeço antecipadamente.
Segue minhas rotinas.
#include "INKEY.CH"
#include "SETCURS.CH"
#include "CLUBE.CH"
#include "MOUSE.CH"
#include "FILEIO.CH"
#include "GETPASS.CH"
#include "GETEXIT.CH"
//--------------------------------------------------------------------------------------------------------------
// Função: Gera um arquivo txt com os dados do cedente
FUNCTION GERACEDENTE(cCodBanco,aDadosEmpresa)
LOCAL Atel:=SAVESCREEN(00,00,24,79)
LOCAL cCHR:=CHR(13)+CHR(10)
LOCAL sFile:=aw_acbr+"SAINFE-C" // Arquivo de retornos do ACBR
LOCAL eFile:=aw_acbr+"ENTNFE-C" // Arquivo de envios do ACBR
sele AL_EMPRE
DBSETORDER(1)
DBSEEK(aw_emp)
sele AL_BANCO
DBSETORDER(1)
DBSEEK(cCodBanco)
if AT("-",numcon)=0
cConta=ALLTRIM(numcon)
cDigitoConta=""
else
cConta=LEFT(numcon,(AT("-",numcon)-1))
cDigitoConta=SUBS(numcon,(AT("-",numcon)+1) )
end
if AT("-",agenci)=0
cAgencia=ALLTRIM(agenci)
cDigitoAgencia=""
else
cAgencia=LEFT(agenci,(AT("-",agenci)-1))
cDigitoAgencia=SUBS(agenci,(AT("-",agenci)+1) )
end
cLine:= 'BOLETO.ConfigurarDados("'+cCHR
cLine+= "[Cedente]"+cCHR
cLine+= "Nome="+ALLTRIM(aDadosEmpresa[1])+cCHR
cLine+= "CNPJCPF="+ALLTRIM(aDadosEmpresa[2])+cCHR
cLine+= "Logradouro="+ALLTRIM(aDadosEmpresa[3])+cCHR
cLine+= "Numero="+ALLTRIM(aDadosEmpresa[4])+cCHR
cLine+= "Bairro="+ALLTRIM(aDadosEmpresa[5])+cCHR
cLine+= "Cidade="+ALLTRIM(aDadosEmpresa[6])+cCHR
cLine+= "Cep="+ALLTRIM(aDadosEmpresa[7])+cCHR
cLine+= "Complemento="+cCHR
cLine+= "UF=MG"+cCHR
cLine+= "RespEmis="+ALLTRIM(respem)+cCHR //[0] Cliente Emite [1] Banco Emite [2] Banco Reemite [3] Banco não Reemite
cLine+= "TipoPessoa="+ALLTRIM(AL_BANCO->tipope)+cCHR //[0] Pessoa FÃsica [1] Pessoa Juridica [2] Outros
cLine+= "CodigoCedente="+ALLTRIM(AL_BANCO->codced)+cCHR
cLine+= "LayoutBol="+ALLTRIM(AL_BANCO->layout)+cCHR //[0] Padrão [1] Carnê [2] - Fatura (Não implementado = Padrão) [3] Padrão Entrega
cLine+= "CaracTitulo="+ALLTRIM(AL_BANCO->caract)+cCHR //[0] Cobrança Simples [1] Cobrança Vinculada [2] Cobrança Caucionada [3] Cobrança Descontada [4] Cobrança Vendor
cLine+= cCHR
cLine+= "[Conta]"+cCHR
cLine+= "Conta="+cConta+cCHR
cLine+= "DigitoConta="+cDigitoConta+cCHR
cLine+= "Agencia="+cAgencia+cCHR
cLine+= "DigitoAgencia="+cDigitoAgencia+cCHR
cLine+= cCHR
cLine+= "[Banco]"+cCHr
cLine+= "Numero="+AL_BANCO->codban+cCHR
cLine+= "CNAB="+codcna+'")'+cCHR
//cLine+= "IndiceACBr=" --> Este campo não é obrigatório, desde que o número do banco seja informado. Caso ambos sejam informados, o Número terá prioridade.
cRandom=TRANS(HB_RandomInt(9999999999),"9999999999")+".TXT" // Gerar codigo aleatorio
cFileEnvio=(eFile+cRandom)
cFileRetorno=(sFile+cRandom)
HB_MEMOWRIT( cFileEnvio, cLine )
nCont:=1
do whil !FILE(cFileRetorno) .and. nCont <= 40
inkey(0.5); nCont++
end
if !FILE(cFileRetorno)
MENSAGEM("Portal da NF-e nao retornou a solicitacao, tente novamente!",3)
FERASE( cFileRetorno )
retu
end
gTexto:=MEMOREAD(cFileRetorno)
if !AT("OK:",gTexto)>0
MENSAGEM("Erro ao configurar o cedente do BOLETO, verifique!",3)
EDITORACBR(gTexto,05,05,20,78,)
end
FERASE( cFileRetorno )
//--------------------------------------------------------------------------------------------------------------
// Função: Gera um arquivo txt dos boletos
FUNCTION GERABOLETOS(aBoletos,lImprime,aDadosEmpresa)
LOCAL aTEL:=SAVESCREEN(00,00,24,79)
LOCAL cCHR:=CHR(13)+CHR(10)
LOCAL sFile:=aw_acbr+"SAINFE-B" // Arquivo de retornos do ACBR
LOCAL eFile:=aw_acbr+"ENTNFE-B" // Arquivo de envios do ACBR
// Limpa a Lista de TÃtulos no ACBR
LIMPARLISTA()
// Configura o Cedente no ACBR
sele AL_RECEB
DBSETORDER(1)
DBSEEK(aBoletos[1])
cCodBanco = codban
GERACEDENTE(cCodBanco,aDadosEmpresa)
nCount=1
cLine:= ""
do whil LEN(aBoletos)>=nCount
sele AL_RECEB
DBSETORDER(1)
DBSEEK(aBoletos[nCount])
sele AL_CLIEN
DBSETORDER(1)
DBSEEK(AL_RECEB->codcli)
if nCount=1
cLine+="Boleto.IncluirTitulos("+["]+"[Titulo"+ALLTRIM(STR(nCount,2))+"]"+cCHR
else
cLine+= "[Titulo"+ALLTRIM(STR(nCount,2))+"]"+cCHR
end
cLine+= "NumeroDocumento="+ALLTRIM(RIGHT(AL_RECEB->codigo,8))+cCHR
cLine+= "NossoNumero="+ALLTRIM(AL_RECEB->codigo)+cCHR
cLine+= "Carteira=09"+cCHR
cLine+= "ValorDocumento="+STRTRAN(ALLTRIM(TRANS(AL_RECEB->valrec,"99999999.99")),".",",")+cCHR
cLine+= "Vencimento="+DTOC(AL_RECEB->datven)+cCHR
cLine+= "ValorMoraJuros="+STRTRAN(ALLTRIM(TRANS((((AL_RECEB->valrec*10)/100)/30),"99999999.99")),".",",")+cCHR
cLine+= "DataDocumento="+DTOC(AL_RECEB->datlan)+cCHR
cLine+= "DataProcessamento="+DTOC(DATE())+cCHR
//cLine+= "DataAbatimento="
//cLine+= "DataDesconto="
cLine+= "DataMoraJuros="+DTOC( (AL_RECEB->datven+1) )+cCHR
cLine+= "DataMulta="+DTOC( (AL_RECEB->datven+1) )+cCHR
//cLine+= "DataProtesto="
//cLine+= "ValorAbatimento="
//cLine+= "ValorDesconto="
//cLine+= "ValorIOF="
//cLine+= "ValorOutrasDespesas="
cLine+= "PercentualMulta=2,00"+cCHR
cLine+= "LocalPagamento=Pagável preferencialmente na Rede Bradesco e Bradesco Expresso"+cCHR
cLine+= "Especie=DM"+cCHR
cLine+= "EspecieMod=R$"+cCHR
cLine+= "Sacado.NomeSacado="+ALLTRIM(AL_CLIEN->nomecl)+cCHR
cLine+= "Sacado.CNPJCPF="+ALLTRIM(AL_CLIEN->cpfcgc)+cCHR
cLine+= "Sacado.Pessoa="+IIF(AL_CLIEN->indent="01" .or. AL_CLIEN->indent="02","1","0")+cCHR
//cLine+= "Sacado.Pessoa="+IIF(AL_CLIEN->indent="01" .or. AL_CLIEN->indent="02" .or. AL_CLIEN->indent="04","1","0")+cCHR
cLine+= "Sacado.Logradouro="+ALLTRIM(AL_CLIEN->endere)+cCHR
cLine+= "Sacado.Numero="+ALLTRIM(AL_CLIEN->numero)+cCHR
cLine+= "Sacado.Bairro="+ALLTRIM(AL_CLIEN->bairro)+cCHR
//cLine+= "Sacado.Complemento="
cLine+= "Sacado.Cidade="+ALLTRIM(AL_CLIEN->cidade)+cCHR
cLine+= "Sacado.UF="+ALLTRIM(AL_CLIEN->estado)+cCHR
cLine+= "Sacado.CEP="+ALLTRIM(AL_CLIEN->cepcli)+cCHR
//cLine+= "Sacado.Email="
//cLine+= "Mensagem=Apos o vencimento cobrar juros de "+TRANS(10,"99.99")+"% ao mes - R$ "+TRANS( (((AL_RECEB->valrec*10)/100)/30),"@E 999,999.99")+" ao dia."+cCHR
cLine+= "Mensagem=NF-e "+ALLTRIM(AL_RECEB->notafi)+" Cobrar Juros de R$ "+ALLTRIM(TRANS( (((AL_RECEB->valrec*10)/100)/30),"@E 99,999.99"))+" ao dia após o vencimento."+cCHR
//cLine+= "Instrucao1="
//cLine+= "Instrucao2="
cLine+= "Aceite=1"+cCHR
//cLine+= "OcorrenciaOriginal="
cLine+= "Parcela=1"+cCHR
cLine+= "CodigoMora=1"+cCHR
cLine+= "TotalParcelas=1"+cCHR
cLine+= "SeuNumero="+ALLTRIM(AL_RECEB->codigo)+cCHR
//cLine+= "TipoDiasProtesto="
cLine+= "TipoImpressao=1"+cCHR
nCount++
end
if lImprime
// Imprime os boletos da lista
cLine+=[","I")]+cCHR
else
cLine+=[")]+cCHR
end
cRandom=TRANS(HB_RandomInt(9999999999),"9999999999")+".TXT" // Gerar codigo aleatorio
cFileEnvio=(eFile+cRandom)
cFileRetorno=(sFile+cRandom)
HB_MEMOWRIT( cFileEnvio, cLine)
nCont:=1
do whil (!FILE(cFileRetorno) .and. nCont<=40)
inkey(0.5); nCont++
end
if !FILE(cFileRetorno)
MENSAGEM("Portal da NF-e nao retornou a solicitacao, tente novamente!",3)
FERASE( cFileRetorno )
retu
end
lReturn=.T.
gTexto:=MEMOREAD(cFileRetorno)
if !AT("OK:",gTexto)>0
MENSAGEM("Erro ao configurar o cedente do BOLETO, verifique!",3)
EDITORACBR(gTexto,05,05,20,78,)
lReturn=.F.
end
FERASE( cFileRetorno )
RETU lReturn
//--------------------------------------------------------------------------------------------------------------
// Função: Gera um arquivo txt dos boletos
FUNCTION LIMPARLISTA()
LOCAL Atel:=SAVESCREEN(00,00,24,79)
LOCAL cCHR:=CHR(13)+CHR(10)
LOCAL sFile:=aw_acbr+"SAINFE-L" // Arquivo de retornos do ACBR
LOCAL eFile:=aw_acbr+"ENTNFE-L" // Arquivo de envios do ACBR
cRandom=TRANS(HB_RandomInt(9999999999),"9999999999")+".TXT" // Gerar codigo aleatorio
cFileEnvio=(eFile+cRandom)
cFileRetorno=(sFile+cRandom)
cLine:=""
cLine:="BOLETO.LimparLista"+cCHR
HB_MEMOWRIT( cFileEnvio, cLine)
nCont:=1
do whil (!FILE(cFileRetorno) .and. nCont<=40)
inkey(0.5); nCont++
end
FERASE( cFileRetorno )
RETU
Saudações,
Júlio