;** P_SW ***********************************************************************
;*  Configuracao de Paramentos p/ Consulta Estoque - SW_CONS                   *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 19/08/2014 por Bruno Carvalho
;Ultima Alteracao: 03/03/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes tirar sombra janela e layout
;Ultima Alteracao: 08/06/2016 por Bruno Carvalho
;Motivo Alteracao: Adicionado N£mero de Meses -> "I_MES_QTD" e removido intervalo de per¡odo para consulta de mˆs e VSD_MES_FECHADO

;*******************************************************************************
;* Rotina de Controle de Paramentros                                           *
;*******************************************************************************
Proc PARAM_DIALOG(Disparo,Campo,Evento,Elemento)
Temp=True

TECLA   =""
MSGCAMPO=""

If INICIO_DIALOGO
   Then INICIO_DIALOGO=False
EndIf

If Disparo="OPEN"
   Then AoCriarShowDialog()
        TiraSombraShowDialog()
EndIf

If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then
   Temp=False
   Switch
       Case Evento["KeyCode"] = -59:
            If Campo="I_EMPRESA" Or
               Campo="I_TABELA_PRECO" 
               Then Dynarray WinArray5[]
                    Window Handle Dialog to JANELA
                    Window GetAttributes JANELA To WinArray5
                    WinArray5["FLOATING"]=False
                    Window SetAttributes JANELA From WinArray5

                    If Campo="I_EMPRESA"      Then Moveto [Codigo_Empresa] EndIf
                    If Campo="I_TABELA_PRECO" Then Moveto [Tabela_Preco]   EndIf
                    ConsultaF1()

                    Window Select JANELA
                    WinArray5["FLOATING"]=True
                    Window SetAttributes JANELA From WinArray5

                    Echo Normal
                    Echo Off

                    Switch
                      Case Campo="I_EMPRESA":
                           VSD_EMPRESA=[Codigo_Empresa]
                      Case Campo="I_TABELA_PRECO":
                           VSD_TABELA_PRECO=[Tabela_Preco]
                    EndSwitch
           EndIf
      Case (Evento["KeyCode"] = -6 Or Evento["KeyCode"] = -147):
           If CHAVE=0
              Then If QuerExcluir("")
                      Then Del
                           CancelDialog
                   EndIf
           EndIf
      Case Evento["KeyCode"] = -81: 
           If Campo<>"I_EMPRESA" And Chave=0
              then 
                   ConfirmaGravar()
           EndIf
              
      Case Evento["KeyCode"] = 27:
           Switch
             Case Campo="I_EMPRESA"             :
                  If IsBlank([Codigo_Empresa])
                     Then Del
                  EndIf
                  CHAVE=9
                  CancelDialog
             Case Campo="I_TABELA_PRECO"      : Campo="I_EMPRESA"
                  If QuerDesfazer("")
                     Then
                          If Chave=1
                             Then Del  ; Registro Novo
                                  CancelDialog
                             Else Undo ; Registro Existente
                                  CancelDialog
                          EndIf   
                  EndIf   
                                    
             Case Campo="I_MOSTRA_COMPRAS"    : Campo="I_TABELA_PRECO"
             Case Campo="I_MES_QTD"           : Campo="I_MOSTRA_COMPRAS"
             Case Campo="I_FLAG"              : Campo="I_MES_QTD"
           EndSwitch
      Case Evento["KeyCode"] = 13:
           Switch
             Case Campo="I_EMPRESA":
                  VSD_EMPRESA=ControlValue("I_EMPRESA")
                  If Not IsBlank(VSD_EMPRESA)
                     Then VSD_EMPRESA=Alinhm(VSD_EMPRESA,4)
                          Moveto [Codigo_Empresa]
                          Ativa_Lookup()
                          Locate VSD_EMPRESA
                          If Not RetVal
                             Then Mensagem("Codigo n„o Cadastrado !")
                                  KeyPress "ESC"
                             Else VSD_EMPRESA=[Codigo da Empresa]
                                  KeyPress "ESC"
                                  Chave()
                                  Campo= "I_TABELA_PRECO"
                          EndIf
                  EndIf           
             Case Campo="I_TABELA_PRECO":
                  VSD_TABELA_PRECO=ControlValue("I_TABELA_PRECO")
                  If Not IsBlank(VSD_TABELA_PRECO)
                     Then Moveto [Tabela_Preco]
                          Ativa_Lookup()
                          Moveto [Codigo da Tabela]
                          Locate VSD_TABELA_PRECO
                          If RetVal
                             Then Campo= "I_MOSTRA_COMPRAS"
                             Else Mensagem("Tabela de Pre‡o n„o Cadastrada !")
                          EndIf
                          KeyPress "ESC"
                     Else Campo= "I_MOSTRA_COMPRAS"
                  EndIf
             Case Campo="I_MOSTRA_COMPRAS" : Campo= "I_MES_QTD"
                  VSD_MOSTRA_COMPRAS=ControlValue("I_MOSTRA_COMPRAS")
                  If IsBlank(VSD_MOSTRA_COMPRAS)
                     Then VSD_MOSTRA_COMPRAS="N"
                  EndIf
             Case Campo="I_MES_QTD" : Campo="I_FLAG"
                  VSD_MES_QTD = ControlValue("I_MES_QTD")      
                  If VSD_MES_QTD=BlankNum()
                     Then VSD_MES_QTD = 0
                  EndIf
             Case Campo="I_FLAG" :   
                  VSDG_FLAG = ControlValue("I_FLAG")
                  VSDG_FLAG = ""
                  AcceptDialog
                  ConfirmaGravar()
									
           EndSwitch
   EndSwitch
EndIf

TECLA="//Esc=Retornar  "
If Campo="I_EMPRESA"        Or
   Campo="I_TABELA_PRECO"   
   Then TECLA=TECLA+"F1=Tabelas  "
   Else TECLA=TECLA+"            "
EndIf

If Campo<>"I_EMPRESA" And Chave=0
   Then TECLA=TECLA+"Ctrl+Del=Excluir  PgDn=Finalizar  "
EndIf

MSGCAMPO="Sim/N„o"
Switch
  Case Campo="I_EMPRESA":
       MSGCAMPO="Codigo da Empresa Padr„o"
  Case Campo="I_TABELA_PRECO":
       MSGCAMPO="Codigo da Tabela de Preco Padr„o"
  Case Campo="I_MOSTRA_COMPRAS":
       MSGCAMPO="Mostra todas as compras realizadas? Sim/N„o"
  Case Campo="I_MES_QTD" :
       MSGCAMPO="Informe o numero de meses (ultimos) para consulta de mˆs fechado"      
  Case Campo="I_FLAG" :
       MSGCAMPO="Pausa"
EndSwitch 

Monta_Prompt(MSGCAMPO,TECLA)

Return TEMP
EndProc   ;(Param_Dialog)

;*******************************************************************************
;* Rotina Localiza_Registro                                                    *
;*******************************************************************************
Proc Chave()
Moveto [Codigo_Empresa]
Del
Locate VSD_EMPRESA
If RetVal
   Then While True
          If Not IsLockRecord() Then QuitLoop EndIf
        EndWhile
        CHAVE=0
   Else CHAVE=1
        End Down
        [Codigo_Empresa]=VSD_EMPRESA
EndIf
PARAM_OPCAO("Ler")
EndProc  ; (Chave)

;*******************************************************************************
;* Rotina para Verificar Parametros                                            *
;*******************************************************************************
Proc Verifica()
WV=True

VSD_TABELA_PRECO  = ControlValue("I_TABELA_PRECO")
VSD_MOSTRA_COMPRAS= ControlValue("I_MOSTRA_COMPRAS")
VSD_MES_QTD       = ControlValue("I_MES_QTD")

Return WV

EndProc ; (Verifica)

;*******************************************************************************
;* Rotina Gravacao ou Leitura dos Parametros                                   *
;*******************************************************************************
Proc PARAM_OPCAO(OP)
Private OP
Switch
  Case OP = "Gravar":
       [Codigo_Empresa          ] = VSD_EMPRESA
       [Tabela_Preco            ] = VSD_TABELA_PRECO
       [Mostra_Compras          ] = VSD_MOSTRA_COMPRAS
       [Numero_Mes_Data_Pesquisa] = VSD_MES_QTD
       UnLockRecord

  Case OP = "Ler":
       VSD_TABELA_PRECO       = [Tabela_Preco        ]
       VSD_MOSTRA_COMPRAS     = [Mostra_Compras      ]
       VSD_MES_QTD            = [Numero_Mes_Data_Pesquisa] 
       
   Case OP = "Inicio":
       VSD_EMPRESA        = ""
       VSD_TABELA_PRECO   = ""
       VSD_MOSTRA_COMPRAS = ""
       VSDG_FLAG          = ""
       VSD_MES_QTD        = BlankNum()
       
EndSwitch
EndProc   ; (Param_Opcao)

;*******************************************************************************
;* Rotina para posicionar registro                                             *
;*******************************************************************************
Proc Posiciona()
If IsBlank([Codigo_Empresa])
   Then Del
EndIf
Moveto [Codigo_Empresa]
End Down
EndProc    ;  (Posiciona)

;*******************************************************************************
;* Rotina Gravacao dos dados                                                   *
;*******************************************************************************
Proc ConfirmaGravar()

if verifica()
   then 
        If ConfGeral("Confirma novos parametros?")
           Then PARAM_OPCAO("Gravar")
        EndIf
        AcceptDialog
endif    

endproc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Autolib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"
If Not IsAssigned(SYS_EMPRESA_DEFAULT) Then SYS_EMPRESA_DEFAULT="" EndIf

VSD_EMPRESA=SYS_EMPRESA_DEFAULT
If Not Checa_Supervisor()
   Then Return
EndIf

CoEdit NoWindow "P_SW"
While True
  INICIO_DIALOGO  = True
  Posiciona()
  PARAM_OPCAO("Ler")

  Showdialog "Configura‡Æo Consulta Estoque" Proc "Param_Dialog"
     Trigger "OPEN","ARRIVE"
      Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","PGDN"
       @ 01,00 height 22 width 80

     Label  @ 00,00 "Empresa" for "I_EMPRESA"
     Accept @ 01,01 Width 07 "A4" picture "#*#" Tag "I_EMPRESA" to VSD_EMPRESA

     Label  @ 00,09 "Tabela Pre‡o" for "I_TABELA_PRECO"
     Accept @ 01,10 Width 08 "A5" picture "#*#" Tag "I_TABELA_PRECO" to VSD_TABELA_PRECO

     Label  @ 03,00 "[    ] Mostrar todas as compras" for "I_MOSTRA_COMPRAS"
     Accept @ 03,02 Width 04 "A1" picture "S,N" Tag "I_MOSTRA_COMPRAS" to VSD_MOSTRA_COMPRAS
     
     Label  @ 04,00 "[    ] Numero dos ultimos mˆses p/ consulta" for "I_MES_QTD"
     Accept @ 04,02 Width 04 "N" Tag "I_MES_QTD" to VSD_MES_QTD

     Label  @ 04,45 "" for "I_FLAG"
     Accept @ 04,46 Width 01 "A1" Picture "U" Tag "I_FLAG" to VSDG_FLAG

  Enddialog
  If Not RetVal
     Then If CHAVE=9 Then QuitLoop EndIf
  EndIf
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
