;** Rm_1270 ********************************************************************
;*  Rela‡Æo de Clientes - Duplicatas                                           *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 29/10/2012 por Bruno Carvalho
;Alterado em		 : 28/03/2014 por Bruno Carvalho
;Motivo Alteracao: Ajustes  
;Ultima Alteracao: 17/06/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes logica e novo desenho report                  
;Ultima Alteracao: 06/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 26/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: 21/11/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes erro variavel
;Ultima Alteracao: 24/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog modelo relatorio  
;Ultima Alteracao: 12/01/2021 por Bruno Carvalho                        
;Motivo Alteracao: Ajustes p/ chamar filtro padrao *RM_0260*  
 
;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc RM_0260B_Seleciona()
ClearAll

If IsTable("\\Sistemas\\CtaRec\\"+Dir_Trab+"Duplic") And
   IsTable("\\Sistemas\\CtaRec\\"+Dir_Trab+"DupBaixa")
   Then
        If VSDGTPPGTO="1"
           Then 
                {Ask} TypeIn "\\Sistemas\\CtaRec\\"+Dir_Trab+"Duplic" Enter
                Moveto [Numero do Lancamento   ] Check Example "NLAN" TypeIn "!"
                Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
                Moveto [Nome Fantasia Empresa  ] Check
                Moveto [Codigo do Representante]       TypeIn "~VSDGREPRESEN.."
                Moveto [Numero do Documento    ] Check
                Moveto [Tipo do Documento      ] Check TypeIn "~VSDGTPDOCTO.." 
                Moveto [Serie do Documento     ] Check 
                If Not IsBlank(VSDGNCARREG)
                   Then Moveto [Numero_Carregamento_Orig] TypeIn "~VSDGNCARREG.."
                   Else If VSDGOPDTEMISVENC="2"
                           Then Moveto [Data de Emissao   ] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                                Moveto [Data de Vencimento] Check 
                           ELse Moveto [Data de Emissao   ] Check 
                                Moveto [Data de Vencimento] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                        EndIf
                EndIf
                Moveto [Valor do Documento    ] Check 
                Moveto [Saldo do Documento    ] Check 
                Moveto [Codigo do Destinatario] Check TypeIn "~VSDGDESTINAT.."
                Moveto [Razao Social          ] Check
                Switch
                  Case ListaRegra_VSDGTPPAGTO_Ativo  : Moveto [Tipo do Pagamento] TypeIn ListaRegra_VSDGTPPAGTO
                  Otherwise                          : Moveto [Tipo do Pagamento] TypeIn "~VSDGTPPAGTO.."
                EndSwitch
                Moveto [Documento Referente   ] Check
                Moveto [Tipo Docto Gerador    ] Check
                Moveto [Numero Docto Gerador  ] Check     
                {Ask} TypeIn "\\Sistemas\\CtaRec\\"+Dir_Trab+"DupBaixa" Enter
                Moveto [Numero do Lancamento  ] Example "NLAN"
                Moveto [Sequencia da Baixa    ] Check
                Moveto [Data do Pagamento     ] Check 
                Moveto [Valor do Recebimento  ] Check 
                Moveto [Valor do Juros        ] Check 
                Moveto [Valor do Desconto     ] Check  
                Do_It!
                ClearAll
                
           Else {Ask} TypeIn "\\Sistemas\\CtaRec\\"+Dir_Trab+"Duplic" Enter
                Moveto [Numero do Lancamento   ] Check Example "NLAN" TypeIn "!" 
                Moveto [Codigo da Empresa      ] Check TypeIn "~VSDGEMPRESA.."
                Moveto [Nome Fantasia Empresa  ] Check
                Moveto [Codigo do Representante]       TypeIn "~VSDGREPRESEN.."
                Moveto [Numero do Documento    ] Check
                Moveto [Tipo do Documento      ] Check TypeIn "~VSDGTPDOCTO.."
                Moveto [Serie do Documento     ] Check
                If Not IsBlank(VSDGNCARREG)
                   Then Moveto [Numero_Carregamento_Orig] TypeIn "~VSDGNCARREG.."
                   Else If VSDGOPDTEMISVENC="2"
                           Then Moveto [Data de Emissao   ] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                                Moveto [Data de Vencimento] Check 
                           ELse Moveto [Data de Emissao   ] Check 
                                Moveto [Data de Vencimento] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                        EndIf
                EndIf   
                Moveto [Valor do Documento    ] Check 
                Moveto [Saldo do Documento    ] Check 
                Moveto [Codigo do Destinatario] Check TypeIn "~VSDGDESTINAT.."
                Moveto [Razao Social          ] Check
                Switch
                  Case ListaRegra_VSDGTPPAGTO_Ativo  : Moveto [Tipo do Pagamento] TypeIn ListaRegra_VSDGTPPAGTO
                  Otherwise                          : Moveto [Tipo do Pagamento] TypeIn "~VSDGTPPAGTO.."
                EndSwitch
                Moveto [Documento Referente   ] Check
                Moveto [Tipo Docto Gerador    ] Check
                Moveto [Numero Docto Gerador  ] Check
                {Ask} TypeIn "\\Sistemas\\CtaRec\\"+Dir_Trab+"DupBaixa" 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 Recebimento  ] TypeIn "Calc Sum as Valor do Recebimento"
                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 Destinatario] 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 Recebimento ] Example "VREC"
        Moveto [Valor do Juros       ] Example "VJUR"
        Moveto [Valor do Desconto    ] Example "VDES"
        Moveto [Tipo Docto Gerador   ] Example "TDOCTOORIG"
        Moveto [Numero Docto Gerador ] Example "NDOCTOORIG"
        
        {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"
        Moveto [Tipo Documento Origem  ] Example "TDOCTOORIG"
        Moveto [Numero Documento Origem] Example "NDOCTOORIG"
        Do_It!
        ClearAll
        
EndIf                      

EndProc  ; (RM_0260B_Seleciona)

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc RM_0260B_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
  [DocumentoOrigem]=[Codigo da Empresa]+"."+[Tipo Documento Origem]+"."+[Numero Documento Origem]   
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="80A" 
   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 ;RM_0260B_Processa

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc RM_0260B_Principal()

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

Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  RM_0260B_Seleciona()
EndWhile
RM_0260B_Processa()

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

Switch
  Case VSDGCODMODELO="80A"  : 
       If VSDGOPDTEMISVENC="2" 
         Then IMPRIREL(Tabela,"R")
         Else IMPRIREL(Tabela,"1")
      EndIf

  Case VSDGCODMODELO="80B"  : 
      IMPRIREL(Tabela,"2")
Endswitch

Delete Tabela  

EndProc

;-- Chamada principal ----------------------------------------------------------
RM_0260B_Principal()

Release Vars Tabela
Release Procs RM_0260B_Principal, RM_0260B_Seleciona,RM_0260B_Processa