;** Gerencia *******************************************************************
;*  Cadastro de Gerencias                                                      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 12/06/2014 por Andrey Fillipe
;Ultima Alteracao:   /  /     por                         
;Motivo Alteracao:                            

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()

While True
  SetaCorRegistro("Editar")
  End
  SEQ=[Codigo da Gerencia]
  Down
  Moveto [Codigo da Gerencia]

  TECLA=""
  AguardaTeclasPadrao()

  If Retval=-33
     Then
       ShowPopup " Fun‡”es " CENTERED
        "1-Descri‡Æo da Gerˆncia" : " Aplicar altera‡„o da Descri‡„o para todos os Representantes" : "F5",
        "~C~ancelar            " : " Cancelar a Opera‡„o"                                         : "CANCELAR"
       EndMenu
        To MenuVar
       echo off
     
       If MenuVar="CANCELAR" or MenuVar="Esc"
          Then Loop
       EndIf
       RetVal=MenuVar
  EndIf
  
  Switch
    Case RetVal="F5":
         ConfGeral("Aplicar as altera‡”es das descri‡äes no cadastro de Representantes ?")
         If Ok="S"
            Then Atualiza_Representantes()
                 Loop
         EndIf
    Case RetVal="F3": SemFicha()
    Case RetVal=-94 : MsgTeclasPadrao()
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         While True
           PAGINA("Gerencia","MR")
           If EDITAR="S"
              Then CHAVE=0
                   Controla_EdicaoC()
              Else If EXCLUIR="S"
                      Then If QuerExcluir("")
                              Then DEL
                              Else UnLOckRecord
                           EndIf
                      Else QuitLoop     
                   EndIf
           EndIf
           SetaPosForm()
         EndWhile
    Case Retval="ESC":
         CHAVE=9
         Del
         QuitLoop
    Case RetVal="ENTER":
         If IsBlank([])
            Then If IsBlank(SEQ)
                    Then []="1"
                    Else []=StrVal(NumVal(SEQ)+1)
                 EndIf
         EndIf
         []=Alinh()
         CODIGO=[]
         Del
         Locate CODIGO
         If Retval
            Then CHAVE=0
            Else CHAVE=1
                 End Down
                 [Codigo da Gerencia]=CODIGO
         EndIf
         If IsLockRecord()
            Then Loop
         EndIf
         Quitloop
  EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITA()
Moveto [Descricao Gerencia]
While True

      TECLA=" Esc=Retornar  "

      If CHAVE=0
         Then TECLA=TECLA+"Del=Excluir  "
      EndIf

      Prompt TECLA
      SetaCorRegistro("Editando")
      Wait Field
           Until "ESC","ENTER","DEL","FIELDVIEW","F35"

      Switch
      Case Retval="ESC":
           If Field()="Descricao Gerencia"
              Then If QuerDesfazer("")
                      Then If CHAVE=1
                              Then Del
                              Else Undo
                           EndIf
                           CHAVE=9
                           QuitLoop
                   EndIf
              Else Left
           EndIf
      Case Retval="ENTER":
           If IsBlank([])
              Then Loop
           EndIf
           If Field() = "Descricao Gerencia"
              Then QuitLoop
              Else Right
           EndIf
      Case Retval="FIELDVIEW" or Retval="F35":
           EDITFIELD()
      Case Retval="DEL":
           If CHAVE=0
              Then If QuerExcluir("")
                      Then DEL
                           QuitLoop
                   EndIf
           EndIf
      EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Atualizar Itens                                                 *
;*******************************************************************************
Proc Atualiza_Representantes()
Private codant, codok, cod

Do_It!
ClearAll

codant="****"

NR = NRecords("Represen")
CoEdit "Represen"
Moveto [Codigo da Gerencia]
Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Atualizando Representantes "+BARRA_STRING)

  If [Codigo da Gerencia]<>codant
     Then codant=[Codigo da Gerencia]
          If Busca_Lookup("Codigo da Gerencia",[Codigo da Gerencia],"SM")
             Then codok=true
             Else codok=false
          EndIf
  EndIf
  If codok
     Then cod=[Codigo da Gerencia]
          [Codigo da Gerencia]=""
          [Codigo da Gerencia]=cod
  EndIf        

EndScan
Do_It!
ClearAll

CoEdit "Gerencia"
PickForm "F"

FastMsg("Fim do processo")
EndProc

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
DIGITA()
If RecordStatus("Locked") Then UnLockRecord EndIf         
EndProc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"
CoEdit "Gerencia"
PickForm "F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
