;** P_Oc ***********************************************************************
;*  Configuracao de Paramentos p/ Pedido de Compra                             *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 26/09/2001 por Douglas Rodrigues
;Ultima Alteracao: 07/01/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Conta/Atual.CtaPag
;Ultima Alteracao: 17/06/2011 por Karina Andrade
;Motivo Alteracao: Ajustes TECLAS
;Ultima Alteracao: 22/04/2014 por Luis Gustavo
;Motivo Alteracao: Inclusao Script Ordem de Compra
;Ultima Alteracao: 03/03/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes usar no dialog Monta_Prompt(MSGCAMPO,TECLA)
;Ultima Alteracao: 03/03/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes tirar sombra janela e layout
;Ultima Alteracao: 31/01/2020 por Bruno Carvalho
;Motivo Alteracao: Adicionado dois parƒmetros "Origem do Pre‡o Unit rio" e "Altera Pre‡o Unit rio" 

;*******************************************************************************
;* 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"] = -6 Or Evento["KeyCode"] = -147):
          If CHAVE=0
             Then Confirma()
                  If OK="S"
                     Then Del
                          PARAM_OPCAO("Inicio")
                          Campo="I_EMPRESA"
                  EndIf
           EndIf
      Case Evento["KeyCode"] = 9:
           Temp=False
       Case Evento["KeyCode"] = -59:
            If Campo="I_EMPRESA" Or
               Campo="I_TRANSPORTADORA" Or
               Campo="I_CONTA_CAIXA"
               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_TRANSPORTADORA" Then Moveto [Codigo_Transportadora] EndIf
                    If Campo="I_CONTA_CAIXA"    Then Moveto [Codigo_Conta_Caixa   ] 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_TRANSPORTADORA":
                           VSD_TRANSPORTADORA=[Codigo_Transportadora]
                      Case Campo="I_CONTA_CAIXA":
                           VSD_CONTA_CAIXA=[Codigo_Conta_Caixa]
                    EndSwitch
           EndIf
      Case Evento["KeyCode"] = 27:
           Switch
             Case Campo="I_EMPRESA"             :
                  If IsBlank([Codigo_Empresa])
                     Then Del
                  EndIf
                  Home
                  If IsBlank([Codigo_Empresa])
                     Then Del
                  EndIf
                  CancelDialog
             Case Campo="I_TRANSPORTADORA":
                  If Chave=1
                     Then Moveto [Codigo_Empresa]
                          Locate VSD_EMPRESA
                          Del
                  EndIf
                  PARAM_OPCAO("Inicio")
                  Campo="I_EMPRESA"

             Case Campo="I_CONTA_CAIXA"   : Campo="I_TRANSPORTADORA"
             Case Campo="I_DATAS_VENCTOS" : Campo="I_CONTA_CAIXA"
             Case Campo="I_ATU_CAPG"      : Campo="I_DATAS_VENCTOS"
             Case Campo="I_OC"            : Campo="I_ATU_CAPG"
             Case Campo="I_ORIGEM_PRECO"  : Campo="I_OC"              
             Case Campo="I_ALTERA_PRECO"  : Campo="I_ORIGEM_PRECO"
             Case Campo="I_FLAG"          : Campo="I_ALTERA_PRECO"
           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_TRANSPORTADORA"
                          EndIf
                  EndIf
             Case Campo="I_TRANSPORTADORA":
                  VSD_TRANSPORTADORA=ControlValue("I_TRANSPORTADORA")
                  If Not IsBlank(VSD_TRANSPORTADORA)
                     Then VSD_TRANSPORTADORA=Alinhm(VSD_TRANSPORTADORA,4)
                          Moveto [Codigo_Transportadora]
                          Ativa_Lookup()
                          Moveto [Codigo da Transportadora]
                          Locate VSD_TRANSPORTADORA
                          If RetVal
                             Then Campo="I_CONTA_CAIXA"
                             Else Mensagem("Transportadora n„o Cadastrada !")
                          EndIf
                          KeyPress "ESC"
                     Else Campo="I_CONTA_CAIXA"
                  EndIf
             Case Campo="I_CONTA_CAIXA":
                  VSD_CONTA_CAIXA=ControlValue("I_CONTA_CAIXA")
                  If Not IsBlank(VSD_CONTA_CAIXA)
                     Then Moveto [Codigo_Conta_Caixa]
                          Ativa_Lookup()
                          Moveto [Codigo da Conta]
                          Locate VSD_CONTA_CAIXA
                          If RetVal
                             Then EMPRESA=[Codigo da Empresa]
                                  KeyPress "Esc"
                                  If [Codigo_Empresa]<>EMPRESA
                                     Then Mensagem("Conta nÆo configurada para Empresa")
                                          VSD_CONTA_CAIXA=""
                                     Else Campo= "I_DATAS_VENCTOS"
                                  EndIf
                             Else Mensagem("Conta n„o Cadastrada !")
                                  KeyPress "ESC"
                                  VSD_CONTA_CAIXA=""
                          EndIf
                     Else Campo= "I_DATAS_VENCTOS"
                  EndIf
             Case Campo="I_DATAS_VENCTOS":
                  VSD_DATAS_VENCTOS=ControlValue("I_DATAS_VENCTOS")
                  If IsBlank(VSD_DATAS_VENCTOS)
                     Then VSD_DATAS_VENCTOS="C"
                  EndIf
                  Campo="I_ATU_CAPG"
             Case Campo="I_ATU_CAPG":
                  VSD_ATU_CAPG=ControlValue("I_ATU_CAPG")
                  If IsBlank(VSD_ATU_CAPG)
                     Then VSD_ATU_CAPG="N"
                  EndIf
                  Campo="I_OC"
             Case Campo="I_OC":
                  VSD_OC=ControlValue("I_OC")
                  Campo="I_ORIGEM_PRECO"
             Case Campo="I_ORIGEM_PRECO":
                  VSD_ORIGEM_PRECO=ControlValue("I_ORIGEM_PRECO")
                  If IsBlank(VSD_ORIGEM_PRECO)
                     Then VSD_ORIGEM_PRECO="U"
                  EndIf
                  Campo="I_ALTERA_PRECO"                  
             Case Campo="I_ALTERA_PRECO":
                  VSD_ALTERA_PRECO=ControlValue("I_ALTERA_PRECO")
                  If IsBlank(VSD_ALTERA_PRECO)
                     Then VSD_ALTERA_PRECO="S"
                  EndIf
                  Campo="I_FLAG"
             Case Campo="I_FLAG" :
                  Campo="I_EMPRESA"
                  ConfGeral("Confirma novos parametros?")
                  If OK="S"
                     Then PARAM_OPCAO("Gravar")
                     Else If Chave=1
                             Then Moveto [Codigo_Empresa]
                                  Locate VSD_EMPRESA
                                  Del
                          EndIf
                  EndIf
                  PARAM_OPCAO("Inicio")                                                                                                                                                                                                                                                                                                                                                                                          
           EndSwitch
      Case Evento["KeyCode"] = -81:
           If Campo<>"I_EMPRESA" And Chave=0
              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"        Or
   Campo="I_TRANSPORTADORA" Or
   Campo="I_CONTA_CAIXA"   
   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="Utiliza este recurso? Sim/N„o"
Switch
  Case Campo="I_ORIGEM_PRECO" :
       MSGCAMPO="Origem do Pre‡o Unit rio: U=Ultima Compra  C=Cota‡Æo  D=Data Recente"
  Case Campo="I_ALTERA_PRECO" : 
       MSGCAMPO="Utiliza Altera‡„o do Pre‡o Unitario do Item? Sim/N„o/Permiss„o" 
  Case Campo="I_FLAG"  :
       MSGCAMPO="ENTER=Confirmar"
  Case Campo="I_EMPRESA":
       MSGCAMPO="Codigo da Empresa Padr„o"
  Case Campo="I_TRANSPORTADORA":
       MSGCAMPO="Codigo da Transportadora Padr„o"
  Case Campo="I_DATAS_VENCTOS":
       MSGCAMPO="Data dos vencimentos c/ dias? Fixo/Continuo"
  Case Campo="I_CONTA_CAIXA":
       MSGCAMPO="Codigo da Conta Caixa Padr„o"
  Case Campo="I_OC":
       MSGCAMPO="Informe o Script para Impressao da Ordem de Compra"
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":
       Moveto [Codigo_Empresa]
       Locate VSD_EMPRESA
       [Codigo_Transportadora    ] = VSD_TRANSPORTADORA
       [Datas_Vencimentos        ] = VSD_DATAS_VENCTOS
       [Codigo_Conta_Caixa       ] = VSD_CONTA_CAIXA
       [Atualiza_Contas_Pagar    ] = VSD_ATU_CAPG
       [Script_Impressao         ] = VSD_OC
       [Origem_Preco_Unitario    ] = VSD_ORIGEM_PRECO
       [Alterar_Preco_Unitario   ] = VSD_ALTERA_PRECO              
       UnLockRecord

  Case OP = "Ler":
       VSD_EMPRESA       =[Codigo_Empresa           ]
       VSD_TRANSPORTADORA=[Codigo_Transportadora    ]
       VSD_DATAS_VENCTOS =[Datas_Vencimentos        ]
       VSD_CONTA_CAIXA   =[Codigo_Conta_Caixa       ]
       VSD_ATU_CAPG      =[Atualiza_Contas_Pagar    ]
       VSD_OC            =[Script_Impressao         ]    
       VSD_ORIGEM_PRECO  =[Origem_Preco_Unitario    ]
       VSD_ALTERA_PRECO  =[Alterar_Preco_Unitario   ]              

  Case OP = "Inicio":
       VSD_TRANSPORTADORA=""
       VSD_DATAS_VENCTOS =""
       VSD_CONTA_CAIXA   =""
       VSD_ATU_CAPG      =""
       VSD_OC            =""      
       VSD_ORIGEM_PRECO  =""
       VSD_ALTERA_PRECO  =""
EndSwitch
If OP<>"Ler" Then Posiciona() EndIf
EndProc   ; (Param_Opcao)

;*******************************************************************************
;* 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
        PARAM_OPCAO("Ler")
   Else Chave=1
        End Down
        [Codigo_Empresa]=VSD_EMPRESA
        PARAM_OPCAO("Inicio")
EndIf

EndProc  ; (Chave)

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

;*******************************************************************************
;* 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_Oc"
Chave=8
INICIO_DIALOGO=True
PARAM_OPCAO("Inicio")
Posiciona()

Showdialog "Configura‡„o Pedido de Compra" 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,10 "Transportadora" for "I_TRANSPORTADORA"
   Accept @ 01,11 Width 07 "A4" picture "#*#" Tag "I_TRANSPORTADORA" to VSD_TRANSPORTADORA

   Label  @ 00,24 "Conta Caixa" for "I_CONTA_CAIXA"
   Accept @ 01,25 Width 07 "A4" picture "#*#" Tag "I_CONTA_CAIXA" to VSD_CONTA_CAIXA

   Label  @ 03,00 "[    ] Data Vencimento" for "I_DATAS_VENCTOS"
   Accept @ 03,02 Width 04 "A1" picture "F,C" Tag "I_DATAS_VENCTOS" to VSD_DATAS_VENCTOS

   Label  @ 04,00 "[    ] Atualizar Contas a Pagar" for "I_ATU_CAPG"
   Accept @ 04,02 Width 04 "A1" picture "S,N" Tag "I_ATU_CAPG" to VSD_ATU_CAPG
 
   Label  @ 05,00 "[          ] Script Ordem de Compra" for "I_OC"
   Accept @ 05,02 Width 10 "A8" picture "!*!" Tag "I_OC" to VSD_OC
   
   Label  @ 06,00 "[    ] Origem do Pre‡o Unit rio" for "I_ORIGEM_PRECO"
   Accept @ 06,02 Width 04 "A1" picture "U,C,D" Tag "I_ORIGEM_PRECO" to VSD_ORIGEM_PRECO      
   
   Label  @ 07,00 "" for "I_FLAG"
   Accept @ 07,02 Width 04 "A1" picture "!*!" Tag "I_FLAG" to VSD_FLAG
   
   Label  @ 07,00 "[    ] Altera Pre‡o Unit rio" for "I_ALTERA_PRECO"
   Accept @ 07,02 Width 04 "A1" picture "S,N,P" Tag "I_ALTERA_PRECO" to VSD_ALTERA_PRECO
         
Enddialog
Do_It!
ClearAll
Release Vars All
Release Procs All

