;** Rm_0060B *******************************************************************
;*  Sintetico I p/ Centro de Custo                                             *
;*******************************************************************************
;Autor: Visao/Vise
;Desenvolvido    : 05/11/1996 por Anivel Augusto Rodrigues
;Ultima Alteracao: 15/10/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Antigo RM_0070
;Ultima Alteracao: 15/10/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes RM_0060 principal           
;Ultima Alteracao: 01/02/2020 por Bruno Carvalho             
;Motivo Alteracao: Ajustes na ASK p/ [Tipo do Pagamento] -> ListaRegra_VSDGTPPAGTO_Ativo

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

If IsTable("\\Sistemas\\Ctapag\\"+Dir_Trab+"Titulos")
  Then {Ask} TypeIn "\\Sistemas\\Ctapag\\"+Dir_Trab+"Titulos" Enter Check
       Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA2.."
       Moveto [Codigo da Conta       ] TypeIn "~VSDGCONTA.."
       Switch
         Case ListaRegra_VSDGTPPAGTO_Ativo  : Moveto [Tipo do Pagamento] TypeIn ListaRegra_VSDGTPPAGTO
         Otherwise                          : Moveto [Tipo do Pagamento] TypeIn "~VSDGTPPAGTO.."
       EndSwitch    
       Moveto [Codigo do Emitente    ] TypeIn "~VSDGDESTINAT.."
       Moveto [Saldo do Documento    ] TypeIn "> 0.01"
       switch
         case VSDGOPDTCP="1" : Moveto [Data de Vencimento    ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM" 
         case VSDGOPDTCP="2" : Moveto [Data de Emissao       ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM" 
         case VSDGOPDTCP="3" : Moveto [Data a Pagar          ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM" 
         case VSDGOPDTCP="6" : Moveto [Data_Inclusao         ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM" 
         case VSDGOPDTCP="4" : Moveto [Data de Entrada       ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM" 
         case VSDGOPDTCP="5" : Moveto [Data Competencia      ] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM" 
       endswitch
       
       Do_It!
       ClearAll

       {Ask} "Answer" Enter
       Moveto [Numero do Lancamento] example "NumLan"     
       {Ask} "TitRat" Enter TypeIn "Delete"
       Moveto [Numero do Lancamento] example "NumLan" 
       Moveto [Sequencia da Baixa  ] TypeIn "0"
       Do_It!
       ClearAll
       
       Primeirav="******"
       Coedit "Answer","TitRat","Deleted"
       Scan
         If [Numero do Lancamento]<>Primeirav 
            then Primeirav = [Numero do Lancamento] 
                 CopyToArray Array_Del      
                 Moveto "TitRat"
                 Moveto [Numero do Lancamento]
                 Locate [deleted->Numero do Lancamento],"0"
                 If RetVal             
                    Then While [Numero do Lancamento]=[Deleted->Numero do Lancamento] and
                               [Sequencia da Baixa  ]="0"
                           Moveto "Answer"
                           End Down
                           CopyFromArray Array_del
                           [Codigo Plano_Conta   ]=[TitRat->Codigo Plano_Conta   ]
                           [Descricao Plano_Conta]=[TitRat->Descricao Plano_Conta] 
                           [Codigo CCusto        ]=[TitRat->Codigo CCusto        ]
                           [Descricao CCusto     ]=[TitRat->Descricao CCusto     ]
                         
                           If [Valor do Documento]<>[Saldo do Documento]
                              Then [Saldo do Documento]=(([TitRat->Valor]*[Saldo do Documento])/[Valor do Documento]) 
                                   [Valor do Documento]=[Saldo do Documento ]                            
                              Else [Saldo do Documento]=[TitRat->Valor]
                           EndIf   
                           [Valor do Documento]=[Saldo do Documento ]                  
                           UnLockRecord             
                           Moveto "TitRat"      
                           Skip
                           If EOT() Then QuitLoop EndIf
                         EndWhile
                 EndIf  
                 Moveto "Deleted"  
         EndIf       
       EndScan
       Do_It!
       ClearAll
       
       {Ask} {Answer} check
       If CheckTG_OPCTCUSTO[1]
          Then Moveto [Codigo CCusto          ] TypeIn "Not Blank, ~VSDGCCUSTO.."
          Else Moveto [Codigo CCusto          ] TypeIn "~VSDGCCUSTO.."
       Endif
       Do_It!
       ClearAll

       {Ask} {Answer}
       Moveto [Codigo da Empresa     ] Example "CE"
       Moveto [Nome Fantasia Empresa ] Example "NFE"
       Moveto [Data a Pagar          ] Example "DT"
       Moveto [Saldo do Documento    ] Example "VR"
       Moveto [Codigo CCusto         ] Example "CC"
       Moveto [Descricao CCusto      ] Example "DC"
       Moveto [Codigo do Emitente    ] Example "CED"
       Moveto [Nome Fantasia EmitDest] Example "NFED"
       Moveto [Tipo do Documento     ] Example "TIPO"
       Moveto [Numero do Documento   ] Example "NUMERO"

       {Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
       Moveto [Codigo da Empresa     ] Example "CE"
       Moveto [Nome Fantasia Empresa ] Example "NFE"
       Moveto [Data                  ] Example "DT"
       Moveto [Valor                 ] Example "VR"
       Moveto [Codigo CCusto         ] Example "CC"
       Moveto [Descricao CCusto      ] Example "DC"
       Moveto [Codigo do EmitDest    ] Example "CED"
       Moveto [Nome Fantasia EmitDest] Example "NFED"
       Moveto [Descricao do Historico] TypeIn "\"PG \"+" Example "TIPO" TypeIn "+\"/\"+" Example "NUMERO"
       Do_It!
       ClearAll
EndIf
EndProc  ; (Seleciona)

;*******************************************************************************
;* Rotina p/ processar Db temporaria                                           *
;*******************************************************************************
Proc ProcessaRM_0060B()

;***** 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
EndIf

CoEdit Tabela
Scan For Not IsBlank([Codigo CCusto])
   [Codigo CCusto1]=SubStr([Codigo CCusto],1,4)+"000"
EndScan
Do_It!
ClearAll
EndProc  ; (Processa)

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc PrincipalRM_0060B()

Tabela=Cria_Temp(PrivDir())
Copy "\\Base\\Sistemas\\CtaPag\\Rm_0060" Tabela
Empty Tabela

Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  SelecionaRM_0060B()
EndWhile

If IsEmpty(Tabela)
   Then 
        MENSAGEM("N„o existem registros a processar")
   else
        ProcessaRM_0060B()

        switch
          case VSDGCODMODELO="07" : IMPRIREL(Tabela,"1")
          case VSDGCODMODELO="07B": IMPRIREL(Tabela,"3")
        endswitch
EndIf
Delete Tabela

EndProc

;-- Chamada principal ----------------------------------------------------------
PrincipalRM_0060B()

Release Vars Tabela
Release Procs PrincipalRM_0060B,SelecionaRM_0060B,ProcessaRM_0060B


