;** P_Conc   *******************************************************************
;*  Configuracao de Paramentos p/ Cartaoes Credito/Debito - Concilia‡Æo        *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 19/04/2018 por Anivel Augusto Rodrigues
;Ultima Alteracao: 20/04/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes corre‡Æo conciliar 2

;*******************************************************************************
;* Rotina para Localizar Registro                                              *
;*******************************************************************************
Proc CHAVE()
Moveto [Operadora]
End Down
Moveto [Operadora]

While True
  SetaCorRegistro("Editar")
  TECLA=""
  
  BarraPadrao()
      
  Wait Field
    Message Field()
    Until "ESC","ENTER",
          "HOME","UP","PGUP","DEL",
          -94,-33,-22, -18,
          "F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12",-68,
          -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -133, -134, -139, -140
    
  ClearSpeedBar      
  
  IsTeclaAtalho()

  Switch
  Case RetVal=-33 : SemFuncoes()
  Case RetVal="F3": SemFicha()
  Case RetVal=-94 : MsgTeclasPadrao()
  Case RetVal="F1":
       If Field()=""
          Then CONSULTAF1()
       Endif  
  Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
       While True
         PAGINA("P_Conc","MR")
         If EDITAR="S"
            Then CHAVEC=0 
                 Controla_EdicaoC() 
            Else If EXCLUIR="S"
                    Then If QuerExcluir("")
                            Then DEL
                            Else UnLockRecord
                         EndIf
                    Else Moveto [Operadora]
                         End Down
                         Moveto [Operadora]
                         QuitLoop
                 EndIf
         EndIf
         SetaPosForm()
       EndWhile
  Case Retval="ESC":
       If Field()="Operadora" 
          Then CHAVEC=9
               Del
               QuitLoop
          Else Left
       EndIf        
  Case RetVal="ENTER":
       If IsBlank([]) Then Loop EndIf
       
       Switch
            Case Field()="Operadora"       : OPER=[] Moveto [Estabelecimento]
            Case Field()="Estabelecimento" : EST =[] Moveto [Banco          ]
            Case Field()="Banco"           : BCO =[] Moveto [Agencia        ]
            Case Field()="Agencia"         : AGE =[] Moveto [ContaCorrente  ]
            Case Field()="ContaCorrente"   : CC  =[] Moveto [Bandeira       ]
            Case Field()="Bandeira"        : BAND=[] Moveto [CodigoProduto  ]
            Case Field()="CodigoProduto"   : CPRO=[] 
                 
                 Del
                 Moveto [Operadora]
                 Locate OPER,EST,BCO,AGE,CC,BAND,CPRO
                 If Retval
                    Then CHAVEC=0
                    Else CHAVEC=1
                         End Down
                         [Operadora        ]=OPER
                         [Estabelecimento  ]=EST 
                         [Banco            ]=BCO 
                         [Agencia          ]=AGE 
                         [ContaCorrente    ]=CC  
                         [Bandeira         ]=BAND
                         [CodigoProduto    ]=CPRO 
                 EndIf
                 If IsLockRecord()
                    Then Loop
                 EndIf
                 QuitLoop
       EndSwitch
  EndSwitch
EndWhile
EndProc

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

Moveto [FormadePagamento]
While True

      TECLA=" Esc=Retornar  "

      If CHAVEC=0
         Then TECLA=TECLA+"Del=Excluir  "
      EndIf
          
      MSGCAMPO=""
      Switch
         Case Field()="FormadePagamento"         : MSGCAMPO="Forma Pagamento, [F1]Consultar tabela"
         Case Field()="Nomedocartao"             : MSGCAMPO="Nome CartÆo, [F1]Consultar tabela"
         Case Field()="Codigo da Empresa"        : MSGCAMPO="Empresa, [F1]Consultar tabela"
         Case Field()="Codigo da Conta"          : MSGCAMPO="Conta, [F1]Consultar tabela"
         OtherWise                               : MSGCAMPO=Field()
      EndSwitch      

      Prompt TECLA

      Wait Field
           Message MSGCAMPO
           Until "ESC","ENTER","DEL","FIELDVIEW","F35","F1"

      Switch
        Case Retval="F1" : 
          if Field()="FormadePagamento"   or
             Field()="Nomedocartao"       or
             Field()="Codigo da Empresa"  or
             Field()="Codigo da Conta"    
                Then CONSULTAF1() 
             EndIf
             
        Case Retval="FIELDVIEW" or Retval="F35":
             EDITFIELD()
        Case Retval="DEL":
             If CHAVEC=0
                Then If QuerExcluir("")
                        Then DEL
                             QuitLoop
                     EndIf
             EndIf
  
        Case Retval="ESC":
             If Field()="FormadePagamento"
                Then If QuerDesfazer("")
                       Then If CHAVEC=1
                               Then DEL
                               Else Undo
                            Endif
                            CHAVEC=9
                            QuitLoop
                    EndIf
                Else Left
             EndIf
             
        Case Retval="ENTER":
             Switch
                 Case Field()="FormadePagamento"          : 
                   If Not IsBlank([])
                      Then Moveto [Nomedocartao]
                      else fastmsg("Valor inv lido !")
                   EndIf
                 Case Field()="Nomedocartao"              : 
                   If Not IsBlank([])
                      Then Moveto [Codigo da Empresa]
                      else fastmsg("Valor inv lido !")
                   EndIf
                 Case Field()="Codigo da Empresa"         : 
                   If Not IsBlank([])
                      Then Moveto [Codigo da Conta]
                      else fastmsg("Valor inv lido !")
                   EndIf
                 Case Field()="Codigo da Conta"           : 
                   If Not IsBlank([])
                      Then quitloop
                      else fastmsg("Valor inv lido !")
                   EndIf
                            
             EndSwitch
             
      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 "P_Conc"
PickForm "F"

While True
  CHAVE()
  If CHAVEC=9
     Then QuitLoop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!

ClearAll
Release Vars All
Release Procs All
