;** Rm_0211 *******************************************************************
;*  Sintetico III p/ Plano de Contas/Mensal                                   *
;******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 11/05/2016 por Anivel Augusto Rodrigues
;Ultima Alteracao: 11/05/2016 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes + A Realizar
;Ultima Alteracao: 14/05/2016 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes Sintetico/Analitico
;Ultima Alteracao: 16/05/2016 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Inclusao de saldos inicial/final
;Ultima Alteracao: 17/08/2016 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes soma total das colunas       
;Ultima Alteracao: 06/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 17/11/2016 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Inclusao cheques terceiros a realizar
;Ultima Alteracao: 22/11/2016 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Inclusao fluxo de caixa                 
;Ultima Alteracao: 17/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_EMPRESATE                 
;Ultima Alteracao: 28/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog    
;Ultima Alteracao: 29/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes MensagemCheckBoxes()                
;Ultima Alteracao: 25/05/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nova op‡Æo de movimento
;Ultima Alteracao: 19/06/2017 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ plano de conta apenas ativos -> MontaTabela() Sol.30419
;Ultima Alteracao: 23/06/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes fluxo de caixa e outros
;Ultima Alteracao: 27/06/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes filtro transferencias entre contas
;Ultima Alteracao: 25/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Tipo de Conta                
;Ultima Alteracao: 29/09/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes contas de transferencia      
;Ultima Alteracao: 25/01/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes estorno cheques de terceiros
;Ultima Alteracao: 05/02/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ChequesEmitidos(), 2-Realizados + Saldos
;Ultima Alteracao: 04/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ChequesEmitidos(), 2-Realizados + Saldos ignorar
;Ultima Alteracao: 29/05/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes titulo showdialog
;Ultima Alteracao: 16/07/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao rateio                                       
;Ultima Alteracao: 26/11/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes contas analiticas desprezar sem valor  
;Ultima Alteracao: 06/12/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nÆo usa mais fluxo de caixa, esta op‡Æo esta no RM_0060 fluzo de caixa modelo 20

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc RealizadoB()
ClearAll

If not IsEmpty("Answer")
  then
       Edit "Answer"
       scan
         if not isblank([RT_Codigo Plano_Conta    ])
            then       
                 [Valor                 ]=[RT_Valor                 ]
                 [Codigo Plano_Conta    ]=[RT_Codigo Plano_Conta    ]     
                 [Descricao Plano_Conta ]=[RT_Descricao Plano_Conta ]
                 [Codigo CCusto         ]=[RT_Codigo CCusto         ]   
                 [Descricao CCusto      ]=[RT_Descricao CCusto      ]
                 [Valor do Juros        ]=BlankNum()     
                 [Valor do Desconto     ]=BlankNum()     
         endif
       endscan
       Do_It!
       ClearAll
       
endif
EstruturaDaTabelaNoKey("Answer","Movcont")
        
{ask} {Answer} check
Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
Do_It!
ClearAll

endproc

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc Realizado()
private wcc

ClearAll

if (VSDGOPCAO="1" or VSDGOPCAO="2" or VSDGOPCAO="4" or VSDGOPCAO="5") and
   IsTable("\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont")  
   then
        For wcc From 1 To 5
          {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont" Enter Check
          Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
          
          Switch
            Case wcc=1: Moveto [Tipo Movimento     ] TypeIn "E"      ;Entradas
                        Moveto [Tipo da Conta      ] TypeIn "Not C"  ;Caixa/Aplicacao
        
            Case wcc=2: Moveto [Tipo Movimento     ] TypeIn "S"      ; Saidas
                        Moveto [Tipo da Conta      ] TypeIn "Not C"  ;Caixa/Aplicacao
        
            Case wcc=3: Moveto [Tipo Movimento     ] TypeIn "E"      ; Entradas
                        Moveto [Tipo da Conta      ] TypeIn "C"      ; Conta Corrente  
        
            Case wcc=4: Moveto [Tipo Movimento     ] TypeIn "S"      ; Saidas
                        Moveto [Tipo da Conta      ] TypeIn "C"      ; Conta Corrente
                        Moveto [Tipo de Operacao   ] TypeIn "Not 05, Not 08"  ; menos cheques
        
            Case wcc=5: Moveto [Tipo Movimento     ] TypeIn "S"      ; Saidas
                        Moveto [Tipo da Conta      ] TypeIn "C"      ; Conta Corrente
                        Moveto [Tipo de Operacao   ] TypeIn "08"     ; Transferencias           
                        Moveto [Tipo do Lancamento ] TypeIn "O or P" ; menos cheques
        
          EndSwitch
          
          if VSDGOPCAO="4"
             then
                  Moveto [Data            ] TypeIn ">=~VSDGDTREF, <=~VSDGDTFIM"
             else
                  If VSDGOPDTEMISCOMP="1"
                     Then Moveto [Data            ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
                     Else Moveto [Data            ] Check
                          Moveto [Data Competencia] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM, as Data"
                  EndIf   
          endif   
          
          switch
            case VSDGOPPLCONTAS="C" :
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl!"
              
              {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovRat" Enter
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl, as \"RT_Numero do Lancamento\""
              Moveto [Sequencia da Baixa    ] check TypeIn            "as \"RT_Sequencia da Baixa\""
              Moveto [Sequencia do Rateio   ] check TypeIn            "as \"RT_Sequencia do Rateio\""
              Moveto [Codigo Plano_Conta    ] check TypeIn "not blank, as \"RT_Codigo Plano_Conta\""
              Moveto [Descricao Plano_Conta ] check TypeIn            "as \"RT_Descricao Plano_Conta\""
              Moveto [Codigo CCusto         ] check TypeIn            "as \"RT_Codigo CCusto\""
              Moveto [Descricao CCusto      ] check TypeIn            "as \"RT_Descricao CCusto\""
              Moveto [Porcentagem           ] check TypeIn            "as \"RT_Porcentagem\""
              Moveto [Valor                 ] check TypeIn            "as \"RT_Valor\""
              Do_It!
              ClearAll
              RealizadoB()
            
            otherwise              :
              Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
              Do_It!
              ClearAll
            
          endswitch

          if CheckTG_OPCTATRANSF[2]
             then
                  {Ask} {Answer} TypeIn "Fast Delete"
                  Moveto [Codigo da Conta Trf    ] TypeIn "not blank"
                  Do_It!
                  ClearAll
          endif    

  
          {Ask} {Answer} TypeIn "Fast"
          Moveto [Tipo Movimento         ] TypeIn "E"
          Moveto [Codigo da Conta Trf    ] TypeIn "not blank"
          Moveto [Codigo Plano_Conta     ] TypeIn "Changeto 1.AAAAA5"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * TRANSFERENCIAS ENTRE CONTAS\""
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Tipo Movimento         ] TypeIn "E"
          Moveto [Codigo da Conta Trf    ] TypeIn "blank"
          Moveto [Codigo Plano_Conta     ] TypeIn "Blank, Changeto 1.AAAAA9"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * ENTRADAS SEM PLANO DE CONTA\""
          Do_It!
          ClearAll
  
          {Ask} {Answer} TypeIn "Fast"
          Moveto [Tipo Movimento         ] TypeIn "S"
          Moveto [Codigo da Conta Trf    ] TypeIn "not blank"
          Moveto [Codigo Plano_Conta     ] TypeIn "Changeto 5.AAAAA5"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * TRANSFERENCIAS ENTRE CONTAS\""
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Tipo Movimento         ] TypeIn "S"
          Moveto [Codigo da Conta Trf    ] TypeIn "blank"
          Moveto [Codigo Plano_Conta     ] TypeIn "Blank, Changeto 5.AAAAA9"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * SAIDAS SEM PLANO DE CONTA\""
          Do_It!
          ClearAll
          AdicionaDados()
          
        endfor
endif

endproc

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc ChequesEmitidos()
private wcc

ClearAll

if (VSDGOPCAO="4" or VSDGOPCAO="2") and
   IsTable("\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont")  
   then
        ;--- Cheques emitidos antes da data referente e descontados depois - Estornos---
        For wcc From 1 To 2
          {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont" Enter Check
          Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
          Moveto [Tipo da Conta         ] TypeIn "C"
          Moveto [Tipo Movimento        ] TypeIn "S"
          Switch
            Case wcc=1:  Moveto [Tipo de Operacao      ] TypeIn "05"
        
            Case wcc=2:  Moveto [Tipo de Operacao      ] TypeIn "08"
                         Moveto [Tipo do Lancamento    ] TypeIn "M or N"
          
          EndSwitch
          Moveto [Data                  ] TypeIn "<~VSDGDTREF"
          Moveto [Data Cheque Descontado] TypeIn ">=~VSDGDTREF"

          switch
            case VSDGOPPLCONTAS="C" :
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl!"
              
              {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovRat" Enter
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl, as \"RT_Numero do Lancamento\""
              Moveto [Sequencia da Baixa    ] check TypeIn            "as \"RT_Sequencia da Baixa\""
              Moveto [Sequencia do Rateio   ] check TypeIn            "as \"RT_Sequencia do Rateio\""
              Moveto [Codigo Plano_Conta    ] check TypeIn "not blank, as \"RT_Codigo Plano_Conta\""
              Moveto [Descricao Plano_Conta ] check TypeIn            "as \"RT_Descricao Plano_Conta\""
              Moveto [Codigo CCusto         ] check TypeIn            "as \"RT_Codigo CCusto\""
              Moveto [Descricao CCusto      ] check TypeIn            "as \"RT_Descricao CCusto\""
              Moveto [Porcentagem           ] check TypeIn            "as \"RT_Porcentagem\""
              Moveto [Valor                 ] check TypeIn            "as \"RT_Valor\""
              Do_It!
              ClearAll
              RealizadoB()
            
            otherwise              :
              Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
              Do_It!
              ClearAll
            
          endswitch

          {Ask} {Answer}
          moveto [Valor                  ] typeIn "calc sum as Valor"
          Do_It!
          if not isempty("Answer")
             then CHEQUESAENTRAR=CHEQUESAENTRAR+[Valor]
          endif   
          ClearAll
        
        EndFor
        
        ;--- Cheques emitidos antes da data referente e nÆo descontados - Estornos------
        For wcc From 1 To 2
          {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont" Enter Check
          Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
          Moveto [Tipo da Conta         ] TypeIn "C"
          Moveto [Tipo Movimento        ] TypeIn "S"
          Switch
            Case wcc=1:  Moveto [Tipo de Operacao      ] TypeIn "05"
        
            Case wcc=2:  Moveto [Tipo de Operacao      ] TypeIn "08"
                         Moveto [Tipo do Lancamento    ] TypeIn "M or N"
          
          EndSwitch
          Moveto [Data                  ] TypeIn "<~VSDGDTREF"
          Moveto [Data Cheque Descontado] TypeIn "Blank"

          switch
            case VSDGOPPLCONTAS="C" :
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl!"
              
              {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovRat" Enter
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl, as \"RT_Numero do Lancamento\""
              Moveto [Sequencia da Baixa    ] check TypeIn            "as \"RT_Sequencia da Baixa\""
              Moveto [Sequencia do Rateio   ] check TypeIn            "as \"RT_Sequencia do Rateio\""
              Moveto [Codigo Plano_Conta    ] check TypeIn "not blank, as \"RT_Codigo Plano_Conta\""
              Moveto [Descricao Plano_Conta ] check TypeIn            "as \"RT_Descricao Plano_Conta\""
              Moveto [Codigo CCusto         ] check TypeIn            "as \"RT_Codigo CCusto\""
              Moveto [Descricao CCusto      ] check TypeIn            "as \"RT_Descricao CCusto\""
              Moveto [Porcentagem           ] check TypeIn            "as \"RT_Porcentagem\""
              Moveto [Valor                 ] check TypeIn            "as \"RT_Valor\""
              Do_It!
              ClearAll
              RealizadoB()
            
            otherwise              :
              Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
              Do_It!
              ClearAll
            
          endswitch
          
          {Ask} {Answer}
          moveto [Valor                  ] typeIn "calc sum as Valor"
          Do_It!
          if not isempty("Answer")
             then CHEQUESAENTRAR=CHEQUESAENTRAR+[Valor]
          endif   
          ClearAll
        
        EndFor
endif
        
if (VSDGOPCAO="1" or VSDGOPCAO="2" or VSDGOPCAO="4" or VSDGOPCAO="5") and  
   IsTable("\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont")  
   then 
        ;--- Cheques descontados no periodo --------------------------------------------
        For wcc From 1 To 2
          {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont" Enter Check
          Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
          Moveto [Tipo da Conta         ] TypeIn "C"
          Moveto [Tipo Movimento        ] TypeIn "S"
          Switch
            Case wcc=1:  Moveto [Tipo de Operacao      ] TypeIn "05"
        
            Case wcc=2:  Moveto [Tipo de Operacao      ] TypeIn "08"
                         Moveto [Tipo do Lancamento    ] TypeIn "M or N"
          
          EndSwitch
          If VSDGOPCAO="4"
             Then         Moveto [Data                  ] Check
                          Moveto [Data Cheque Descontado] TypeIn ">=~VSDGDTREF, <=~VSDGDTFIM, as Data"
             Else 
                  If VSDGOPDTEMISCOMP="1"
                     Then Moveto [Data                  ] Check
                          Moveto [Data Cheque Descontado] TypeIn ">=~VSDGDTREF, <=~VSDGDTFIM, as Data"
                     Else Moveto [Data                  ] Check
                          Moveto [Data Competencia      ] TypeIn ">=~VSDGDTREF, <=~VSDGDTFIM"
                          Moveto [Data Cheque Descontado] TypeIn ">=~VSDGDTREF, <=~VSDGDTFIM, as Data"
                  EndIf   
          EndIf   

          switch
            case VSDGOPPLCONTAS="C" :
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl!"
              
              {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovRat" Enter
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl, as \"RT_Numero do Lancamento\""
              Moveto [Sequencia da Baixa    ] check TypeIn            "as \"RT_Sequencia da Baixa\""
              Moveto [Sequencia do Rateio   ] check TypeIn            "as \"RT_Sequencia do Rateio\""
              Moveto [Codigo Plano_Conta    ] check TypeIn "not blank, as \"RT_Codigo Plano_Conta\""
              Moveto [Descricao Plano_Conta ] check TypeIn            "as \"RT_Descricao Plano_Conta\""
              Moveto [Codigo CCusto         ] check TypeIn            "as \"RT_Codigo CCusto\""
              Moveto [Descricao CCusto      ] check TypeIn            "as \"RT_Descricao CCusto\""
              Moveto [Porcentagem           ] check TypeIn            "as \"RT_Porcentagem\""
              Moveto [Valor                 ] check TypeIn            "as \"RT_Valor\""
              Do_It!
              ClearAll
              RealizadoB()
            
            otherwise              :
              Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
              Do_It!
              ClearAll
            
          endswitch
          
          {Ask} {Answer} TypeIn "Fast"
          Moveto [Tipo Movimento         ] TypeIn "S"
          Moveto [Codigo da Conta Trf    ] TypeIn "not blank"
          Moveto [Codigo Plano_Conta     ] TypeIn "Changeto 5.AAAAA5"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * TRANSFERENCIAS ENTRE CONTAS\""
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Codigo Plano_Conta     ] TypeIn "Blank, Changeto 5.AAAAA9"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * SAIDAS SEM PLANO DE CONTA\""
          Do_It!
          ClearAll
          AdicionaDados()
        
        EndFor
endif   

if (VSDGOPCAO="3" or VSDGOPCAO="4") and  
   IsTable("\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont")  
   then
        ;--- Cheques emitidos mˆs anterior ---------------------------------------------                   
        ;    nÆo pre-datados e nÆo descontados no per¡odo                   
        For wcc From 1 To 2
          {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont" Enter Check
          Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
          Moveto [Tipo da Conta         ] TypeIn "C"
          Moveto [Tipo Movimento        ] TypeIn "S"
          Switch
            Case wcc=1:  Moveto [Tipo de Operacao      ] TypeIn "05"
        
            Case wcc=2:  Moveto [Tipo de Operacao      ] TypeIn "08"
                         Moveto [Tipo do Lancamento    ] TypeIn "M or N"
          
          EndSwitch
          if VSDGOPCAO="4"
             then
                          Moveto [Data            ] TypeIn "<~VSDGDTINI"
             else
                  If VSDGOPDTEMISCOMP = "1"
                     Then Moveto [Data            ] TypeIn "<~VSDGDTINI"
                     Else Moveto [Data            ] Check
                          Moveto [Data Competencia] TypeIn "<~VSDGDTINI, as Data"
                  EndIf
          EndIf
          Moveto [Cheque Pre-Datado     ] TypeIn "N or Blank"
          Moveto [Data Cheque Descontado] TypeIn "Blank or >~VSDGDTFIM"

          switch
            case VSDGOPPLCONTAS="C" :
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl!"
              
              {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovRat" Enter
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl, as \"RT_Numero do Lancamento\""
              Moveto [Sequencia da Baixa    ] check TypeIn            "as \"RT_Sequencia da Baixa\""
              Moveto [Sequencia do Rateio   ] check TypeIn            "as \"RT_Sequencia do Rateio\""
              Moveto [Codigo Plano_Conta    ] check TypeIn "not blank, as \"RT_Codigo Plano_Conta\""
              Moveto [Descricao Plano_Conta ] check TypeIn            "as \"RT_Descricao Plano_Conta\""
              Moveto [Codigo CCusto         ] check TypeIn            "as \"RT_Codigo CCusto\""
              Moveto [Descricao CCusto      ] check TypeIn            "as \"RT_Descricao CCusto\""
              Moveto [Porcentagem           ] check TypeIn            "as \"RT_Porcentagem\""
              Moveto [Valor                 ] check TypeIn            "as \"RT_Valor\""
              Do_It!
              ClearAll
              RealizadoB()
            
            otherwise              :
              Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
              Do_It!
              ClearAll
            
          endswitch

          {Ask} {Answer} typein "fast"
          Moveto [Data                  ] TypeIn "changeto ~VSDGDTINI" 
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Tipo Movimento         ] TypeIn "S"
          Moveto [Codigo da Conta Trf    ] TypeIn "not blank"
          Moveto [Codigo Plano_Conta     ] TypeIn "Changeto 5.AAAAA5"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * TRANSFERENCIAS ENTRE CONTAS\""
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Codigo Plano_Conta     ] TypeIn "Changeto 5.AAAAAD"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * CHEQUES EMITIDOS E NAO APRESENTADOS\""
          Do_It!
          ClearAll
          AdicionaDados()
        
        EndFor
        
        ;--- Cheques emitidos no per¡odo -----------------------------------------------                   
        ;    nÆo pre-datados e nÆo descontados no per¡odo                   
        For wcc From 1 To 2
          {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont" Enter Check
          Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
          Moveto [Tipo da Conta         ] TypeIn "C"
          Moveto [Tipo Movimento        ] TypeIn "S"
          Switch
            Case wcc=1:  Moveto [Tipo de Operacao      ] TypeIn "05"
        
            Case wcc=2:  Moveto [Tipo de Operacao      ] TypeIn "08"
                         Moveto [Tipo do Lancamento    ] TypeIn "M or N"
          
          EndSwitch
          if VSDGOPCAO="4"
             then
                          Moveto [Data            ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
             else
                  If VSDGOPDTEMISCOMP = "1"
                     Then Moveto [Data            ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
                     Else Moveto [Data            ] Check
                          Moveto [Data Competencia] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM, as Data"
                  EndIf
          EndIf
          Moveto [Cheque Pre-Datado     ] TypeIn "N or Blank"
          Moveto [Data Cheque Descontado] TypeIn "Blank Or >~VSDGDTFIM"

          switch
            case VSDGOPPLCONTAS="C" :
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl!"
              
              {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovRat" Enter
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl, as \"RT_Numero do Lancamento\""
              Moveto [Sequencia da Baixa    ] check TypeIn            "as \"RT_Sequencia da Baixa\""
              Moveto [Sequencia do Rateio   ] check TypeIn            "as \"RT_Sequencia do Rateio\""
              Moveto [Codigo Plano_Conta    ] check TypeIn "not blank, as \"RT_Codigo Plano_Conta\""
              Moveto [Descricao Plano_Conta ] check TypeIn            "as \"RT_Descricao Plano_Conta\""
              Moveto [Codigo CCusto         ] check TypeIn            "as \"RT_Codigo CCusto\""
              Moveto [Descricao CCusto      ] check TypeIn            "as \"RT_Descricao CCusto\""
              Moveto [Porcentagem           ] check TypeIn            "as \"RT_Porcentagem\""
              Moveto [Valor                 ] check TypeIn            "as \"RT_Valor\""
              Do_It!
              ClearAll
              RealizadoB()
            
            otherwise              :
              Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
              Do_It!
              ClearAll
            
          endswitch
          
          
          {Ask} {Answer} TypeIn "Fast"
          Moveto [Tipo Movimento         ] TypeIn "S"
          Moveto [Codigo da Conta Trf    ] TypeIn "not blank"
          Moveto [Codigo Plano_Conta     ] TypeIn "Changeto 5.AAAAA5"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * TRANSFERENCIAS ENTRE CONTAS\""
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Codigo Plano_Conta     ] TypeIn "Changeto 5.AAAAAD"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * CHEQUES EMITIDOS E NAO APRESENTADOS\""
          Do_It!
          ClearAll
          AdicionaDados()
        
        EndFor
        
        ;--- Cheques pre-datados mˆs anterior ------------------------------------------                   
        ;    nÆo descontados no per¡odo                   
        For wcc From 1 To 2
          {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont" Enter Check
          Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
          Moveto [Tipo da Conta         ] TypeIn "C"
          Moveto [Tipo Movimento        ] TypeIn "S"
          Switch
            Case wcc=1:  Moveto [Tipo de Operacao      ] TypeIn "05"
        
            Case wcc=2:  Moveto [Tipo de Operacao      ] TypeIn "08"
                         Moveto [Tipo do Lancamento    ] TypeIn "M or N"
          
          EndSwitch
          if VSDGOPCAO="4"
             then
                          Moveto [Data Cheque Pre-Datado] TypeIn "<~VSDGDTINI"
             else
                  If VSDGOPDTEMISCOMP = "1"
                     Then Moveto [Data Cheque Pre-Datado] TypeIn "<=~VSDGDTINI"
                     Else Moveto [Data Cheque Pre-Datado] TypeIn "<=~VSDGDTINI"
                          Moveto [Data Competencia      ] TypeIn "<=~VSDGDTINI"
                  EndIf
          EndIf
          Moveto [Cheque Pre-Datado     ] TypeIn "S"
          Moveto [Data Cheque Descontado] TypeIn "Blank Or >~VSDGDTFIM"

          switch
            case VSDGOPPLCONTAS="C" :
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl!"
              
              {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovRat" Enter
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl, as \"RT_Numero do Lancamento\""
              Moveto [Sequencia da Baixa    ] check TypeIn            "as \"RT_Sequencia da Baixa\""
              Moveto [Sequencia do Rateio   ] check TypeIn            "as \"RT_Sequencia do Rateio\""
              Moveto [Codigo Plano_Conta    ] check TypeIn "not blank, as \"RT_Codigo Plano_Conta\""
              Moveto [Descricao Plano_Conta ] check TypeIn            "as \"RT_Descricao Plano_Conta\""
              Moveto [Codigo CCusto         ] check TypeIn            "as \"RT_Codigo CCusto\""
              Moveto [Descricao CCusto      ] check TypeIn            "as \"RT_Descricao CCusto\""
              Moveto [Porcentagem           ] check TypeIn            "as \"RT_Porcentagem\""
              Moveto [Valor                 ] check TypeIn            "as \"RT_Valor\""
              Do_It!
              ClearAll
              RealizadoB()
            
            otherwise              :
              Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
              Do_It!
              ClearAll
            
          endswitch
          

          {Ask} {Answer} typein "fast"
          Moveto [Data                  ] TypeIn "changeto ~VSDGDTINI" 
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Tipo Movimento         ] TypeIn "S"
          Moveto [Codigo da Conta Trf    ] TypeIn "not blank"
          Moveto [Codigo Plano_Conta     ] TypeIn "Changeto 5.AAAAA5"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * TRANSFERENCIAS ENTRE CONTAS\""
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Codigo Plano_Conta     ] TypeIn "Changeto 5.AAAAAE"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * CHEQUES EMITIDOS PRE-DATADOS\""
          Do_It!
          ClearAll
          AdicionaDados()

        EndFor
        
        ;--- Cheques pre-datados no per¡odo --------------------------------------------                   
        ;    nÆo descontados no per¡odo                   
        For wcc From 1 To 2
          {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovCont" Enter Check
          Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
          Moveto [Tipo da Conta         ] TypeIn "C"
          Moveto [Tipo Movimento        ] TypeIn "S"
          Switch
            Case wcc=1:  Moveto [Tipo de Operacao      ] TypeIn "05"
        
            Case wcc=2:  Moveto [Tipo de Operacao      ] TypeIn "08"
                         Moveto [Tipo do Lancamento    ] TypeIn "M or N"
          
          EndSwitch
          if VSDGOPCAO="4"
             then
                          Moveto [Data Cheque Pre-Datado] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
             else
                  If VSDGOPDTEMISCOMP = "1"
                     Then Moveto [Data Cheque Pre-Datado] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                     Else Moveto [Data Cheque Pre-Datado] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                          Moveto [Data Competencia      ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                  EndIf
          EndIf
          Moveto [Cheque Pre-Datado     ] TypeIn "S"
          Moveto [Data Cheque Descontado] TypeIn "Blank Or >~VSDGDTFIM"

          switch
            case VSDGOPPLCONTAS="C" :
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl!"
              
              {Ask} TypeIn "\\Sistemas\\Ctacor\\"+Dir_Trab+"MovRat" Enter
              Moveto [Numero do Lancamento  ]       TypeIn       "_nl, as \"RT_Numero do Lancamento\""
              Moveto [Sequencia da Baixa    ] check TypeIn            "as \"RT_Sequencia da Baixa\""
              Moveto [Sequencia do Rateio   ] check TypeIn            "as \"RT_Sequencia do Rateio\""
              Moveto [Codigo Plano_Conta    ] check TypeIn "not blank, as \"RT_Codigo Plano_Conta\""
              Moveto [Descricao Plano_Conta ] check TypeIn            "as \"RT_Descricao Plano_Conta\""
              Moveto [Codigo CCusto         ] check TypeIn            "as \"RT_Codigo CCusto\""
              Moveto [Descricao CCusto      ] check TypeIn            "as \"RT_Descricao CCusto\""
              Moveto [Porcentagem           ] check TypeIn            "as \"RT_Porcentagem\""
              Moveto [Valor                 ] check TypeIn            "as \"RT_Valor\""
              Do_It!
              ClearAll
              RealizadoB()
            
            otherwise              :
              Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
              Do_It!
              ClearAll
            
          endswitch
          

          {Ask} {Answer} typein "fast"
          Moveto [Data Cheque Pre-Datado] TypeIn "_dtcp" 
          Moveto [Data                  ] TypeIn "changeto _dtcp" 
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Tipo Movimento         ] TypeIn "S"
          Moveto [Codigo da Conta Trf    ] TypeIn "not blank"
          Moveto [Codigo Plano_Conta     ] TypeIn "Changeto 5.AAAAA5"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * TRANSFERENCIAS ENTRE CONTAS\""
          Do_It!
          ClearAll

          {Ask} {Answer} TypeIn "Fast"
          Moveto [Codigo Plano_Conta     ] TypeIn "Changeto 5.AAAAAE"
          Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * CHEQUES EMITIDOS PRE-DATADOS\""
          Do_It!
          ClearAll
          AdicionaDados()
          
        EndFor
endif

EndProc     ;  

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc ARealizarReceber()

if VSDGOPCAO="3" or VSDGOPCAO="4" or VSDGOPCAO="5"
   then 
        {Ask} TypeIn "\\Sistemas\\Ctarec\\DupliC" Enter Check
        Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
        Moveto [Tipo do Lancamento    ] TypeIn "not A, as \"Tipo Movimento\""
        Moveto [Situacao              ] TypeIn "Blank"
        Moveto [Data de Vencimento    ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM, as Data"
        Moveto [Saldo do Documento    ] TypeIn "> 0.01, as Valor"

        switch
          case VSDGOPPLCONTAS="C" :
            Moveto [Numero do Lancamento  ]       TypeIn       "_nl!"
            
            {Ask} TypeIn "\\Sistemas\\Ctarec\\DupRat" Enter
            Moveto [Numero do Lancamento  ]       TypeIn       "_nl, as \"RT_Numero do Lancamento\""
            Moveto [Sequencia da Baixa    ] check TypeIn            "as \"RT_Sequencia da Baixa\""
            Moveto [Sequencia do Rateio   ] check TypeIn            "as \"RT_Sequencia do Rateio\""
            Moveto [Codigo Plano_Conta    ] check TypeIn "not blank, as \"RT_Codigo Plano_Conta\""
            Moveto [Descricao Plano_Conta ] check TypeIn            "as \"RT_Descricao Plano_Conta\""
            Moveto [Codigo CCusto         ] check TypeIn            "as \"RT_Codigo CCusto\""
            Moveto [Descricao CCusto      ] check TypeIn            "as \"RT_Descricao CCusto\""
            Moveto [Porcentagem           ] check TypeIn            "as \"RT_Porcentagem\""
            Moveto [Valor                 ] check TypeIn            "as \"RT_Valor\""
            Do_It!
            ClearAll
            RealizadoB()
          
          otherwise              :
            Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
            Do_It!
            ClearAll
          
        endswitch
          
        {Ask} {Answer} TypeIn "Fast"
        Moveto [Tipo Movimento         ] TypeIn "Changeto E"
        Do_It!
        ClearAll

        {Ask} {Answer} TypeIn "Fast"
        Moveto [Codigo Plano_Conta     ] TypeIn "blank, Changeto 1.AAAAA8"
        Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * A RECEBER SEM PLANO DE CONTA\""
        Do_It!
        ClearAll
        AdicionaDados()
endif
endproc

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc ARealizarPagar()

if VSDGOPCAO="3" or VSDGOPCAO="4" or VSDGOPCAO="5"
   then
        {Ask} TypeIn "\\Sistemas\\CtaPag\\Titulos" Enter Check
        Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
        Moveto [Tipo do Lancamento    ] TypeIn "as \"Tipo Movimento\""
        Moveto [Situacao              ] TypeIn "Blank"
        Moveto [Data de Vencimento    ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM, as Data"
        Moveto [Saldo do Documento    ] TypeIn "> 0.01, as Valor"

        switch
          case VSDGOPPLCONTAS="C" :
            Moveto [Numero do Lancamento  ]       TypeIn       "_nl!"
            
            {Ask} TypeIn "\\Sistemas\\Ctapag\\TitRat" Enter
            Moveto [Numero do Lancamento  ]       TypeIn       "_nl, as \"RT_Numero do Lancamento\""
            Moveto [Sequencia da Baixa    ] check TypeIn            "as \"RT_Sequencia da Baixa\""
            Moveto [Sequencia do Rateio   ] check TypeIn            "as \"RT_Sequencia do Rateio\""
            Moveto [Codigo Plano_Conta    ] check TypeIn "not blank, as \"RT_Codigo Plano_Conta\""
            Moveto [Descricao Plano_Conta ] check TypeIn            "as \"RT_Descricao Plano_Conta\""
            Moveto [Codigo CCusto         ] check TypeIn            "as \"RT_Codigo CCusto\""
            Moveto [Descricao CCusto      ] check TypeIn            "as \"RT_Descricao CCusto\""
            Moveto [Porcentagem           ] check TypeIn            "as \"RT_Porcentagem\""
            Moveto [Valor                 ] check TypeIn            "as \"RT_Valor\""
            Do_It!
            ClearAll
            RealizadoB()
          
          otherwise              :
            Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
            Do_It!
            ClearAll
          
        endswitch
          
        {Ask} {Answer} TypeIn "Fast"
        Moveto [Tipo Movimento         ] TypeIn "Changeto S"
        Do_It!
        ClearAll

        {Ask} {Answer} TypeIn "Fast"
        Moveto [Codigo Plano_Conta     ] TypeIn "Blank, Changeto 5.AAAAA8"
        Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"  * A PAGAR SEM PLANO DE CONTA\""
        Do_It!
        ClearAll
        AdicionaDados()
endif

endproc

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc ARealizarChequesTerceiros()
          
if VSDGOPCAO="3" or VSDGOPCAO="4"
   then
        ;--- Cheques terceiros do per¡odo-----------------------------------------------
        {Ask} {\\Sistemas\\CheqRec\\ChequeC}
        Moveto [Numero do Lancamento  ] Example "nl"
        Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA2.."
        {Ask} {\\Sistemas\\CheqRec\\ChequeI}
        Moveto [Numero do Lancamento  ] check Example "nl"
        Moveto [Sequencia do Cheque   ] check
        Moveto [Valor                 ] Check 
        Moveto [Situacao              ] TypeIn "Blank Or \"EM ABERTO\" Or \"PRORROGADO\""
        Moveto [Data Vencimento       ] check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM, as Data"
        Moveto [Numero_Conta          ] check TypeIn "as \"Codigo Plano_Conta\""
        Moveto [Titular_Cheque        ] check TypeIn "as \"Descricao Plano_Conta\""
        Moveto [UF                    ] check TypeIn "as \"Tipo Movimento\""
        Do_It!
        ClearAll
    
        {Ask} {Answer} typein "fast"
        Moveto [Codigo Plano_Conta    ] TypeIn "changeto 1.AAAAAB" 
        Moveto [Descricao Plano_Conta ] TypeIn "changeto \"  * CHEQUES DE TERCEIROS A DESCONTAR\""
        Moveto [Tipo Movimento        ] TypeIn "Changeto E"
        Do_It!
        ClearAll
        AdicionaDados()

        ;--- Cheques terceiros todos ---------------------------------------------------
        {Ask} {\\Sistemas\\CheqRec\\ChequeC}
        Moveto [Numero do Lancamento  ] Example "nl"
        Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA2.."
        {Ask} {\\Sistemas\\CheqRec\\ChequeI}
        Moveto [Numero do Lancamento  ] check Example "nl"
        Moveto [Sequencia do Cheque   ] check
        Moveto [Valor                 ] Check 
        Moveto [Situacao              ] TypeIn "Blank Or \"EM ABERTO\" Or \"PRORROGADO\""
        Moveto [Data_Entrada          ] TypeIn "<~VSDGDTINI"
        Moveto [Data Vencimento       ] TypeIn "<=~VSDGDTFIM"
        Do_It!
        ClearAll

        {Ask} {Answer}
        moveto [Valor                  ] typeIn "calc sum as Valor"
        Do_It!
        if not isempty("Answer")
           then CHEQUESASAIR  =CHEQUESASAIR  +[Valor]
        endif   
        ClearAll


        {Ask} {\\Sistemas\\CheqRec\\ChequeC}
        Moveto [Numero do Lancamento  ] Example "nl"
        Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA2.."
        {Ask} {\\Sistemas\\CheqRec\\ChequeI}
        Moveto [Numero do Lancamento  ] check Example "nl"
        Moveto [Sequencia do Cheque   ] check
        Moveto [Valor                 ] Check 
        Moveto [Situacao              ] TypeIn "Blank Or \"EM ABERTO\" Or \"PRORROGADO\""
        Moveto [Data Vencimento       ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
        Moveto [Data_Entrada          ] Check TypeIn "~VSDGDTINI, as Data"
        Moveto [Numero_Conta          ] check TypeIn "as \"Codigo Plano_Conta\""
        Moveto [Titular_Cheque        ] check TypeIn "as \"Descricao Plano_Conta\""
        Moveto [UF                    ] check TypeIn "as \"Tipo Movimento\""
        Do_It!
        ClearAll
  
        {Ask} {Answer} typein "fast"
        Moveto [Data                  ] TypeIn "changeto ~VSDGDTINI" 
        Do_It!
        ClearAll
  
        {Ask} {Answer} typein "fast"
        Moveto [Codigo Plano_Conta    ] TypeIn "Changeto 5.AAAAAC"
        Moveto [Descricao Plano_Conta ] TypeIn "changeto \"  * CHEQUES DE TERCEIROS ESTORNO\""
        Moveto [Tipo Movimento        ] TypeIn "Changeto S"
        Do_It!
        ClearAll
        AdicionaDados()
endif

if VSDGOPCAO="xxxx2" ; nÆo fazer tem que estudar                      
   then 
        ;--- Cheques terceiros do per¡odo-----------------------------------------------
        {Ask} {\\Sistemas\\CheqRec\\ChequeC}
        Moveto [Numero do Lancamento  ] Example "nl"
        Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA2.."
        {Ask} {\\Sistemas\\CheqRec\\ChequeI}
        Moveto [Numero do Lancamento  ] check Example "nl"
        Moveto [Sequencia do Cheque   ] check
        Moveto [Valor                 ] Check 
        Moveto [Situacao              ] TypeIn "Blank Or \"EM ABERTO\" Or \"PRORROGADO\""
        Moveto [Data Vencimento       ] check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM, as Data"
        Moveto [Numero_Conta          ] check TypeIn "as \"Codigo Plano_Conta\""
        Moveto [Titular_Cheque        ] check TypeIn "as \"Descricao Plano_Conta\""
        Moveto [UF                    ] check TypeIn "as \"Tipo Movimento\""
        Moveto [Data_Entrada          ] check 
        Do_It!
        ClearAll
    
        {Ask} {Answer} typein "fast"
        Moveto [Codigo Plano_Conta    ] TypeIn "Changeto 5.AAAAAC"
        Moveto [Descricao Plano_Conta ] TypeIn "changeto \"  * CHEQUES DE TERCEIROS ESTORNO\""
        Moveto [Tipo Movimento        ] TypeIn "Changeto S"
        Do_It!
        ClearAll
        AdicionaDados()

        ;--- Cheques terceiros todos ---------------------------------------------------
        {Ask} {\\Sistemas\\CheqRec\\ChequeC}
        Moveto [Numero do Lancamento  ] Example "nl"
        Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA2.."
        {Ask} {\\Sistemas\\CheqRec\\ChequeI}
        Moveto [Numero do Lancamento  ] check Example "nl"
        Moveto [Sequencia do Cheque   ] check
        Moveto [Valor                 ] Check 
        Moveto [Situacao              ] TypeIn "Blank Or \"EM ABERTO\" Or \"PRORROGADO\""
        Moveto [Data_Entrada          ] TypeIn "<~VSDGDTINI"
        Moveto [Data Vencimento       ] TypeIn "<=~VSDGDTFIM"
        Do_It!
        ClearAll

        {Ask} {Answer}
        moveto [Valor                  ] typeIn "calc sum as Valor"
        Do_It!
        if not isempty("Answer")
           then CHEQUESASAIR  =CHEQUESASAIR  +[Valor]
        endif   
        ClearAll


        {Ask} {\\Sistemas\\CheqRec\\ChequeC}
        Moveto [Numero do Lancamento  ] Example "nl"
        Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA2.."
        {Ask} {\\Sistemas\\CheqRec\\ChequeI}
        Moveto [Numero do Lancamento  ] check Example "nl"
        Moveto [Sequencia do Cheque   ] check
        Moveto [Valor                 ] Check 
        Moveto [Situacao              ] TypeIn "Blank Or \"EM ABERTO\" Or \"PRORROGADO\""
        Moveto [Data Vencimento       ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
        Moveto [Data_Entrada          ] Check TypeIn "~VSDGDTINI, as Data"
        Moveto [Numero_Conta          ] check TypeIn "as \"Codigo Plano_Conta\""
        Moveto [Titular_Cheque        ] check TypeIn "as \"Descricao Plano_Conta\""
        Moveto [UF                    ] check TypeIn "as \"Tipo Movimento\""
        Do_It!
        ClearAll

        {Ask} {Answer} typein "fast"
        Moveto [Data                  ] TypeIn "changeto ~VSDGDTINI" 
        Do_It!
        ClearAll

        {Ask} {Answer} typein "fast"
        Moveto [Codigo Plano_Conta    ] TypeIn "Changeto 1.AAAAAC"
        Moveto [Descricao Plano_Conta ] TypeIn "changeto \"  * CHEQUES DE TERCEIROS ESTORNO\""
        Moveto [Tipo Movimento        ] TypeIn "Changeto E"
        Do_It!
        ClearAll
        AdicionaDados()
endif

endproc

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc AdicionaDados()
private wi, mesano, coluna, dtant

if isempty("Answer")
   then return
endif    


dtant=blankdate()

Coedit Tabela, "Answer"
scan

  if [Answer->Data]<>dtant
     then 
          dtant=[Answer->Data]

          mesano=strval(month([Answer->Data]))+"/"+strval(year([Data]))
          
          coluna=0
          for wi from 1 to 12
        
            if mesano=Array_MesAno[wi]
               then coluna=wi
                    quitloop
            endif        
             
          endfor
  
  endif

  if coluna>0
     then
          moveto tabela
          moveto [Codigo Plano_Conta]
          locate [Answer->Codigo Plano_Conta]
          if not retval
             then end
                  down
                  [Codigo da Empresa     ]=VSDGEMPRESA2
                  [Codigo Plano_Conta    ]=[Answer->Codigo Plano_Conta    ]
                  [Descricao Plano_Conta ]=[Answer->Descricao Plano_Conta ]
                  
                  if search("SALDO",[Descricao Plano_Conta ])>0 and
                     ([Codigo Plano_Conta    ]="0"       or
                      [Codigo Plano_Conta    ]="9999999")
                     then [Tipo de Conta    ]="S"
                  endif   
          endif
        
          [Tipo Movimento        ]=[Answer->Tipo Movimento        ]
          switch
            case coluna=1  : [coluna1 ]=[coluna1 ]+[Answer->Valor]  
            case coluna=2  : [coluna2 ]=[coluna2 ]+[Answer->Valor]  
            case coluna=3  : [coluna3 ]=[coluna3 ]+[Answer->Valor]  
            case coluna=4  : [coluna4 ]=[coluna4 ]+[Answer->Valor]  
            case coluna=5  : [coluna5 ]=[coluna5 ]+[Answer->Valor]  
            case coluna=6  : [coluna6 ]=[coluna6 ]+[Answer->Valor]  
            case coluna=7  : [coluna7 ]=[coluna7 ]+[Answer->Valor]  
            case coluna=8  : [coluna8 ]=[coluna8 ]+[Answer->Valor]  
            case coluna=9  : [coluna9 ]=[coluna9 ]+[Answer->Valor]  
            case coluna=10 : [coluna10]=[coluna10]+[Answer->Valor]  
            case coluna=11 : [coluna11]=[coluna11]+[Answer->Valor]  
            case coluna=12 : [coluna12]=[coluna12]+[Answer->Valor]  
          endswitch
                  
  endif   

  moveto "answer"

endscan
do_it!
ClearAll

if PrimeiraVez
   then PrimeiraVez=false
   
        TabelaSaldos=Cria_Temp(PrivDir())
        Copy "Answer" TabelaSaldos
        Empty TabelaSaldos
endif   

endproc

;*******************************************************************************
;* Rotina p/ Processar Registros                                               *
;*******************************************************************************
Proc Processa()
private c1, c2, c3, c4, i, plok
ClearAll

Aguarde("Processando dados")

{Ask} {PlContas}
Moveto [Codigo Plano_Conta    ] Example "cpl"
Moveto [Descricao Plano_Conta ] Example "dpl"
Moveto [Tipo de Conta         ] Example "tpc"
Moveto [TipoEntradaSaida      ] Example "tpm"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo Plano_Conta    ] Example "cpl"
Moveto [Descricao Plano_Conta ] TypeIn "Changeto " Example "dpl"
Moveto [Tipo de Conta         ] typein "changeto " Example "tpc"
Moveto [Tipo Movimento        ] typein "changeto " Example "tpm"
Do_It!
ClearAll

{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo Plano_Conta     ] TypeIn "Blank, Changeto 00"
Moveto [Descricao Plano_Conta  ] TypeIn "Changeto \"LANCAMENTOS NŽO INFORMADO PLANO DE CONTA =\""
Do_It!
ClearAll

{Ask} typeIn tabela enter check
do_it!
Clearall

CoEdit tabela, "answer"
SetHighLight Current Record 23 Field 31
moveto [Codigo PLano_Conta]
scan for search(".AA",[Codigo Plano_Conta])=0

  c1=SubStr([Answer->Codigo Plano_Conta],01,01)
  c2=SubStr([Answer->Codigo Plano_Conta],01,03)
  c3=SubStr([Answer->Codigo Plano_Conta],01,06)
  c4=SubStr([Answer->Codigo Plano_Conta],01,09)
  c5=       [Answer->Codigo Plano_Conta]         
  
  moveto tabela
  For i From 1 To 4
  
    plok=false
    Moveto [Codigo Plano_Conta]
    Switch
      Case i=1:
           If Not IsBlank(SubStr(c2,02,02))
              Then Locate c1
                   If RetVal
                      Then plok=true
                   EndIf
           EndIf
      Case i=2:
           If Not IsBlank(SubStr(c3,04,03))
              Then Locate c2
                   If RetVal
                      Then plok=true
                   EndIf
           EndIf
      Case i=3:
           If Not IsBlank(SubStr(c4,07,03))
              Then Locate c3
                   If RetVal
                      Then plok=true
                   EndIf
           EndIf
      Case i=4:
           If Not IsBlank(SubStr(c5,10,04))
              Then Locate c4
                   If RetVal
                      Then plok=true
                   EndIf
           EndIf
    EndSwitch
    
    if plok
       then
            [Coluna1  ]=[Coluna1  ]+[Answer->Coluna1  ]
            [Coluna2  ]=[Coluna2  ]+[Answer->Coluna2  ]
            [Coluna3  ]=[Coluna3  ]+[Answer->Coluna3  ]
            [Coluna4  ]=[Coluna4  ]+[Answer->Coluna4  ]
            [Coluna5  ]=[Coluna5  ]+[Answer->Coluna5  ]
            [Coluna6  ]=[Coluna6  ]+[Answer->Coluna6  ]
            [Coluna7  ]=[Coluna7  ]+[Answer->Coluna7  ]
            [Coluna8  ]=[Coluna8  ]+[Answer->Coluna8  ]
            [Coluna9  ]=[Coluna9  ]+[Answer->Coluna9  ]
            [Coluna10 ]=[Coluna10 ]+[Answer->Coluna10 ]
            [Coluna11 ]=[Coluna11 ]+[Answer->Coluna11 ]
            [Coluna12 ]=[Coluna12 ]+[Answer->Coluna12 ]
  
    endif     
    
  EndFor

  moveto "answer"

Endscan
Do_It!
ClearAll

if VSDGOPCAO="2" or VSDGOPCAO="4" 
   Then PegaSaldos()
Endif

if VSDGOPCAO="2" or VSDGOPCAO="4" 
   Then FluxodeCaixa()
Endif

Sort Tabela On "Codigo Plano_conta"
ClearAll

CoEdit tabela
scan

  if [Codigo Plano_Conta]="0"       and [Descricao Plano_Conta]="SALDO INICIAL" then loop endif
  if [Codigo Plano_Conta]="9999999" and [Descricao Plano_Conta]="SALDO FINAL"   then loop endif

  [Total]=[coluna1 ]+[coluna2 ]+[coluna3 ]+[coluna4 ]+[coluna5 ]+[coluna6 ]+
          [coluna7 ]+[coluna8 ]+[coluna9 ]+[coluna10]+[coluna11]+[coluna12]

endscan
Do_It!
ClearAll

If CheckTG_OPCTAANALITICA[1]
   then
        {Ask} TypeIn Tabela Enter TypeIn "Fast Delete"
        Moveto [Tipo de Conta  ] TypeIn "A" 
        Do_It!
        ClearAll
endif   

If CheckTG_OPCTAANALITICA[2]
   then
        {Ask} TypeIn Tabela Enter TypeIn "Fast Delete"
        Moveto [Tipo de Conta  ] TypeIn "A" 
        Moveto [Total          ] TypeIn "0 or blank" 
        Do_It!
        ClearAll
endif   

if CheckTG_OPCTATRANSF[1]
   then
        {Ask} TypeIn Tabela Enter TypeIn "Fast Delete"
        Moveto [Codigo Plano_Conta     ] TypeIn "\"1.AAAAA5\" or \"5.AAAAA5\""
        Do_It!
        ClearAll
endif    

{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Coluna1                ] TypeIn "0, Changeto Blank" Down
Moveto [Coluna2                ] TypeIn "0, Changeto Blank" Down
Moveto [Coluna3                ] TypeIn "0, Changeto Blank" Down
Moveto [Coluna4                ] TypeIn "0, Changeto Blank" Down
Moveto [Coluna5                ] TypeIn "0, Changeto Blank" Down
Moveto [Coluna6                ] TypeIn "0, Changeto Blank" Down
Moveto [Coluna7                ] TypeIn "0, Changeto Blank" Down
Moveto [Coluna8                ] TypeIn "0, Changeto Blank" Down
Moveto [Coluna9                ] TypeIn "0, Changeto Blank" Down
Moveto [Coluna10               ] TypeIn "0, Changeto Blank" Down
Moveto [Coluna11               ] TypeIn "0, Changeto Blank" Down
Moveto [Coluna12               ] TypeIn "0, Changeto Blank" 
Do_It!
ClearAll

;***** Ajusta Dados ************************************
If VSDGEMPRESA="0000"
   Then {Ask} TypeIn Tabela Enter TypeIn "Fast"
        Moveto [Codigo da Empresa      ] TypeIn "changeto 0000"
        Moveto [Nome Fantasia Empresa  ] TypeIn "changeto TOTALIZA EMPRESAS"
        Do_It!
        ClearAll
   else
        {Ask} {\\Sistemas\\Cadastro\\Empresas}
        Moveto [Codigo da Empresa     ] Example "cde"
        Moveto [Nome Fantasia Empresa ] Example "nfe"
        {Ask} TypeIn Tabela Enter TypeIn "Fast"
        Moveto [Codigo da Empresa     ] Example "cde"
        Moveto [Nome Fantasia Empresa ] TypeIn "changeto _nfe"
        Do_It!
        ClearAll
EndIf

EndProc     ;  (Processa)

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc MontaTabela()

{Ask} {PlContas}
Moveto [Codigo Plano_Conta    ] Example "cpl" typeIn ", ~VSDGPLCONTAS.."
Moveto [Descricao Plano_Conta ] Example "dpl"
Moveto [Tipo de Conta         ] Example "tpc"
Moveto [TipoEntradaSaida      ] Example "tpm"
Moveto [Inativo               ] TypeIn "Not S"  
{Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2"
Moveto [Codigo Plano_Conta    ] Example "cpl"
Moveto [Descricao Plano_Conta ] Example "dpl"
Moveto [Tipo de Conta         ] Example "tpc"
Moveto [Tipo Movimento        ] Example "tpm"
Do_It!
ClearAll

EndProc ;MontaTabela()

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc PegaSaldos()
private anoref, mesref, wi, pos, saldoi, saldof

ClearAll

Aguarde("Processando saldos")

for wi from 1 to 12

  if isblank(Array_MesAno[wi]) then quitloop endif

  pos   =searchfrom("/",Array_MesAno[wi],1)
  MESREF=AlinhM(substr(Array_MesAno[wi],1,pos-1),2)
  ANOREF=AlinhM(substr(Array_MesAno[wi],pos+1,4),4)

  {Ask} TypeIn "\\Sistemas\\Ctacor\\Conta" Enter
  Moveto [Codigo da Conta       ] TypeIn "_cta"
  Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
  
  {Ask} TypeIn "\\Sistemas\\Ctacor\\SaldCont" Enter Check
  Moveto [Codigo da Conta       ] TypeIn "_cta"
  Moveto [Ano Referencia        ] typeIn "~ANOREF"
  Moveto [Mes Referencia        ] typeIn "~MESREF"
  do_it!
  ClearAll

  saldoi=0
  saldof=0
  Empty(TabelaSaldos)
  
  Coedit TabelaSaldos, "Answer"
  scan
    saldoi = saldoi +  [Saldo Inicial]
    saldof = saldof +(([Saldo Inicial]+[Entradas])-[Saidas])
  endscan
  
  moveto TabelaSaldos
  [Codigo da Empresa     ]=VSDGEMPRESA2
  [Data                  ]=Primeiro_Dia(MESREF+ANOREF)
  [Valor                 ]=saldoi
  [Codigo Plano_Conta    ]="0"
  [Descricao Plano_Conta ]="SALDO INICIAL"
  

  end 
  Down
  [Codigo da Empresa     ]=VSDGEMPRESA2
  [Data                  ]=Primeiro_Dia(MESREF+ANOREF)
  [Valor                 ]=saldof
  [Codigo Plano_Conta    ]="9999999"
  [Descricao Plano_Conta ]="SALDO FINAL"
  do_it!
  ClearAll


  {Ask} TypeIn TabelaSaldos Enter Check
  do_it!
  ClearAll

  AdicionaDados()

endfor

Delete TabelaSaldos
endproc

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc FluxoDeCaixa()
private wi, e, s, sdi, sdf

ClearAll

Aguarde("Processando novos saldos")

sdi=0
sdf=0

Coedit Tabela

for wi from 1 to 12

  Moveto [Codigo Plano_Conta]
  locate "0"
  if retval and [Descricao Plano_Conta]="SALDO INICIAL"
     then
          switch
            case wi=1  : sdi=[coluna1 ]
                         sdi=(sdi+ENTRADAS)-SAIDAS
                         sdi=sdi+(CHEQUESAENTRAR)-CHEQUESASAIR
                         [coluna1 ]=sdi
                         
            case wi=2  : [coluna2 ]=sdi  
            case wi=3  : [coluna3 ]=sdi  
            case wi=4  : [coluna4 ]=sdi  
            case wi=5  : [coluna5 ]=sdi  
            case wi=6  : [coluna6 ]=sdi  
            case wi=7  : [coluna7 ]=sdi  
            case wi=8  : [coluna8 ]=sdi  
            case wi=9  : [coluna9 ]=sdi  
            case wi=10 : [coluna10]=sdi  
            case wi=11 : [coluna11]=sdi  
            case wi=12 : [coluna12]=sdi  
          endswitch
  endif

  e=0
  s=0
  scan
  
    if [Tipo de Conta     ]="S"                                                   then loop endif
    if [Codigo Plano_Conta]="0"       and [Descricao Plano_Conta]="SALDO INICIAL" then loop endif
    if [Codigo Plano_Conta]="9999999" and [Descricao Plano_Conta]="SALDO FINAL"   then loop endif

    switch
      case wi=1  : vr= [coluna1 ]  
      case wi=2  : vr= [coluna2 ]  
      case wi=3  : vr= [coluna3 ]  
      case wi=4  : vr= [coluna4 ]  
      case wi=5  : vr= [coluna5 ]  
      case wi=6  : vr= [coluna6 ]  
      case wi=7  : vr= [coluna7 ]  
      case wi=8  : vr= [coluna8 ]  
      case wi=9  : vr= [coluna9 ]  
      case wi=10 : vr= [coluna10]  
      case wi=11 : vr= [coluna11]  
      case wi=12 : vr= [coluna12]  
    endswitch
  
    if [Tipo Movimento]="E" then e=e+vr endif
    if [Tipo Movimento]="S" then s=s+vr endif
  
  endscan

  sdf=(sdi+e)-s
  
  Moveto [Codigo Plano_Conta]
  locate "9999999"
  if retval and [Descricao Plano_Conta]="SALDO FINAL"
     then 
          switch
            case wi=1  : [coluna1 ]=sdf  
            case wi=2  : [coluna2 ]=sdf  
            case wi=3  : [coluna3 ]=sdf  
            case wi=4  : [coluna4 ]=sdf  
            case wi=5  : [coluna5 ]=sdf  
            case wi=6  : [coluna6 ]=sdf  
            case wi=7  : [coluna7 ]=sdf  
            case wi=8  : [coluna8 ]=sdf  
            case wi=9  : [coluna9 ]=sdf  
            case wi=10 : [coluna10]=sdf  
            case wi=11 : [coluna11]=sdf  
            case wi=12 : [coluna12]=sdf  
          endswitch
  endif
  
  sdi=sdf
  sdf=0

endfor
do_it!
ClearAll

endproc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc pegatpmovimento()
switch
 case VSDGOPCAO="1": VSDGNOMOPCAO="REALIZADO"
 case VSDGOPCAO="2": VSDGNOMOPCAO="REALIZADO+SALDOS"
 case VSDGOPCAO="3": VSDGNOMOPCAO="· REALIZAR"
;;;;; case VSDGOPCAO="4": VSDGNOMOPCAO="FLUXO DE CAIXA"
 case VSDGOPCAO="5": VSDGNOMOPCAO="REALIZADO+· REALIZAR II"
endswitch
endproc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
TECLA=""
MSG_CAMPO=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = -59: 
          If Campo="TG_OPCAO"
             Then LimpaRodape(0)
             
                  ShowPopup " Op‡”es de Movimentos " @ 09,27
                  "1-REALIZADO               " : " Movimentos realizados             " : "1",
                  "2-REALIZADO+SALDOS        " : " Movimentos realizados + saldos    " : "2",
                  "3-· REALIZAR              " : " CH NÆo Apresentado/Pr‚ Datado + CH Terceiros + Cta … Pagar + Cta … Receber " : "3",
;;;;;;;;;                  "4-FLUXO DE CAIXA          " : " Fluxo de Caixa                    " : "4",
                  "5-REALIZADO+· REALIZAR II " : " Movimentos realizados + Cta … Pagar + Cta … Receber " : "5"
                  EndMenu
                  To VSDGOPCAO
                  If RetVal
                     Then pegatpmovimento() 
                  EndIf
                  RefreshDialog
             Else Dialog_F1()
          EndIf
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESATE"     : Campo="NO"
            Case Campo="TG_PLCONTAS"      : Campo="TG_EMPRESATE"
            Case Campo="TG_OPPLCONTAS"    : Campo="TG_PLCONTAS"
            Case Campo="TG_OPCAO"         : Campo="TG_OPPLCONTAS"
            Case Campo="TG_OPDTEMISCOMP"  : Campo="TG_OPCAO"
            Case Campo="TG_DTINI"         : Campo="TG_OPCAO" 
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_OPCTAANALITICA": Campo="TG_DTFIM"
            case Campo="TG_OPCTATRANSF"   : Campo="TG_OPCTAANALITICA"
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESATE"
          EndSwitch
    Case (Evento["KeyCode"] <= -104 And Evento["KeyCode"] >= -113) Or
           Evento["KeyCode"]  = -139 Or  Evento["KeyCode"]  = -140:
           SYS_TECLA_ACIONADA=Evento["KeyCode"]
           Seta_Tecla_Acionada()
           CancelDialog
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESATE"    :
                         If IsBlank(VSDGEMPRESA)
                            Then Mensagem("Informe uma Empresa !")
                            Else Campo="TG_PLCONTAS"
                         EndIf
                         
                    Case Campo="TG_PLCONTAS"     : Campo="TG_OPPLCONTAS"
                    Case Campo="TG_OPPLCONTAS"   : Campo="TG_OPCAO"
                    
                    Case Campo="TG_OPCAO"         : 
                         VSDGOPCAO = ControlValue("TG_OPCAO")
                         pegatpmovimento()
                         switch
                           case VSDGOPCAO="1": Campo="TG_OPDTEMISCOMP"
                           
                           case VSDGOPCAO="2": VSDGOPDTEMISCOMP="1"
                                               VSDGNOMOPDTEMISCOMP="LAN€AMENTO/EMISS¶O"
                                               
                                               Campo="TG_DTINI"
                           
                           case VSDGOPCAO="3": VSDGOPDTEMISCOMP="1"
                                               VSDGNOMOPDTEMISCOMP="VENCIMENTO"
                                               Campo="TG_DTINI"

;;;;                       case VSDGOPCAO="4": VSDGOPDTEMISCOMP="1"
;;;;                                           VSDGNOMOPDTEMISCOMP="EMISS¶O/VENCIMENTO"
;;;;                                           
;;;;                                           VSDGPLCONTAS    =""
;;;;                                           VSDGNOMPLCONTAS =""
;;;;                                           
;;;;                                           Campo="TG_DTINI"
                                               
                           case VSDGOPCAO="5": Campo="TG_OPDTEMISCOMP"
                           
                           otherwise         : fastmsg("Op‡Æo inv lida !")
                           
                         endswitch
                    Case Campo="TG_OPDTEMISCOMP"  : Campo="TG_DTINI"                         
                    Case Campo="TG_DTINI"         : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"         : Campo="TG_OPCTAANALITICA"
                    Case Campo="TG_OPCTAANALITICA": Campo="TG_OPCTATRANSF"
                    case Campo="TG_OPCTATRANSF"   : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_EMPRESATE":
       MSG_CAMPO="Informe uma Empresa"
  Case Campo="TG_OPCAO":
       MSG_CAMPO="Movimentos, [F1]Consultar op‡äes"     
  Case Campo="TG_OPCTAANALITICA" or Campo="TG_OPCTATRANSF":
     MensagemCheckBoxes()
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
LimpAguarde()

Array Array_MesAno[12]
Array Array_Tit_MesAno[12]

VSDGEMPRESA         = ""
VSDGDTINI           = BlankDate()
VSDGDTFIM           = BlankDate()
VSDGNOMPLCONTAS     = ""
VSDGOPDTEMISCOMP    = ""
VSDGNOMOPDTEMISCOMP = ""   

Array TG_OPCTAANALITICA[2] 
TG_OPCTAANALITICA[1]="NÆo Visualizar"
TG_OPCTAANALITICA[2]="Desprezar sem Valor"

Array CheckTG_OPCTAANALITICA[ArraySize(TG_OPCTAANALITICA)]
CheckTG_OPCTAANALITICA[1]=False
CheckTG_OPCTAANALITICA[2]=False

Array TG_OPCTATRANSF[2] 
TG_OPCTATRANSF[1]="NÆo Visualizar"
TG_OPCTATRANSF[2]="Desprezar Valores Apurados"

Array CheckTG_OPCTATRANSF[ArraySize(TG_OPCTATRANSF)]
CheckTG_OPCTATRANSF[1]=False
CheckTG_OPCTATRANSF[2]=False

VSDGOPPLCONTAS=""

While True
  ShowDialog "Sint‚tico II p/ Plano de Contas/Mensal" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 05,12   Height 18 Width 72

    Label  @ 00,00 "Empresa"  For "TG_EMPRESATE"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESATE" To VSDGEMPRESA
    Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMEMP" To VSDGNOMEMP

    Label  @ 02,00 "Plano de Contas" For "TG_PLCONTAS"
    Accept @ 03,01 Width 33 "A13"  Picture "!*!" Tag "TG_PLCONTAS" To VSDGPLCONTAS
    Accept @ 04,01 Width 33 "A40" Picture "!*!" Tag "TG_NOMPLCONTAS"  To VSDGNOMPLCONTAS

    Label  @ 05,00 "Filtrar Plano de Conta" For "TG_OPPLCONTAS"
    Accept @ 06,04 Width 04 "A1"  Picture "S,C" Tag "TG_OPPLCONTAS" To VSDGOPPLCONTAS
    Accept @ 06,09 Width 25 "A20"  Picture "!*!" Tag "TG_NOMOPPLCONTAS" To VSDGNOMOPPLCONTAS

    Label  @ 07,00 "Op‡ao dos Movimentos" For "TG_OPCAO"
    Accept @ 08,04 Width 04 "A1"  Picture "!*!" Tag "TG_OPCAO" To VSDGOPCAO
    Accept @ 08,09 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPCAO" To VSDGNOMOPCAO

    Label  @ 09,00 "Op‡äes de Datas" For "TG_OPDTEMISCOMP"
    Accept @ 10,04 Width 04 "A1"  Picture "1,2" Tag "TG_OPDTEMISCOMP" To VSDGOPDTEMISCOMP
    Accept @ 10,09 Width 25 "A20"  Picture "!*!" Tag "TG_NOMOPDTEMISCOMP" To VSDGNOMOPDTEMISCOMP

    Label  @ 11,00 "Per¡odo Referente de" For "TG_DTINI"
    Accept @ 12,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 12,16 "at‚" For "TG_DTFIM"
    Accept @ 12,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Label @ 00,35 "Contas An liticas" For "TG_OPCTAANALITICA"
    CheckBoxes @ 01,35 Height 2 Width 33 Tag "TG_OPCTAANALITICA"
    TG_OPCTAANALITICA[1] to CheckTG_OPCTAANALITICA[1],
    TG_OPCTAANALITICA[2] to CheckTG_OPCTAANALITICA[2] 

    Label @ 04,35 "Transferˆncias entre Contas" For "TG_OPCTATRANSF"
    CheckBoxes @ 05,35 Height 2 Width 33 Tag "TG_OPCTATRANSF"
    TG_OPCTATRANSF[1] to CheckTG_OPCTATRANSF[1],
    TG_OPCTATRANSF[2] to CheckTG_OPCTATRANSF[2]

    Pushbutton @ 14,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 14,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If Not Valida_ShowDialog("") Then Loop EndIf

  If IsBlank(VSDGEMPRESA)
     Then Mensagem("Informe uma Empresa !")
          Loop
  EndIf

  if IsBlank(VSDGDTINI) or IsBlank(VSDGDTFIM)
     Then Mensagem("Data inv lida !")
          Loop
  EndIf

  if (VSDGDTFIM-VSDGDTINI)>365
     Then Mensagem("Per¡odo Referente m ximo de 12 meses !")
          Loop
  EndIf
  
  If Len(VSDGPLCONTAS)<13
     Then PLCONTAS=VSDGPLCONTAS + ".."
     Else PLCONTAS=VSDGPLCONTAS
  EndIf

  If VSDGEMPRESA="0000"
     Then VSDGEMPRESA2=""
     Else VSDGEMPRESA2=VSDGEMPRESA
  EndIf
  
  DISPOSITIVO()
  If OK="" Then Loop EndIf

  AGUARDE("Aguarde, Gerando o Relat¢rio")
  Tabela=Cria_Temp(PrivDir())
  Copy "\\Base\\Sistemas\\Ctacor\\RM_0211" Tabela
  Empty Tabela
  
  ;------
  for wi from 1 to 12
    Array_MesAno[wi]    =blanknum()
    Array_Tit_MesAno[wi]=""
  endfor
  
  mesini=month(VSDGDTINI)
  anoini=year(VSDGDTINI)
  for wi from 1 to 12

     Array_MesAno[wi]    =strval(mesini)+"/"+strval(anoini)
     Array_Tit_MesAno[wi]=Format("W13,AR",rtrim(MesExt(mesini))+"/"+substr(strval(anoini),3,2))

     if mesini=12
        then mesini=1
             anoini=anoini+1
        else mesini=mesini+1
     endif

     if ( anoini=year(VSDGDTFIM) and mesini> month(VSDGDTFIM) ) or
        ( anoini>year(VSDGDTFIM) and mesini>=month(VSDGDTFIM) ) 
        then quitloop
     endif
  endfor
  ;------

  MontaTabela()

  PrimeiraVez   =true
  CHEQUESAENTRAR=0
  CHEQUESASAIR  =0
  ENTRADAS      =0
  SAIDAS        =0 
  VSDGDTREF     =Primeiro_Dia_Data(VSDGDTINI)

  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    If IsTable("Answer")     Then Delete "Answer" EndIf
    Realizado()
  EndWhile

  Monta_Dir_Trab(VSDGDTINI-360,VSDGDTFIM)
  While Novo_Dir_Trab()
    If IsTable("Answer")     Then Delete "Answer" EndIf
    ChequesEmitidos()
  EndWhile
  
  ARealizarReceber()
  ARealizarPagar()
  ARealizarChequesTerceiros()

  If IsEmpty(Tabela)
     Then MENSAGEM("N„o existem registros a processar")
          Delete Tabela
          Loop
  EndIf
  Processa()

  tit_opcao=VSDGNOMOPCAO+" - "+VSDGNOMOPDTEMISCOMP                                  

  Impressao_Orientacao="Paisagem"

  CI_FONT=chr(27)+"k10"

  IMPRIREL(Tabela,"R")

  Delete Tabela
  Delete "Answer"

EndWhile
ClearAll
Release Vars All
Release Procs All
