;** Rc_0130 *******************************************************************
;*  Relatorio de Aniversarios                                                      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 09/03/98 por Anivel Augusto Rodrigues
;Ultima Alteracao: 02/04/2004 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 21/08/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes "Situacao do Cliente" p/ permitir situa‡Æo como OTIMO
;Ultima Alteracao: 09/09/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog
;Ultima Alteracao: 23/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes showdialog
;Ultima Alteracao: 26/04/2018 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ [Data de Nascimento] ser consultada/armazenada pela Destinat                   

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

{Ask} {Destinat}
Moveto [Codigo             ] Example "A"
Moveto [Tipo               ] TypeIn "C"
Moveto [Situacao do Cliente] TypeIn "OTIMO or BOM or Blank"
Moveto [Data de Nascimento ] TypeIn "...~VSDGMES.."
{Ask} {DestInfo} CheckPlus
Moveto [Codigo             ] Example "A"
Do_It!
ClearAll

If IsEmpty("Answer")
   Then Return
EndIf

{Ask} {Destinat}
Moveto [Codigo             ] TypeIn "_Cod"
Moveto [Data de Nascimento ] TypeIn "_DtN"
{Ask} {Answer}
Moveto [Codigo             ] TypeIn "_Cod"
Moveto [Data de Nascimento ] TypeIn "Changeto _DtN"
Do_It!
ClearAll

Edit "Answer"
Scan
   If Day([Data de Nascimento]) < NumVal(VSDGDTINI) Or
      Day([Data de Nascimento]) > NumVal(VSDGDTFIM)
      Then [Data de Nascimento]=BlankDate()
   Endif
EndScan

Do_It!
ClearAll

{Ask} {Answer} TypeIn "Fast Delete"
Moveto [Data de Nascimento] TypeIn "Blank"
Do_It!
ClearAll

If Not IsEmpty("Answer")
   Then CopyReport "\\Base\\Sistemas\\Cadastro\\DestInfo" "R" "Answer" "R"
   Else MENSAGEM("N„o Existem Registros a Processar")
        Return
EndIf
EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = 9: Temp=False
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_MES"           : Campo="NO"
            Case Campo="TG_DTINI"         : Campo="TG_MES"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="YES" Or Campo="NO": Campo="TG_MES"
          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_MES":
                         VSDGMES=ControlValue("TG_MES")
                         VSDGMES=AlinhM(VSDGMES,2)
                         If NumVal(VSDGMES) <= 0 Or NumVal(VSDGMES) > 12
                            Then MENSAGEM("Mes Informado nÆo ‚ V lido !")
                            Else Campo="TG_DTINI"
                         EndIf
                    Case Campo="TG_DTINI" :
                          If NumVal(VSDGDTINI) <= 0 Or NumVal(VSDGDTINI) > 31 Or VSDGDTINI =""
                             Then MENSAGEM("Dia Informado nÆo ‚ V lido !")
                             Else Campo="TG_DTFIM"
                          EndIf
                    Case Campo="TG_DTFIM" :
                          If NumVal(VSDGDTFIM) <= 0 Or NumVal(VSDGDTFIM) > 31
                             Then MENSAGEM("Dia Informado nÆo ‚ V lido !")
                             Else Campo="YES"
                          EndIf
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
   Case Campo="TG_MES":
     MSG_CAMPO="Informe o mes"
  Case Campo="TG_DTINI":
     MSG_CAMPO="Informe o dia Inicial"
  Case Campo="TG_DTFIM":
     MSG_CAMPO="Informe o dia Final"
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc


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

VSDGDTINI=""
VSDGDTFIM=""
VSDGDMES =""

While True

  ShowDialog "Rela‡„o de Aniversariantes" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 06,12   Height 09 Width 72

    Label  @ 00,00 "Mˆs Referente" For "TG_MES"
    Accept @ 01,01 Width 05 "A2"  Picture "#[#]" Tag "TG_MES" To VSDGMES

    Label  @ 02,00 "Per¡odo Dia de" For "TG_DTINI"
    Accept @ 03,01 Width 05 "A2"  Picture "#[#]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 03,06 "at‚" For "TG_DTFIM"
    Accept @ 03,11 Width 05 "A2"  Picture "#[#]" Tag "TG_DTFIM" To VSDGDTFIM

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  If IsBlank(VSDGDTINI)
     Then Mensagem("Dia Inicial Invalida !")
          Loop
  EndIf

  If IsBlank(VSDGDTFIM)
     Then Mensagem("Dia Final Invalida !")
          Loop
  EndIf

  DISPOSITIVO()
  If OK="" Then Loop EndIf

  AGUARDE("Aguarde, Gerando Relat¢rio")

  Seleciona()

  If IsEmpty("Answer")
     Then MENSAGEM("N„o Existem Registros a Processar")
          Loop
  EndIf

  IMPRIREL("Answer","R")

  Delete "Answer"

EndWhile
ClearAll
Release Vars All
Release Procs All

