;** Estados ********************************************************************
;*  Manutencao Cadastro de Estados e Aliquotas de ICMS                         *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/12/95 por Anivel Augusto Rodrigues
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 23/12/2009 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Aliquota Interna
;Ultima Alteracao: 03/03/2010 por Bruno Carvalho
;Motivo Alteracao: InclusÆo C¢digo Estado IBGE
;Ultima Alteracao: 29/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas
;Ultima Alteracao: 06/07/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes MSG Aliquota interna
;Ultima Alteracao: 01/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SetaCorRegistro("Editando") 
;Ultima Alteracao: 24/03/2016 por Kamila Gomes
;Motivo Alteracao: Ajustes Campo Aliquota de FCP
;Ultima Alteracao: 26/04/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes MSG Aliquota interna
;Ultima Alteracao: 26/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nÆo usar Aliquota de FCP

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

While True
  SetaCorRegistro("Editar")
  Moveto [UF]
  End Down
  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("Estados","MR")
            If EDITAR="S"
               Then CHAVE=0
                    Controla_EdicaoC()
               Else If EXCLUIR="S"
                       then If QuerDesfazer("")
                               Then Del
                               Else UnLockRecord
                            EndIf
                       Else QuitLoop
                    EndIf
            EndIf
            SetaPosForm()
          EndWhile
          QuitLoop
     Case Retval="ESC":
          CHAVE=9
          Del
          Return
     Case Retval="ENTER":
          If IsBlank([]) Then Loop EndIf
          UF=[]
          Del
          Locate UF
          If Retval
             Then CHAVE=0
             Else CHAVE=1
                  End Down
                  [UF]=UF
          EndIf
          If IsLockRecord()
             Then QuitLoop
          EndIf
          Return
   EndSwitch
  EndWhile
EndWhile
EndProc

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

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

  MSGCAMPO=""
  Switch
     Case Field()="Codigo_UF"                : MSGCAMPO="C¢digo do Estado IBGE"
     Case Field()="Aliquota de ICMS"         : MSGCAMPO="Aliquota de ICMS Interestadual"
     Case Field()="Aliquota de ICMS_Interna" : MSGCAMPO="Aliquota de ICMS Interna aplicada por este Estado"
     Case Field()="Aliquota de FCP"          : MSGCAMPO="Aliquota deste Estado para Fundo de Combate a Pobreza"
  EndSwitch

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

      Switch
      Case Retval="ESC":
           If Field()="Descricao"
              Then If QuerDesfazer("")
                      Then If CHAVE=1
                              Then Del
                              Else Undo
                           EndIf
                           CHAVE=9
                           QuitLoop
                   Endif
              Else Left
           EndIf
      Case Retval="ENTER":
       Switch
        Case Field() = "Aliquota de ICMS_Interna": Quitloop
        Otherwise : 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 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 "Estados"
PickForm "F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
