;** Rm_0020  *******************************************************************
;*  Emissao dos Titulos a Pagar por Data de Vencimento                         *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/12/1995 por Anivel Augusto Rodrigues
;Ultima Alteracao: 22/03/2005 por Davi Pereira Carrano
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 07/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Modelo
;Ultima Alteracao: 08/01/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: TOTALIZA EMPRESAS
;Ultima Alteracao: 05/10/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado filtro "Por Data" p/ escolha de "data a pagar" ou "data de vencimento"
;Ultima Alteracao: 17/12/2012 por Kamila Gomes
;Motivo Alteracao: Adicionado filtro "Op‡Æo Ordem de Compra" p/ visualizar ou nÆo titulos de origem OC 
;Ultima Alteracao: 24/04/2014 por Luis Gustavo
;Motivo Alteracao: Inclusao filtro por tipo de lan‡amento
;Ultima Alteracao: 16/03/2016 por Kamila Gomes
;Motivo Alteracao: Incluir Todos os Cheques n„o Apresentados
;Ultima Alteracao: 08/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 07/10/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog e logica          
;Ultima Alteracao: 18/10/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes filtro tipo do pagamento     
;Ultima Alteracao: 23/11/2016 por Bruno Carvalho
;Motivo Alteracao: SelecionaCP() -> #0343# Informado per¡odo inicial e final p/ [Data Cheque Pre-Datado]
;Ultima Alteracao: 24/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes filtro cheques pre-datados
;Ultima Alteracao: 17/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_EMPRESATE                 
;Ultima Alteracao: 27/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog   
;Ultima Alteracao: 29/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes MensagemCheckBoxes() 
;Ultima Alteracao: 03/01/2017 por Rafael Matos
;Motivo Alteracao: Ajustes showdialog MensagemRadioButtons()                
;Ultima Alteracao: 06/04/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_EMPRESATE                 
;Ultima Alteracao: 06/04/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_CONTA e novo modelo de relatorio
;Ultima Alteracao: 03/02/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes SD_Dialog() onde foi adicionado UPDATE p/ atualiza‡Æo instantƒnea dos radiobuttons
;Ultima Alteracao: 29/05/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado ValidarModelosRelatorios()

;*******************************************************************************
;* Rotina p/ Selecionar Titulos                                                *
;*******************************************************************************
Proc Seleciona()
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 [Data de Vencimento] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
       Moveto [Saldo do Documento] TypeIn ">= 0.01 "
       Moveto [Codigo da Conta   ] TypeIn "~VSDGCONTA.."

       If VSDGOPCAO[1]=False
          Then Moveto [Sistema Gerador   ] TypeIn "Not OC"
       EndIf
       
       If VSDGOPCAO[2]=False and isblank(VSDGTPPAGTO)
          Then Moveto [Tipo do Pagamento ] TypeIn "Not TC"
          else Moveto [Tipo do Pagamento ] TypeIn "~VSDGTPPAGTO.."
       EndIf
       
       Do_it!
       ClearAll
       
EndIf
EndProc  ; (Seleciona)

;*******************************************************************************
;* Rotina p/ Selecionar cheques                                                *
;*******************************************************************************
Proc SelecionaSP()

{Ask} {\\sistemas\\ctacor\\MovCont}
Moveto [Numero do Lancamento  ] CheckPlus
Moveto [Codigo da Conta       ] CheckPlus
Moveto [Descricao da Conta    ] CheckPlus
Moveto [Codigo da Empresa     ] CheckPlus TypeIn "~VSDGEMPRESA2.."
Moveto [Nome Fantasia Empresa ] CheckPlus
Moveto [Tipo Movimento        ] TypeIn "S"
Moveto [Tipo de Operacao      ] TypeIn "05"
Moveto [Valor                 ] CheckPlus
Moveto [Codigo do EmitDest    ] CheckPlus
Moveto [Nome Fantasia EmitDest] CheckPlus
Moveto [Razao Social          ] CheckPlus
Moveto [Codigo do Documento   ] CheckPlus
Moveto [Tipo do Documento     ] CheckPlus
Moveto [Serie do Documento    ] CheckPlus
Moveto [Numero do Documento   ] CheckPlus
Moveto [Numero do Cheque      ] CheckPlus
Moveto [Serie do Cheque       ] CheckPlus
Moveto [Data                  ] CheckPlus 
Moveto [Data Cheque Pre-Datado] CheckPlus

Moveto [Cheque Pre-Datado     ] TypeIn "Not S"
Moveto [Data Cheque Descontado] TypeIn "Blank"
Moveto [Data                  ] TypeIn "<=~VSDGDTFIM"
Do_It!
ClearAll

if isempty("Answer")
   then return
endif   

{Ask} {Answer}
Moveto [Numero do Lancamento  ] Example "lanc"
Moveto [Codigo da Conta       ] Example "cont"
Moveto [Descricao da Conta    ] Example "dcont"
Moveto [Codigo da Empresa     ] Example "cod"
Moveto [Nome Fantasia Empresa ] Example "ncod"
Moveto [Valor                 ] Example "vr"
Moveto [Codigo do EmitDest    ] Example "cemi"
Moveto [Nome Fantasia EmitDest] Example "nemi"
Moveto [Razao Social          ] Example "emit"
Moveto [Codigo do Documento   ] Example "cdoc"
Moveto [Tipo do Documento     ] Example "tpdoc"
Moveto [Serie do Documento    ] Example "sdoc"
Moveto [Numero do Documento   ] Example "ndoc"
Moveto [Numero do Cheque      ] Example "numc"
Moveto [Serie do Cheque       ] Example "serc"
Moveto [Data                  ] Example "data"

{Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
Moveto [Numero do Lancamento  ] Example "lanc"
Moveto [Codigo da Conta       ] Example "cont"
Moveto [Descricao da Conta    ] Example "dcont"
Moveto [Codigo da Empresa     ] Example "cod"
Moveto [Nome Fantasia Empresa ] Example "ncod"
Moveto [Codigo do Emitente    ] Example "cemi"
Moveto [Nome Fantasia EmitDest] Example "nemi"
Moveto [Razao Social          ] Example "emit"
Moveto [Codigo do Documento   ] Example "cdoc"
Moveto [Tipo do Documento     ] Example "tpdoc"
Moveto [Serie do Documento    ] Example "sdoc"
Moveto [Numero do Documento   ] Example "ndoc"
Moveto [Valor do Documento    ] Example "vr"
Moveto [Saldo do Documento    ] Example "vr"
Moveto [Data de Vencimento    ] Example "data"
Moveto [Data de Emissao       ] Example "data"
Moveto [Data a Pagar          ] Example "data"
Moveto [Tipo do Lancamento    ] TypeIn "0"
Moveto [Descricao do Lancamento] example "numc" typein "+\" \"+" example "serc"
Do_It!
ClearAll

EndProc  ; (SelecionaSP)

;*******************************************************************************
;* Rotina p/ Selecionar cheques                                                *
;*******************************************************************************
Proc SelecionaCP()

{Ask} {\\sistemas\\ctacor\\MovCont}
Moveto [Numero do Lancamento  ] CheckPlus
Moveto [Codigo da Conta       ] CheckPlus
Moveto [Descricao da Conta    ] CheckPlus
Moveto [Codigo da Empresa     ] CheckPlus TypeIn "~VSDGEMPRESA2.."
Moveto [Nome Fantasia Empresa ] CheckPlus
Moveto [Tipo Movimento        ] TypeIn "S"
Moveto [Tipo de Operacao      ] TypeIn "05"
Moveto [Valor                 ] CheckPlus
Moveto [Codigo do EmitDest    ] CheckPlus
Moveto [Nome Fantasia EmitDest] CheckPlus
Moveto [Razao Social          ] CheckPlus
Moveto [Codigo do Documento   ] CheckPlus
Moveto [Tipo do Documento     ] CheckPlus
Moveto [Serie do Documento    ] CheckPlus
Moveto [Numero do Documento   ] CheckPlus
Moveto [Numero do Cheque      ] CheckPlus
Moveto [Serie do Cheque       ] CheckPlus
Moveto [Data                  ] CheckPlus 
Moveto [Data Cheque Pre-Datado] CheckPlus

Moveto [Cheque Pre-Datado     ] TypeIn "S"
Moveto [Data Cheque Descontado] TypeIn "Blank"
if VSDGOPCHPRE=1
   Then Moveto [Data Cheque Pre-Datado] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
   Else Moveto [Data Cheque Pre-Datado] TypeIn "<=~VSDGDTFIM"
EndIf   
Do_It!
ClearAll

if isempty("Answer")
   then return
endif   

{Ask} {Answer}
Moveto [Numero do Lancamento  ] Example "lanc"
Moveto [Codigo da Conta       ] Example "cont"
Moveto [Descricao da Conta    ] Example "dcont"
Moveto [Codigo da Empresa     ] Example "cod"
Moveto [Nome Fantasia Empresa ] Example "ncod"
Moveto [Valor                 ] Example "vr"
Moveto [Codigo do EmitDest    ] Example "cemi"
Moveto [Nome Fantasia EmitDest] Example "nemi"
Moveto [Razao Social          ] Example "emit"
Moveto [Codigo do Documento   ] Example "cdoc"
Moveto [Tipo do Documento     ] Example "tpdoc"
Moveto [Serie do Documento    ] Example "sdoc"
Moveto [Numero do Documento   ] Example "ndoc"
Moveto [Numero do Cheque      ] Example "numc"
Moveto [Serie do Cheque       ] Example "serc"
Moveto [Data Cheque Pre-Datado] Example "data"

{Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
Moveto [Numero do Lancamento  ] Example "lanc"
Moveto [Codigo da Conta       ] Example "cont"
Moveto [Descricao da Conta    ] Example "dcont"
Moveto [Codigo da Empresa     ] Example "cod"
Moveto [Nome Fantasia Empresa ] Example "ncod"
Moveto [Codigo do Emitente    ] Example "cemi"
Moveto [Nome Fantasia EmitDest] Example "nemi"
Moveto [Razao Social          ] Example "emit"
Moveto [Codigo do Documento   ] Example "cdoc"
Moveto [Tipo do Documento     ] Example "tpdoc"
Moveto [Serie do Documento    ] Example "sdoc"
Moveto [Numero do Documento   ] Example "ndoc"
Moveto [Valor do Documento    ] Example "vr"
Moveto [Saldo do Documento    ] Example "vr"
Moveto [Data de Vencimento    ] Example "data"
Moveto [Data de Emissao       ] Example "data"
Moveto [Data a Pagar          ] Example "data"
Moveto [Tipo do Lancamento    ] TypeIn "1"
Moveto [Descricao do Lancamento] example "numc" typein "+\" \"+" example "serc"
Do_It!
ClearAll

EndProc  ; (SelecionaCP)

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

;***** 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
   If ([Data a Pagar]<Today()) And (Not IsBlank([Data a Pagar]))
      Then NDA=Today()-[Data a Pagar]
           TXM=[Multa]
      Else NDA=0
           TXM=0
   EndIf
   If [Data Limite Desconto] >= Today()
      Then VRDESCT=[Valor do Desconto]
      Else VRDESCT=0
   EndIf

   If [Taxa de Juros]>0
      Then TXJ=([Taxa de Juros]/[NDias Taxa de Juros])*NDA
           VRJUROS=(([Saldo do Documento]*TXJ)/100)+([Saldo do Documento]*TXM/100)
      Else VRJUROS=(([Valor de Juros]/[NDias Taxa de Juros])*NDA)
           VRJUROS=VRJUROS+(([Saldo do Documento]*TXM)/100)
   EndIf
   
   [Valor do Documento]=([Saldo do Documento]+VRJUROS)-VRDESCT
   [Valor do Desconto ]=VRJUROS+(VRDESCT*-1)
   
   If VSDGOPRELCODALF="1"
      Then [Data de Vencimento]=[Data a Pagar]
   EndIf
   
   switch
     case [Tipo do Lancamento     ]="0" : [Observacoes            ]="[CHQNA ] "+[Descricao do Lancamento]
                                          [Tipo do Lancamento     ]="0"
                                          [Descricao do Lancamento]="CHEQUES"
     case [Tipo do Lancamento     ]="1" : [Observacoes            ]="[CHQPRE] "+[Descricao do Lancamento]
                                          [Tipo do Lancamento     ]="0"
                                          [Descricao do Lancamento]="CHEQUES"
     Otherwise                          : 
                                          [Tipo do Lancamento     ]=""
                                          [Descricao do Lancamento]="TITULOS"
                                          
   endswitch
      
EndScan
Do_It!
ClearAll
EndProc   ; (Processa)

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
TECLA=""
MSG_CAMPO=""

If Disparo="OPEN" Or Disparo="UPDATE" 
   Then If Campo="TG_OPCHEQ" 
            Then  if VSDGOPCHEQ=1 or
                     VSDGOPCHEQ=3
                     then 
                          wcol=35
                          wlin=10
                          CampoAnterior="TG_OPCHEQ"
                     else ;inverte ao que esta no evento 13
                          wcol=80
                          wlin=6
                          CampoAnterior="TG_OPCHEQ"
                          
                  endif   
                 refazershowdialog=true
                 AcceptDialog
       Endif
EndIf

If Disparo="OPEN"  
   Then AoCriarShowDialog()
        If refazershowdialog 
           Then Campo=CampoAnterior 
                refazershowdialog=false 
        EndIf  
EndIf      

If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESATE"     : Campo="NO"
            Case Campo="TG_CONTA"         : Campo="TG_EMPRESATE"
            Case Campo="TG_DTINI"         : Campo="TG_CONTA"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_TPLANC"        : Campo="TG_DTFIM"
            Case Campo="TG_TPPAGTO"       : Campo="TG_TPLANC"     
            Case Campo="TG_OPRELCODALF"   : Campo="TG_TPPAGTO" 
            Case Campo="TG_OPCHEQ"        : Campo="TG_OPRELCODALF"
            Case Campo="TG_OPCHPRE"       : Campo="TG_OPCHEQ"
            Case Campo="TG_OPCOES"        : Campo="TG_OPCHEQ"
            Case Campo="TG_CODMODELO"     : Campo="TG_OPCHEQ"
            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"   : Campo="TG_CONTA"
                    Case Campo="TG_CONTA"       : Campo="TG_DTINI"
                    Case Campo="TG_DTINI"       : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"       : Campo="TG_TPLANC"
                    Case Campo="TG_TPLANC"      : Campo="TG_TPPAGTO"
                    Case Campo="TG_TPPAGTO"     : Campo="TG_OPRELCODALF"
                    Case Campo="TG_OPRELCODALF" : Campo="TG_OPCHEQ"
                         VSDGOPRELCODALF=ControlValue("TG_OPRELCODALF")
                         Switch
                           Case VSDGOPRELCODALF="2" : VSDGNOMOPRELCODALF="DE VENCIMENTO"    
                           Otherwise                : VSDGNOMOPRELCODALF="A PAGAR"
                                                      VSDGOPRELCODALF   ="1" 
                         Endswitch
                    Case Campo="TG_OPCHEQ"      : 
                      if VSDGOPCHEQ=1 or
                         VSDGOPCHEQ=3
                         then 
                              wcol=80
                              wlin=6
                              CampoAnterior="TG_OPCOES"
                         else 
                              wcol=35
                              wlin=10
                              CampoAnterior="TG_OPCHPRE"
                      endif   
                      refazershowdialog=true
                      AcceptDialog
                      
                    Case Campo="TG_OPCHPRE"     : Campo="TG_OPCOES" 
                    
                    Case Campo="TG_OPCOES"      : Campo="TG_CODMODELO"
                    Case Campo="TG_CODMODELO"   : Campo="YES"
                    
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
Case Campo="TG_OPCHEQ"  or Campo="TG_OPCHPRE":
     MensagemRadioButtons()
Case Campo="TG_OPRELCODALF":
     MSG_CAMPO="1=Data a Pagar  2=Data de Vencimento"  
Case Campo="TG_OPCOES":
     MensagemCheckBoxes()
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ModeloRelatoriosCarregaLista()

VSDGCODMODELO     = ""
VSDGMODELO        = ""

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
ModeloRelatoriosAdd("01  Por Data de Vencimento")
ModeloRelatoriosAdd("02  Por Conta/Data de Vencimento")
ModeloRelatoriosAdd("Fim")
                           
EndProc ;ModeloRelatoriosCarregaLista


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

VSDGTPLANC  =""
VSDGCONTA   =""
VSDGEMPRESA =""
VSDGDTINI   =BlankDate()
VSDGDTFIM   =BlankDate()

Array VSDGOPCAO[2]
VSDGOPCAO[1]=true 
VSDGOPCAO[2]=true 

refazershowdialog=false
wcol             =35
wlin             =10

ModeloRelatoriosCarregaLista()

While True

  ShowDialog "T¡tulos … Pagar por Data Vencimento" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE","UPDATE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 09,12   Height 20 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 "Conta"  For "TG_CONTA"
    Accept @ 03,01 Width 07 "A4"  Picture "#*#" Tag "TG_CONTA"    To VSDGCONTA
    Accept @ 03,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMCONTA" To VSDGNOMCONTA

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

    Label  @ 06,00 "Tipo de Lan‡amento"  For "TG_TPLANC"
    Accept @ 07,04 Width 04 "A1"  Picture "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,X,Z" Tag "TG_TPLANC" To VSDGTPLANC
    Accept @ 07,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMLANC"  To VSDGNOMLANC

    Label  @ 08,00 "Forma de Pagamento"  For "TG_TPPAGTO"
    Accept @ 09,03 Width 05 "A2"  Picture "!*!" Tag "TG_TPPAGTO"    To VSDGTPPAGTO
    Accept @ 09,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMTPPG"    To VSDGNOMTPPAGTO

    Label  @ 10,00 "Por Data" For "TG_OPRELCODALF"
    Accept @ 11,04 Width 04 "A1"  Picture "1,2" Tag "TG_OPRELCODALF" To VSDGOPRELCODALF
    Accept @ 11,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMOPRELCODALF" To VSDGNOMOPRELCODALF
    
    Label @ 00,35 "Cheques nÆo apresentados" For "TG_OPCHEQ"
    RadioButtons @ 01,35 Height 4 Width 34
      "~1~ NÆo incluir",
      "~2~ Incluir todos",
      "~3~ Incluir sem os Pr‚-Datados",
      "~4~ Incluir s¢  os Pr‚-Datados"
        Tag "TG_OPCHEQ"
        To VSDGOPCHEQ

    Label @ 06,wcol "Cheques Pr‚-Datados" For "TG_OPCHPRE"
    RadioButtons @ 07,wcol Height 2 Width 34
      "~1~ S¢ do per¡odo informado",
      "~2~ Incluir os nÆo apresentados"
        Tag "TG_OPCHPRE"
        To VSDGOPCHPRE

    Label  @ wlin,35 "Op‡”es de Dados" For "TG_OPCOES"
    CheckBoxes @ wlin+1,35 Height 4 Width 33 Tag "TG_OPCOES"
    "Incluir Ordem de Compra   " to VSDGOPCAO[1],
    "Incluir T¡tulos de Cr‚dito" to VSDGOPCAO[2]

    Label  @ 13,00  "Modelo de ~R~elat¢rio"  For "TG_CODMODELO"
    Accept @ 14,01  Width 06 "A3"  Picture "!*!" Tag "TG_CODMODELO" To VSDGCODMODELO
    Accept @ 14,06  Width 63 "A60"  Picture "!*!" Tag "TG_MODELO" To VSDGMODELO        

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  if not ValidarModelosRelatorios() then loop endif         
  
  if refazershowdialog then loop endif

  If IsBlank(VSDGDTFIM)
     Then Mensagem("Data Final Invalida !")
          Loop
  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())

  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    If IsTable("Answer")     Then Delete "Answer" EndIf
    Seleciona()
    If Not IsTable("Answer") Then Loop EndIf
    If IsTable(Tabela)
       Then Add "Answer" Tabela
       Else Rename "Answer" Tabela
    EndIf
  EndWhile

  If VSDGOPCHEQ=2          
     then SelecionaSP() 
          SelecionaCP()
  endif
  If VSDGOPCHEQ=3          
     then SelecionaSP() 
  endif
  If VSDGOPCHEQ=4          
     then SelecionaCP() 
  endif
  Processa()

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

  Switch
    case VSDGCODMODELO="01" : CopyReport "\\Base\\Sistemas\\CtaPag\\Rm_1000" "11" Tabela "R"
    case VSDGCODMODELO="02" : CopyReport "\\Base\\Sistemas\\CtaPag\\Rm_1000" "13" Tabela "R"
  EndSwitch
  
  IMPRIREL(Tabela,"R")

  Delete Tabela

EndWhile
ClearAll
Release Vars All
Release Procs All
