;** Rm_1000B *******************************************************************
;*  Extrato de Conta - Consolidado                                             *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 10/10/2019 por Anivel Augusto Rodrigues
;Ultima Alteracao: 10/10/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Modulo de impressÆo retirado do RM_1000

;*******************************************************************************
;* Verifica Numero de Linhas                                                   *
;*******************************************************************************
Proc RM_1000B_Checa_Linha(NLinha)
Private NLinha

If LINHA+NLinha > 65
   Then LINHA = 0
        Print File ARQIMP "\f"
        RM_1000B_Cabecalho()
   Else LINHA = LINHA + NLinha    
EndIf   
  
EndProc ;RM_1000B_Checa_Linha()

;*******************************************************************************
;* Rotina de ImpressÆo de Cabecalho                                            *
;*******************************************************************************
Proc RM_1000B_Cabecalho()
NFOLHA = NFOLHA + 1   

Print File ARQIMP "\n\n"
Print File ARQIMP Spaces(2)+Fill("-",136)+"\n"
Print File ARQIMP Spaces(2)+Format("W38,AL",NOMEMPRESA)+Spaces(60)+"Emissao: "+Format("D13",Today())+"-"+Time()+Spaces(01)+"Pag.: "+Format("W3,AR",StrVal(NFOLHA))+"\n"
Print File ARQIMP Spaces(2)+Fill("-",136)+"\n\n"
Print File ARQIMP Spaces(20)+Format("W80,AC","Extrato Consolidado de "+StrVal(Format("D13",VSDGDTINI))+" Ate "+StrVal(Format("D13",VSDGDTFIM)))+"\n\n"

Print File ARQIMP "     Data     Destinat/Emitente        Origem       Historico                                              No Cheque         Valor"+"\n"
Print File ARQIMP "  ----------  -----------------------  -----------  -----------------------------------------------------  ---------  ------------"+"\n"
Print File ARQIMP "  Conta: "+Format("W5,AL",VSDGCONTA)+Format("W31,AL",NOM_CONTA)+"  Empresa: "+Format("W5,AL",EMPRESA)+Format("W31,AL",NOM_EMPRESA)+"\n\n"   

RM_1000B_Checa_Linha(12)

EndProc ;RM_1000B_Cabecalho() 

;*******************************************************************************
;* Rotina de ImpressÆo                                                         *
;*******************************************************************************
Proc RM_1000B_Consolidado()

             
If LIMITECRED = "" Or LIMITECRED = BlankNum() Then LIMITECRED = 0 EndIf
Print File ARQIMP CI_15CPP

SALDO_REAL = 0
NFOLHA     = 0
DT_MOV     = "***"
VALORG     = 0
VALORM     = 0
VALORC     = 0
LINHA      = 0

Processa2("CHEQUE")

;**** Dados da Conta/Empresa ***************************************************
GetRecord "\\Sistemas\\Ctacor\\Conta" VSDGCONTA To NOM_CONTA
If RetVal
   Then EMPRESA     = NOM_CONTA["Codigo da Empresa"] 
        NOM_EMPRESA = NOM_CONTA["Nome Fantasia Empresa"]
        NOM_CONTA   = NOM_CONTA["Descricao da Conta"]
   Else EMPRESA     = ""    
        NOM_EMPRESA = ""
        NOM_CONTA   = ""
EndIf

RM_1000B_Cabecalho()

If SYS_CODIGO_CLIENTE="0092"
   Then ;---- Em 14/07/2015 para Vise - Solicita‡Æo 17832 ----------------------
        Sort Tabela On "Data Movimento","Numero do Lancamento","Codigo da Conta","Nome Fantasia EmitDest","Numero do Cheque"
   Else Sort Tabela On "Tipo_Lancto","Codigo da Conta","Data Movimento","Nome Fantasia EmitDest","Numero do Cheque"
EndIf
ClearAll

View Tabela
Scan
  If [Tipo_Lancto]<>"CHEQ_EMIT"
     Then
        ;**** Data de Movimenta‡Æo ***************************************************         
        If DT_MOV <> [Data Movimento] And [Nome Fantasia EmitDest] <> "SALDO ANTERIOR"
           Then If DT_MOV <> "***"  
                   Then If [Nome Fantasia EmitDest] <> "SALDO ANTERIOR"
                           Then ;---- Imprime Saldo do Dia --------------                                              
                                RM_1000B_Checa_Linha(2)
                                Print File ARQIMP Format("W130,AR","SALDO DO DIA "+StrVal(Day(DT_MOV))+"..."+Format("W14.2,EIC",VALORM))+"\n\n"
                           Else RM_1000B_Checa_Linha(1)
                                Print File ARQIMP "\n"
                         EndIf
                EndIf            
                DT_MOV = [Data Movimento]
        EndIf  
        
        ;**** Atribui o Historico em at‚ 3 linhas ************************************
        ;---- Cancelado em 05.05.2014 por estar gerando muitas paginas ---------------
        ;POSICAO   = 23
        ;HISTORICO = LTrim(Rtrim([Historico]))
        ;CHAR_HIST = Len(HISTORICO)/POSICAO
        ;If CHAR_HIST - Int(CHAR_HIST) > 0
        ;   Then CHAR_HIST = Int(CHAR_HIST) + 1
        ;   Else CHAR_HIST = 1
        ;EndIf            
        ;Array HISTORICO[CHAR_HIST]
        ;AUX_LINHA = 0
        ;
        ;If CHAR_HIST > 1
        ;   Then For i From 1 To CHAR_HIST
        ;          AUX_LINHA = AUX_LINHA + 1
        ;          Switch
        ;            Case i = 1 : Ini = 1
        ;            OtherWise  : Ini = (POSICAO*(i-1))+1
        ;          EndSwitch
        ;          HISTORICO[i] = SubStr(LTrim(Rtrim([Historico])),Ini,23)
        ;          If CHAR_HIST = 3 Then QuitLoop EndIf
        ;        EndFor 
        ;   Else HISTORICO[1] = LTrim(Rtrim([Historico]))
        ;        AUX_LINHA = AUX_LINHA + 1
        ;EndIf
        ;Checa_Linha(AUX_LINHA)   
        ;-----------------------------------------------------------------------------
         
        ;**** Ajustando Data *********************************************************
        DATA = [Data Movimento]
        If Len(DATA)=9
           Then DATA = "0"+Substr(DATA,1,1)+"/"+Substr(DATA,3,2)+"/"+Substr(DATA,6,4)
           Else DATA = Substr(DATA,1,2)+"/"+Substr(DATA,4,2)+"/"+Substr(DATA,7,4)
        EndIf    
        RM_1000B_Checa_Linha(1) 
        ;**** Corpo do Relat¢rio  **************************************************** 
        Print File ARQIMP Spaces(2)
        Print File ARQIMP Format("W10",DATA)+Spaces(2)
        Print File ARQIMP Format("W23",[Nome Fantasia EmitDest])+Spaces(2)
        ;-----------------------------------------------------------------------------
        ;Print File ARQIMP Format("W23",HISTORICO[1])+Spaces(1)
        ;-----------------------------------------------------------------------------
        Print File ARQIMP Format("W13,AL",[Sistema Gerador]+"/"+[Lancamento Gerador]+"-"+[Sequencia Gerador])
        Print File ARQIMP Format("W53",Ltrim([Historico]))+Spaces(2)
        ;-----------------------------------------------------------------------------
        Print File ARQIMP Format("W9",[Numero do Cheque])+Spaces(2)
        Print File ARQIMP Format("W12.2,EIC",[Valor])+"\n"
        
        If [Nome Fantasia EmitDest] = "SALDO ANTERIOR" Then Print File ARQIMP "\n" EndIf 
        
        VALORM = VALORM + [Valor] ; Valor das Movimenta‡äes Di rias
        VALORG = VALORG + [Valor] ; Valor das Movimenta‡äes por Grupo
                 
        ;**** Imprime o Historico em at‚ 3 linhas ************************************
        If ArraySize(HISTORICO) > 1
           Then For i From 1 To ArraySize(HISTORICO)
                  If i=1 Then Loop EndIf
                  If Not IsAssigned(HISTORICO[i]) Then Loop EndIf
                  Print File ARQIMP Spaces(45)+Format("W43",HISTORICO[i])+"\n"
                EndFor
        EndIf   
  EndIf
EndScan 
             
;---- Imprime Saldo do Dia -------------------------------------   
If [Nome Fantasia EmitDest] <> "SALDO ANTERIOR" And [Tipo_Lancto]<>"CHEQ_EMIT"
   Then RM_1000B_Checa_Linha(2)
        Print File ARQIMP Format("W97,AR","SALDO DO DIA "+StrVal(Day(DT_MOV))+"..."+Format("W14.2,EIC",VALORM))+"\n\n"
   Else RM_1000B_Checa_Linha(1)
        Print File ARQIMP "\n"
EndIf
                  
;---- Imprime TOTALIZADOR --------------------------------------                  
RM_1000B_Checa_Linha(3)
Print File ARQIMP Format("W130,AR","SALDO ATUAL..."+Format("W14.2,EIC",VALORG))+"\n"
Print File ARQIMP Format("W130,AR","(+)  LIMITE CREDITO..."+Format("W14.2,EIC",LIMITECRED))+"\n"
Print File ARQIMP Format("W130,AR","(=) DISPONIBILIDADE..."+Format("W14.2,EIC",VALORG+LIMITECRED))+"\n"

;**** Em 15.04.2014 foi alterado de SALDO_REAL<>0 para SALDO_REAL>0 ****  
;**** Em 22.04.2014 foi alterado de SALDO_REAL>0 para SALDO_REAL<>0 **** Ver motivo, quando for pedido para alterar novamente.
If SALDO_REAL<>0
   Then RM_1000B_Checa_Linha(2)
        Print File ARQIMP Format("W130,AR","SALDO REAL..."+Format("W14.2,EIC",VALORG-SALDO_REAL))+"\n\n"
   Else RM_1000B_Checa_Linha(1)
        Print File ARQIMP "\n"
EndIf   

If OPCHEQ="S"
   Then RM_1000B_Checa_Linha(1)
        Print File ARQIMP "  ** Inclusao de [CNA] e [PRE] **"+"\n"
EndIf 

;-------Rela‡Æo de Cheques emitidos no per¡odo----------------------------------
If CheckTG_OPCHEMIT[1]
   Then
      RM_1000B_Checa_Linha(3)
      Print File ARQIMP "\n"
      Print File ARQIMP "  CHEQUES EMITIDOS NO PERIODO "+"\n\n"
      Scan
        If [Tipo_Lancto]="CHEQ_EMIT"
           Then
             ;**** Ajustando Data *********************************************************
              DATA = [Data Movimento]
              If Len(DATA)=9
                 Then DATA = "0"+Substr(DATA,1,1)+"/"+Substr(DATA,3,2)+"/"+Substr(DATA,6,4)
                 Else DATA = Substr(DATA,1,2)+"/"+Substr(DATA,4,2)+"/"+Substr(DATA,7,4)
              EndIf
             RM_1000B_Checa_Linha(1)   
             Print File ARQIMP Spaces(2)
             Print File ARQIMP Format("W10",DATA)+Spaces(2)
             Print File ARQIMP Format("W23",[Nome Fantasia EmitDest])+Spaces(2)
             ;-----------------------------------------------------------------------------
             ;Print File ARQIMP Format("W23",HISTORICO[1])+Spaces(1)
             ;-----------------------------------------------------------------------------
             Print File ARQIMP Format("W13,AL",[Sistema Gerador]+"/"+[Lancamento Gerador]+"-"+[Sequencia Gerador])
             Print File ARQIMP Format("W53",Ltrim([Historico]))+Spaces(2)
             ;-----------------------------------------------------------------------------
             Print File ARQIMP Format("W9",[Numero do Cheque])+Spaces(2)
             Print File ARQIMP Format("W12.2,EIC",[Valor])+"\n"
      
             VALORC = VALORC + [Valor] ; Valor das Movimenta‡äes por Grupo
             EXIBE_CH   = true         
             ;**** Imprime o Historico em at‚ 3 linhas ************************************
             If ArraySize(HISTORICO) > 1
                Then For i From 1 To ArraySize(HISTORICO)
                       If i=1 Then Loop EndIf
                       If Not IsAssigned(HISTORICO[i]) Then Loop EndIf
                       Print File ARQIMP Spaces(45)+Format("W53",HISTORICO[i])+"\n"
                     EndFor
             EndIf 
           EndIf
      EndScan
      RM_1000B_Checa_Linha(1)
      Print File ARQIMP Format("W130,AR","TOTAL..."+Format("W14.2,EIC",VALORC))+"\n"
EndIf

ClearAll

EndProc ;RM_1000B_Consolidado()


;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
ARQIMP=PrivDir()+"RM_1000.txt"
If IsFile(ARQIMP)
   Then Deleta_Arquivo(ARQIMP)
EndIf

RM_1000B_Consolidado()
ImpriArq(ARQIMP)

Release Vars LINHA, NFOLHA, SALDO_REAL, DT_MOV, VALORG, VALORM, VALORC
Release Procs RM_1000B_Checa_Linha, RM_1000B_Cabecalho, RM_1000B_Consolidado 
