;** CondPgTo *******************************************************************
;*  Manutencao Cadastro de Condicoes de Pagamento p/ Venda                     *
;*******************************************************************************
;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: 03/01/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas 
;Ultima Alteracao: 15/01/2013 por Kamila Gomes
;Motivo Alteracao: Ajustes SetaCorRegistro("Editando") 
;Ultima Alteracao: 07/06/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado/ajustado Grava_LogEx() p/ gravar log de erros ao excluir registros

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
Moveto [Condicao de Pagamento]
End
SEQ=[Condicao de Pagamento]
Down

SetaCorRegistro("Editar")
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("CondPgTo","MR")
              If EDITAR="S"
                 Then CHAVE=0
                      Controla_EdicaoC()
                 Else If EXCLUIR="S"
                         Then If QuerExcluir("")
                                 Then Grava_LogEx("Condicao de Pagamento")
                                      DEL
                                 Else UnLockRecord
                              EndIf
                         Else Moveto [Condicao de Pagamento]
                              End
                              SEQ=[Condicao de Pagamento]
                              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()
           CONDICAO=[]
           Del
           Locate CONDICAO
           If Retval
              Then CHAVE=0
              Else CHAVE=1
                   End Down
                   [Condicao de Pagamento]=CONDICAO
          EndIf
          If IsLockRecord()
             Then End
                  SEQ=[Condicao de Pagamento]
                  Down
                  Moveto [Condicao de Pagamento]
                  Loop
          EndIf
          Quitloop
      EndSwitch
EndWhile
EndProc

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

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

      MSGCAMPO=Field()
      If Field()="Descricao CondPagto"
         Then MSGCAMPO="Descricao da Condicao de Pagamento"
      EndIf
      If Field()="Tipo de Pagamento"
         Then MSGCAMPO="Tipo de Pagamento: Vista/Prazo/Outros (V/P/O)"
      EndIf
      If Field()="Composicao de Dias"
         Then MSGCAMPO=MSGCAMPO+", Exemplo: 15/30/45/60 "
      EndIf

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

      Switch
      Case Retval="FIELDVIEW" or Retval="F35":
           EDITFIELD()
      Case Retval="ESC":
           If Field()="Descricao CondPagto"
              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()="Composicao de Dias":
                     If IsBlank([])Then Loop EndIf
                     Checagem=True
                     Contador_Repeticao=0
                     For ncc From 1 To Len([Composicao de Dias])
                         If Asc(SubStr([Composicao de Dias],ncc,1))<47 Or
                            Asc(SubStr([Composicao de Dias],ncc,1))>57
                            Then Mensagem("Formato da Composicao de Dias Invalido !//Exemplo= 30/60/90")
                                 Checagem=False
                                 QuitLoop
                            Else If SubStr([Composicao de Dias],ncc,1)="/"
                                    Then Contador_Repeticao=Contador_Repeticao+1
                                    Else Contador_Repeticao=0
                                 EndIf
                                 If Contador_Repeticao>1 Or
                                    SubStr([Composicao de Dias],1,1)="/" Or
                                    SubStr([Composicao de Dias],Len([Composicao de Dias]),1)="/"
                                    Then Mensagem("Formato da Composicao de Dias Invalido !//Exemplo= 30/60/90")
                                         Checagem=False
                                         QuitLoop
                                 EndIf
                         EndIf
                     EndFor
                     If Checagem Then Right EndIf
                Case Field()="Taxa Financeira":
                     QuitLoop
                OtherWise:
                     If IsBlank([])Then Loop EndIf
                     Right
           EndSwitch
      Case Retval="DEL":
           If CHAVE=0
              Then If QuerExcluir("")
                      Then Grava_LogEx("Condicao de Pagamento")
                           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 "CondPgTo"
PickForm "F"
While True
  CHAVE()
  If CHAVE=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
