Clipper On Line • Ver Tópico - AcbrBoleto NossoNumero como gerar ?

AcbrBoleto NossoNumero como gerar ?

Discussão sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

 

AcbrBoleto NossoNumero como gerar ?

Mensagempor rossine » 19 Jan 2021 13:59

Olá,

Estou entrando na parte de geração dos boletos para Remessa e o NossoNumero que está sendo gerado para todos os boletos são iguais ou seja, "123456000000-9"

No meu arquivo de titulos.ini eu gero certo o NossoNumero:

[Titulo1]
NumeroDocumento=3664/1#001
NossoNumero=00000001
...
[Titulo2]
NumeroDocumento=3664/2#001
NossoNumero=00000002
...
[Titulo3]
NumeroDocumento=3664/3#001
NossoNumero=00000003
...


Já tentei configurar para o Cliente ser Reponsável pelo NossoNúmero "ResponEmissao" mas não está dando certo.

[Cedente]
Nome=SAO JOAO LTDA.
CNPJCPF=35373107000160
Logradouro=Rua Evaristo Mendes
Numero=200
Bairro=Centro
Cidade=Tatui
CEP=18.270-000
Complemento=Sala 10
UF=SP
RespEmis=0
TipoPessoa=1
TipoInscricao=1
CodigoCedente=123465
Convenio=123456
LayoutBol=1
CaracTitulo=1
TipoCarteira=01
Carteira=17
TipoDocumento=0
Modalidade=19
ResponEmissao=0
CodTransmissao=11


O que poderia ser ?

Obrigado,
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 313
Data de registro: 06 Ago 2007 09:57
Cidade/Estado: Divinópolis-MG
Curtiu: 1 vez
Mens.Curtidas: 21 vezes

AcbrBoleto NossoNumero como gerar ?

Mensagempor paiva_dbdc » 19 Jan 2021 14:54

hum...

tentou gerar o nossonumero so com 7 digitos ? faça um
teste
paiva_dbdc
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 342
Data de registro: 12 Nov 2012 08:58
Cidade/Estado: uberlandia mg
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

AcbrBoleto NossoNumero como gerar ?

Mensagempor rossine » 19 Jan 2021 15:13

Olá Paiva,

Observei que o número gerado é sempre o "12345600000-9" então sobra 5 digitos para o sequencial, mas mesmo mudando para gerar com 5 dígitos, continua gerando a parte sequencial "zerada".

Esse "123456" é o número do "Convenio".

Obrigado,
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 313
Data de registro: 06 Ago 2007 09:57
Cidade/Estado: Divinópolis-MG
Curtiu: 1 vez
Mens.Curtidas: 21 vezes

AcbrBoleto NossoNumero como gerar ?

Mensagempor rossine » 19 Jan 2021 15:58

Olá,

Agora consegui gerar os "Nossos Números"

000000000001 9
000000000002 7
000000000003 5
000000000004 3


As configurações estavam erradas,

   ::hBol[ "Banco", "Numero" ]               := "001"
   ::hBol[ "Banco", "CNAB" ]                 := "1"
   ::hBol[ "Banco", "IndiceACBr" ]           := "2"  <- Aqui estava "5" sendo que o banco que estou gerando é Banco Brasil e "5" é Bradesco


Mas deu certo, só não sei se o número do Cedente tem que fazer parte desse Nosso Numero, mas vou olhar isto.

Obrigado,
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 313
Data de registro: 06 Ago 2007 09:57
Cidade/Estado: Divinópolis-MG
Curtiu: 1 vez
Mens.Curtidas: 21 vezes

AcbrBoleto NossoNumero como gerar ?

Mensagempor rossine » 19 Jan 2021 16:15

Olá,

Correção na informação acima. Esse nosso numero gerado é do Santander que não tinha reparado, mas para o BB continua não gerando o Nosso Número, ou seja, "12345600000-9"

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.

O correto abaixo para Banco do Brasil é "1":

::hBol[ "Banco", "IndiceACBr" ] := "1"


Obrigado,
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 313
Data de registro: 06 Ago 2007 09:57
Cidade/Estado: Divinópolis-MG
Curtiu: 1 vez
Mens.Curtidas: 21 vezes

AcbrBoleto NossoNumero como gerar ?

Mensagempor jelias » 25 Jan 2021 13:35

Amigo Rossine,

Não sei se entendi sua dúvida com clareza, mais o que faço aqui há mais de dois anos é informar o NossoNumero o código do título na empresa. Lembrando que no meu caso é o campo código é preenchido da seguinte forma.

Campo Código do arquivo AL_RECEB -> P00000001 sendo: P - Indica qual empresa do grupo, restante do campo é numerado sequencialmente a cada título cadastrado no contas a receber.

Sendo assim, informo desta maneira no arquivo de remessa. (Bradesco e Banco do Brasil)

   cLine+= "NumeroDocumento="+ALLTRIM(RIGHT(AL_RECEB->codigo,8))+cCHR
   cLine+= "NossoNumero="+ALLTRIM(AL_RECEB->codigo)+cCHR


Saudações,

Júlio
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
jelias
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 249
Data de registro: 27 Ago 2008 11:32
Cidade/Estado: Minas Gerais
Curtiu: 0 vez
Mens.Curtidas: 16 vezes

AcbrBoleto NossoNumero como gerar ?

Mensagempor jelias » 25 Jan 2021 13:45

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
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
jelias
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 249
Data de registro: 27 Ago 2008 11:32
Cidade/Estado: Minas Gerais
Curtiu: 0 vez
Mens.Curtidas: 16 vezes




Retornar para Ferramentas de Apoio

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro