;** P_Exped *****************************************************************
;*  Configuracao de Paramentos p/ Expedi‡ao                                    *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 14/07/2015 por Kamila Gomes
;Ultima Alteracao: 03/03/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes usar no dialog Monta_Prompt(MSGCAMPO,TECLA)
;Ultima Alteracao: 10/05/2016 por Bruno Carvalho 
;Motivo Alteracao: Ajustes e adapta‡Æo de um novo layout  

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

TECLA   =""
MSGCAMPO=""
If INICIO_DIALOGO
   Then Campo=NewCampo
        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"] = -6 Or Evento["KeyCode"] = -147):
          If CHAVE=0
             Then Confirma()
                  If OK="S"
                     Then Del
                          Show_Tela=1
                          CancelDialog
                          Chave=9
                  EndIf
           EndIf
       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"] = 27:
          Switch
            Case Campo="I_EMPRESA"       :
                 Del          
                 Finalizar=True
                 CancelDialog
            Case Campo="I_AGRUPA"               : 
                 If Chave=1
                    Then Del  ; Registro Novo
                    Else Undo ; Registro Existente
                 EndIf
                 Chave=9
                 CancelDialog
            Case Campo="I_OPEXPED"              : Campo="I_AGRUPA"      
            Case Campo="I_SCRIPT_ETIQUETA"      : Campo="I_OPEXPED"
            Case Campo="I_SCRIPT_E_IMP_SIMPLES" : Campo="I_SCRIPT_ETIQUETA"
            Case Campo="I_SCRIPT_E_IMP_GRADE"   : Campo="I_SCRIPT_E_IMP_SIMPLES" 
            Case Campo="I_SCRIPT_E_IMP_GRDCOR"  : Campo="I_SCRIPT_E_IMP_GRADE"
            Case Campo="I_SCRIPT_P_IMP_SIMPLES" : Campo="I_SCRIPT_E_IMP_GRDCOR"  
            Case Campo="I_SCRIPT_P_IMP_GRADE"   : Campo="I_SCRIPT_P_IMP_SIMPLES"
            Case Campo="I_SCRIPT_P_IMP_GRDCOR"  : Campo="I_SCRIPT_P_IMP_GRADE"
          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"
                                  ChaveC()
                                  Campo="I_AGRUPA"
                          EndIf
                  EndIf
            Case Campo="I_AGRUPA"          : Campo="I_OPEXPED"
                 VSD_AGRUPA=ControlValue("I_AGRUPA")
                 If IsBlank(VSD_AGRUPA) Then VSD_AGRUPA = "N" EndIf
            Case Campo="I_OPEXPED"         : Campo="I_SCRIPT_ETIQUETA"
                 VSD_OPEXPED=ControlValue("I_OPEXPED")
                 If IsBlank(VSD_OPEXPED) Then VSD_OPEXPED = "G" EndIf                 
            Case Campo="I_SCRIPT_ETIQUETA" : Campo="I_SCRIPT_E_IMP_SIMPLES"
                 VSD_SCRIPT_ETIQUETA=ControlValue("I_SCRIPT_ETIQUETA")
                 
            Case Campo="I_SCRIPT_E_IMP_SIMPLES": Campo="I_SCRIPT_E_IMP_GRADE"
                 VSD_SCRIPT_E_IMP_SIMPLES=ControlValue("I_SCRIPT_E_IMP_SIMPLES")
            Case Campo="I_SCRIPT_E_IMP_GRADE" : Campo="I_SCRIPT_E_IMP_GRDCOR"
                 VSD_SCRIPT_E_IMP_GRADE=ControlValue("I_SCRIPT_E_IMP_GRADE")
            Case Campo="I_SCRIPT_E_IMP_GRDCOR":  Campo="I_SCRIPT_P_IMP_SIMPLES"
                 VSD_SCRIPT_E_IMP_GRDCOR=ControlValue("I_SCRIPT_E_IMP_GRDCOR")
                 
            Case Campo="I_SCRIPT_P_IMP_SIMPLES": Campo="I_SCRIPT_P_IMP_GRADE"
                 VSD_SCRIPT_P_IMP_SIMPLES=ControlValue("I_SCRIPT_P_IMP_SIMPLES")
            Case Campo="I_SCRIPT_P_IMP_GRADE"  : Campo="I_SCRIPT_P_IMP_GRDCOR"
                 VSD_SCRIPT_P_IMP_GRADE=ControlValue("I_SCRIPT_P_IMP_GRADE")
            Case Campo="I_SCRIPT_P_IMP_GRDCOR":
                 VSD_SCRIPT_P_IMP_GRDCOR=ControlValue("I_SCRIPT_P_IMP_GRDCOR")
                 ConfGeral("Confirma novos parametros?")
                 If OK="S"
                    Then PARAM_OPCAO("Gravar")
                    Else If Chave=1
                             Then Del   ; Registro Novo
                             Else Undo  ; Registro Existente
                          EndIf
                 EndIf
                 Chave=9
                 AcceptDialog
           EndSwitch
      Case Evento["KeyCode"] = -81:
           If Campo<>"I_EMPRESA"
              Then ConfGeral("Confirma novos parametros?")
                   If OK="S"
                      Then PARAM_OPCAO("Gravar")
                      Else If Chave=1
                              Then Del  ; Registro Novo
                              Else Undo ; Registro Existente
                           EndIf
                   EndIf
                   Chave=9
                   AcceptDialog
           EndIf
   EndSwitch
EndIf

TECLA=" Esc=Retornar  "

If Campo<>"I_EMPRESA" And Chave=0
   Then TECLA=TECLA+"Ctrl+Del=Excluir  PgDn=Finalizar  "
EndIf
MSGCAMPO="Utiliza este recurso? Sim/N„o"

Switch
  Case Campo="I_EMPRESA"               :
       MSGCAMPO="Codigo da Empresa Padr„o, [F1]Consultar tabela"
  Case Campo="I_AGRUPA"                : MSGCAMPO="Agrupa Itens? Sim/N„o"
  Case Campo="I_OPEXPED"               : MSGCAMPO="G=Por Grade  C=Por Item  R=Referˆncia"      
  Case Campo="I_SCRIPT_ETIQUETA"       : MSGCAMPO="Script de Etiqueta p/ Impressora T‚rmica"
  Case Campo="I_SCRIPT_E_IMP_SIMPLES"  : MSGCAMPO="Script p/ ImpressÆo Simples -> Em Expedi‡„o" 
  Case Campo="I_SCRIPT_E_IMP_GRADE"    : MSGCAMPO="Script p/ ImpressÆo Grade -> Em Expedi‡„o" 
  Case Campo="I_SCRIPT_E_IMP_GRDCOR"   : MSGCAMPO="Script p/ ImpressÆo Grade/Cor -> Em Expedi‡„o" 
  Case Campo="I_SCRIPT_P_IMP_SIMPLES"  : MSGCAMPO="Script p/ ImpressÆo Simples -> Pendente Expedi‡„o"     
  Case Campo="I_SCRIPT_P_IMP_GRADE"    : MSGCAMPO="Script p/ ImpressÆo Grade -> Pendente Expedi‡„o"    
  Case Campo="I_SCRIPT_P_IMP_GRDCOR"   : MSGCAMPO="Script p/ ImpressÆo Grade/Cor -> Pendente Expedi‡„o"    
EndSwitch
Monta_Prompt(MSGCAMPO,TECLA)

Return TEMP
EndProc   ;(Param_Dialog)


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

Switch
  Case OP = "Gravar":
       [Codigo_Empresa      ] = VSD_EMPRESA
       [Agrupa_Item         ] = VSD_AGRUPA
       [Tipo_Expedicao      ] = VSD_OPEXPED               
       [Script_Etiqueta     ] = VSD_SCRIPT_ETIQUETA     
       [Script_E_Imp_Simples] = VSD_SCRIPT_E_IMP_SIMPLES
       [Script_E_Imp_Grade  ] = VSD_SCRIPT_E_IMP_GRADE  
       [Script_E_Imp_GrdCor ] = VSD_SCRIPT_E_IMP_GRDCOR 
       [Script_P_Imp_Simples] = VSD_SCRIPT_P_IMP_SIMPLES
       [Script_P_Imp_Grade  ] = VSD_SCRIPT_P_IMP_GRADE  
       [Script_P_Imp_GrdCor ] = VSD_SCRIPT_P_IMP_GRDCOR
       
  Case OP = "Ler":
       VSD_EMPRESA              = [Codigo_Empresa]
       VSD_AGRUPA               = [Agrupa_Item]
       VSD_OPEXPED              = [Tipo_Expedicao]
       VSD_SCRIPT_ETIQUETA      = [Script_Etiqueta]     
       VSD_SCRIPT_E_IMP_SIMPLES = [Script_E_Imp_Simples]
       VSD_SCRIPT_E_IMP_GRADE   = [Script_E_Imp_Grade]    
       VSD_SCRIPT_E_IMP_GRDCOR  = [Script_E_Imp_GrdCor]
       VSD_SCRIPT_P_IMP_SIMPLES = [Script_P_Imp_Simples]
       VSD_SCRIPT_P_IMP_GRADE   = [Script_P_Imp_Grade]
       VSD_SCRIPT_P_IMP_GRDCOR  = [Script_P_Imp_GrdCor]
 
   Case OP = "Inicio":
       NewCampo            ="I_EMPRESA"
       Moveto [Codigo_Empresa]
       End Down
EndSwitch
EndProc   ; (Param_Opcao)

;*******************************************************************************
;* Rotina Localiza_Registro                                                    *
;*******************************************************************************
Proc ChaveC()

Moveto [Codigo_Empresa]
Del
Locate VSD_EMPRESA
If RetVal
   Then While True
          If Not IsLockRecord() Then QuitLoop EndIf
        EndWhile
        Chave=0
        PARAM_OPCAO("Ler")
   Else Chave=1
        End Down
        [Codigo_Empresa]=VSD_EMPRESA
        PARAM_OPCAO("Inicio")
EndIf

EndProc  ; (Chave)

;*******************************************************************************
;* Rotina Primeira Tela                                                        *
;*******************************************************************************
Proc Processo_Dialog()

INICIO_DIALOGO=True

Showdialog "Parƒmetro p/ Expedi‡„o" Proc "Param_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","PGDN"
     @ 10,10 height 22 width 80     

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

   Label  @ 03,01 "[    ] Agrupar Itens ao Faturar" For "I_AGRUPA"
   Accept @ 03,03 Width 04 "A1" picture "S,N" Tag "I_AGRUPA" to VSD_AGRUPA
   
   Label  @ 04,01 "[    ] Tipo de Expedi‡Æo" for "I_OPEXPED"
   Accept @ 04,03 Width 04 "A1" picture "G,C,R" Tag "I_OPEXPED" to VSD_OPEXPED   
   
   Label  @ 05,01 "[           ] Script Etiqueta" For "I_SCRIPT_ETIQUETA"
   Accept @ 05,03 Width 11 "A8" picture "!*!" Tag "I_SCRIPT_ETIQUETA" to VSD_SCRIPT_ETIQUETA
   
   @ 09,02 ?? "Script: Em Expedi‡„o"
   @ 12,02 ?? "Script: Pendente Expedi‡„o"  
   
   Label  @ 08,01 "[           ] Impress„o Simples" For "I_SCRIPT_E_IMP_SIMPLES"
   Accept @ 08,03 Width 11 "A8" picture "!*!" Tag "I_SCRIPT_E_IMP_SIMPLES" to VSD_SCRIPT_E_IMP_SIMPLES

   Label  @ 09,01 "[           ] Impress„o Grade" For "I_SCRIPT_E_IMP_GRADE"
   Accept @ 09,03 Width 11 "A8" picture "!*!" Tag "I_SCRIPT_E_IMP_GRADE" to VSD_SCRIPT_E_IMP_GRADE
   
   Label  @ 10,01 "[           ] Impress„o Grade/Cor" For "I_SCRIPT_E_IMP_GRDCOR"
   Accept @ 10,03 Width 11 "A8" picture "!*!" Tag "I_SCRIPT_E_IMP_GRDCOR" to VSD_SCRIPT_E_IMP_GRDCOR
   
   Label  @ 13,01 "[           ] Impress„o Simples" For "I_SCRIPT_P_IMP_SIMPLES"
   Accept @ 13,03 Width 11 "A8" picture "!*!" Tag "I_SCRIPT_P_IMP_SIMPLES" to VSD_SCRIPT_P_IMP_SIMPLES

   Label  @ 14,01 "[           ] Impress„o Grade" For "I_SCRIPT_P_IMP_GRADE"
   Accept @ 14,03 Width 11 "A8" picture "!*!" Tag "I_SCRIPT_P_IMP_GRADE" to VSD_SCRIPT_P_IMP_GRADE
   
   Label  @ 15,01 "[           ] Impress„o Grade/Cor" For "I_SCRIPT_P_IMP_GRDCOR"
   Accept @ 15,03 Width 11 "A8" picture "!*!" Tag "I_SCRIPT_P_IMP_GRDCOR" to VSD_SCRIPT_P_IMP_GRDCOR   
Enddialog

EndProc ;(PriTela)

;*******************************************************************************
;* 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 "P_Exped"
Chave=9
Finalizar=False

While Not Finalizar
  If Chave=9
     Then PARAM_OPCAO("Inicio") ;Cria Registro Novo
          PARAM_OPCAO("Ler")    ;Limpa Tela
  EndIf
  Processo_Dialog()
  If Finalizar Then QuitLoop EndIf
  If Chave=9   Then     Loop EndIf
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
