;** CONDUTOR *******************************************************************
;*  PROGRAMA DE CADASTRO DE CONDUTORES                                         *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 20/02/2014 por Andrey Fillipe
;Ultima Alteracao:   /  /     por                         
;Motivo Alteracao:                          

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
While True
  SetaCorRegistro("Editar")

  Moveto [Codigo do Condutor]
  End
  SEQ=[Codigo do Condutor]
  Down
  Moveto [CPF do Condutor]
  While True
    TECLA=""
    AguardaTeclasPadrao()
  
    Switch
    Case RetVal=-33 : SemFuncoes()
    Case RetVal="F3": SemFicha()
    Case RetVal=-94 : MsgTeclasPadrao()
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         While True
           PAGINA("Condutor","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
         QuitLoop
    Case Retval="ESC":
         CHAVE=9
         Del
         Return    
    Case RetVal="ENTER":       
         CGC=[]
         If IsBlank(CGC)                     Then Loop EndIf
         If Not Checa_CGC_CPF_Formatado(CGC) Then Loop EndIf
         Del
         Locate CGC
         If Retval
            Then CHAVE=0
            Else CHAVE=1
                 End Down
                [CPF do Condutor]=CGC
         EndIf
         Moveto [Codigo do Condutor]
         If CHAVE=1
            Then If IsBlank(SEQ)
                    Then []="1"
                    Else []=StrVal(NumVal(SEQ)+1)
                 EndIf
                 []=Alinh()
         EndIf
         
         If IsLockRecord()
            Then If CHAVE=1 Then Del EndIf
                 QuitLoop
         EndIf
         Return
    EndSwitch
  EndWhile
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITA()
Moveto [Nome do Condutor]
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()="Nome do Condutor"
          Then If QuerDesfazer("")
                  Then If CHAVE=1
                          Then Del
                          Else If RecordStatus("Modified")
                                  Then Undo
                               EndIf
                       EndIf
                       CHAVE=9
                       QuitLoop
               EndIf
          Else Left
       EndIf
  Case Retval="ENTER":   
       If IsBlank([])
          Then Loop
       EndIf
       QuitLoop
  Case Retval="FIELDVIEW" or Retval="F35":
       EDITFIELD()
  Case Retval="DEL":
       If CHAVE=0
          Then If QuerExcluir("")
                  Then DEL
                       QuitLoop
               EndIf
       EndIf
  EndSwitch
EndWhile
EndProc  ; (Digita)

;*******************************************************************************
;* 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 "Condutor"
PickForm "F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All