;** RP_0001 ********************************************************************
;*  Comprovante de baixas                                                      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 22/01/2016 por Anivel Augusto Rodrigues
;Ultima Alteracao: 27/01/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes e inclusao Data Base                               
;Ultima Alteracao: 12/02/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes e inclusao Data Base                               
;Ultima Alteracao: 09/03/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes contador lin                             
;Ultima Alteracao: 12/04/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nome grupotitulos()                       

;*******************************************************************************
;* Rotina para impressao                                                    ****
;*******************************************************************************
Proc Imprimir()

tpag=64
pag =0
lin =0

cabecalho()

moveto "bxauti"
Moveto [Numero do Lote]
Locate nlote
if RetVal
   then 
        zeragrupo()
        grupotitulos()
        while [Numero do Lote]=[Bxautc->numero do Lote] 

          titulos()

          Moveto "Bxauti"
          skip
          if eot() then quitloop endif
        endwhile
        totalizagrupo()
endif      

Rodape()      

EndProc ;IMPRP()


;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc grupotitulos()
private tit

tit="Titulos a Pagar"
imprimelinha(CI_INEG+tit+CI_FNEG)

endproc

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc totalizagrupo()
private s, dtm, ntit, ndias

dtm  =DTMEDIA
ntit =VCITENS  
ndias=DTMEDIA-[Bxautc->Data Base]
  
s=CI_INEG+Format("W19,AL"   ,"Total"+Format("W5,EIC",ntit)+" Titulos ")+
  "DTM "+
  Format("D13"      ,dtm      )+
  " ND"+Format("W6,EIC",ndias )+spaces(20)+
  Format("W12.2,EIC",tvrsaldo )+
  Format("W12.2,EIC",tvroperac)+
  Format("W12.2,EIC",tvrjuros )+
  Format("W12.2,EIC",tvrdescto)+
  spaces(14)+
  Format("W12.2,EIC",tvrresid )+CI_FNEG

imprimelinha(s)
imprimelinha("")

endproc

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc zeragrupo()

tvrsaldo =0
tvroperac=0
tvrjuros =0
tvrdescto=0
tvrresid =0

endproc

;*******************************************************************************
;* Cabe‡alho                                                                   *
;*******************************************************************************
Proc CABECALHO()
private s

pag=pag+1
lin=0

imprimelinha("")
imprimelinha(CI_15CPP+CI_6LPP+Format("W50,AL",NOMEMPRESA)+Format("W50,AC","COMPROVANTE DE BAIXA(S)")+
             Format("W036,AR","Emissao: "+Format("D13",Today())+"-"+SubStr(StrVal(Time()),1,5)))

imprimelinha(Fill("=",136))

imprimelinha("")

imprimelinha("No Lote: "+CI_IEXP+[Bxautc->Numero do Lote]+CI_FEXP+spaces(03)+
             "Data da Baixa: "+Format("D13",[Bxautc->Data da Baixa])+spaces(03)+
             "Data Base: "+Format("D13",[Bxautc->Data Base])+spaces(03)+
             "Situa‡Æo: "+[Bxautc->Situacao]+spaces(03)+
             "Conta: "+regconta["Codigo da Conta"]+" "+regconta["Descricao da Conta"])

imprimelinha("")

imprimelinha("Lancto Documento         Vencto   TP Pessoa                          Saldo Vr Operacao       Juros    Desconto TBaixa FBaixa     Residuo ")
imprimelinha("------ --------------- ---------- -- ------------------------- ----------- ----------- ----------- ----------- ------ ------ -----------")

EndProc ;CABECALHO()   

;*******************************************************************************
;* Impressao dos Titulos                                                       *
;*******************************************************************************
Proc Titulos()
private s

s=Format("W07,AL"   ,[Numero do Lancamento])+
  Format("W05,AL"   ,[Tipo do Documento   ])+
  Format("W11,AL"   ,[Numero do Documento ])+
  Format("D13"      ,[Data de Vencimento  ])+
  Format("W04,AC"   ,[Tipo do Pagamento   ])+
  Format("W25,AL"   ,[Razao Social        ])+
  Format("W12.2,EIC",[Saldo do Documento  ])+
  Format("W12.2,EIC",[Bx Valor do Recebimento])+
  Format("W12.2,EIC",[Bx Valor do Juros   ])+
  Format("W12.2,EIC",[Bx Valor do Desconto])+
  Format("W07,AL"   ," "+[BX Tipo da Baixa   ])+
  Format("W07,AL"   ," "+[BX Forma da Baixa  ])+
  Format("W12.2,EIC",[Bx Saldo Residual   ])

imprimelinha(s)

tvrsaldo =tvrsaldo +[Saldo do Documento     ]
tvroperac=tvroperac+[Bx Valor do Recebimento]
tvrjuros =tvrjuros +[Bx Valor do Juros      ]
tvrdescto=tvrdescto+[Bx Valor do Desconto   ]
tvrresid =tvrresid +[Bx Saldo Residual      ]


EndProc ;Titulos()

;*******************************************************************************
;* Impressao dos Rodap‚                                                        *
;*******************************************************************************
Proc RODAPE()
private s,i

imprimelinha(Fill("-",136))

imprimelinha("")

imprimelinha(Format("W136,AC","   /   /     -                                                         "))
imprimelinha(Format("W136,AC","-----------------------------------------------------------------------"))
imprimelinha(Format("W136,AC","Data e Assinatura"))

imprimelinha(Fill("=",136)+CI_10CPP+CI_6LPP)

EndProc ;RODAPE()


;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc imprimelinha(s)

If (lin+1)>=tpag
   Then 
        Print File ARQIMP "\f"+"\n"

        cabecalho()
        grupotitulos()
EndIf

Print File ARQIMP s+"\n"
lin=lin+1

endproc


;*******************************************************************************
;* Rotina Principal                                                            *
;*****************+*************************************************************
If Not IsAssigned(NOMEMPRESA)           Then NOMEMPRESA=""           EndIf
If Not IsAssigned(Sys_Reset_Impressora) Then Sys_Reset_Impressora="" EndIf


ARQIMP = PrivDir()+"RP_0001.TXT"
Switch
  Case OK="A": ARQIMP = DIREPORT+ARQUIVO+".TXT"
EndSwitch
Deleta_Arquivo(ARQIMP)

View "BxautC"
View "Bxauti"

Moveto "bxautc"
Moveto [Numero do Lote]
Locate nlote
if RetVal
   Then 
        AGUARDE("Imprimindo Comprovante do Lote -> "+[Bxautc->Numero do Lote])
        
        Imprimir()

        ImpriArq(ARQIMP)
        
        LIMPAGUARDE()
        
        Mensagem("Impress„o Concluida !")        
endif
ClearAll

Release Procs imprimir, grupotitulos, totalizagrupo, zeragrupo, rodape, Titulos, cabecalho, 
              imprimelinha 