;** Des_PedC *******************************************************************
;*  Manutencao das Cores da Cole‡Æo                                            *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 04/04/2018 por Bruno Carvalho
;Ultima Alteracao:   /  /     por
;Motivo Alteracao:

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

FACA_DIGITAC=True

While True
  End
  Moveto [Codigo da Marca]

  If OPCAO_FORM="F"
    Then Down
    Else PgDn PgDn
  EndIf
  SetaCorRegistro("Editar")
  While True

  TECLA=""
  AguardaTeclasPadrao()

  Switch
    Case RetVal=-33 : SemFuncoes()
    Case RetVal=-94 : MsgTeclasPadrao()
    Case RetVal="F3":
         If OPCAO_FORM="F"
            Then OPCAO_FORM="1"
            Else OPCAO_FORM="F"
         EndIf
         Del
         CHAVE=5
         Return
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         Del
         While True
           FACA_DIGITAC=True

           If OPCAO_FORM="F"
              Then PAGINA("DP_CORC","MR")
              Else PAGINA("DP_CORC","MT")
           EndIf
           MARCA=[Codigo da Marca]
           Switch
             Case EDITAR="S":
                  PickForm "1"
                  Echo Normal
                  Echo Off
                  CHAVE=0
                  ANT_ATIVA = [Ativa]
                  Controla_EdicaoC()
             Case EXCLUIR="S":
                  PickForm "1"
                  Echo Normal
                  Echo Off
                  If QuerExcluir("")
                     Then EXCLUSAO("Cabeca")
                     Else UnLockRecord
                  EndIf
             OtherWise: QuitLoop
           EndSwitch
           If OPCAO_FORM="1"
              Then PickForm "1"
              Else PickForm "F"
           EndIf
           SetaPosForm()
         EndWhile
         QuitLoop
         
    Case Retval="ESC":
         CHAVE=9
         Del
         Return
    Case Retval="ENTER":  
         If IsBlank([]) Then Loop EndIf
         []=AlinhM([],3)
         MARCA=[]
         Del
         If OPCAO_FORM="F"
            Then PickForm "1"
         EndIf
         Locate MARCA
         If Retval
            Then ANT_ATIVA=[Ativa]
                 CHAVE=0 
            Else ANT_ATIVA=""
                 CHAVE=1
                 End
                 PgDn PgDn
                 Moveto [Codigo da Marca]
                 [Codigo da Marca]=MARCA
         EndIf
         If IsLockRecord()
            Then If OPCAO_FORM="F"
                    Then PickForm "F"
                 EndIf
                 QuitLoop
         EndIf
         Return
    EndSwitch
  EndWhile
EndWhile

EndProc ;CHAVE()

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

FACA_CHAVEI     = True

Moveto "DP_CORC" SetaCorRegistro("Padrao")
Moveto "DP_CORC" SetaCorRegistro("Editar")

Moveto [Ativa]
While True
  TECLA=" Esc=Retornar  "

  If CHAVE=0
     Then TECLA=TECLA + "Del=Excluir  "
     Else TECLA=TECLA + "             "
  EndIf
  
  MSGCAMPO=Field()
  Switch
     Case Field()="Ativa":
          MSGCAMPO="Marca Ativa: Sim/N„o"
     OtherWise:
  EndSwitch
  Prompt TECLA

  Wait Field
       Until "ESC","ENTER","DEL","F5","F3","F4","F8","FIELDVIEW","F35","F5","F9"

  Switch
    Case Retval="FIELDVIEW" or Retval="F35":
         EDITFIELD()
    Case RetVal="DEL":
         If CHAVE=0
            Then If Checa_Supervisor()
                    Then If MsgExcluir()
                            Then EXCLUSAO("Cabeca")
                                 CHAVE=9
                                 QuitLoop
                         EndIf
                 EndIf        
         Endif
    Case RetVal="ESC":
         Switch
           Case Field()="Ativa":
                If CHAVE=1
                   Then Del
                   Else If RecordStatus("Modified")
                           Then Undo
                        EndIf
                EndIf
                CHAVE=9
                QuitLoop
           OtherWise:
                Left
         EndSwitch
    Case RetVal="ENTER" : 
         Switch
           Case Field()="Ativa":
                If IsBlank([]) Then []="S" EndIf
                If []="N" 
                   Then If ANT_ATIVA<>"N"
                           Then ConfGeral("Deseja realmente inativar esta marca?")
                                If OK="S"
                                   Then CHAVE=9
                                        QuitLoop
                                   Else Loop
                                EndIf
                           Else CHAVE=9
                                QuitLoop   
                        EndIf        
                   Else QuitLoop
                EndIf
           OtherWise:
                Right
         EndSwitch
  EndSwitch
EndWhile

EndProc ;DIGITA()

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

While True
  Moveto "DP_CORI"
  
  Moveto [Sequencia]
  End
  SEQ = [Sequencia]
  Down
  [Codigo da Marca]=MARCA
  Moveto [Sequencia]

  Seta_Sequencia(SEQ,False)
  If IsLockRecord()
     Then Del
          Loop
  EndIf

  SetaCorRegistro("Editar")
  While True
    
    MSGCAMPO=""
    TECLA=" Esc=Retornar  "
    Prompt TECLA 

    Wait Field
         Until "ESC","ENTER","F7","HOME","UP","PGUP","F1","PGDN"

    Switch
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         Del
         While True
           PAGINA("DP_CORI","MR")
           SEQ=[Sequencia]
           If EDITAR="S"
              Then CHAVEI = 0
                   ANT_COR = [Codigo da Cor_Tecido]
                   Controla_EdicaoI()
                   QuitLoop
              Else If EXCLUIR="S"
                      Then CONFIRMA()
                           If OK="S"
                              Then DEL
                              Else UnLockRecord
                           EndIf
                      Else QuitLoop
                   EndIf
           EndIf
           SetaPosForm()
         EndWhile
         QuitLoop
    Case RetVal="ESC" Or Retval="PGUP":
         Del
         CHAVEI=9
         FACA_CHAVEI =False
         Return  
         
    Case Retval="PGDN":
         Del
         Moveto [Sequencia]
         If RecordStatus("New")=True
            Then MENSAGEM("O cadastro de cores por cole‡Æo deve ter pelo menos 1(uma) cor!")
                 QuitLoop
         EndIf
         FACA_DIGITAC = False
         FACA_CHAVEI  = False
         CHAVEI=9
         Return
                  
    Case Retval="ENTER" :  
         If Not Seta_Sequencia(SEQ,True)
            Then Del
                 QuitLoop
         EndIf
         ANT_COR = ""
         SEQ=[]
         Del
         Locate MARCA,SEQ
         If Retval
            Then CHAVEI=0
                 SEQIT=[]                 
            Else CHAVEI=1
                 End
                 Down
                 [Codigo da Marca]=MARCA
                 [Sequencia      ]=SEQ
                 UnLockRecord
                 Locate MARCA,SEQ
         EndIf
         Return   
    EndSwitch
  EndWhile
EndWhile

EndProc ;CHAVEI()

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

Moveto [Codigo da Cor_Tecido]
While True
      TECLA=" Esc=Retornar  "

      If CHAVEI=0
         Then TECLA=TECLA+"Del=Excluir  "
         else TECLA=TECLA+"             "
      EndIf
      MSGCAMPO=Field()
      Switch
        Case Field()="Fracionado"           : MSGCAMPO = MSGCAMPO + "            : Sim/N„o"
        Case Field()="Codigo da Cor_Tecido" : MSGCAMPO = MSGCAMPO + "F1=Tabelas  "
      EndSwitch

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

      Switch
      Case RetVal="F1":
         If Field()="Codigo da Cor_Tecido"
            Then Moveto [Lookup_CorTecido]
                 CONSULTAF1()
                 [Codigo da Cor_Tecido]=[]
                 [Lookup_CorTecido]=""
                 Moveto [Codigo da Cor_Tecido]
         EndIf      
      Case Retval="ESC":
           Switch
             Case Field()="Codigo da Cor_Tecido" :
                  If CHAVEI=1
                     Then Del
                     Else If RecordStatus("Modified")
                             Then Undo
                          EndIf
                  EndIf
                  CHAVEI=9
                  QuitLoop     
             Case Field()="Fracionado" : Moveto [Codigo da Cor_Tecido]     
             OtherWise : Left
           EndSwitch
      Case Retval="ENTER" :  
           Switch
             Case Field()="Codigo da Cor_Tecido" : 
                  If Not IsBlank([])
                     Then 
                      
                        If (CHAVEI=0 And ANT_COR<>[Codigo da Cor_Tecido]) Or CHAVEI=1 
                           Then CODIGO=AlinhM([],4)
                                Moveto [Lookup_CorTecido]
                        
                                Ativa_Lookup()
                                Moveto [Codigo da Cor_Tecido]
                                Locate CODIGO
                                If Not RetVal
                                   Then Mensagem("Codigo da cor inv lido !")
                                        KeyPress "ESC"
                                        Moveto [Codigo da Cor_Tecido]
                                        Loop
                                EndIf
                                KeyPress "ESC"
                                Moveto [Codigo da Cor_Tecido]
                                Del
                                Locate CODIGO
                                If RetVal
                                   Then MSG = "Cor "+CODIGO+" localizado na sequencia "+Strval([Sequencia])+"!"
                                        Moveto [Codigo da Cor_Tecido]
                                        Mensagem(MSG)
                                        QuitLoop
                                   Else End Down 
                                        [Sequencia           ] = SEQ
                                        [Codigo da Cor_Tecido] = CODIGO
                                        [Lookup_CorTecido    ] = CODIGO
                                        [Lookup_CorTecido    ] = ""
                                        UnlockRecord
                                        
                                        Moveto [Sequencia]
                                        Locate SEQ  
                                        
                                        Moveto [Fracionado]
                                EndIf
                           Else Moveto [Fracionado]        
                        EndIf          
                  EndIf
             Case Field()="Fracionado"           : 
                  If IsBlank([]) 
                     Then []="N" 
                  EndIf   
                  UnLockRecord
                  Return
             OtherWise                           : 
                  Right
           EndSwitch
      Case Retval="FIELDVIEW" or Retval="F35":
           EDITFIELD()
      Case Retval="DEL":
           If CHAVE=0
              Then CONFIRMA()
                   If OK="S"
                      Then DEL
                           QuitLoop
                   EndIf
           EndIf
      EndSwitch
EndWhile

EndProc ;DigitaI()

;*******************************************************************************
;*                                                                             *
;*******************************************************************************
Proc EXCLUSAO(TIPO)
Private TIPO
Switch
Case TIPO="Cabeca":
     Aguarde("Excluindo")
     Moveto "DP_CORI"
     While RecordStatus("New")=False
        Del
     EndWhile

     Moveto "DP_CORC"
     PickForm "F"
     Moveto [Codigo da Marca]
     Locate MARCA
     Del
     LimpAguarde()
Case TIPO="Item":
     Del
EndSwitch

EndProc ;EXCLUSAO()

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoI()
DIGITAI()
EndProc

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
Digitar=True

While FACA_DIGITAC
  DIGITA()
  If CHAVE = 9 Then QuitLoop EndIf
  SetaCorRegistro("Padrao")
  
  Moveto "DP_CORI"
  While FACA_CHAVEI
    CHAVEI()
    If CHAVEI=9 Then QuitLoop EndIf
    Controla_EdicaoI()
  EndWhile
  Moveto "DP_CORC"
EndWhile
If RecordStatus("Locked") Then UnLockRecord EndIf
If OPCAO_FORM="F"
   Then PickForm "F"
EndIf
EndProc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"
SYS_VALOR()

CoEdit "DP_CORC"
PickForm "F"

OPCAO_FORM = "F"
MARCA      = ""
CABECA     = ""
CHAVE      = ""
SAIR       = False

While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  If CHAVE=5
     Then If OPCAO_FORM="F"
             Then PickForm "F"
             Else PickForm "1"
          EndIf
          Loop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
