;** Familia ********************************************************************
;*  Manutencao Cadastro de Familia                                             *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/12/1995 por Anivel Augusto Rodrigues
;Ultima Alteracao: 20/06/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Atualiza_Itens()
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 03/01/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas   
;Ultima Alteracao: 10/01/2012 por Karina Andrade
;Motivo Alteracao: Ajustes Atualiza_Itens()
;Ultima Alteracao: 10/04/2012 por Karina Andrade
;Motivo Alteracao: Ajustes Atualiza_Itens()
;Ultima Alteracao: 01/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SetaCorRegistro("Editando") 

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
Moveto [Codigo da Familia]
End
SEQ = [Codigo da Familia]
Down

While true
  SetaCorRegistro("Editar")

  TECLA="F5=Atualiza Itens  "
  AguardaTeclasPadrao()

   Switch
      Case RetVal=-33 : SemFuncoes()
      Case RetVal="F3": SemFicha()
      Case RetVal="F5":
           ConfGeral("Aplicar as altera‡”es no cadastro de Itens ?")
           If Ok="S"
            Then Atualiza_Itens()
                 CHAVE=9
                 Quitloop
           EndIf
      Case RetVal=-94 : MsgTeclasPadrao()
      Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
           While True
             PAGINA("Familia","MR")
             If EDITAR="S"
                Then CHAVE=0
                     Controla_EdicaoC()
                Else If EXCLUIR="S"
                        then If QuerExcluir("")
                                Then Del
                                Else UnLockRecord
                             EndIf
                        Else Moveto [Codigo da Familia]
                             End
                             SEQ = [Codigo da Familia]
                             Down
                             QuitLoop
                     EndIf
             EndIf
             SetaPosForm()
           EndWhile
      Case Retval="ESC":
           CHAVE=9
           Del
           QuitLoop
      Case Retval="ENTER":
           If IsBlank([])
              Then If IsBlank(SEQ)
                      Then SEQ="1"
                      Else SEQ=StrVal(NumVal(SEQ)+1)
                    EndIf
                    []=SEQ
           EndIf
           []=ALINH()
           CODIGO=[]
           Del
           Locate CODIGO
           If Retval
              Then CHAVE=0
              Else CHAVE=1
                   End Down
                   [Codigo da Familia]=CODIGO
           EndIf
           If IsLockRecord()
              Then End
                   SEQ=[Codigo da Familia]
                   Down
                   Moveto [Codigo da Familia]
           EndIf
           Quitloop
      EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITA()

Moveto [Descricao da Familia]
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":
       Switch
             Case Field()="Descricao da Familia":
                  If QuerDesfazer("")
                     Then If CHAVE=1
                             Then DEL
                             Else Undo
                          Endif
                          CHAVE=9
                          QuitLoop
                  EndIf
             Case Field()="Conta Contabil":
                  Left
       EndSwitch
  Case Retval="ENTER":
       Switch
             Case Field()="Descricao da Familia":
                  Moveto [Conta Contabil]
             Case Field()="Conta Contabil":
                  QuitLoop
                  Right
       EndSwitch
  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_Itens()

Do_It!
ClearAll

NR = NRecords("Itens")
CoEdit "Itens"
Moveto [Codigo da Familia]
Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Atualizando Itens "+BARRA_STRING)
  If Busca_Lookup("Codigo da Familia",[Codigo da Familia],"SM")
     Then cod=[Codigo da Familia]
          [Codigo da Familia]=""
          [Codigo da Familia]=cod
  EndIf
EndScan
Do_It!
ClearAll

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 "Familia"
PickForm "F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll

Release Vars All
Release Procs All
