;** Simbologia *****************************************************************
;*  Manutencao Cadastro de Simbologia                                          *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 19/11/2009 por Bruno Carvalho
;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: 02/01/2013 por Kamila Gomes
;Motivo Alteracao: Ajustes SetaCorRegistro("Editando") 
;Ultima Alteracao: 16/07/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes CHAVE() Incluido Fun‡Æo
;Ultima Alteracao: 07/06/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado/ajustado Grava_LogEx() p/ gravar log de erros ao excluir registros
;Ultima Alteracao: 24/12/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado Bib_Proc

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

While true
  SetaCorRegistro("Editar")

  TECLA=""
  AguardaTeclasPadrao()
  
  If Retval=-33
     Then
       ShowPopup " Fun‡”es " CENTERED
        "~A~tualiza Itens"  : " Aplicar as altera‡”es no cadastro de Itens" : "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="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("Simbol","MR")
             If EDITAR="S"
                Then CHAVE=0
                     Controla_EdicaoC()
                Else If EXCLUIR="S"
                        then If QuerExcluir("")
                                Then Grava_LogEx("Simbologia")
                                     Del
                                Else UnLockRecord
                             EndIf
                        Else Moveto [Codigo da Simbologia]
                             End
                             SEQ = [Codigo da Simbologia]
                             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 Simbologia]=CODIGO
           EndIf
           If IsLockRecord()
              Then End
                   SEQ=[Codigo da Simbologia]
                   Down
                   Moveto [Codigo da Simbologia]
           EndIf
           Quitloop
      EndSwitch
EndWhile
EndProc

;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITA()
private caminho
caminho = ""
Moveto [Descricao da Simbologia]
While True

      TECLA=" Esc=Retornar  "

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

      MSGCAMPO=Field()
      If Field()="Descricao da Simbologia"
         Then MSGCAMPO="Descri‡Æo da Simbologia"
              TECLA=TECLA+"F6=Caminho da Imagem"      
         If Retval="F6"
         Then
           ShowPopup " Imagem " CENTERED
            "Adicionar Imagem"             : " Adicionar Imagem"                             : "ADIMAGEM",
            "Excluir Imagem"               : " Altera‡„o\\Inclus„o de C¢digo de Barras"      : "EXCLUIRIMAGEM",
            "~C~ancelar"                   : " Cancelar a Opera‡„o"                          : "CANCELAR"
           EndMenu
            To MenuVar
           echo off

           If MenuVar="CANCELAR" or MenuVar="Esc"
               Then
               QuitLoop
           EndIf
           If MenuVar="ADIMAGEM"
             Then caminho = ImagemDir(" "," ")
               If caminho <> "False"
                  Then [Caminho da Imagem] = Caminho   
               EndIf
           EndIf
            If MenuVar="EXCLUIRIMAGEM"
               Then [Caminho da Imagem] = ""
            EndIf
       EndIf 
     EndIf
     Prompt TECLA
     SetaCorRegistro("Editando")
     Wait Field
          Until "ESC","ENTER","DEL","FIELDVIEW","F35","F6"
 
     Switch

     Case Retval="ESC":
          Switch
                Case Field()="Descricao da Simbologia":
                     If QuerDesfazer("")
                        Then If CHAVE=1
                                Then DEL
                                Else Undo
                             Endif
                             CHAVE=9
                             QuitLoop
                     EndIf
          EndSwitch
     Case Retval="ENTER":
           Switch
                 Case Field()="Descricao da Simbologia":
                      If IsBlank([])Then Loop EndIf
                      Moveto [Caminho da Imagem]
                 Case Field()="Caminho da Imagem":
                      QuitLoop
                      Right
           EndSwitch
     Case Retval="FIELDVIEW" or Retval="F35":
          EDITFIELD()
     Case Retval="DEL":
          If CHAVE=0
             Then If QuerExcluir("")
                     Then Grava_LogEx("Simbologia")
                          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 Simbologia]
Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Atualizando Itens "+BARRA_STRING)
  If Busca_Lookup("Codigo da Simbologia",[Codigo da Simbologia],"SM")
     Then cod=[Codigo da Simbologia]
          [Codigo da Simbologia]=""
          [Codigo da Simbologia]=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,\\Sistemas\\Cadastro\\Bib_Proc"

CoEdit "Simbol"
PickForm "F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll

Release Vars All
Release Procs All
