ALIAS _DUPLCLI
INDEX temp0101 cr_dt_venc
COMANDO ANTES #TEXTO_FONTE
   Private z_np:=0, z_taxa:=0, zFgJurosCapitalizados:=.f., z_sovencidas:=.f., z_sosel:=.f., z_abertas, z_tjuros, x_juros
   
   Abra ("0NOIDX",r_siga,"vb_conv","vb_conv")
   se select('sccrcli')=0 entao abra_arq('sccrcli')
   sccrcli->(DbGoTo(m_fcli), vb_conv->(DbGoTo(sccrcli->cr_tip_des) , z_taxa:=CORR_ATRAZ, DbCloseArea()) )
   DbSelectArea('_DUPLCLI')
   if .not. QuickDialog("lst_bordcob01", "Parametros",{ ;
       {"2;2;Taxa de Juros:","@z_taxa",@z_taxa,"999.99","",""},;
       {"3;2;CHECKBOX 'Juros &Capitalizados      ?'", "@zFgJurosCapitalizados", @zFgJurosCapitalizados, "!", "", ""} ,;
       {"4;2;CHECKBOX 'Lista apenas as &Vencidas ?'", "@z_sovencidas", @z_sovencidas, "!", "", ""} ,;
       {"5;2;CHECKBOX 'Lista So as &Selecionadas ?'", "@z_sosel", @z_sosel, "!", "", ""} )
      Return       
   endif
   index on cr_dt_venc to ('mem:_duplcli')
   
   oLst:cAlias_DataCols := '_DUPLCLI'
   oLst:cAliasMaster := '_DUPLCLI'
   oLst:lPortrait := .t.
   oLst:lOutputPdf := .t.
   // oLst:lOutputFr3 := .t.

   oLst:Cab1('Bordero de Cobranca')
   oLst:AddCab( '' )
   oLst:Cab4( "Emitido em "+Dtoc(s_datual)+" as "+time())
   oLst:AddCab( '_LINHA_FINA_' )

   oLst:AddCab( '     Cliente...: '+AllTrim(sccrcli->cr_nome), 'Cod: '+lTrim(Str(m_fCli,10)) )
   oLst:AddCab( '     Endereco..: '+AllTrim(sccrcli->cr_rua),  'CEP: '+SCCRCLI->CR_CEP )
   oLst:AddCab( '     Cidade....: '+AllTrim(sccrcli->cr_cidade),AllTrim(sccrcli->cr_bairro),"UF: "+sccrcli->cr_uf)
   oLst:AddCab( '     Fone......: '+AllTrim(sccrcli->cr_fone) )
   oLst:AddCab( '     CNPJ......: '+AllTrim(sccrcli->cr_cgc),AllTrim(zcTipoDeJuros),'Taxa:'+str(Z_TAXA,3)+'%' )
   oLst:AddCab( '' )
   oLst:AddCab( '' )
   oLst:AddCab( ztipolst )
   oLst:AddCab( '' )
   oLst:AddCab( '_CABCOLS_' )
   oLst:AddCab( '' )

   oLst:AddCol('TDoc;cr_tip_dup;C;XXXX;4;;;Direita;NaoSome;')
   oLst:AddCol('Titulo;cr_num_ped;C;@s10;10;;;Esquerda;NaoSome;') 
   oLst:AddCol('Dt Emis;Cr_Dt_Emis;D;99.99.9999;10;;;Direita;NaoSome;') 
   oLst:AddCol('Dt Venc;Cr_Dt_Venc;D;99.99.9999;10;;;Direita;NaoSome;') 
   oLst:AddCol('Principal;cr_valor;N;99999999.99;11;;;Direita;NaoSome;') 
   oLst:AddCol('Atraso;z_dias;P;9999;4;;;Direita;NaoSome;') 
   oLst:AddCol('Juros;X_JUROS;P;99999999.99;11;;;Direita;NaoSome;') 

   oLst:AddRodape( '_LINHA_FINA_', "", {|| "Pagina "+Str(++pag,4)+" / ####"} )
   debugalert('1')

   oLst:DbEval({||++z_np,X_JUROS:=(CR_VALOR-CR_VAL_LQD)*if(zFgJurosCapitalizados<>"N",(1+z_taxa/100)**(x_dias/30),(Z_TAXA/100)/30*X_DIAS), z_abertas+=cr_valor,z_tjuros+=X_JUROS} ) 
//   oLst:PrtD( '_LINHA_GROSSA_' )
//   oLst:PrtD( 'Produtos Listados: '+Transform(z_np,'@E 999,999') )

oLst:PrtD('')
oLst:PrtD('')
oLst:xPrtD('              Valor do Principal em Aberto..: [z_abertas @E 9,999,999.99] ([Znabertas 9999] parcelas)')
oLst:xPrtD('              Total dos Juros sobre Vencidas: [z_tjuros @E 9,999,999.99]')
oLst:xPrtD('              Debito Principal + Juros......: [z_abertas+z_tjuros @E 9,999,999.99]')


   debugalert('3')

#FIM_TEXTO_FONTE


ALIAS SCCRDUP
INDEX    Sccrdup StrZero(Cr_Cod_Cli,6)+cr_num_ped 
OUTROARQ Sccrcli 

VARIAVEL      LST_TP    = 55
VARIAVEL      z_abertas = 0
VARIAVEL      znabertas = 0
VARIAVEL      znparcelas= 0
VARIAVEL      z_cli     = 0
VARIAVEL      Z_TAXA    = 9
VARIAVEL      Z_TJUROS  = 0
VARIAVEL      z_sovencidas  = "N"
VARIAVEL      z_comQuitadas = "N"
VARIAVEL      zcabdtlqd = ""
VARIAVEL      ztipolst  = "* * * RELACAO DE TITULOS * * *"
VARIAVEL      Z_data    = date()
VARIAVEL      zspcmargem = ""
VARIAVEL      zFgJurosCapitalizados:="N"

T10,10,19,60,Parametros
T2,2,Codigo do Cliente......:,4,z_cli,999999
T3,2,Taxa de Juros..........:,5,z_taxa,999.99
T4,2,Juros Capitalizados....?,5,zFgJurosCapitalizados,!
T5,2,Listo Apenas Vencidas..?,1,z_sovencidas,!
T6,2,Listo Ultimas Quitacoes?,1,z_comQuitadas,!
T7,2,Vencimentos Ate........:,8,z_data,99.99.99

COMANDO ANTES sccrcli->( DbGoto(z_cli) )

FILTRO z_sovencidas="N" .or. cr_dt_venc<=z_data .or. z_comQuitadas="S"

COMANDO DURANTE z_abertas = z_abertas + iif( day(cr_dt_lqd)=0, cr_valor, 0 )
COMANDO DURANTE Znabertas = Znabertas + iif( day(cr_dt_lqd)=0, 1, 0 )
COMANDO DURANTE X_DIAS = S_DATUAL - CR_DT_VENC


COMANDO DURANTE X_JUROS = (CR_VALOR-CR_VAL_LQD)* if(zFgJurosCapitalizados<>"N", (1+z_taxa/100)**(x_dias/30) , (Z_TAXA/100)/30*X_DIAS)

COMANDO DURANTE X_JUROS = IF(X_JUROS>0,X_JUROS,0)
COMANDO DURANTE Z_TJUROS = Z_TJUROS + X_JUROS
COMANDO DURANTE Z_DIAS = STR(ABS(X_DIAS),4)+IF(X_DIAS>0,"VC","AV")
COMANDO DURANTE Z_DTVENC = left(dtoc(cr_dt_venc),6)+str(year(cr_dt_venc),4)
COMANDO DURANTE Z_DTEMIS = left(dtoc(cr_dt_EMIS),6)+str(year(cr_dt_EMIS),4)
COMANDO DUR ANTE zdtlqd = if(z_comQuitadas="S".and.day(cr_dt_lqd)>0,dtoc(cr_dt_lqd)+" "+Str(Cr_Val_lqd,8,2),"")

C     Data Emissao: [date()]
C     [repl("_",72)]
C                            Bordero de Cobranca  
C     [repl("-",72)]
C     Cliente...: [sccrcli->cr_nome]    Cod: [z_cli 999999]
C     Endereco..: [sccrcli->cr_rua] CEP: [SCCRCLI->CR_CEP]
C     Cidade....: [sccrcli->cr_cidade]     [sccrcli->cr_bairro @s20]    UF: [sccrcli->cr_uf]
C     Fone......: [sccrcli->cr_fone]
*Contato: [sccrcli->cr_contato]

comando antes zcTipoDeJuros:= if(zFgJurosCapitalizados<>"N","             ","JUROS SIMPLES")

C     CNPJ......: [sccrcli->cr_cgc]       [zcTipoDeJuros]      Taxa:[Z_TAXA @E99]%
C
C
C[padc(ztipolst,78)]
C
C[zspcmargem]TDoc NumTit     Dt Emis    Dt Venc     Principal  Atraso     Juros  [zcabdtlqd]
C
D[zspcmargem][cr_tip_dup] [cr_num_ped]  [Z_dtemis]  [Z_dtvenc]  [cr_valor @E9,999,999.99]  [Z_dias] [X_JUROS @E 99,999.99] [zdtlqd]

COMANDO DEPOIS Z_DEBATUAL = z_abertas+z_tjuros
ULTPAG
ULTPAG              Valor do Principal em Aberto..: [z_abertas @E 9,999,999.99] ([Znabertas 9999] parcelas)
ULTPAG              Total dos Juros sobre Vencidas: [z_tjuros @E 9,999,999.99]
ULTPAG              Debito Principal + Juros......: [z_debAtuAL @E 9,999,999.99] 
ULTPAG                    
