;** P_Cartao *******************************************************************
;*  Configuracao de Paramentos p/ Cartaoes Credito/Debito                      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 14/11/2008 por Anivel Augusto Rodrigues
;Ultima Alteracao: 17/06/2011 por Karina Andrade
;Motivo Alteracao: Ajustes TECLAS
;Ultima Alteracao: 21/07/2011 por Karina Andrade
;Motivo Alteracao: Ajustes Codigo do Cliente com Letra
;Ultima Alteracao: 30/01/2012 por Karina Andrade
;Motivo Alteracao: Ajustes Chave()
;Ultima Alteracao: 01/03/2012 por Karina Andrade
;Motivo Alteracao: Ajustes Diversos
;Ultima Alteracao: 16/04/2012 por Karina Andrade
;Motivo Alteracao: Ajustes ConsultaF1()
;Ultima Alteracao: 03/05/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado tipo de cartao (DEBITO ou CREDITO)
;Ultima Alteracao: 12/09/2017 por Anivel Augusto Rodigues
;Motivo Alteracao: Inclusao Operadora bandeira nfe

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

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

  Switch
  Case RetVal=-33 : SemFuncoes()
  Case RetVal="F3": SemFicha()
  Case RetVal=-94 : MsgTeclasPadrao()
  Case RetVal="F1":
       If Field()="Codigo_Empresa" Or
          Field()="Nome do Cartao"
          Then CONSULTAF1()
       Endif  
  Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
       While True
         PAGINA("P_Cartao","MR")
         If EDITAR="S"
            Then CHAVEC=0 
                 Controla_EdicaoC() 
            Else If EXCLUIR="S"
                    Then If QuerExcluir("")
                            Then DEL
                            Else UnLockRecord
                         EndIf
                    Else Moveto [Codigo_Empresa]
                         End Down
                         Moveto [Codigo_Empresa]
                         QuitLoop
                 EndIf
         EndIf
         SetaPosForm()
       EndWhile
  Case Retval="ESC":
       If Field()="Codigo_Empresa" 
          Then CHAVEC=9
               Del
               QuitLoop
          Else Left
       EndIf        
  Case RetVal="ENTER":
       If IsBlank([]) Then Loop EndIf
       
       Switch
            Case Field()="Codigo_Empresa" : Moveto [Nome do Cartao]
                 EMPRESA=[Codigo_Empresa]
                 
            Case Field()="Nome do Cartao" : 
                 CARTAO=[Nome do Cartao]

                 Del
                 Moveto [Codigo_Empresa]
                 Locate EMPRESA,CARTAO
                 If Retval
                    Then CHAVEC=0
                    Else CHAVEC=1
                         End Down
                         [Codigo_Empresa ] = EMPRESA
                         [Nome do Cartao ] = CARTAO
                 EndIf
                 If IsLockRecord()
                    Then Loop
                 EndIf
                 QuitLoop
       EndSwitch
  EndSwitch
EndWhile
EndProc
;*******************************************************************************
;* Rotina para Digitacao das Informacoes                                       *
;*******************************************************************************
Proc DIGITA()

Moveto [Codigo Destinat  ]
While True

      TECLA=" Esc=Retornar  "

      If CHAVEC=0
         Then TECLA=TECLA+"Del=Excluir  "
      EndIf
          
      MSGCAMPO=""
      Switch
         Case Field()="Codigo_Empresa"           : MSGCAMPO="C¢digo da Empresa"
         Case Field()="Nome do Cartao"           : MSGCAMPO="Nome do Cart„o"
         Case Field()="Codigo Destinat"          : MSGCAMPO="C¢digo do Destinat rio, [F1]Consultar tabela"
         Case Field()="Numero Dias Vencimento"   : MSGCAMPO="N£mero de Dias do Vencimento"
         Case Field()="Codigo da Conta"          : MSGCAMPO="C¢digo da Conta, [F1]Consultar tabela"
         Case Field()="Tx_Descto_Administradora" : MSGCAMPO="Taxa de Desconto da Administradora"
         Case Field()="Debito_Credito"           : MSGCAMPO="Tipo do Cart„o: D‚bito ou Cr‚dito"
         Case Field()="CodigoBandeiraOperadora"  : MSGCAMPO="Bandeira da Operadora, [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()="Codigo Destinat" Or
                Field()="Codigo da Conta" or
                Field()="CodigoBandeiraOperadora"
                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()="Codigo Destinat"
                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()="Codigo Destinat"           : Moveto [Numero Dias Vencimento   ]
                 Case Field()="Numero Dias Vencimento"    : Moveto [Codigo da Conta          ]
                 Case Field()="Codigo da Conta"           : Moveto [Tx_Descto_Administradora ]
                 Case Field()="Tx_Descto_Administradora"  : Moveto [Debito_Credito           ]
                 Case Field()="Debito_Credito"            : If Not IsBlank([])
                                                               Then Moveto [CodigoBandeiraOperadora]
                                                            EndIf         
                 Case Field()="CodigoBandeiraOperadora"     : If Not IsBlank([])
                                                               Then QuitLoop
                                                            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_Cartao"
PickForm "F"

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

ClearAll
Release Vars All
Release Procs All
