;** RP_0000B *******************************************************************
;** Imprime Recibo                                               ** PADRAO **  *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 11/09/2017 por Bruno Carvalho 
;Ultima Altera‡Æo:   /  /     por                
;Motivo Alteracao: 

;Recibo onde mostra todos os titulos em aberto e os rec‚m baixados (Individual ou Baixa Automatica)

;*******************************************************************************
;* Rotina p/ Processar Informacoes                                             *
;*******************************************************************************
Proc RP_Processa()

Switch
  Case PARAM_IMPRESSAO = "BXCXAUTO" : Monta_Duplic_BxCxAuto()
  Case PARAM_IMPRESSAO = "RM_0500"  : Monta_Duplic_RM0500()
  Case PARAM_IMPRESSAO = "DUPBXII"  : Monta_Duplic_DUPBXII()
  OtherWise                         : Monta_Duplic()
EndSwitch        
RP_Imprimir() 

EndProc ;RP_Processa()

;*******************************************************************************
;* Rotina p/ ImpresÆo                                                          *
;*******************************************************************************
Proc RP_Imprimir()

Switch
 Case SYS_CODIGO_CLIENTE="0329" : NOMEMPRESA="MADEIRART'S  (37)3323-1545"
 OtherWise                      : If Not IsAssigned(NOMEMPRESA) Then NOMEMPRESA="" EndIf
EndSwitch   

TIT    = " EXTRATO DE CONTA "                                  
NLINHA = 0
FOLHA  = 1

If DynArraySize(ARQ1)>0 Or DynArraySize(ARQ2)>0
   Then Print File ARQIMP CI_15CPP
        Print File ARQIMP CI_8LPP
EndIF

If DynArraySize(ARQ1)>0
   Then For wi From 1 To DynArraySize(ARQ1)
          If wi=1 Or NLINHA=0
             Then NLINHA = NLINHA + 8 
                  Print File ARQIMP Fill("=",59)+TIT+Fill("=",58)+"\n"
                  Print File ARQIMP Format("W32,AL",NOMEMPRESA)+Format("W103,AR",Format("D10",Today())+"-"+Time()+Spaces(2)+"FOLHA: "+Format("W2,AR",StrVal(FOLHA)))+"\n"
                  Print File ARQIMP "CLIENTE.: "+Format("W5,AL",AUX_CODIGO)+Format("W41,AL",RAZAOS_C)+"\n"
                  Print File ARQIMP "ENDERECO: "+Format("W30,AL",ENDERECO)+Spaces(10)+"TELEFONE: "+Format("W15,AL",FONE)+"\n"
                  Print File ARQIMP "BAIRRO..: "+Format("W15,AL",BAIRRO)+Spaces(26) +"  CIDADE: "+Ltrim(CIDADE)+Spaces(4)+"UF: "+UF+"\n"
                  Print File ARQIMP Fill("=",135)+"\n"
                  Print File ARQIMP Format("W135,AC","CONTAS PAGAS")+"\n"
                  Print File ARQIMP "----------------------------------------------------------------------------------------------------------------------------"+"\n"
                  Print File ARQIMP "Duplicata  Descricao                      DtCompra DtVencto   VrOriginal  VrPagamento      VrJuros   VrDesconto      VrAtual"+"\n"
                  Print File ARQIMP "---------- ------------------------------ -------- -------- ------------ ------------ ------------ ------------ ------------"+"\n"
          EndIf
          NLINHA = NLINHA + 1
          Print File ARQIMP ARQ1[wi]+"\n"
          If NLINHA >= 87 
             Then NLINHA=0
                  FOLHA = FOLHA + 1
                  Print File ARQIMP "\f" 
          EnDIf
        EndFor
        If NLINHA+3 >= 87
           Then FOLHA = FOLHA + 1
                Print File ARQIMP "\f"
                Print File ARQIMP Fill("=",59)+TIT+Fill("=",58)+"\n"
                Print File ARQIMP Format("W135,AR",Format("D10",Today())+"-"+Time()+Spaces(2)+"FOLHA: "+Format("W2,AR",StrVal(FOLHA)))+"\n"
                Print File ARQIMP "CLIENTE.: "+Format("W5,AL",AUX_CODIGO)+Format("W41,AL",RAZAOS_C)+"\n"
                Print File ARQIMP "ENDERECO: "+Format("W30,AL",ENDERECO)+Spaces(10)+"TELEFONE: "+Format("W15,AL",FONE)+"\n"
                Print File ARQIMP "BAIRRO..: "+Format("W15,AL",BAIRRO)+Spaces(26) +"  CIDADE: "+Ltrim(CIDADE)+Spaces(4)+"UF: "+UF+"\n"
                Print File ARQIMP Fill("=",135)+"\n"
                Print File ARQIMP Format("W135,AC","CONTAS PAGAS")+"\n"
                NLINHA = 8
           Else NLINHA = NLINHA + 3
        EndIf   
        Print File ARQIMP "----------------------------------------------------------------------------------------------------------------------------"+"\n"
        Print File ARQIMP Spaces(48)+"TOTAL PAGO: "   +Format("W12.2,EIC",VRORIG_ARQ1)+Spaces(1)+Format("W12.2,EIC",VRPAG_ARQ1)+Spaces(1)+
                          Format("W12.2,EIC",VRJUR_ARQ1)+Spaces(1)+Format("W12.2,EIC",VRDES_ARQ1)+Spaces(1)+Format("W12.2,EIC",VRATU_ARQ1)+"\n"
        Print File ARQIMP Fill("=",135)+"\n"
   Else NLINHA = NLINHA + 5     
EndIf                                                                                                                                                                  

If DynArraySize(ARQ2)>0
   Then For wi From 1 To DynArraySize(ARQ2)
          If wi=1 Or NLINHA=0
             Then If NLINHA=0 Or (wi=1 And DynArraySize(ARQ1)=0) 
                     Then NLINHA = NLINHA + 4 
                          Print File ARQIMP Fill("=",59)+TIT+Fill("=",58)+"\n"
                          Print File ARQIMP Format("W135,AR",Format("D10",Today())+"-"+Time()+Spaces(2)+"FOLHA: "+Format("W2,AR",StrVal(FOLHA)))+"\n"
                          Print File ARQIMP "CLIENTE.: "+Format("W5,AL",AUX_CODIGO)+Format("W41,AL",RAZAOS_C)+"\n"
                          Print File ARQIMP "ENDERECO: "+Format("W30,AL",ENDERECO)+Spaces(10)+"TELEFONE: "+Format("W15,AL",FONE)+"\n"
                  Print File ARQIMP "BAIRRO..: "+Format("W15,AL",BAIRRO)+Spaces(26) +"  CIDADE: "+Ltrim(CIDADE)+Spaces(4)+"UF: "+UF+"\n"
                          Print File ARQIMP Fill("=",135)+"\n"
                  EndIf
                  NLINHA = NLINHA + 4
                  Print File ARQIMP Format("W135,AC","CONTAS A PAGAR")+"\n"
                  Print File ARQIMP "----------------------------------------------------------------------------------------------------------------------------"+"\n"
                  Print File ARQIMP "Duplicata  Descricao                      DtCompra DtVencto   VrOriginal     VrAPagar      VrJuros   VrDesconto      VrAtual"+"\n"
                  Print File ARQIMP "---------- ------------------------------ -------- -------- ------------ ------------ ------------ ------------ ------------"+"\n"
          EndIf
          NLINHA = NLINHA + 1
          Print File ARQIMP ARQ2[wi]+"\n"
          If NLINHA >= 87 
             Then NLINHA=0
                  FOLHA = FOLHA + 1
                  Print File ARQIMP "\f" 
          EnDIf
        EndFor
        If NLINHA+3 >= 87
           Then FOLHA = FOLHA + 1
                Print File ARQIMP "\f"
                Print File ARQIMP Fill("=",59)+TIT+Fill("=",58)+"\n"
                Print File ARQIMP Format("W135,AR",Format("D10",Today())+"-"+Time()+Spaces(2)+"FOLHA: "+Format("W2,AR",StrVal(FOLHA)))+"\n"
                Print File ARQIMP "CLIENTE.: "+Format("W5,AL",AUX_CODIGO)+Format("W41,AL",RAZAOS_C)+"\n"
                Print File ARQIMP "ENDERECO: "+Format("W30,AL",ENDERECO)+Spaces(10)+"TELEFONE: "+Format("W15,AL",FONE)+"\n"
                Print File ARQIMP "BAIRRO..: "+Format("W15,AL",BAIRRO)+Spaces(26) +"  CIDADE: "+Ltrim(CIDADE)+Spaces(4)+"UF: "+UF+"\n"
                Print File ARQIMP Fill("=",135)+"\n"
                Print File ARQIMP Format("W135,AC","CONTAS A PAGAR")+"\n"
                NLINHA = 8
           Else NLINHA = NLINHA + 3
        EndIf   
        Print File ARQIMP "----------------------------------------------------------------------------------------------------------------------------"+"\n"
        Print File ARQIMP Spaces(45)+"TOTAL A PAGAR: "+Format("W12.2,EIC",VRORIG_ARQ2)+Spaces(1)+Format("W12.2,EIC",VRPAG_ARQ2)+Spaces(1)+
                          Format("W12.2,EIC",VRJUR_ARQ2)+Spaces(1)+Format("W12.2,EIC",VRDES_ARQ2)+Spaces(1)+Format("W12.2,EIC",VRATU_ARQ2)+"\n"
        Print File ARQIMP Fill("=",135)+"\n"
EndIf

EndProc ;RP_Imprimir()

;*******************************************************************************
;* Rotina p/ Gerar Recibo - PadrÆo                                              *
;*******************************************************************************
Proc Monta_Duplic()
Private ENCONTRADO

GetRecord "\\Sistemas\\Cadastro\\Destinat" AUX_CODIGO To REG_DESTINAT
If RetVal
   Then ENDERECO=REG_DESTINAT["Endereco"]
        BAIRRO  =REG_DESTINAT["Bairro"]
        CIDADE  =REG_DESTINAT["Cidade"]
        UF      =REG_DESTINAT["UF"]
        FONE    =REG_DESTINAT["Telefone"]
        RAZAOS_C=REG_DESTINAT["Razao Social"] 
   Else ENDERECO=""
        BAIRRO  =""
        CIDADE  =""
        UF      =""
        FONE    =""
        RAZAOS_C=""
EnDIf
Release Vars REG_DESTINAT

DynArray ARQ1[]
DynArray ARQ2[]

Cont1=0
Cont2=0

View Aux_Duplic
Scan
  ;Documentos com baixa parcial, tratados com a ocorrˆncia PG no sistema gerador
  TIPO = [Sequencia Gerador] ;AP ou PG
  If TIPO = "AP" Then Loop EndIf
  
  ENCONTRADO = False
  If [Numero do Lancamento] = NLANC
     Then ENCONTRADO=True
  EndIf
    
  If ENCONTRADO And TIPO = "PG"
     Then TOT_PAG   = Vr_Pagto
          TOT_JUR   = Vr_Juros
          TOT_DES   = Vr_Descto
  
          If TOT_DES=BlankNum() Then TOT_DES=0 EndIf
  
          DATAE=Format("D10",[Data de Emissao])
          If Len(Tira_CharNum(DATAE))=7 Or Len(Tira_CharNum(DATAE))=9
             Then DATAE="0"+DATAE
          EndIf
          DATAV=Format("D10",[Data de Vencimento])
          If Len(Tira_CharNum(DATAV))=7 Or Len(Tira_CharNum(DATAV))=9
             Then DATAV="0"+DATAV
          EndIf
          Cont1 = Cont1 + 1
          
          TOT_ATUAL=TOT_PAG
          If TOT_DES=0   Then TOT_DES = BlankNum()   EndIf
          If TOT_JUR=0   Then TOT_JUR = BlankNum()   EndIf
          If TOT_PAG=0   Then TOT_PAG = BlankNum()   EndIf
          If TOT_ATUAL=0 Then TOT_ATUAL = BlankNum() EndIf
          
          ARQ1[Cont1] = Format("W10,AL",[Numero do Documento])+Spaces(1)+Format("W30,AL",[Documento Referente])+Spaces(1)+
                        DATAE+Spaces(1)+DATAV+Spaces(1)+Format("W12.2,EIC",[Valor do Documento])+Spaces(1)+
                        Format("W12.2,EIC",TOT_PAG)+Spaces(1)+Format("W12.2,EIC",TOT_JUR)+Spaces(1)+
                        Format("W12.2,EIC",TOT_DES)+Spaces(1)+Format("W12.2,EIC",TOT_ATUAL)
          
          VRORIG_ARQ1= VRORIG_ARQ1+[Valor do Documento]
          VRPAG_ARQ1 = VRPAG_ARQ1 +TOT_PAG
          VRJUR_ARQ1 = VRJUR_ARQ1 +TOT_JUR
          VRDES_ARQ1 = VRDES_ARQ1 +TOT_DES
          VRATU_ARQ1 = VRATU_ARQ1 +TOT_ATUAL
  
          If [Saldo do Documento]<>[Valor do Documento] And
             [Saldo do Documento]>0  
             Then RP_Verifica_Lancamento()
          EndIf
     Else RP_Verifica_Lancamento()
  EndIf  
  Moveto Aux_Duplic 
EndScan

EndProc ;Monta_Duplic()              

;*******************************************************************************
;* Rotina p/ Gerar Recibo - BxCxAuto                                           *
;*******************************************************************************
Proc Monta_Duplic_BxCxAuto()
Private ENCONTRADO

PESSOA = "***"

View Aux_Duplic
Scan
  Barra(NRecords(Aux_Duplic), RecNo())
  Aguarde("Aguarde, gerando recibo"+BARRA_STRING)
                     
  VROLD = [Bx Valor do Recebimento]
  DSOLD = BlankNum() 
  JSOLD = BlankNum()
  If [Bx Valor do Juros   ] > 0
      Then JSOLD = [Bx Valor do Juros] 
  EndIf    
  If [Bx Valor do Desconto] > 0
     Then DSOLD = [Bx Valor do Desconto]
  EndIf
   
  If PESSOA <> [Codigo do Destinatario]
     Then If PESSOA<>"***"
             Then RP_Imprimir()
                  Print File ARQIMP "\f"
          EndIf  
          AUX_CODIGO     = [Codigo do Destinatario]
          NLANC          = [Numero do Lancamento]
          VSD_I_Vr_Pagto = [Bx Valor do Recebimento]
          
          VRORIG_ARQ1= 0
          VRPAG_ARQ1 = 0
          VRJUR_ARQ1 = 0
          VRDES_ARQ1 = 0
          VRATU_ARQ1 = 0
          
          VRORIG_ARQ2= 0
          VRPAG_ARQ2 = 0
          VRJUR_ARQ2 = 0
          VRDES_ARQ2 = 0
          VRATU_ARQ2 = 0
          
          DTOLD =DATA_BAIXA
          VCOLD =BlankNum()
          CCOLD =CODIGO_CONTA
          
          DynArray ARQ1[]
          DynArray ARQ2[]
          
          Cont1=0
          Cont2=0
  
          PESSOA = [Codigo do Destinatario]                              
          GetRecord "\\Sistemas\\Cadastro\\Destinat" PESSOA To REG_DESTINAT
          If RetVal
             Then ENDERECO=REG_DESTINAT["Endereco"]
                  BAIRRO  =REG_DESTINAT["Bairro"]
                  CIDADE  =REG_DESTINAT["Cidade"]
                  UF      =REG_DESTINAT["UF"]
                  FONE    =REG_DESTINAT["Telefone"]
                  RAZAOS_C=REG_DESTINAT["Razao Social"] 
             Else ENDERECO=""
                  BAIRRO  =""
                  CIDADE  =""
                  UF      =""
                  FONE    =""
                  RAZAOS_C=""
          EnDIf
          Release Vars REG_DESTINAT    
  EndIf
  If [Sequencia Gerador] = "PG"
     Then TOT_PAG   = [Bx Valor do Recebimento]
          TOT_JUR = BlankNum() 
          TOT_DES = BlankNum()
          If [Bx Valor do Desconto] > 0
             Then TOT_DES =[Bx Valor do Desconto]
          EndIf
          If [Bx Valor do Juros] > 0   
             Then TOT_JUR =[Bx Valor do Juros]
          EndIf
  
          DATAE=Format("D10",[Data de Emissao])
          If Len(Tira_CharNum(DATAE))=7 Or Len(Tira_CharNum(DATAE))=9
             Then DATAE="0"+DATAE
          EndIf
          DATAV=Format("D10",[Data de Vencimento])
          
          If Len(Tira_CharNum(DATAV))=7 Or Len(Tira_CharNum(DATAV))=9
             Then DATAV="0"+DATAV
          EndIf
          Cont1 = Cont1 + 1
          TOT_ATUAL=TOT_PAG
          
          DOCTO_REFERENTE = ""
          GetRecord "\\Sistemas\\Ctarec\\Duplic" [Numero do Lancamento] To REG_DUPLIC
          If ReTval
             Then DOCTO_REFERENTE=REG_DUPLIC["Documento Referente"]
          EndIf  
           
          If TOT_DES=0   Then TOT_DES = BlankNum()   EndIf
          If TOT_JUR=0   Then TOT_JUR = BlankNum()   EndIf
          If TOT_PAG=0   Then TOT_PAG = BlankNum()   EndIf
          If TOT_ATUAL=0 Then TOT_ATUAL = BlankNum() EndIf
           
          ARQ1[Cont1] = Format("W10,AL",[Numero do Documento])+Spaces(1)+Format("W30,AL",DOCTO_REFERENTE)+Spaces(1)+
                        DATAE+Spaces(1)+DATAV+Spaces(1)+Format("W12.2,EIC",[Valor do Documento])+Spaces(1)+
                        Format("W12.2,EIC",TOT_PAG)+Spaces(1)+Format("W12.2,EIC",TOT_JUR)+Spaces(1)+
                        Format("W12.2,EIC",TOT_DES)+Spaces(1)+Format("W12.2,EIC",TOT_ATUAL)
          
          VRORIG_ARQ1= VRORIG_ARQ1+[Valor do Documento]
          VRPAG_ARQ1 = VRPAG_ARQ1 +TOT_PAG
          VRJUR_ARQ1 = VRJUR_ARQ1 +TOT_JUR
          VRDES_ARQ1 = VRDES_ARQ1 +TOT_DES
          VRATU_ARQ1 = VRATU_ARQ1 +TOT_ATUAL
  
          If [Saldo do Documento]<>[Valor do Documento] And
             [Saldo do Documento]>0  
             Then RP_Verifica_Lancamento()
          EndIf
     Else RP_Verifica_Lancamento()
  EndIf  
  Moveto Aux_Duplic
Endscan

EndProc ;Monta_Duplic_BxCxAuto()

;*******************************************************************************
;* Rotina p/ Gerar Recibo - PadrÆo                                              *
;*******************************************************************************
Proc Monta_Duplic_RM0500()

PESSOA = "***"

View Aux_DupBaixa
View Aux_Duplic
Scan
  Barra(NRecords(Aux_Duplic), RecNo())
  Aguarde("Aguarde, gerando recibo"+BARRA_STRING)
  
  NLANC          = [Numero do Lancamento]
  CODIGO_CONTA   = [Codigo da Conta]
  DATA_BAIXA     = BlankDate()
   
  VSD_I_Vr_Pagto = BlankNum()
  VROLD          = BlankNum()
  DSOLD          = BlankNum() 
  JSOLD          = BlankNum()
  VCOLD          = BlankNum()
       
  If PESSOA <> [Codigo do Destinatario]
     Then If PESSOA<>"***"
             Then RP_Imprimir()
                  Print File ARQIMP "\f"
          EndIf  
          AUX_CODIGO     = [Codigo do Destinatario]
          
          VRORIG_ARQ1= 0
          VRPAG_ARQ1 = 0
          VRJUR_ARQ1 = 0
          VRDES_ARQ1 = 0
          VRATU_ARQ1 = 0
          
          VRORIG_ARQ2= 0
          VRPAG_ARQ2 = 0
          VRJUR_ARQ2 = 0
          VRDES_ARQ2 = 0
          VRATU_ARQ2 = 0
          
          DynArray ARQ1[]
          DynArray ARQ2[]
          
          Cont1=0
          Cont2=0
  
          PESSOA = [Codigo do Destinatario]                              
          GetRecord "\\Sistemas\\Cadastro\\Destinat" PESSOA To REG_DESTINAT
          If RetVal
             Then ENDERECO=REG_DESTINAT["Endereco"]
                  BAIRRO  =REG_DESTINAT["Bairro"]
                  CIDADE  =REG_DESTINAT["Cidade"]
                  UF      =REG_DESTINAT["UF"]
                  FONE    =REG_DESTINAT["Telefone"]
                  RAZAOS_C=REG_DESTINAT["Razao Social"] 
             Else ENDERECO=""
                  BAIRRO  =""
                  CIDADE  =""
                  UF      =""
                  FONE    =""
                  RAZAOS_C=""
          EnDIf
          Release Vars REG_DESTINAT    
  EndIf  
  
  If [Sequencia Gerador]= "PG"
     Then Moveto Aux_DupBaixa
          Moveto [Numero do Lancamento]
          Locate NLANC
          If RetVal
             Then While [Numero do Lancamento] = NLANC
                    TOT_PAG   = [Valor do Recebimento]
                    TOT_JUR   = [Valor do Juros      ]
                    TOT_DES   = [Valor do Desconto   ]
                    
                    CODIGO_CONTA   = [Codigo da Conta     ]
                    VSD_I_Vr_Pagto = [Valor do Recebimento]
                    DATA_BAIXA     = [Data do Pagamento   ] 
  
                    DTOLD = DATA_BAIXA
                    VCOLD = BlankNum()
                    VROLD = [Valor do Recebimento]
                    CCOLD = CODIGO_CONTA
                    DSOLD = [Valor do Desconto   ]
                    JSOLD = [Valor do Juros      ]
                     
                    If TOT_DES=BlankNum() Then TOT_DES=0 EndIf
                    
                    Moveto Aux_Duplic
                    DATAE=Format("D10",[Data de Emissao])
                    If Len(Tira_CharNum(DATAE))=7 Or Len(Tira_CharNum(DATAE))=9
                       Then DATAE="0"+DATAE
                    EndIf
                    DATAV=Format("D10",[Data de Vencimento])
                    If Len(Tira_CharNum(DATAV))=7 Or Len(Tira_CharNum(DATAV))=9
                       Then DATAV="0"+DATAV
                    EndIf
                    Cont1 = Cont1 + 1
                    
                    DOCTO_REFERENTE = ""
                    GetRecord "\\Sistemas\\Ctarec\\Duplic" [Numero do Lancamento] To REG_DUPLIC
                    If ReTval
                       Then DOCTO_REFERENTE=REG_DUPLIC["Documento Referente"]
                    EndIf  
                    
                    TOT_ATUAL=TOT_PAG
                    If TOT_DES=0   Then TOT_DES = BlankNum()   EndIf
                    If TOT_JUR=0   Then TOT_JUR = BlankNum()   EndIf
                    If TOT_PAG=0   Then TOT_PAG = BlankNum()   EndIf
                    If TOT_ATUAL=0 Then TOT_ATUAL = BlankNum() EndIf
             
                    ARQ1[Cont1] = Format("W10,AL",[Numero do Documento])+Spaces(1)+Format("W30,AL",DOCTO_REFERENTE)+Spaces(1)+
                                  DATAE+Spaces(1)+DATAV+Spaces(1)+Format("W12.2,EIC",[Valor do Documento])+Spaces(1)+
                                  Format("W12.2,EIC",TOT_PAG)+Spaces(1)+Format("W12.2,EIC",TOT_JUR)+Spaces(1)+
                                  Format("W12.2,EIC",TOT_DES)+Spaces(1)+Format("W12.2,EIC",TOT_ATUAL)
          
                    VRORIG_ARQ1= VRORIG_ARQ1+[Valor do Documento]
                    VRPAG_ARQ1 = VRPAG_ARQ1 +TOT_PAG
                    VRJUR_ARQ1 = VRJUR_ARQ1 +TOT_JUR
                    VRDES_ARQ1 = VRDES_ARQ1 +TOT_DES
                    VRATU_ARQ1 = VRATU_ARQ1 +TOT_ATUAL
            
                    ;If [Saldo do Documento]<>[Valor do Documento] And
                    ;   [Saldo do Documento]>0  
                    ;   Then RP_Verifica_Lancamento()
                    ;EndIf
          
                    Moveto Aux_DupBaixa
                    Skip
                    If Eot() Then QuitLoop EndIf
                  EndWhile
          EnDIf   
     Else RP_Verifica_Lancamento()
  EndIf
  Moveto Aux_Duplic
Endscan

EndProc ;Monta_Duplic_RM0500()              
                        
;*******************************************************************************
;* Rotina p/ Gerar Recibo - PadrÆo                                              *
;*******************************************************************************
Proc Monta_Duplic_DUPBXII()

PESSOA = "***"

View Aux_DupBaixa
View Aux_Duplic
Scan
  Barra(NRecords(Aux_Duplic), RecNo())
  Aguarde("Aguarde, gerando recibo"+BARRA_STRING)
  
  NLANC          = [Numero do Lancamento]
  CODIGO_CONTA   = [Codigo da Conta     ]
  DATA_BAIXA     = BlankDate()
   
  VSD_I_Vr_Pagto = BlankNum()
  VROLD          = BlankNum()
  DSOLD          = BlankNum() 
  JSOLD          = BlankNum()
  VCOLD          = BlankNum()
       
  If PESSOA <> [Codigo do Destinatario]
     Then If PESSOA<>"***"
             Then RP_Imprimir()
                  Print File ARQIMP "\f"
          EndIf  
          AUX_CODIGO     = [Codigo do Destinatario]
          
          VRORIG_ARQ1= 0
          VRPAG_ARQ1 = 0
          VRJUR_ARQ1 = 0
          VRDES_ARQ1 = 0
          VRATU_ARQ1 = 0
          
          VRORIG_ARQ2= 0
          VRPAG_ARQ2 = 0
          VRJUR_ARQ2 = 0
          VRDES_ARQ2 = 0
          VRATU_ARQ2 = 0
          
          DynArray ARQ1[]
          DynArray ARQ2[]
          
          Cont1=0
          Cont2=0
  
          PESSOA = [Codigo do Destinatario]                              
          GetRecord "\\Sistemas\\Cadastro\\Destinat" PESSOA To REG_DESTINAT
          If RetVal
             Then ENDERECO=REG_DESTINAT["Endereco"]
                  BAIRRO  =REG_DESTINAT["Bairro"]
                  CIDADE  =REG_DESTINAT["Cidade"]
                  UF      =REG_DESTINAT["UF"]
                  FONE    =REG_DESTINAT["Telefone"]
                  RAZAOS_C=REG_DESTINAT["Razao Social"] 
             Else ENDERECO=""
                  BAIRRO  =""
                  CIDADE  =""
                  UF      =""
                  FONE    =""
                  RAZAOS_C=""
          EnDIf
          Release Vars REG_DESTINAT    
  EndIf  
  
  If [Sequencia Gerador]= "PG"
     Then Moveto Aux_DupBaixa
          Moveto [Numero do Lancamento]
          Locate NLANC
          If RetVal
             Then While [Numero do Lancamento] = NLANC
                    TOT_PAG   = [Valor do Recebimento]
                    TOT_JUR   = [Valor do Juros      ]
                    TOT_DES   = [Valor do Desconto   ]
                    
                    CODIGO_CONTA   = [Codigo da Conta     ]
                    VSD_I_Vr_Pagto = [Valor do Recebimento]
                    DATA_BAIXA     = [Data do Pagamento   ] 
  
                    DTOLD = DATA_BAIXA
                    VCOLD = BlankNum()
                    VROLD = [Valor do Recebimento]
                    CCOLD = CODIGO_CONTA
                    DSOLD = [Valor do Desconto   ]
                    JSOLD = [Valor do Juros      ]
                     
                    If TOT_DES=BlankNum() Then TOT_DES=0 EndIf
                    
                    Moveto Aux_Duplic
                    DATAE=Format("D10",[Data de Emissao])
                    If Len(Tira_CharNum(DATAE))=7 Or Len(Tira_CharNum(DATAE))=9
                       Then DATAE="0"+DATAE
                    EndIf
                    DATAV=Format("D10",[Data de Vencimento])
                    If Len(Tira_CharNum(DATAV))=7 Or Len(Tira_CharNum(DATAV))=9
                       Then DATAV="0"+DATAV
                    EndIf
                    Cont1 = Cont1 + 1
                    
                    DOCTO_REFERENTE = ""
                    GetRecord "\\Sistemas\\Ctarec\\Duplic" [Numero do Lancamento] To REG_DUPLIC
                    If ReTval
                       Then DOCTO_REFERENTE=REG_DUPLIC["Documento Referente"]
                    EndIf  
                    
                    TOT_ATUAL=TOT_PAG
                    If TOT_DES=0   Then TOT_DES = BlankNum()   EndIf
                    If TOT_JUR=0   Then TOT_JUR = BlankNum()   EndIf
                    If TOT_PAG=0   Then TOT_PAG = BlankNum()   EndIf
                    If TOT_ATUAL=0 Then TOT_ATUAL = BlankNum() EndIf
             
                    ARQ1[Cont1] = Format("W10,AL",[Numero do Documento])+Spaces(1)+Format("W30,AL",DOCTO_REFERENTE)+Spaces(1)+
                                  DATAE+Spaces(1)+DATAV+Spaces(1)+Format("W12.2,EIC",[Valor do Documento])+Spaces(1)+
                                  Format("W12.2,EIC",TOT_PAG)+Spaces(1)+Format("W12.2,EIC",TOT_JUR)+Spaces(1)+
                                  Format("W12.2,EIC",TOT_DES)+Spaces(1)+Format("W12.2,EIC",TOT_ATUAL)
          
                    VRORIG_ARQ1= VRORIG_ARQ1+[Valor do Documento]
                    VRPAG_ARQ1 = VRPAG_ARQ1 +TOT_PAG
                    VRJUR_ARQ1 = VRJUR_ARQ1 +TOT_JUR
                    VRDES_ARQ1 = VRDES_ARQ1 +TOT_DES
                    VRATU_ARQ1 = VRATU_ARQ1 +TOT_ATUAL
            
                    ;If [Saldo do Documento]<>[Valor do Documento] And
                    ;   [Saldo do Documento]>0  
                    ;   Then RP_Verifica_Lancamento()
                    ;EndIf
          
                    Moveto Aux_DupBaixa
                    Skip
                    If Eot() Then QuitLoop EndIf
                  EndWhile
          EnDIf   
     Else RP_Verifica_Lancamento()
  EndIf
  Moveto Aux_Duplic
Endscan

EndProc ;Monta_Duplic_DUPBXII()                                      
                                     
;*******************************************************************************
;* Rotina p/ Verificar Baixas                                                  *
;*******************************************************************************
Proc RP_Verifica_Lancamento()
  
VSD_I_DtPagto=Today()  
NDA=VSD_I_DtPagto-[Data de Vencimento]
                           
If NDA <=2
  Then Switch
         Case Dow([Data de Vencimento])="Sat" : NDA=NDA-2
         Case Dow([Data de Vencimento])="Sun" : NDA=NDA-1               
       EndSwitch
EndIf                                                 
If NDA <> 0
   Then TXM=[Multa]
   Else TXM=0
EndIf

VSD_I_NDA=NDA
If VSD_I_NDA<=0 Then  VSD_I_NDA=BlankNum() EndIf
If [Taxa de Juros]>0
   Then TXJ=([Taxa de Juros]/[NDias Taxa de Juros])*NDA
        VRJUROS=(([Saldo do Documento]*TXJ)/100)+([Saldo do Documento]*TXM/100)
   Else VRJUROS=(([Valor de Juros]/[NDias Taxa de Juros])*NDA)
        VRJUROS=VRJUROS+(([Saldo do Documento]*TXM)/100)
EndIf

If VSD_I_Vr_Pagto<=[Data Limite Desconto]
   Then VSD_I_Vr_Pagto =[Saldo do Documento]-
                        [Valor do Desconto ]
        VSD_I_Vr_Descto=[Valor do Desconto ]
   Else VSD_I_Vr_Pagto =[Saldo do Documento]
        VSD_I_Vr_Descto=BlankNum()
EndIf
If VRJUROS>0
   Then VSD_I_VR_Juros =VRJUROS
   Else VSD_I_VR_Juros =BlankNum()
EndIf
VSD_I_Vr_Pagto =Round(VSD_I_Vr_Pagto+VSD_I_VR_Juros,2)
TXCOMIS=((VSD_I_Vr_Pagto + VSD_I_Vr_Descto - VSD_I_Vr_Juros)*100)
       /([Saldo do Documento]+(VROLD+DSOLD-JSOLD))
VSD_I_Vr_Comissao=NDecimal((([Saldo da Comissao]+VCOLD)*TXCOMIS)/100,2)
If VSD_I_Vr_Comissao=([Saldo da Comissao]+0.01) or
  VSD_I_Vr_Comissao=([Saldo da Comissao]-0.01)   
  Then VSD_I_Vr_Comissao=[Saldo da Comissao]   
EndIf 
       
If VSD_I_DtPagto=[Data de Emissao]
  Then If Isassigned(PARAM_PLANO_CONTA_APRAZO) And Not IsBlank(PARAM_PLANO_CONTA_AVISTA) And IsBlank([Codigo Plano_Conta])
          Then VSD_I_PlContas=PARAM_PLANO_CONTA_AVISTA
               If PARAM_IMPRESSAO=""
                  Then [Codigo Plano_Conta]=PARAM_PLANO_CONTA_AVISTA
               EndIf   
               VSD_I_Descricao_PlContas=Ltrim([Descricao Plano_Conta])
       EndIf
  Else If Isassigned(PARAM_PLANO_CONTA_APRAZO) And Not IsBlank(PARAM_PLANO_CONTA_APRAZO) And IsBlank([Codigo Plano_Conta])
          Then VSD_I_PlContas=PARAM_PLANO_CONTA_APRAZO
               If PARAM_IMPRESSAO=""
                  Then [Codigo Plano_Conta]=PARAM_PLANO_CONTA_APRAZO
               EndIf
               VSD_I_Descricao_PlContas=Ltrim([Descricao Plano_Conta])
       EndIf
EndIf                    

TOT_PAG=VSD_I_Vr_Pagto
TOT_JUR=VSD_I_VR_Juros 
TOT_DES=VSD_I_Vr_Descto

If [Valor do Documento]=[Saldo do Documento]
  Then TOT_ATUAL = TOT_PAG ;[Valor do Documento] + TOT_JUR - TOT_DES
  Else TOT_ATUAL = [Saldo do Documento]
EndIf                                   

If TOT_DES=BlankNum() Then TOT_DES=0 EndIf

DATAE=Format("D10",[Data de Emissao])
If Len(Tira_CharNum(DATAE))=7 Or Len(Tira_CharNum(DATAE))=9
  Then DATAE="0"+DATAE
EndIf
DATAV=Format("D10",[Data de Vencimento])
If Len(Tira_CharNum(DATAV))=7 Or Len(Tira_CharNum(DATAV))=9
  Then DATAV="0"+DATAV
EndIf

If TOT_DES=0   Then TOT_DES = BlankNum()   EndIf
If TOT_JUR=0   Then TOT_JUR = BlankNum()   EndIf
If TOT_PAG=0   Then TOT_PAG = BlankNum()   EndIf
If TOT_ATUAL=0 Then TOT_ATUAL = BlankNum() EndIf

Cont2 = Cont2 + 1
ARQ2[Cont2] = Format("W10,AL",[Numero do Documento])+Spaces(1)+Format("W30,AL",[Documento Referente])+Spaces(1)+
              DATAE+Spaces(1)+DATAV+Spaces(1)+
              Format("W12.2,EIC",[Valor do Documento])+Spaces(1)+Format("W12.2,EIC",TOT_PAG)+Spaces(1)+
              Format("W12.2,EIC",TOT_JUR)+Spaces(1)+Format("W12.2,EIC",TOT_DES)+Spaces(1)+
              Format("W12.2,EIC",TOT_ATUAL)  

VRORIG_ARQ2= VRORIG_ARQ2+[Valor do Documento]
VRPAG_ARQ2 = VRPAG_ARQ2 +TOT_PAG
VRJUR_ARQ2 = VRJUR_ARQ2 +TOT_JUR
VRDES_ARQ2 = VRDES_ARQ2 +TOT_DES
VRATU_ARQ2 = VRATU_ARQ2 +TOT_ATUAL

EndProc ;RP_Verifica_Lancamento()

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc Seleciona_Tabelas()                 
Private JanelaAuxDuplic

;---- Lancamentos da Pessoa ----------------------------------------------------
{Ask} {Duplic} Check JanelaDuplic=GetWindow()
Moveto [Codigo do Destinatario] TypeIn AUX_CODIGO
Moveto [Saldo do Documento    ] TypeIn ">0"
Do_it!

Aux_Duplic=Cria_Temp(PrivDir())
Copy "Answer" Aux_Duplic

Moveto "Answer" ClearImage
Window Select JanelaDuplic ClearImage

;** Ajustando o Tipo do Lancamento a ser visualizado no relat¢rio ** 
{Ask} TypeIn Aux_Duplic Enter TypeIn "Fast" Enter JanelaAuxDuplic=GetWindow()
Moveto [Numero do Lancamento] TypeIn NLANC
Moveto [Sequencia Gerador   ] TypeIn "Changeto AP"
Do_it!                                                                    

Window Select JanelaAuxDuplic ClearImage

;---- Inserindo o Lancamento Atual ---------------------------------------------
{Ask} {Duplic} Check JanelaDuplic=GetWindow()
Moveto [Numero do Lancamento  ] TypeIn NLANC
Do_it!

Moveto "Answer" ClearImage
Window Select JanelaDuplic ClearImage                               

Add "Answer" Aux_Duplic ClearImage

;** Ajustando o Tipo do Lancamento a ser visualizado no relat¢rio ** 
{Ask} TypeIn Aux_Duplic Enter TypeIn "Fast" Enter JanelaAuxDuplic=GetWindow()
Moveto [Numero do Lancamento] TypeIn NLANC
Moveto [Sequencia Gerador   ] TypeIn "Not AP, Changeto PG"
Do_it!

Window Select JanelaAuxDuplic ClearImage

EndProc ;Seleciona_Tabelas()

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc Seleciona_Tabelas_BxCxAuto()                 
Private JanelaAuxDuplic

;---- Lancamentos da Pessoa ----------------------------------------------------
{Ask} {Bxauti}
moveto [Numero do Lote        ] TypeIn NLOTE
Moveto [Codigo do Destinatario] TypeIn "_Cod" 
{Ask} {Duplic} Check 
Moveto [Codigo do Destinatario] TypeIn "_Cod"
Moveto [Saldo do Documento    ] TypeIn ">0"
Do_it!
ClearAll

Aux_Duplic=Cria_Temp(PrivDir())
Copy "Answer" Aux_Duplic

Adiciona_campo(Aux_Duplic,"Sequencia(S),"+
                          "Bx Valor do Recebimento($),"+
                          "Bx Valor do Desconto($),"+
                          "Bx Valor do Juros($),"+
                          "Bx Valor Juros_Desconto($),"+
                          "Bx Tipo da Baixa(A10),"+
                          "Bx Forma da Baixa(A10),"+
                          "Bx Sequencia da Baixa(A1),"+
                          "BX NDias(N),"+
                          "Bx Saldo Residual($)")
ClearAll


{Ask} {Bxauti} Check
Moveto [Numero do Lote        ] TypeIn NLOTE
Do_it!
ClearAll

{Ask} {Answer}
Moveto [Numero do Lancamento    ] TypeIn "_NLanc"
Moveto [Sequencia               ] TypeIn "_Seq"
Moveto [Codigo da Empresa       ] TypeIn "_CodE"
Moveto [Codigo do Documento     ] TypeIn "_CodD"
Moveto [Tipo do Documento       ] TypeIn "_TipD"
Moveto [Serie do Documento      ] TypeIn "_SerD"
Moveto [Numero do Documento     ] TypeIn "_NDoc"
Moveto [Tipo                    ] TypeIn "_Tipo"
Moveto [Codigo do Destinatario  ] TypeIn "_Pessoa"
Moveto [Nome Fantasia EmitDest  ] TypeIn "_NomF"
Moveto [Data de Emissao         ] TypeIn "_DtE"
Moveto [Data de Vencimento      ] TypeIn "_DtV"
Moveto [Valor do Documento      ] TypeIn "_VrD"
Moveto [Saldo do Documento      ] TypeIn "_SdD"
Moveto [Valor do Desconto       ] TypeIn "_VrT"
Moveto [Data Limite Desconto    ] TypeIn "_DtL"
Moveto [Multa                   ] TypeIn "_Mult"
Moveto [Taxa de Juros           ] TypeIn "_TxJ"
Moveto [Tipo Taxa de Juros      ] TypeIn "_TTxJ"
Moveto [NDias Taxa de Juros     ] TypeIn "_Ndia"
Moveto [Tipo do Pagamento       ] TypeIn "_Tp"
Moveto [Descricao Tipo Pagamento] TypeIn "_DTp"
Moveto [Valor de Juros          ] TypeIn "_VrJ"
Moveto [Razao Social            ] TypeIn "_Raz"
Moveto [Tipo do Lancamento      ] TypeIn "_TpL"
Moveto [Descricao do Lancamento ] TypeIn "_DesL"
Moveto [Bx Valor do Recebimento ] TypeIn "_BxVrR"
Moveto [Bx Valor do Desconto    ] TypeIn "_BxVrD"
Moveto [Bx Valor do Juros       ] TypeIn "_BxVrJ"
Moveto [Bx Valor Juros_Desconto ] TypeIn "_BxVrJD"
Moveto [Bx Tipo da Baixa        ] TypeIn "_BxVrTpB"
Moveto [Bx Sequencia da Baixa   ] TypeIn "_BxSq"
Moveto [BX NDias                ] TypeIn "_BxNd"
Moveto [Bx Saldo Residual       ] TypeIn "_BxSR"
{Ask} TypeIn Aux_Duplic Enter TypeIn "Insert"
Moveto [Numero do Lancamento    ] TypeIn "_NLanc"
Moveto [Sequencia               ] TypeIn "_Seq" 
Moveto [Sequencia Gerador       ] TypeIn "PG"
Moveto [Codigo da Empresa       ] TypeIn "_CodE"
Moveto [Codigo do Documento     ] TypeIn "_CodD"
Moveto [Tipo do Documento       ] TypeIn "_TipD"
Moveto [Serie do Documento      ] TypeIn "_SerD"
Moveto [Numero do Documento     ] TypeIn "_NDoc"
Moveto [Tipo                    ] TypeIn "_Tipo"
Moveto [Codigo do Destinatario  ] TypeIn "_Pessoa"
Moveto [Nome Fantasia EmitDest  ] TypeIn "_NomF"
Moveto [Data de Emissao         ] TypeIn "_DtE"
Moveto [Data de Vencimento      ] TypeIn "_DtV"
Moveto [Valor do Documento      ] TypeIn "_VrD"
Moveto [Saldo do Documento      ] TypeIn "_SdD"
Moveto [Valor do Desconto       ] TypeIn "_VrT"
Moveto [Data Limite Desconto    ] TypeIn "_DtL"
Moveto [Multa                   ] TypeIn "_Mult"
Moveto [Taxa de Juros           ] TypeIn "_TxJ"
Moveto [Tipo Taxa de Juros      ] TypeIn "_TTxJ"
Moveto [NDias Taxa de Juros     ] TypeIn "_Ndia"
Moveto [Tipo do Pagamento       ] TypeIn "_Tp"
Moveto [Descricao Tipo Pagamento] TypeIn "_DTp"
Moveto [Valor de Juros          ] TypeIn "_VrJ"
Moveto [Razao Social            ] TypeIn "_Raz"
Moveto [Tipo do Lancamento      ] TypeIn "_TpL"
Moveto [Descricao do Lancamento ] TypeIn "_DesL"
Moveto [Bx Valor do Recebimento ] TypeIn "_BxVrR"
Moveto [Bx Valor do Desconto    ] TypeIn "_BxVrD"
Moveto [Bx Valor do Juros       ] TypeIn "_BxVrJ"
Moveto [Bx Valor Juros_Desconto ] TypeIn "_BxVrJD"
Moveto [Bx Tipo da Baixa        ] TypeIn "_BxVrTpB"
Moveto [Bx Sequencia da Baixa   ] TypeIn "_BxSq"
Moveto [BX NDias                ] TypeIn "_BxNd"
Moveto [Bx Saldo Residual       ] TypeIn "_BxSR"
Do_it!
CleaRAll

Sort Aux_Duplic On "Codigo do Destinatario","Sequencia"
CleaRall

EndProc ;Seleciona_Tabelas_BxCxAuto()                                      
  
;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc Seleciona_Tabelas_RM0500()                 
Private JanelaAuxDuplic

JanelaAuxDuplic=Cria_Temp(PrivDir())
Copy "Answer" JanelaAuxDuplic

;---- Lancamentos da Pessoa ----------------------------------------------------
{Ask} TypeIn JanelaAuxDuplic Enter
Moveto [Codigo do Destinatario] TypeIn "_Cod"
{Ask} {Duplic} Check 
Moveto [Codigo do Destinatario] TypeIn "_Cod"
Moveto [Saldo do Documento    ] TypeIn ">0"
Do_it!
Clearall

Aux_Duplic=Cria_Temp(PrivDir())
Copy "Answer" Aux_Duplic

;** Verificando Baixas ** 
{Ask} TypeIn JanelaAuxDuplic Enter
Moveto [Numero do Lancamento] TypeIn "_Lanc"
Moveto [Sequencia da Baixa  ] TypeIn "_Baix"
{Ask} {DupBaixa} Check 
Moveto [Numero do Lancamento] TypeIn "_Lanc"
Moveto [Sequencia da Baixa  ] TypeIn "_Baix"
Do_it!
Clearall

Aux_DupBaixa=Cria_Temp(PrivDir())
Copy "Answer" Aux_DupBaixa

{Ask} TypeIn JanelaAuxDuplic Enter
Moveto [Numero do Lancamento] TypeIn "_Lanc"
{Ask} {Duplic} Check 
Moveto [Numero do Lancamento] TypeIn "_Lanc"
Do_it!
Clearall

{Ask} {Answer}
Moveto [Sequencia Gerador] TypeIn "Changeto PG"
Do_it!
Clearall

Add "Answer" Aux_Duplic
Clearall

Copy JanelaAuxDuplic "Answer"
Delete JanelaAuxDuplic

Sort Aux_Duplic On "Codigo do Destinatario","Numero do Lancamento"

EndProc ;Seleciona_Tabelas_RM0500()

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc Seleciona_Tabelas_DUPBXII()
Private JanelaAuxDuplic

Aux_DupBaixa = Cria_Temp(PrivDir())
Copy "\\Base\\Sistemas\\CtaRec\\DupBaixa" Aux_DupBaixa

Edit Aux_DupBaixa
For i From 1 To DynArraySize(DUP_BAIXAS)
  NLANC = Ltrim(Rtrim(SubStr(DUP_BAIXAS[i],1,6)))
  SEQ   = Ltrim(Rtrim(SubStr(DUP_BAIXAS[i],7,3)))
  GetRecord "\\Sistemas\\CtaRec\\DupBaixa" NLANC,SEQ To REG_DUPBAIXA
  If RetVal
     Then End
          If [Numero do Lancamento]<>"" Then Down EndIf
          CopyFromArray REG_DUPBAIXA 
  EndIf    
EndFor
Do_it!
ClearImage

{Ask} {Duplic} check                                JanelaDuplic=GetWindow()
Moveto [Numero do Lancamento  ] TypeIn "_NLanc"
Moveto [Codigo do Destinatario] TypeIn VSDGDESTINAT
Moveto [Saldo do Documento    ] TypeIn ">0"
Do_it!

Moveto "Answer" ClearImage
Window Select JanelaDuplic ClearImage

Aux_Duplic=Cria_Temp(PrivDir())
Copy "Answer" Aux_Duplic

{Ask} TypeIn Aux_DupBaixa Enter                    JanelaAux_DupBaixa=GetWindow()
Moveto [Numero do Lancamento] TypeIn "_Lanc"
{Ask} {Duplic} Check                               JanelaDuplic=GetWindow()
Moveto [Numero do Lancamento] TypeIn "_Lanc"
Do_it!

Moveto "Answer" ClearImage
Window Select JanelaDuplic ClearImage
Window Select JanelaAux_DupBaixa ClearImage

{Ask} {Answer} TypeIn "Fast"                       JanelaAnswer=GetWindow()
Moveto [Sequencia Gerador   ] TypeIn "Changeto PG"
Do_it!

Add "Answer" Aux_Duplic ClearImage 

EndProc ;Seleciona_Tabelas_DUPBXII()

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
If Not IsAssigned (PARAM_IMPRESSAO) Then PARAM_IMPRESSAO = "" EndIf

ARQ1=""
ARQ2=""

Switch
  Case PARAM_IMPRESSAO = "BXCXAUTO" : 
       ArqImp=PrivDir()+"Recibo.txt"
       Deleta_Arquivo(Arqimp)
       
       GetRecord "Bxautc" NLOTE To REG_BXAUTC
       DATA_BAIXA   = REG_BXAUTC["Data da Baixa"]
       CODIGO_CONTA = REG_BXAUTC["Codigo da Conta"]
       
       Seleciona_Tabelas_BxCxAuto()
       RP_Processa()
       ImpriArq(ArqImp)
       
       Delete Aux_Duplic
       
       LIMPAGUARDE()
       
  Case PARAM_IMPRESSAO = "RM_0500" :              
       Seleciona_Tabelas_RM0500()
       RP_Processa()       
       Delete Aux_Duplic
       ClearAll
  Case PARAM_IMPRESSAO = "DUPBXII" :
       MSGDISPOSITIVO="Recibo"
       DispositivoI("RCB")

       If OK="" 
          Then Return
       EndIf
       ArqImp=PrivDir()+"Recibo.txt"
       Deleta_Arquivo(Arqimp)
       Do_it!
       
       Seleciona_Tabelas_DUPBXII()
       RP_Processa()
       ImpriArq(ArqImp)
       Imprimiu_Recibo=True
       
       If IsAssigned(Aux_Duplic)   And IsTable(Aux_Duplic)   Then Delete Aux_Duplic   EndIf 
       If IsAssigned(Aux_DupBaixa) And IsTable(Aux_DupBaixa) Then Delete Aux_DupBaixa EndIf
       
  OtherWise                        :
       VRORIG_ARQ1= 0
       VRPAG_ARQ1 = 0
       VRJUR_ARQ1 = 0
       VRDES_ARQ1 = 0
       VRATU_ARQ1 = 0
        
       VRORIG_ARQ2= 0
       VRPAG_ARQ2 = 0
       VRJUR_ARQ2 = 0
       VRDES_ARQ2 = 0
       VRATU_ARQ2 = 0

       Moveto "Duplic"
    
       AUX_CODIGO = [Codigo do Destinatario]
       NLANC      = [Numero do Lancamento]
      
       Vr_Pagto  = VSD_I_Vr_Pagto  
       Vr_Juros  = VSD_I_Vr_Juros 
       Vr_Descto = VSD_I_Vr_Descto
      
       SaveTables
       UnLockRecord
       FormKey        
       Do_it!
      
       Seleciona_Tabelas()
       RP_Processa()
       LIMPAGUARDE()
       
       Moveto Aux_Duplic ClearImage
       Delete Aux_Duplic
       Release Vars Aux_Duplic,JanelaAuxDuplic
       
       Moveto "Duplic"
       Moveto [Numero do Lancamento]
       Locate NLANC
      
       FormKey
       CoeditKey
      
       Moveto "DupBaixa"
EndSwitch  

Release Vars Aux_Duplic,JanelaAuxDuplic,AUX_CODIGO,
             Vr_Pagto,Vr_Juros,Vr_Descto,VRORIG_ARQ1,VRPAG_ARQ1,VRJUR_ARQ1,VRDES_ARQ1,
             VRATU_ARQ1,VRORIG_ARQ2,VRPAG_ARQ2,VRJUR_ARQ2,VRDES_ARQ2,VRATU_ARQ2,
             TIPO,ENCONTRADO,ARQ1,ARQ2,TOT_PAG,TOT_JUR,TOT_DES,REG_DESTINAT,Cont1,Cont2,
             ENDERECO,BAIRRO,CIDADE,UF,FONE,RAZAOS_C

Release Procs RP_Imprimir,RP_Verifica_Lancamento,Monta_Duplic,Monta_Duplic_BxCxAuto,Seleciona_Tabelas,
              Seleciona_Tabelas_BxCxAuto,Seleciona_Tabelas_RM0500,RP_Processa,Monta_Duplic_DUPBXII
