;** Rm_1270 ********************************************************************
;*  Rela‡Æo de Fornecedores - Titulos                                          *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 29/10/2012 por Bruno Carvalho
;Ultima Alteracao: 17/06/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes logica e novo desenho report                  
 ;Ultima Alteracao: 08/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 27/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog    
;Ultima Alteracao: 28/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes showdialog TG_DESTINAT                
;Ultima Alteracao: 24/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog modelo relatorio  
;Ultima Alteracao: 13/01/2021 por Bruno Carvalho                        
;Motivo Alteracao: Ajustes p/ chamar filtro padrao *RM_0330*

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc RM_0330B_Seleciona()
ClearAll
       
If IsTable("\\Sistemas\\CtaPag\\"+Dir_Trab+"Titulos") And
   IsTable("\\Sistemas\\CtaPag\\"+Dir_Trab+"TitBaixa")
   Then
        If VSDGTPPGTO="1"
           Then If VSDGATIVIDADE<>""   
                   Then {Ask} TypeIn "\\Sistemas\\Cadastro\\Destinat" Enter
                        Moveto [Codigo            ] example "cemit"
                        Moveto [Codigo Atividade  ] TypeIn "~VSDGATIVIDADE.."
                EndIf        
                {Ask} TypeIn "\\Sistemas\\CtaPag\\"+Dir_Trab+"Titulos" Enter
                Moveto [Numero do Lancamento  ] Check Example "NLAN" TypeIn "!"
                Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA.."
                Moveto [Nome Fantasia Empresa ] Check
                Moveto [Numero do Documento   ] Check
                Moveto [Tipo do Documento     ] Check 
                Moveto [Serie do Documento    ] Check
                Moveto [Codigo da Conta       ] TypeIn "~VSDGCONTA.."
                Switch
                  Case VSDGOPDATA="1" : Moveto [Data de Emissao   ] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                                        Moveto [Data de Vencimento] Check
                  Case VSDGOPDATA="2" : Moveto [Data de Emissao   ] Check 
                                        Moveto [Data de Vencimento] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                  Case VSDGOPDATA="3" : Moveto [Data de Emissao   ] Check 
                                        Moveto [Data de Vencimento] Check 
                                        Moveto [Data Competencia  ]       TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM "
                EndSwitch 
                Moveto [Valor do Documento    ] Check 
                Moveto [Saldo do Documento    ] Check
                If VSDGATIVIDADE<>""
                   Then Moveto [Codigo do Emitente] Check Example "cemit" TypeIn ", ~VSDGDESTINAT.."
                   Else Moveto [Codigo do Emitente] Check TypeIn "~VSDGDESTINAT.."
                EndIf   
                Moveto [Razao Social          ] Check
                Moveto [Documento Referente   ] Check
                Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
                If CheckTG_OPCCUSTO[1]
                   Then Moveto [Codigo CCusto ] TypeIn "Not Blank, ~VSDGCCUSTO.."
                   Else Moveto [Codigo CCusto ] TypeIn "~VSDGCCUSTO.."
                Endif
                {Ask} TypeIn "\\Sistemas\\CtaPag\\"+Dir_Trab+"TitBaixa" Enter
                Moveto [Numero do Lancamento  ] Example "NLAN"
                Moveto [Sequencia da Baixa    ] Check
                Moveto [Data do Pagamento     ] Check 
                Moveto [Valor do Pagamento    ] Check 
                Moveto [Valor do Juros        ] Check 
                Moveto [Valor do Desconto     ] Check  
                Do_It!
                ClearAll
           
           else If VSDGATIVIDADE<>""   
                   Then {Ask} TypeIn "\\Sistemas\\Cadastro\\Destinat" Enter
                        Moveto [Codigo            ] example "cemit"
                        Moveto [Codigo Atividade  ] TypeIn "~VSDGATIVIDADE.."
                EndIf
                {Ask} TypeIn "\\Sistemas\\CtaPag\\"+Dir_Trab+"Titulos" Enter
                Moveto [Numero do Lancamento  ] Check Example "NLAN" TypeIn "!" 
                Moveto [Codigo da Empresa     ] Check TypeIn "~VSDGEMPRESA.."
                Moveto [Nome Fantasia Empresa ] Check
                Moveto [Numero do Documento   ] Check
                Moveto [Serie do Documento    ] Check 
                Moveto [Tipo do Documento     ] Check 
                Moveto [Codigo da Conta       ] TypeIn "~VSDGCONTA.."
                Switch
                  Case VSDGOPDATA="1" : Moveto [Data de Emissao   ] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                                        Moveto [Data de Vencimento] Check
                  Case VSDGOPDATA="2" : Moveto [Data de Emissao   ] Check 
                                        Moveto [Data de Vencimento] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                  Case VSDGOPDATA="3" : Moveto [Data de Emissao   ] Check 
                                        Moveto [Data de Vencimento] Check 
                                        Moveto [Data Competencia  ]       TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM "
                EndSwitch    
                Moveto [Valor do Documento    ] Check 
                Moveto [Saldo do Documento    ] Check 
                If VSDGATIVIDADE<>""
                   Then Moveto [Codigo do Emitente] Check Example "cemit" TypeIn ", ~VSDGDESTINAT.."
                   Else Moveto [Codigo do Emitente] Check TypeIn "~VSDGDESTINAT.."
                EndIf
                Moveto [Razao Social          ] Check
                Moveto [Documento Referente   ] Check
                Moveto [Codigo Plano_Conta    ] TypeIn PLCONTAS
                If CheckTG_OPCCUSTO[1]
                   Then Moveto [Codigo CCusto ] TypeIn "Not Blank, ~VSDGCCUSTO.."
                   Else Moveto [Codigo CCusto ] TypeIn "~VSDGCCUSTO.."
                Endif                         
                {Ask} TypeIn "\\Sistemas\\CtaPag\\"+Dir_Trab+"TitBaixa" Enter
                Moveto [Numero do Lancamento  ] Example "NLAN"
                Moveto [Sequencia da Baixa    ] TypeIn "Calc Max as Sequencia da Baixa"
                Moveto [Data do Pagamento     ] TypeIn "Calc Max as Data do Pagamento"
                Moveto [Valor do Pagamento    ] TypeIn "Calc Sum as Valor do Pagamento"
                Moveto [Valor do Juros        ] TypeIn "Calc Sum as Valor do Juros"
                Moveto [Valor do Desconto     ] TypeIn "Calc Sum as Valor do Desconto"
                Do_It!
                ClearAll
        EndIf        

        {Ask} {Answer}
        Moveto [Numero do Lancamento ] Example "NLAN" 
        Moveto [Codigo da Empresa    ] Example "EMPRE"
        Moveto [Nome Fantasia Empresa] Example "NFEMP"
        Moveto [Numero do Documento  ] Example "DOCTO"
        Moveto [Serie do Documento   ] Example "SERIE"
        Moveto [Tipo do Documento    ] Example "TPDOC" 
        Moveto [Data de Emissao      ] Example "DATEM"
        Moveto [Data de Vencimento   ] Example "DATVE"
        Moveto [Codigo do Emitente   ] Example "CODIG"
        Moveto [Razao Social         ] Example "NOMEC"
        Moveto [Valor do Documento   ] Example "VRDUP"
        Moveto [Saldo do Documento   ] Example "SALD"
        Moveto [Documento Referente  ] Example "NNF"
        Moveto [Sequencia da Baixa   ] Example "SEQB"
        Moveto [Data do Pagamento    ] Example "DTPG"
        Moveto [Valor do Pagamento   ] Example "VREC"
        Moveto [Valor do Juros       ] Example "VJUR"
        Moveto [Valor do Desconto    ] Example "VDES"
        
        {Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
        Moveto [Numero do Lancamento ] Example "NLAN"
        Moveto [Codigo da Empresa    ] Example "EMPRE"
        Moveto [Nome Fantasia Empresa] Example "NFEMP"
        Moveto [Numero do Documento  ] Example "DOCTO"
        Moveto [Serie do Documento   ] Example "SERIE"
        Moveto [Tipo do Documento    ] Example "TPDOC" 
        Moveto [Codigo               ] Example "CODIG"
        Moveto [Razao Social         ] Example "NOMEC"
        Moveto [Data de Emissao      ] Example "DATEM"
        Moveto [Data Vencimento      ] Example "DATVE"
        Moveto [Valor do Documento   ] Example "VRDUP"
        Moveto [Saldo do Documento   ] Example "SALD"
        Moveto [Documento Referente  ] Example "NNF"
        Moveto [Sequencia da Baixa   ] Example "SEQB"
        Moveto [Data Pagamento       ] Example "DTPG"
        Moveto [Valor do Pagamento   ] Example "VREC"
        Moveto [Valor do Juros       ] Example "VJUR"
        Moveto [Valor do Desconto    ] Example "VDES"
        Do_It!
        ClearAll
EndIf                      

EndProc  ; (RM_0330B_Seleciona)

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc RM_0330B_Processa()

Sort Tabela on "Numero do Lancamento", "Sequencia da Baixa"

NUMLANC="***"
Coedit Tabela
Scan
  If [Numero do Lancamento]<>NUMLANC
     Then NUMLANC=[Numero do Lancamento]
          [Soma_Valor do Documento]=[Valor do Documento]
          [Soma_Saldo do Documento]=[Saldo do Documento]
  EndIf   
EndScan
Do_It!
ClearAll

{Ask} TypeIn Tabela Enter
Moveto [Valor do Pagamento  ] TypeIn "blank, Changeto 0" Down
Moveto [Valor do Juros      ] TypeIn "blank, Changeto 0" Down
Moveto [Valor do Desconto   ] TypeIn "blank, Changeto 0"
Do_It!
ClearAll       
               
If VSDGCODMODELO="33A"
   then return
endif   

;-- Sintetico ------------------------------------------------------------------
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Nome Fantasia Empresa  ] Check
Moveto [Codigo                 ] Check
Moveto [Razao Social           ] Check
Moveto [Soma_Valor do Documento] TypeIn "Calc Sum as Valor do Documento"
Moveto [Soma_Saldo do Documento] TypeIn "Calc Sum as Saldo do Documento"
Moveto [Valor do Pagamento     ] TypeIn "Calc Sum as Valor do Pagamento"
Moveto [Valor do Juros         ] TypeIn "Calc Sum as Valor do Juros"
Moveto [Valor do Desconto      ] TypeIn "Calc Sum as Valor do Desconto"
Do_It!
ClearAll       

Empty(Tabela)

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "EMPRE"
Moveto [Nome Fantasia Empresa  ] Example "NFEMP"
Moveto [Codigo                 ] Example "CODIG"
Moveto [Razao Social           ] Example "NOMEC"
Moveto [Valor do Documento     ] Example "VRDUP"
Moveto [Saldo do Documento     ] Example "SALD"
Moveto [Valor do Pagamento     ] Example "VREC"
Moveto [Valor do Juros         ] Example "VJUR"
Moveto [Valor do Desconto      ] Example "VDES"
{Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa      ] Example "EMPRE"
Moveto [Nome Fantasia Empresa  ] Example "NFEMP"
Moveto [Codigo                 ] Example "CODIG"
Moveto [Razao Social           ] Example "NOMEC"
Moveto [Soma_Valor do Documento] Example "VRDUP"
Moveto [Soma_Saldo do Documento] Example "SALD"
Moveto [Valor do Pagamento     ] Example "VREC"
Moveto [Valor do Juros         ] Example "VJUR"
Moveto [Valor do Desconto      ] Example "VDES"
Do_It!
ClearAll

endproc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc RM_0330B_Principal()

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

Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  RM_0330B_Seleciona()
EndWhile
RM_0330B_Processa()

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

switch
  case VSDGCODMODELO="33A"  : 
       If VSDGOPDATA="1" 
          Then IMPRIREL(Tabela,"R")
          Else IMPRIREL(Tabela,"1")
       EndIf

  case VSDGCODMODELO="33B" : 
       IMPRIREL(Tabela,"2")
endswitch

Delete "Answer"
Delete Tabela

EndProc

;-- Chamada principal ----------------------------------------------------------
RM_0330B_Principal()

Release Vars Tabela
Release Procs RM_0330B_Principal,RM_0330B_Seleciona,RM_0330B_Processa