Jump to content
Fivewin Brasil

Problema com cobrebem - Remessa - Resolvido


wmsoft

Recommended Posts

Pessoal estou ficando azuado aqui porque não esto conseguindo gerar a remessa, Abaixo postei o fonte. Deixa eu explicar como ocorre aqui, é uma associação de pescadores os associados vão pegar seus boletos durante o dia, no final do dia a associação envia um arquivo remessa com todos os boletos que foram emitidos, o estranho que o boleto ele está gerando certinho.

FUNCTION CBXRemessa()

local oVenDl, oSay, MyDb, oPess, lESC:= .F.

local lSave := .f.

local nOldRec := RecNo(), nTotDesc:=0

LOCAL OBMP, oFont1, oFnt2, oFont4, oFnt5, oFont6

local oCBX, oBoleto, aGeticon_smile_8ball.gif

PRIVATE oBrw, aParc:= {}

IF ! UsrFree(CliIncl)

RETURN NIL

ENDIF

CheckDados()

if !oEMBOLETOS

MsgAlert("Modulo de Boleto Bancário não está ativo no sistema.","Atenção")

Return Nil

endif

CursorWait()

use_arq("BOLETO","BOLETO",.t.,.t.)

use_arq("REMESSA","REMESSA",.t.,.t.)

SELECT BOLETO

BOLETO->(DBSETORDER(1))

BOLETO->(DBGOTOP())

oData := Date()

nQteBai := 0

nTotal := 0

While ! BOLETO->( EOF() )

if BOLETO->BOLSITU = "N"

nQteBai++

nTotal+=BOLETO->BOLVALOR

aadd(aParc,({BOLETO->BOLCOD,;

BOLETO->BOLDATA,;

BOLETO->BOLVENC,;

BOLETO->BOLVALOR,;

BOLETO->BOLCONTR,;

BOLETO->BOLNOME,;

BOLETO->BOLOBS,;

Alltrim(BOLETO->BOLCBAR)}))

endif

BOLETO->( DbSkip() )

End

If Len(aParc) = 0

MsgAlert("Não existem boletos processados para geração de remessa no momento","Atenção")

dbcloseall()

Return Nil

endif

DEFINE FONT oFon1 NAME "Courier New" SIZE 0, -10 OF oVenDl

DEFINE FONT oFon2 NAME "Courier New" SIZE 0, -9 OF oVenDl

DEFINE FONT oFon3 NAME "Courier New" SIZE 0, -14 OF oVenDl

DEFINE FONT oFon4 NAME "Courier New" SIZE 0, -22 BOLD OF oVenDl

DEFINE FONT oFon5 NAME "Courier New" SIZE 0, -19 BOLD OF oVenDl

DEFINE FONT oFon6 NAME "Courier New" SIZE 0, -15 BOLD OF oVenDl

DEFINE FONT oFntLis NAME "Courier New" SIZE 0, -11

DEFINE DIALOG oVenDl RESOURCE "REMESSA"

// Apresentando as BOLETO abertas no browse

REDEFINE LISTBOX oBrw ;

FIELDS Strzero(aParc[oBrw],11),;

TRANS(aParc[oBrw],"@D"),;

TRANS(aParc[oBrw],"@D"),;

TRANS(aParc[oBrw],"@E 999,999.99"),;

aParc[oBrw],;

aParc[oBrw];

FIELDSIZES 80,80,50 ;

HEADERS "Documento","Emissão","Vencimento"," Valor","Contrato","Nome" ;

UPDATE COLORS BrwText, BrwBack ;

ID 100 OF oVenDl

oBrw:cAlias := NIL

oBrw:SetArray(aParc)

oBrw:nLineStyle:=4 //Linha pontilhada

oBrw:lCellStyle:=.F.//trabalhar em linha

oBrw:SetFont(oFntLis)

oBrw:bGoTop := {|| oBrw:nat := 1 }

oBrw:bGoBottom := {|| oBrw:nat := Eval( oBrw:bLogicLen ) }

oBrw:bSkip := { | nWant, nDo | ;

nDo := Min( Max( nWant, 1 - oBrw:nat ), ;

Len( aParc ) - oBrw:nat ), ;

oBrw:nat += nDo, nDo }

oBrw:Refresh()

// Vencimento e Parcelas

REDEFINE GET oG01 VAR nTotal PICTURE "@E 999,999.99" ID 10 OF oVenDl When .F. ;

FONT oFon5 UPDATE COLOR CLR_BLUE

REDEFINE GET oG02 VAR oData PICTURE "@D" ID 11 OF oVenDl When .F. ;

FONT oFon5 UPDATE COLOR CLR_BLUE

REDEFINE GET oG03 VAR nQteBai PICTURE "9999" ID 12 OF oVenDl When .F. ;

FONT oFon5 UPDATE COLOR CLR_BLUE

REDEFINE SBUTTON oBt1 ID 30 OF oVenDl ACTION ( lSave := .t. , oVenDl:End()) ;

CANCEL ;

COLORS CLR_BLACK, ;

{|oB| If( oB:lMouseOver, {CLR_BLUE,CLR_WHITE}, ;

{CLR_WHITE,CLR_BLUE} ) };

BORDER TEXT POSITION ON_RIGHT

REDEFINE SBUTTON oBt1 ID 31 OF oVenDl ACTION oVenDl:End() ;

CANCEL;

COLORS CLR_BLACK, ;

{|oB| If( oB:lMouseOver, {CLR_BLUE,CLR_WHITE}, ;

{CLR_WHITE,CLR_BLUE} ) };

BORDER TEXT POSITION ON_RIGHT

ACTIVATE DIALOG oVenDl CENTERED Valid VerEsc(@lESC)

if lSave

lChange := .f.

// Dar Confirmou gerar Boleto

Select BOLETO

BOLETO->(DBSETORDER(1))

if Len(aParc) > 0

aguarde('Aguarde enquanto remessa está sendo processado...')

// Iniciando objeto do boleto

oCBX := TOleAuto():New("CobreBemX.ContaCorrente")

oCBX:ArquivoLicenca:= alltrim(oEMCAMCONF)

// Monta dados da conta corrente

oCBX:CodigoAgencia:= alltrim(oEMAGENCIA)

oCBX:NumeroContaCorrente:= alltrim(oEMCONTA)

oCBX:CodigoCedente:= alltrim(oEMCEDENTE)

oCBX:OutroDadoConfiguracao1 := "009" // Preencha com a variação da carteira.

oCBX:OutroDadoConfiguracao2 := "N"

oCBX:LocalPagamento := "Pagável em qualquer banco até o vencimento"

oCBX:InicioNossoNumero:= "000001"

oCBX:FimNossoNumero:= "999999"

oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := Curdrive() + ":\"+"\"+CURDIR()+"\bitmaps\BannerCBX.gif"

oCBX:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras := Curdrive() + ":\"+"\"+CURDIR()+"\bitmaps\"

oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto := "Padrao"

//oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto := "CarnetReciboTopo"

// Adicionando as informações do boleto

For j = 1 to Len(aParc)

NomeCliente(aParc[j,5],3,@aGet)

oBoleto := oCBX:DocumentosCobranca:Add()

oCBX:ProximoNossoNumero := aParc[j,1]

// Monta dados do sacado

oBoleto:CPFSacado := ""

oBoleto:NomeSacado := aGet[2]

oBoleto:EnderecoSacado := aGet[3]

oBoleto:BairroSacado := aGet[4]

oBoleto:CidadeSacado := aGet[5]

oBoleto:EstadoSacado := aGet[6]

oBoleto:CepSacado := aGet[7]

// Monta dados do documento de cobrança

oBoleto:numeroDocumento := aParc[j,8]

oBoleto:DataVencimento := TRANSF(aParc[j,3],"@D")

oBoleto:NumeroDocumento := strzero(aParc[j,1],11)

oBoleto:ValorDocumento := aParc[j,4]

// Dados de observações finais

cInstru:=""

if oEMMULTAMES>0

cInstru+='Apos '+Dtoc(oData)+' cobrar multa de R$ '+transform( oEMMULTAMES, '@E 99,999.99')+'

'

endif

if oEMJUROMES>0

nVlrMora:=((aParc[j,4]*oEMJUROMES)/100)

cInstru+='Apos vencimento cobrar juros diario de R$ '+transform(nVlrMora,'@E 99,999.99')+'

'

endif

cInstru+=aParc[j,7]+'

'

cInstru+=oEMOBS1+'

'

cInstru+=oEMOBS2+'

'

oCBX:PadroesBoleto:InstrucoesCaixa:=cInstru

//oCBX:ImprimeBoletos()

// Gerando Impressão

oCBX:calcularDadosBoletos()

//oCBX:ImprimeBoletosSemPreview()

//nNossoNumero:=oBoleto:NossoNumero

Next

// Tratamentos finais para gerar arquivo remessa

oCBX:ArquivoRemessa:Layout := "CNAB400"

cRemessa:=ProxCod("EMPRESA","EMCONTREM",3)

oCBX:ArquivoRemessa:Sequencia := cRemessa

cNomeArq:= Strzero(Day(date()),2)+Strzero(Month(date()),2)+Right(Time(),2)+".TST"

oCBX:ArquivoRemessa:Arquivo := cNomeArq

cCurPath:= Curdrive() + ":\"+"\"+CURDIR()+"\remessa\"

IF ! lIsDir(cCurPath)

IF ! lMkDir(cCurPath)

MsgStop(OemToAnsi("Não conseguiu criar a pata para remessa."),"ATENÇÃO...")

QUIT

ENDIF

ENDIF

oCBX:ArquivoRemessa:Diretorio := Curdrive() + ":\"+"\"+CURDIR()+"\boletos\remessa\"

//oCBX:calcularDadosBoletos()

oCBX:GravaArquivoRemessa()

*oCBX:End()

fecha_aguarde()

endif

//Imprimir comprovante

//Imprimir(oCod)

// Lançar valor em caixa

//Moviment()

endif

dbcloseall()

return nil

Washington Guimarães

FWH 906, xHarbour 1.2.1, PelleC, xDev, SQLLIB

Editado por - wmsoft on 27/05/2012 02:00:51

Link to comment
Share on other sites

Pessoal estou ficando azuado aqui porque não esto conseguindo gerar a remessa, Abaixo postei o fonte. Deixa eu explicar como ocorre aqui, é uma associação de pescadores os associados vão pegar seus boletos durante o dia, no final do dia a associação envia um arquivo remessa com todos os boletos que foram emitidos, o estranho que o boleto ele está gerando certinho.

FUNCTION CBXRemessa()

local oVenDl, oSay, MyDb, oPess, lESC:= .F.

local lSave := .f.

local nOldRec := RecNo(), nTotDesc:=0

LOCAL OBMP, oFont1, oFnt2, oFont4, oFnt5, oFont6

local oCBX, oBoleto, aGeticon_smile_8ball.gif

PRIVATE oBrw, aParc:= {}

IF ! UsrFree(CliIncl)

RETURN NIL

ENDIF

CheckDados()

if !oEMBOLETOS

MsgAlert("Modulo de Boleto Bancário não está ativo no sistema.","Atenção")

Return Nil

endif

CursorWait()

use_arq("BOLETO","BOLETO",.t.,.t.)

use_arq("REMESSA","REMESSA",.t.,.t.)

SELECT BOLETO

BOLETO->(DBSETORDER(1))

BOLETO->(DBGOTOP())

oData := Date()

nQteBai := 0

nTotal := 0

While ! BOLETO->( EOF() )

if BOLETO->BOLSITU = "N"

nQteBai++

nTotal+=BOLETO->BOLVALOR

aadd(aParc,({BOLETO->BOLCOD,;

BOLETO->BOLDATA,;

BOLETO->BOLVENC,;

BOLETO->BOLVALOR,;

BOLETO->BOLCONTR,;

BOLETO->BOLNOME,;

BOLETO->BOLOBS,;

Alltrim(BOLETO->BOLCBAR)}))

endif

BOLETO->( DbSkip() )

End

If Len(aParc) = 0

MsgAlert("Não existem boletos processados para geração de remessa no momento","Atenção")

dbcloseall()

Return Nil

endif

DEFINE FONT oFon1 NAME "Courier New" SIZE 0, -10 OF oVenDl

DEFINE FONT oFon2 NAME "Courier New" SIZE 0, -9 OF oVenDl

DEFINE FONT oFon3 NAME "Courier New" SIZE 0, -14 OF oVenDl

DEFINE FONT oFon4 NAME "Courier New" SIZE 0, -22 BOLD OF oVenDl

DEFINE FONT oFon5 NAME "Courier New" SIZE 0, -19 BOLD OF oVenDl

DEFINE FONT oFon6 NAME "Courier New" SIZE 0, -15 BOLD OF oVenDl

DEFINE FONT oFntLis NAME "Courier New" SIZE 0, -11

DEFINE DIALOG oVenDl RESOURCE "REMESSA"

// Apresentando as BOLETO abertas no browse

REDEFINE LISTBOX oBrw ;

FIELDS Strzero(aParc[oBrw],11),;

TRANS(aParc[oBrw],"@D"),;

TRANS(aParc[oBrw],"@D"),;

TRANS(aParc[oBrw],"@E 999,999.99"),;

aParc[oBrw],;

aParc[oBrw];

FIELDSIZES 80,80,50 ;

HEADERS "Documento","Emissão","Vencimento"," Valor","Contrato","Nome" ;

UPDATE COLORS BrwText, BrwBack ;

ID 100 OF oVenDl

oBrw:cAlias := NIL

oBrw:SetArray(aParc)

oBrw:nLineStyle:=4 //Linha pontilhada

oBrw:lCellStyle:=.F.//trabalhar em linha

oBrw:SetFont(oFntLis)

oBrw:bGoTop := {|| oBrw:nat := 1 }

oBrw:bGoBottom := {|| oBrw:nat := Eval( oBrw:bLogicLen ) }

oBrw:bSkip := { | nWant, nDo | ;

nDo := Min( Max( nWant, 1 - oBrw:nat ), ;

Len( aParc ) - oBrw:nat ), ;

oBrw:nat += nDo, nDo }

oBrw:Refresh()

// Vencimento e Parcelas

REDEFINE GET oG01 VAR nTotal PICTURE "@E 999,999.99" ID 10 OF oVenDl When .F. ;

FONT oFon5 UPDATE COLOR CLR_BLUE

REDEFINE GET oG02 VAR oData PICTURE "@D" ID 11 OF oVenDl When .F. ;

FONT oFon5 UPDATE COLOR CLR_BLUE

REDEFINE GET oG03 VAR nQteBai PICTURE "9999" ID 12 OF oVenDl When .F. ;

FONT oFon5 UPDATE COLOR CLR_BLUE

REDEFINE SBUTTON oBt1 ID 30 OF oVenDl ACTION ( lSave := .t. , oVenDl:End()) ;

CANCEL ;

COLORS CLR_BLACK, ;

{|oB| If( oB:lMouseOver, {CLR_BLUE,CLR_WHITE}, ;

{CLR_WHITE,CLR_BLUE} ) };

BORDER TEXT POSITION ON_RIGHT

REDEFINE SBUTTON oBt1 ID 31 OF oVenDl ACTION oVenDl:End() ;

CANCEL;

COLORS CLR_BLACK, ;

{|oB| If( oB:lMouseOver, {CLR_BLUE,CLR_WHITE}, ;

{CLR_WHITE,CLR_BLUE} ) };

BORDER TEXT POSITION ON_RIGHT

ACTIVATE DIALOG oVenDl CENTERED Valid VerEsc(@lESC)

if lSave

lChange := .f.

// Dar Confirmou gerar Boleto

Select BOLETO

BOLETO->(DBSETORDER(1))

if Len(aParc) > 0

aguarde('Aguarde enquanto remessa está sendo processado...')

// Iniciando objeto do boleto

oCBX := TOleAuto():New("CobreBemX.ContaCorrente")

oCBX:ArquivoLicenca:= alltrim(oEMCAMCONF)

// Monta dados da conta corrente

oCBX:CodigoAgencia:= alltrim(oEMAGENCIA)

oCBX:NumeroContaCorrente:= alltrim(oEMCONTA)

oCBX:CodigoCedente:= alltrim(oEMCEDENTE)

oCBX:OutroDadoConfiguracao1 := "009" // Preencha com a variação da carteira.

oCBX:OutroDadoConfiguracao2 := "N"

oCBX:LocalPagamento := "Pagável em qualquer banco até o vencimento"

oCBX:InicioNossoNumero:= "000001"

oCBX:FimNossoNumero:= "999999"

oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := Curdrive() + ":\"+"\"+CURDIR()+"\bitmaps\BannerCBX.gif"

oCBX:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras := Curdrive() + ":\"+"\"+CURDIR()+"\bitmaps\"

oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto := "Padrao"

//oCBX:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto := "CarnetReciboTopo"

// Adicionando as informações do boleto

For j = 1 to Len(aParc)

NomeCliente(aParc[j,5],3,@aGet)

oBoleto := oCBX:DocumentosCobranca:Add()

oCBX:ProximoNossoNumero := aParc[j,1]

// Monta dados do sacado

oBoleto:CPFSacado := ""

oBoleto:NomeSacado := aGet[2]

oBoleto:EnderecoSacado := aGet[3]

oBoleto:BairroSacado := aGet[4]

oBoleto:CidadeSacado := aGet[5]

oBoleto:EstadoSacado := aGet[6]

oBoleto:CepSacado := aGet[7]

// Monta dados do documento de cobrança

oBoleto:numeroDocumento := aParc[j,8]

oBoleto:DataVencimento := TRANSF(aParc[j,3],"@D")

oBoleto:NumeroDocumento := strzero(aParc[j,1],11)

oBoleto:ValorDocumento := aParc[j,4]

// Dados de observações finais

cInstru:=""

if oEMMULTAMES>0

cInstru+='Apos '+Dtoc(oData)+' cobrar multa de R$ '+transform( oEMMULTAMES, '@E 99,999.99')+'

'

endif

if oEMJUROMES>0

nVlrMora:=((aParc[j,4]*oEMJUROMES)/100)

cInstru+='Apos vencimento cobrar juros diario de R$ '+transform(nVlrMora,'@E 99,999.99')+'

'

endif

cInstru+=aParc[j,7]+'

'

cInstru+=oEMOBS1+'

'

cInstru+=oEMOBS2+'

'

oCBX:PadroesBoleto:InstrucoesCaixa:=cInstru

//oCBX:ImprimeBoletos()

// Gerando Impressão

oCBX:calcularDadosBoletos()

//oCBX:ImprimeBoletosSemPreview()

//nNossoNumero:=oBoleto:NossoNumero

Next

// Tratamentos finais para gerar arquivo remessa

oCBX:ArquivoRemessa:Layout := "CNAB400"

cRemessa:=ProxCod("EMPRESA","EMCONTREM",3)

oCBX:ArquivoRemessa:Sequencia := cRemessa

cNomeArq:= Strzero(Day(date()),2)+Strzero(Month(date()),2)+Right(Time(),2)+".TST"

oCBX:ArquivoRemessa:Arquivo := cNomeArq

cCurPath:= Curdrive() + ":\"+"\"+CURDIR()+"\remessa\"

IF ! lIsDir(cCurPath)

IF ! lMkDir(cCurPath)

MsgStop(OemToAnsi("Não conseguiu criar a pata para remessa."),"ATENÇÃO...")

QUIT

ENDIF

ENDIF

oCBX:ArquivoRemessa:Diretorio := Curdrive() + ":\"+"\"+CURDIR()+"\boletos\remessa\"

//oCBX:calcularDadosBoletos()

oCBX:GravaArquivoRemessa()

*oCBX:End()

fecha_aguarde()

endif

//Imprimir comprovante

//Imprimir(oCod)

// Lançar valor em caixa

//Moviment()

endif

dbcloseall()

return nil

Washington Guimarães

FWH 906, xHarbour 1.2.1, PelleC, xDev, SQLLIB

Editado por - wmsoft on 27/05/2012 02:00:51

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