;** NumDp    *******************************************************************
;*  Alteracao e Inclusao de Duplicatas                                         *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 29/06/2001 por Anivel Augusto Rodrigues
;Ultima Alteracao: 02/09/2003 por Karen Lauar Nery
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 15/10/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Edita_Memo
;Ultima Alteracao: 30/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas
;Ultima Alteracao: 19/02/2013 por Kamila Gomes
;Motivo Alteracao: Ajustes SetaCorRegistro()
;Ultima Alteracao: 17/09/2020 por Bruno Carvalho
;Motivo Alteracao: Adicionado Grava_LogEx("NumDP") 

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
While True
  Moveto [Codigo da Empresa]
  End
  Down

  SetaCorRegistro("Editar")
  While true

      Switch
        Case Field()="Codigo da Empresa"  : MSGCAMPO="Codigo da Empresa"
        Case Field()="Codigo do Documento": MSGCAMPO="Codigo do Documento"
      EndSwitch

  TECLA="F1=Tabelas"
  AguardaTeclasPadrao()

  Switch
      Case RetVal=-33 : SemFuncoes()
      Case RetVal="F3": SemFicha()
      Case RetVal=-94 : MsgTeclasPadrao()
      Case RetVal="F1":
           If Field()="Codigo da Empresa" Or
              Field()="Codigo do Documento"
              Then ConsultaF1()
           EndIf
      Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
           While True
               PAGINA("NumeroDP","MR")
               If EDITAR="S"
                  Then CHAVE=0
                       Controla_EdicaoC()
                  Else If Excluir="S"
                          Then If QuerExcluir("")
                                  Then Grava_LogEx("NumDP")
                                       Del
                                  Else UnLockRecord
                               Endif
                          Else QuitLoop
                       Endif
               EndIf
               SetaPosForm()
           EndWhile
           QuitLoop
      Case Retval="ESC":
           Switch
             Case Field()="Codigo da Empresa":
                  CHAVE=9
                  Del
                  Return
             Case Field()="Codigo do Documento":
                  Moveto [Codigo da Empresa]
             OtherWise:
                  Left
           EndSwitch
      Case Retval="ENTER":
           If IsBlank([]) Then Loop EndIf
           Switch
             Case Field()="Codigo da Empresa":
                  CODIGO=[]
                  Moveto [Codigo do Documento]
                  Loop
             Case Field()="Codigo do Documento":
                  DOCTO=[]
           EndSwitch
           Del
           Locate CODIGO,DOCTO
           If Retval
              Then CHAVE=0
              Else CHAVE=1
                  End Down
                  [Codigo da Empresa  ]=CODIGO
                  [Codigo do Documento]=DOCTO
           EndIf
           If IsLockRecord()
              Then QuitLoop
           EndIf
           Return
      EndSwitch
  EndWhile
EndWhile
EndProc

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

Moveto [Proximo Numero]
While True

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

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

      Switch
            Case Retval="F4":
                 CampoAnt=Field()
                 Edita_Memo("Mensagem",08,07,07,65,"Mensagem")
                 Moveto Field CampoAnt
                 Prompt MSGCAMPO
            Case RetVal="DEL":
                 If CHAVE=0
                    Then If QuerExcluir("")
                            Then DEL
                                 QuitLoop
                         EndIf
                 EndIf
            Case RetVal="FIELDVIEW" or RetVal="F35":
                 EDITFIELD()
            Case Retval="ESC":
                 If QuerDesfazer("")
                    Then If CHAVE=1
                            Then Del
                            Else Undo
                         EndIf
                         CHAVE=9
                         QuitLoop
                 Endif
            Case Retval="ENTER":
                 QuitLoop
      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 "NumeroDP"
PickForm "F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
