;** P_Form ******************************************************************
;*  Configuracao de Paramentos p/ Formula                                      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 11/03/2015 por Luis Gustavo
;Ultima Alteracao: 27/04/2015 por Kamila Gomes
;Motivo Alteracao: Ajustes Dialog quando muda de S para N
;Ultima Alteracao: 03/03/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes usar no dialog Monta_Prompt(MSGCAMPO,TECLA)

;*******************************************************************************
;* 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
   Switch
      Case Evento["KeyCode"] = 9 Or
           Evento["KeyCode"] =-15:
           Temp=False

       Case Evento["KeyCode"] = -59:
            If Campo="I_EMPRESA"
               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
                    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]
                    EndSwitch
            EndIf
      Case (Evento["KeyCode"] = -6 Or Evento["KeyCode"] = -147):
            Confirma()
            If OK="S"
               Then Del
                    PARAM_OPCAO("Inicio")
                    Campo="I_ULTIMO_CCUSTO"
            EndIf

     Case Evento["KeyCode"] = 27:
           Switch
             Case Campo="I_ULTIMO_CUSTO":
                  CancelDialog
             Case Campo="I_EMPRESA"             :
                  CancelDialog
           EndSwitch

      Case Evento["KeyCode"] = 13: 
           Switch
             Case Campo="I_ULTIMO_CUSTO":
                  VSD_ULTIMO_CUSTO=ControlValue("I_ULTIMO_CUSTO")
                  If VSD_ULTIMO_CUSTO = "N"
                     Then If VSD_EMPRESA <> ""
                             Then ConfGeral("Deseja excluir a empresa padr„o ?")
                                  If OK="S"
                                     Then PARAM_OPCAO("Gravar")
                                     Else Campo="I_ULTIMO_CUSTO"
                                  EndIf
                             Else ConfGeral("Confirma novos parametros?")
                                 If OK="S"
                                     Then PARAM_OPCAO("Gravar")
                                     Else Moveto [Codigo_Empresa]
                                          Locate VSD_EMPRESA
                                          Del
                                  EndIf
                          EndIf        
                     Else If VSD_ULTIMO_CUSTO = "S"
                             Then Campo="I_EMPRESA"
                          EndIf
                  EndIf
             Case Campo="I_EMPRESA": 
                  VSD_EMPRESA=ControlValue("I_EMPRESA")
                  If IsBlank(VSD_EMPRESA)
                     Then Campo="I_EMPRESA"
                     Else 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"
                                  VSD_EMPRESA = [Codigo_Empresa]
                             Else KeyPress "ESC"
                                  ConfGeral("Confirma novos parametros?")
                                  If OK="S"
                                     Then PARAM_OPCAO("Gravar")
                                     Else Moveto [Codigo_Empresa]
                                          Locate VSD_EMPRESA
                                          Del
                                  EndIf
                          EndIf
                  EndIf
           EndSwitch
      Case Evento["KeyCode"] = -81:
            If Campo<>"I_ULTIMO_CUSTO"
              Then ConfGeral("Confirma novos parametros?")
                   If OK="S"
                      Then PARAM_OPCAO("Gravar")
                   EndIf
                   PARAM_OPCAO("Inicio")
                   Campo="I_EMPRESA"
           EndIf
   EndSwitch
EndIf

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

MSGCAMPO="Utiliza este recurso? Sim/N„o"

Switch
  Case Campo="I_EMPRESA"     :
       MSGCAMPO=" Codigo da Empresa Padr„o"
EndSwitch


Monta_Prompt(MSGCAMPO,TECLA)

Return TEMP
EndProc   ;(Param_Dialog)

;*******************************************************************************
;* Rotina Gravacao ou Leitura dos Parametros                                   *
;*******************************************************************************
Proc PARAM_OPCAO(OP)
Private OP3

Switch
  Case OP = "Gravar":
       [Ultimo_Custo   ] = VSD_ULTIMO_CUSTO
       If VSD_ULTIMO_CUSTO = "N"
          Then VSD_EMPRESA      = ""
       EndIf
       [Codigo_Empresa ] = VSD_EMPRESA
       UnLockRecord
       CancelDialog

  Case OP = "Inicio":
       VSD_EMPRESA       = [Codigo_Empresa ]
       VSD_ULTIMO_CUSTO  = [Ultimo_Custo   ]   
       
EndSwitch
EndProc   ; (Param_Opcao)

;*******************************************************************************
;* 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_Form"
INICIO_DIALOGO = True
PARAM_OPCAO("Inicio")

Showdialog "Configura‡„o Formula" Proc "Param_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","PGDN"
     @ 01,00 height 22 width 80
     
   Label  @ 01,01 "[    ] Busca ultimo custo na ficha de estoque" for "I_ULTIMO_CUSTO"
   Accept @ 01,03 Width 04 "A1" picture "S,N" Tag "I_ULTIMO_CUSTO" to VSD_ULTIMO_CUSTO

   Label  @ 03,09 " Empresa Padrao da Formula" for "I_EMPRESA"
   Accept @ 03,03 Width 07 "A4" picture "#*#" Tag "I_EMPRESA" to VSD_EMPRESA

   

Enddialog
Do_It!
ClearAll
Release Vars All
Release Procs All
