;** PedMotiv *******************************************************************
;*  Tabela de Cadastro de Motivos da Situa‡Æo do Pedido                        *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 13/12/2019 por Bruno Carvalho               
;Ultima Alteracao:   /  /     por                           
;Motivo Alteracao: 

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

While true
    SetaCorRegistro("Editar")
    
    TECLA=""
    AguardaTeclasPadrao()

   If Retval=-33
      Then
        ShowPopup " Fun‡”es " CENTERED
         "Descri‡Æo do Motivo" : " Aplicar altera‡„o da descri‡„o do motivo para todos os pedidos" : "F5",
         Separator,
         "~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 nos pedidos ?")
           If Ok="S"
              Then Atualiza_Motivo_Pedidos()
                   CHAVE=9
                   Quitloop
           EndIf     
      Case RetVal=-94 : MsgTeclasPadrao()
      Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
           While True
             PAGINA("PedMotiv","MR")
             If EDITAR="S"
                Then ;If Not Checa_Supervisor()
                     ;   Then UnLockRecord
                     ;   Else CHAVE=0
                     ;        Controla_EdicaoC() 
                     ;EndIf
                     
                     CHAVE=0
                     Controla_EdicaoC()                             
                Else If EXCLUIR="S"
                
                        then ;If Not Checa_Supervisor()
                             ;   Then UnLockRecord
                             ;   Else If QuerExcluir("")
                             ;           Then Del
                             ;           Else UnLockRecord
                             ;        EndIf
                             ;EndIf
                             
                             If QuerExcluir("")
                                Then Del
                                Else UnLockRecord
                             EndIf       
                        else Moveto [Pedido_Motivo_Sequencia]
                             End
                             SEQ = [Pedido_Motivo_Sequencia]
                             Down
                             QuitLoop
                     EndIf
             EndIf
             SetaPosForm()
           EndWhile
      Case Retval="ESC":
           CHAVE=9
           Del
           QuitLoop
      Case Retval="ENTER":
           ;If Not Checa_Supervisor()
           ;   Then Loop
           ;EndIf
           If IsBlank([])
              Then If IsBlank(SEQ)
                      Then SEQ="1"
                      Else SEQ=StrVal(NumVal(SEQ)+1)
                   EndIf
                   []=SEQ
           EndIf
           []=AlinhM([],2)
           CODIGO=[]
           Del
           Locate CODIGO
           If Retval
              Then CHAVE=0
              Else CHAVE=1
                   End Down
                   [Pedido_Motivo_Sequencia]=CODIGO
           EndIf
           If IsLockRecord()
              Then End
                   SEQ=[Pedido_Motivo_Sequencia]
                   Down
                   Moveto [Pedido_Motivo_Sequencia]
                   Loop
           EndIf
           Quitloop
      EndSwitch
EndWhile
EndProc

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

If CHAVE=0
   Then Moveto [Pedido_Motivo_Descricao]
   Else Moveto [Pedido_Motivo_Situacao ]
EndIf    
While True

      TECLA=" Esc=Retornar  "
      If CHAVE=0
         Then TECLA=TECLA+"Del=Excluir  "
      EndIf
      
      If Field()="Pedido_Motivo_Situacao" 
         Then TECLA=TECLA + "F1=Tabela  " 
      EndIf

      Prompt TECLA
      SetaCorRegistro("Editando")
      Wait Field
           Until "ESC","ENTER","DEL","FIELDVIEW","F35","F1",-59
      
      If Retval="F1" Or Retval=-59
         Then Echo Normal
              Echo Off
         
              ShowPopup " Fun‡”es " CENTERED
                "~A~BERTO           "            : " Situa‡Æo ABERTO   "  : "ABERTO",
                "~S~USPENSO         "            : " Situa‡Æo SUSPENSO "  : "SUSPENSO",
                "~F~ATURADO         "            : " Situa‡Æo FATURADO "  : "FATURADO",
                "~C~ANCELADO        "            : " Situa‡Æo CANCELADO"  : "CANCELADO",        
                Separator,
                "~C~ancelar"                   : " Cancelar a Opera‡„o"   : "CANCELAR"
              EndMenu
              To MenuVar
              Echo off

              If MenuVar="CANCELAR" or MenuVar="Esc"
                 Then Del
                      QuitLoop
              EndIf
              
              []=MenuVar   
      EndIf                                

      Switch
      Case Retval="ESC":
           Switch
                 Case Field()="Pedido_Motivo_Descricao" And CHAVE=1 : Moveto [Pedido_Motivo_Situacao]
                 Case Field()="Pedido_Motivo_Descricao" Or
                      Field()="Pedido_Motivo_Situacao"   :
                      If QuerDesfazer("")
                         Then If CHAVE=1
                                 Then DEL
                                 Else Undo
                              Endif
                              CHAVE=9
                              QuitLoop
                      Endif
                 OtherWise:
                      Left
           EndSwitch
      Case Retval="ENTER":
           Switch
                 Case Field()="Pedido_Motivo_Situacao"  : If IsBlank([])Then Loop EndIf
                                                          Moveto [Pedido_Motivo_Descricao]
                 Case Field()="Pedido_Motivo_Descricao" : If IsBlank([])Then Loop EndIf  
                                                          If CHAVE=1
                                                             Then [Pedido_Motivo_Inativo]=""
                                                                  QuitLoop
                                                             Else Moveto [Pedido_Motivo_Inativo]
                                                          EndIf    
                 Case Field()="Pedido_Motivo_Inativo"   : QuitLoop
           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 Atualizar Motivo nos Pedidos                                    *
;*******************************************************************************
Proc Atualiza_Motivo_Pedidos()

Do_It!
ClearAll

CoEdit "PedidoC"
Moveto [Pedido_Motivo_Sequencia]
Scan For Not IsBlank([Pedido_Motivo_Sequencia]) 
  Barra(NRecords("PedidoC"), RecNo())
  Aguarde("Aguarde, atualizando motivo da situa‡Æo nos pedidos "+BARRA_STRING)
  
  GetRecord "PedMotiv" [Pedido_Motivo_Sequencia] To REG_PEDMOTIV
  If RetVal
     Then If REG_PEDMOTIV["Pedido_Motivo_Descricao"]<>[Pedido_Motivo_Descricao]
             Then [Pedido_Motivo_Descricao]=REG_PEDMOTIV["Pedido_Motivo_Descricao"]
                  UnLockRecord
          EndIf       
  EndIf
EndScan
Do_It!
ClearAll

CoEdit "PedMotiv"
PickForm "F"

FastMsg("Fim do processo")

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"

If Not Checa_Supervisor()
   Then Return
EndIf   

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

Release Vars All
Release Procs All