;** P_Duplic *******************************************************************
;*  Configuracao de Paramentos p/ Duplicatas                                   *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 27/02/2004 por Karen Lauar Nery
;Ultima Alteracao: 25/08/2005 por Jose Luis Ameno da Silva
;Motivo Alteracao: Inclusao do campo Cta_Baixa_Igual_Lancto
;Ultima Alteracao: 03/09/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Nao usar *Utiliza Conta da Baixa igual … Conta do Lan‡amento 
;Ultima Alteracao: 17/06/2011 por Karina Andrade
;Motivo Alteracao: Ajustes TECLAS
;Ultima Alteracao: 25/05/2012 por Karina Andrade
;Motivo Alteracao: Adicionado Codigo da Empresa, Conta Caixa e Plano de Contas DCC
;                  Alterado ShowDialog e codigo da empresa como chave 
;Ultima Alteracao: 19/11/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado Campo "I_BLOQUEIA_ANOTACAO"
;Ultima Alteracao: 24/06/2013 por Bruno Carvalho
;Motivo Alteracao: Adicionado Campo "I_BLOQ_ALTERA_BAIXA"
;Ultima Alteracao: 28/10/2013 por Bruno Carvalho
;Motivo Alteracao: Add novo parƒmetro "Gera novo lan‡amento do saldo restante"
;Ultima Alteracao: 16/12/2013 por Bruno Carvalho
;Motivo Alteracao: Adicionado Pl.Conta Debito/Credito  
;Ultima Alteracao: 05/12/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Plano Conta Geracao de Credito
;Ultima Alteracao: 04/01/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ultimo campo digita‡Æo, Verifica()              
;Ultima Alteracao: 03/03/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes usar no dialog Monta_Prompt(MSGCAMPO,TECLA)
;Ultima Alteracao: 03/03/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes usar no dialog Monta_Prompt(MSGCAMPO,TECLA)

;*******************************************************************************
;* Rotina de Controle de Paramentros                                           *
;*******************************************************************************
Proc PARAM_DIALOG(Disparo,Campo,Evento,Elemento)
Temp=True

TECLA   =""
MSGCAMPO=""

If INICIO_DIALOGO
   Then INICIO_DIALOGO=False
EndIf

If Disparo="OPEN"
   Then AoCriarShowDialog()
        TiraSombraShowDialog()
EndIf

If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then
   Temp=False
   Switch
       Case Evento["KeyCode"] = -59:
            If Campo="I_EMPRESA"     Or
               Campo="I_CONTA_CAIXA" Or
               Campo="I_PLCONTDCC"   Or 
               Campo="I_PLCONTAV"    Or
               Campo="I_PLCONTAP"    Or 
               Campo="I_PLCONTCD"    Or
               Campo="I_PLCONTCC"    Or
               Campo="I_PLCONTGC"    Or
               Campo="I_HISTORICO"
               Then
                    Dynarray WinArray5[]
                    Window Handle Dialog to JANELA
                    Window GetAttributes JANELA To WinArray5
                    WinArray5["FLOATING"]=False
                    Window SetAttributes JANELA From WinArray5

                    If Campo="I_EMPRESA"     Then Moveto [Codigo_Empresa       ] EndIf
                    If Campo="I_CONTA_CAIXA" Then Moveto [Codigo_Conta_Caixa   ] EndIf
                    If Campo="I_PLCONTDCC"   Then Moveto [Plano_Conta_DCC      ] EndIf
                    If Campo="I_PLCONTAV"    Then Moveto [Plano_Conta_AVista   ] EndIf
                    If Campo="I_PLCONTAP"    Then Moveto [Plano_Conta_APrazo   ] EndIf
                    If Campo="I_PLCONTCD"    Then Moveto [Plano_Conta_Debito   ] EndIf
                    If Campo="I_PLCONTCC"    Then Moveto [Plano_Conta_Credito  ] EndIf
                    If Campo="I_PLCONTGC"    Then Moveto [Plano_Conta_GCredito ] EndIf
                    If Campo="I_HISTORICO"   Then Moveto [Historico_Default    ] EndIf
                    ConsultaF1()

                    Window Select JANELA
                    WinArray5["FLOATING"]=True
                    Window SetAttributes JANELA From WinArray5

                    echo Normal
                    echo off

                    Switch
                      Case Campo="I_EMPRESA"    : VSD_EMPRESA     =[Codigo_Empresa    ]
                      Case Campo="I_CONTA_CAIXA": VSD_CONTA_CAIXA =[Codigo_Conta_Caixa]
                      Case Campo="I_PLCONTDCC"  : VSD_PLCONTDCC   =[Plano_Conta_DCC   ]
                      Case Campo="I_PLCONTAV"   : VSD_PLCONTAV    =[Plano_Conta_AVista]
                      Case Campo="I_PLCONTAP"   : VSD_PLCONTAP    =[Plano_Conta_APrazo]
                      Case Campo="I_PLCONTCD"   : VSD_PLCONTCD    =[Plano_Conta_Debito]
                      Case Campo="I_PLCONTCC"   : VSD_PLCONTCC    =[Plano_Conta_Credito]
                      Case Campo="I_PLCONTGC"   : VSD_PLCONTGC    =[Plano_Conta_GCredito]
                      Case Campo="I_HISTORICO"  : VSD_HISTORICO   =[Historico_Default ]
                    EndSwitch
           EndIf
      Case (Evento["KeyCode"] = -6 Or Evento["KeyCode"] = -147):
           If CHAVE=0
              Then If QuerExcluir("")
                      Then Del
                           CancelDialog
                   EndIf
           EndIf
      Case Evento["KeyCode"] = -81: 
           If Campo<>"I_EMPRESA" And Chave=0
              then 
                   ConfirmaGravar()
           EndIf
              
      Case Evento["KeyCode"] = 27:
           Switch
             Case Campo="I_EMPRESA"             :
                  If IsBlank([Codigo_Empresa])
                     Then Del
                  EndIf
                  CHAVE=9
                  CancelDialog
             Case Campo="I_CONTA_CAIXA" :
                  If QuerDesfazer("")
                     Then
                          If Chave=1
                             Then Del  ; Registro Novo
                                  CancelDialog
                             Else Undo ; Registro Existente
                                  CancelDialog
                          EndIf   
                  EndIf   
                                    
             Case Campo="I_JUROS"                    : Campo= "I_CONTA_CAIXA"         
             Case Campo="I_COMISSAO"                 : Campo= "I_JUROS"
             Case Campo="I_NCARREG"                  : Campo= "I_COMISSAO"
             Case Campo="I_FRECEBER"                 : Campo= "I_NCARREG"
             Case Campo="I_COMISSAOJD"               : Campo= "I_FRECEBER"
             Case Campo="I_SALD_GERA_NOVO_LANC"      : Campo= "I_COMISSAOJD"
             Case Campo="I_BLOQUEIA_ANOTACAO"        : Campo= "I_SALD_GERA_NOVO_LANC"
             Case Campo="I_BLOQ_ALTERA_BAIXA"        : Campo= "I_BLOQUEIA_ANOTACAO"
             Case Campo="I_HISTORICO"                : Campo= "I_BLOQ_ALTERA_BAIXA"
             Case Campo="I_RECIBO"                   : Campo= "I_HISTORICO"
             Case Campo="I_PLCONTDCC"                : Campo= "I_RECIBO"
             Case Campo="I_PLCONTAV"                 : Campo= "I_PLCONTDCC" 
             Case Campo="I_PLCONTAP"                 : Campo= "I_PLCONTAV"
             Case Campo="I_PLCONTCD"                 : Campo= "I_PLCONTAP"
             Case Campo="I_PLCONTCC"                 : Campo= "I_PLCONTCD"
             Case Campo="I_PLCONTGC"                 : Campo= "I_PLCONTCC"
           EndSwitch
      Case Evento["KeyCode"] = 13:
           Switch
             Case Campo="I_EMPRESA":
                  VSD_EMPRESA=ControlValue("I_EMPRESA")
                  If Not IsBlank(VSD_EMPRESA)
                     Then VSD_EMPRESA=Alinhm(VSD_EMPRESA,4)
                          Moveto [Codigo_Empresa]
                          Ativa_Lookup()
                          Locate VSD_EMPRESA
                          If Not RetVal
                             Then Mensagem("Codigo n„o Cadastrado !")
                                  KeyPress "ESC"
                             Else VSD_EMPRESA=[Codigo da Empresa]
                                  KeyPress "ESC"
                                  Chave()
                                  Campo= "I_CONTA_CAIXA"
                          EndIf
                  EndIf           
             Case Campo="I_CONTA_CAIXA": 
                  VSD_CONTA_CAIXA=ControlValue("I_CONTA_CAIXA")
                  If Not IsBlank(VSD_CONTA_CAIXA)
                     Then VSD_CONTA_CAIXA=Alinhm(VSD_CONTA_CAIXA,4)
                          Moveto [Codigo_Conta_Caixa]
                          Ativa_Lookup()
                          Moveto [Codigo da Conta]
                          Locate VSD_CONTA_CAIXA
                          If RetVal
                             Then TIPO = [Tipo da Conta]
                                  KeyPress "Esc"
                                  If TIPO<>"X"
                                     Then Mensagem("Informe uma conta tipo CAIXA !")
                                          VSD_CONTA_CAIXA=""
                                     Else Campo="I_JUROS"   
                                  EndIf
                             Else Mensagem("Conta n„o Cadastrada !")
                                  KeyPress "ESC"
                                  VSD_CONTA_CAIXA=""
                          EndIf
                     Else Campo="I_JUROS"    
                  EndIf
             Case Campo="I_JUROS":
                  VSD_JUROS=ControlValue("I_JUROS")
                  If IsBlank(VSD_JUROS)
                     Then VSD_JUROS="N"
                  EndIf
                  Campo= "I_COMISSAO"
             Case Campo="I_COMISSAO":
                  VSD_COMISSAO=ControlValue("I_COMISSAO")
                  If IsBlank(VSD_COMISSAO)
                     Then VSD_COMISSAO="N"
                  EndIf
                  Campo= "I_NCARREG"
             Case Campo="I_NCARREG":
                  VSD_NCARREG=ControlValue("I_NCARREG")
                  If IsBlank(VSD_NCARREG)
                     Then VSD_NCARREG="N"
                  EndIf
                  Campo= "I_FRECEBER"
             Case Campo="I_FRECEBER":
                  VSD_FRECEBER=ControlValue("I_FRECEBER")
                  If IsBlank(VSD_FRECEBER)
                     Then VSD_FRECEBER="N"
                  EndIf
                  Campo= "I_COMISSAOJD"
             Case Campo="I_COMISSAOJD":
                  VSD_COMISSAOJD=ControlValue("I_COMISSAOJD")
                  If IsBlank(VSD_COMISSAOJD)
                     Then VSD_COMISSAOJD="N"
                  EndIf
                  Campo="I_SALD_GERA_NOVO_LANC"  
             Case Campo="I_SALD_GERA_NOVO_LANC" : 
                  VSD_SALD_GERA_NOVO_LANC=ControlValue("I_SALD_GERA_NOVO_LANC")
                  If IsBlank(VSD_SALD_GERA_NOVO_LANC)
                     Then VSD_SALD_GERA_NOVO_LANC="N"
                  EndIf
                  Campo= "I_BLOQUEIA_ANOTACAO"
             Case Campo="I_BLOQUEIA_ANOTACAO":
                  VSD_BLOQUEIA_ANOTACAO=ControlValue("I_BLOQUEIA_ANOTACAO")
                  If IsBlank(VSD_BLOQUEIA_ANOTACAO)
                     Then VSD_BLOQUEIA_ANOTACAO="S"
                  EndIf     
                  Campo="I_BLOQ_ALTERA_BAIXA"  
             Case Campo="I_BLOQ_ALTERA_BAIXA": 
                  VSD_BLOQ_ALTERA_BAIXA=ControlValue("I_BLOQ_ALTERA_BAIXA")
                  If VSD_BLOQ_ALTERA_BAIXA=""
                     Then VSD_BLOQ_ALTERA_BAIXA="S"
                  EndIf     
                  Campo= "I_HISTORICO"
             Case Campo="I_HISTORICO":
                  VSD_HISTORICO=ControlValue("I_HISTORICO")
                  If Not IsBlank(VSD_HISTORICO)
                     Then VSD_HISTORICO=Alinhm(VSD_HISTORICO,4)
                          Moveto [Historico_Default]
                          Ativa_Lookup()
                          Locate VSD_HISTORICO
                          If Not RetVal
                             Then Mensagem("Codigo n„o Cadastrado !")
                                  KeyPress "ESC"
                             Else VSD_HISTORICO=[Codigo do Historico]
                                  KeyPress "ESC"
                                  Campo="I_RECIBO"
                          EndIf
                     Else Campo="I_RECIBO"
                  EndIf
             Case Campo="I_RECIBO":
                  VSD_RECIBO=ControlValue("I_RECIBO")
                  Campo="I_PLCONTDCC"
             Case Campo="I_PLCONTDCC":
                  VSD_PLCONTDCC=ControlValue("I_PLCONTDCC")
                  If Not IsBlank(VSD_PLCONTDCC)
                     Then Moveto [Plano_Conta_DCC]
                          Ativa_Lookup()
                          Locate VSD_PLCONTDCC
                          If Not RetVal
                             Then Mensagem("Codigo n„o Cadastrado !")
                                  KeyPress "ESC"
                             Else VSD_PLCONTDCC=[Codigo Plano_Conta]
                                  KeyPress "ESC"
                                  Campo="I_PLCONTAV"
                          EndIf
                     Else Campo="I_PLCONTAV"
                  EndIf
             Case Campo="I_PLCONTAV":
                  VSD_PLCONTAV=ControlValue("I_PLCONTAV")
                  If Not IsBlank(VSD_PLCONTAV)
                     Then Moveto [Plano_Conta_AVista]
                          Ativa_Lookup()
                          Locate VSD_PLCONTAV
                          If Not RetVal
                             Then Mensagem("Codigo n„o Cadastrado !")
                                  KeyPress "ESC"
                             Else VSD_PLCONTAV=[Codigo Plano_Conta]
                                  KeyPress "ESC"
                                  Campo="I_PLCONTAP"
                          EndIf
                     Else Campo="I_PLCONTAP"
                  EndIf
						 Case Campo="I_PLCONTAP": 
									VSD_PLCONTAP=ControlValue("I_PLCONTAP")
									If Not IsBlank(VSD_PLCONTAP)
                     Then Moveto [Plano_Conta_APrazo]
                          Ativa_Lookup()
													Locate VSD_PLCONTAP
                          If Not RetVal
                             Then Mensagem("Codigo n„o Cadastrado !")
                                  KeyPress "ESC"
                             Else VSD_PLCONTAP=[Codigo Plano_Conta]
                                  KeyPress "ESC"
                                  Campo="I_PLCONTCD"   
                          EndIf
                     Else Campo="I_PLCONTCD"             
									EndIf
						 Case Campo="I_PLCONTCD": 
									VSD_PLCONTCD=ControlValue("I_PLCONTCD")
									If Not IsBlank(VSD_PLCONTCD)
                     Then Moveto [Plano_Conta_Debito]
                          Ativa_Lookup()
													Locate VSD_PLCONTCD
                          If Not RetVal
                             Then Mensagem("Codigo n„o Cadastrado !")
                                  KeyPress "ESC"
                             Else VSD_PLCONTCD=[Codigo Plano_Conta]
                                  KeyPress "ESC"
                                  Campo="I_PLCONTCC"    
                          EndIf
                     Else Campo="I_PLCONTCC"                 
									EndIf
						 Case Campo="I_PLCONTCC": 
									VSD_PLCONTCC=ControlValue("I_PLCONTCC")
									If Not IsBlank(VSD_PLCONTCC)
                     Then Moveto [Plano_Conta_Credito]
                          Ativa_Lookup()
													Locate VSD_PLCONTCC
                          If Not RetVal
                             Then Mensagem("Codigo n„o Cadastrado !")
                                  KeyPress "ESC"
                             Else VSD_PLCONTCC=[Codigo Plano_Conta]
                                  KeyPress "ESC"
                                  Campo="I_PLCONTGC"    
                          EndIf
                     Else Campo="I_PLCONTGC"                 
									EndIf
						 Case Campo="I_PLCONTGC": 
									VSD_PLCONTGC=ControlValue("I_PLCONTGC")

                  ultimocampook=true
									If Not IsBlank(VSD_PLCONTGC)
                     Then Moveto [Plano_Conta_GCredito]
                          Ativa_Lookup()
													Locate VSD_PLCONTGC
                          If Not RetVal
                             Then Mensagem("Codigo n„o Cadastrado !")
                                  KeyPress "ESC"
                                  ultimocampook=false
                                  
                             Else VSD_PLCONTGC=[Codigo Plano_Conta]
                                  KeyPress "ESC"
                          endif        
									EndIf

                  if ultimocampook
									   then 
                          ConfirmaGravar()
									endif    
									
           EndSwitch
   EndSwitch
EndIf

TECLA="//Esc=Retornar  "
If Campo="I_EMPRESA"     Or
   Campo="I_CONTA_CAIXA" Or
   Campo="I_PLCONTDCC"   Or 
   Campo="I_PLCONTAV"    Or
   Campo="I_PLCONTAP"    Or 
   Campo="I_PLCONTCC"    Or
   Campo="I_PLCONTCD"    Or
   Campo="I_PLCONTGC"    Or
   Campo="I_HISTORICO"
   Then TECLA=TECLA+"F1=Tabelas  "
   Else TECLA=TECLA+"            "
EndIf

If Campo<>"I_EMPRESA"
   Then If Chave=0
           Then TECLA=TECLA+"Ctrl+Del=Excluir  "
           Else TECLA=TECLA+"                  "
        EndIf
        TECLA=TECLA+"PgUp/PgDn=Finalizar  "
EndIf

Switch
  Case Campo="I_EMPRESA"                  : MSGCAMPO="Codigo da Empresa Padr„o"
  Case Campo="I_CONTA_CAIXA"              : MSGCAMPO="Codigo da Conta Caixa Padr„o"  
  Case Campo="I_PLCONTDCC"                : MSGCAMPO="Plano de Contas padr„o para despesas/custo cartorio"
  Case Campo="I_PLCONTAV"                 : MSGCAMPO="Plano de Contas padr„o para recebimento a vista"
  Case Campo="I_PLCONTAP"                 : MSGCAMPO="Plano de Contas padr„o para recebimento a prazo"
  Case Campo="I_PLCONTCC"                 : MSGCAMPO="Plano de Contas padr„o para recebimento com cart„o de cr‚dito"
  Case Campo="I_PLCONTCD"                 : MSGCAMPO="Plano de Contas padr„o para recebimento com cart„o de d‚bito"
  Case Campo="I_PLCONTGC"                 : MSGCAMPO="Plano de Contas padr„o para gera‡Æo de t¡tulo de cr‚dito"
  Case Campo="I_HISTORICO"                : MSGCAMPO="Historico Default"
  Case Campo="I_RECIBO"                   : MSGCAMPO="Script para impress„o de recibos"
  Case Campo="I_SALD_GERA_NOVO_LANC"      : MSGCAMPO="Utiliza este recurso? Sim/N„o"
  Case Campo="I_BLOQUEIA_ANOTACAO"        : MSGCAMPO="Utiliza este recurso? Sim/N„o/Permiss„o"
  Case Campo="I_BLOQ_ALTERA_BAIXA"        : MSGCAMPO="Utiliza este recurso? Sim/N„o/Permiss„o"
  Otherwise                               : MSGCAMPO="Utiliza este recurso? Sim/N„o"
EndSwitch

Mouse Hide
Monta_Prompt(MSGCAMPO,TECLA)

Return TEMP
EndProc   ;(Param_Dialog)

;*******************************************************************************
;* Rotina Localiza_Registro                                                    *
;*******************************************************************************
Proc Chave()
Moveto [Codigo_Empresa]
Del
Locate VSD_EMPRESA
If RetVal
   Then While True
          If Not IsLockRecord() Then QuitLoop EndIf
        EndWhile
        CHAVE=0
   Else CHAVE=1
        End Down
        [Codigo_Empresa]=VSD_EMPRESA
EndIf
PARAM_OPCAO("Ler")
EndProc  ; (Chave)

;*******************************************************************************
;* Rotina para Verificar Parametros                                            *
;*******************************************************************************
Proc Verifica()
WV=True

VSD_JUROS=ControlValue("I_JUROS")
If IsBlank(VSD_JUROS)    Then VSD_JUROS="N"    EndIf

VSD_COMISSAO=ControlValue("I_COMISSAO")
If IsBlank(VSD_COMISSAO) Then VSD_COMISSAO="N" EndIf

VSD_NCARREG=ControlValue("I_NCARREG")
If IsBlank(VSD_NCARREG)  Then VSD_NCARREG="N"  EndIf

VSD_FRECEBER=ControlValue("I_FRECEBER")
If IsBlank(VSD_FRECEBER) Then VSD_FRECEBER="N" EndIf

VSD_HISTORICO=ControlValue("I_HISTORICO")
If Not IsBlank(VSD_HISTORICO)
   Then VSD_HISTORICO=Alinhm(VSD_HISTORICO,4)
        Moveto [Historico_Default]
        Ativa_Lookup()
        Locate VSD_HISTORICO
        If Not RetVal
           Then Mensagem("Codigo n„o Cadastrado !//Historico Default !")
                KeyPress "ESC"
                Return False
           Else VSD_HISTORICO=[Codigo do Historico]
                KeyPress "ESC"
        EndIf
EndIf

VSD_PLCONTDCC=ControlValue("I_PLCONTDCC")
If Not IsBlank(VSD_PLCONTDCC)
   Then Moveto [Plano_Conta_DCC]
        Ativa_Lookup()
        Locate VSD_PLCONTDCC
        If Not RetVal
           Then Mensagem("Plano de Contas nÆo Cadastrado !// Padr„o para despesas/custo cartorio !")
                KeyPress "ESC"
                Return False
           Else VSD_PLCONTDCC=[Codigo Plano_Conta]
                KeyPress "ESC"
        EndIf
EndIf

VSD_PLCONTAV=ControlValue("I_PLCONTAV")
If Not IsBlank(VSD_PLCONTAV)
   Then Moveto [Plano_Conta_AVista]
        Ativa_Lookup()
        Locate VSD_PLCONTAV
        If Not RetVal
           Then Mensagem("Plano de Contas nÆo Cadastrado !// Padr„o para recebimento a vista !")
                KeyPress "ESC"
                Return False
           Else VSD_PLCONTAV=[Codigo Plano_Conta]
                KeyPress "ESC"
        EndIf
EndIf

VSD_PLCONTAP=ControlValue("I_PLCONTAP")
If Not IsBlank(VSD_PLCONTAP)
   Then Moveto [Plano_Conta_APrazo]
        Ativa_Lookup()
        Locate VSD_PLCONTAP
        If Not RetVal
           Then Mensagem("Plano de Contas nÆo Cadastrado !// Padr„o para recebimento a prazo !")
                KeyPress "ESC"
                Return False
           Else VSD_PLCONTAP=[Codigo Plano_Conta]
                KeyPress "ESC"
   EndIf
EndIf

VSD_PLCONTCD=ControlValue("I_PLCONTCD")
If Not IsBlank(VSD_PLCONTCD)
   Then Moveto [Plano_Conta_Debito]
        Ativa_Lookup()
        Locate VSD_PLCONTCD
        If Not RetVal
           Then Mensagem("Plano de Contas nÆo Cadastrado !// Padr„o para recebimento com cart„o de d‚bito !")
                KeyPress "ESC"
                Return False
           Else VSD_PLCONTCD=[Codigo Plano_Conta]
                KeyPress "ESC"
   EndIf
EndIf

VSD_PLCONTCC=ControlValue("I_PLCONTCC")
If Not IsBlank(VSD_PLCONTCC)
   Then Moveto [Plano_Conta_Credito]
        Ativa_Lookup()
        Locate VSD_PLCONTCC
        If Not RetVal
           Then Mensagem("Plano de Contas nÆo Cadastrado !// Padr„o para recebimento com cart„o de cr‚dito !")
                KeyPress "ESC"
                Return False
           Else VSD_PLCONTCC=[Codigo Plano_Conta]
                KeyPress "ESC"
   EndIf
EndIf

VSD_PLCONTGC=ControlValue("I_PLCONTGC")
If Not IsBlank(VSD_PLCONTGC)
   Then Moveto [Plano_Conta_GCredito]
        Ativa_Lookup()
        Locate VSD_PLCONTGC
        If Not RetVal
           Then Mensagem("Plano de Contas nÆo Cadastrado !// Padr„o para gera‡Æo de t¡tulo de cr‚dito !")
                KeyPress "ESC"
                Return False
           Else VSD_PLCONTGC=[Codigo Plano_Conta]
                KeyPress "ESC"
   EndIf
EndIf

VSD_CONTA_CAIXA=ControlValue("I_CONTA_CAIXA")
If Not IsBlank(VSD_CONTA_CAIXA)
   Then VSD_CONTA_CAIXA=Alinhm(VSD_CONTA_CAIXA,4)
        Moveto [Codigo_Conta_Caixa]
        Ativa_Lookup()
        Moveto [Codigo da Conta]
        Locate VSD_CONTA_CAIXA
        If RetVal
           Then TIPO = [Tipo da Conta]
                KeyPress "Esc"
                If TIPO<>"X"
                   Then Mensagem("Opera‡„o Inv lida para esta Conta!// Codigo da Conta Caixa Padr„o !")
                        Return False
                EndIf
           Else Mensagem("Conta n„o Cadastrada !// Codigo da Conta Caixa Padr„o !")
                KeyPress "ESC"
                Return False
        EndIf        
EndIf

VSD_RECIBO=ControlValue("I_RECIBO")
If IsBlank(VSD_RECIBO)    Then VSD_RECIBO=""    EndIf

VSD_COMISSAOJD=ControlValue("I_COMISSAOJD")
If IsBlank(VSD_COMISSAOJD)    Then VSD_COMISSAOJD=""    EndIf

;;;VSD_BAIXALANCTO=ControlValue("I_BAIXALANCTO")
;;;If IsBlank(VSD_BAIXALANCTO)    Then VSD_BAIXALANCTO="S"    EndIf

Return WV

EndProc ; (Verifica)

;*******************************************************************************
;* Rotina Gravacao ou Leitura dos Parametros                                   *
;*******************************************************************************
Proc PARAM_OPCAO(OP)
Private OP
Switch
  Case OP = "Gravar":
       [Codigo_Empresa           ] = VSD_EMPRESA
       [Codigo_Conta_Caixa       ] = VSD_CONTA_CAIXA
       [Utiliza_Juros_Devido     ] = VSD_JUROS
       [Utiliza_Comissao         ] = VSD_COMISSAO
       [Utiliza_Num_Carregamento ] = VSD_NCARREG
       [Utiliza_Formas_Receber   ] = VSD_FRECEBER
       [Historico_Default        ] = VSD_HISTORICO
       [Plano_Conta_DCC          ] = VSD_PLCONTDCC
       [Plano_Conta_AVista       ] = VSD_PLCONTAV
       [Plano_Conta_APrazo       ] = VSD_PLCONTAP
       [Plano_Conta_Debito       ] = VSD_PLCONTCD
       [Plano_Conta_Credito      ] = VSD_PLCONTCC
       [Plano_Conta_GCredito     ] = VSD_PLCONTGC
       [Impressao_Recibo         ] = VSD_RECIBO
       [Comissao_Juros_Descto    ] = VSD_COMISSAOJD
       [Bloqueia_Anotacao        ] = VSD_BLOQUEIA_ANOTACAO
       [Bloqueia_Altera_Baixa    ] = VSD_BLOQ_ALTERA_BAIXA
       [Saldo Gera Novo Lancament] = VSD_SALD_GERA_NOVO_LANC 
       
;;;;;;;[Cta_Baixa_Igual_Lancto   ] = VSD_BAIXALANCTO

       UnLockRecord

  Case OP = "Ler":
       VSD_EMPRESA                  = [Codigo_Empresa          ]
       VSD_CONTA_CAIXA              = [Codigo_Conta_Caixa      ]
       VSD_JUROS                    = [Utiliza_Juros_Devido    ]
       VSD_COMISSAO                 = [Utiliza_Comissao        ]
       VSD_NCARREG                  = [Utiliza_Num_Carregamento]
       VSD_FRECEBER                 = [Utiliza_Formas_Receber  ]
       VSD_HISTORICO                = [Historico_Default       ]
       VSD_PLCONTDCC                = [Plano_Conta_DCC         ]
       VSD_PLCONTAV                 = [Plano_Conta_AVista      ]
       VSD_PLCONTAP                 = [Plano_Conta_APrazo      ]
       VSD_PLCONTCD                 = [Plano_Conta_Debito      ]
       VSD_PLCONTCC                 = [Plano_Conta_Credito     ]
       VSD_PLCONTGC                 = [Plano_Conta_GCredito    ]
       VSD_RECIBO                   = [Impressao_Recibo        ]
       VSD_COMISSAOJD               = [Comissao_Juros_Descto   ]
       VSD_BLOQUEIA_ANOTACAO        = [Bloqueia_Anotacao       ]
       VSD_BLOQ_ALTERA_BAIXA        = [Bloqueia_Altera_Baixa   ]
       VSD_SALD_GERA_NOVO_LANC      = [Saldo Gera Novo Lancament]
       
;;;;;;;VSD_BAIXALANCTO= [Cta_Baixa_Igual_Lancto   ]

   Case OP = "Inicio":
       VSD_EMPRESA                  = ""
       VSD_CONTA_CAIXA              = ""
       VSD_JUROS                    = ""
       VSD_COMISSAO                 = ""
       VSD_NCARREG                  = ""
       VSD_FRECEBER                 = ""
       VSD_HISTORICO                = ""
       VSD_PLCONTDCC                = ""
       VSD_PLCONTAV                 = ""
       VSD_PLCONTAP                 = ""
       VSD_PLCONTCD                 = ""
       VSD_PLCONTCC                 = ""
       VSD_PLCONTGC                 = ""
       VSD_RECIBO                   = ""
       VSD_COMISSAOJD               = ""
       VSD_BLOQUEIA_ANOTACAO        = ""
       VSD_BLOQ_ALTERA_BAIXA        = ""
       VSD_SALD_GERA_NOVO_LANC      = ""
       Moveto [Utiliza_Juros_Devido]
EndSwitch
EndProc   ; (Param_Opcao)

;*******************************************************************************
;* Rotina para posicionar registro                                             *
;*******************************************************************************
Proc Posiciona()
If IsBlank([Codigo_Empresa])
   Then Del
EndIf
Moveto [Codigo_Empresa]
End Down
EndProc    ;  (Posiciona)

;*******************************************************************************
;* Rotina Gravacao dos dados                                                   *
;*******************************************************************************
Proc ConfirmaGravar()

if verifica()
   then 
        If ConfGeral("Confirma novos parametros?")
           Then PARAM_OPCAO("Gravar")
        EndIf
        AcceptDialog
endif    

endproc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Autolib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"
If Not IsAssigned(SYS_EMPRESA_DEFAULT) Then SYS_EMPRESA_DEFAULT="" EndIf

VSD_EMPRESA=SYS_EMPRESA_DEFAULT
If Not Checa_Supervisor()
   Then Return
EndIf

CoEdit NoWindow "P_Duplic"
While True
  INICIO_DIALOGO  = True
  Posiciona()
  PARAM_OPCAO("Ler")

  Showdialog "Configura‡„o T¡tulos a Receber" Proc "Param_Dialog"
     Trigger "OPEN","ARRIVE"
      Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","PGDN",-6,-147
       @ 01,00 height 22 width 80
  
     Label  @ 00,00 "Empresa" for "I_EMPRESA"
     Accept @ 01,01 Width 07 "A4" picture "#*#" Tag "I_EMPRESA" to VSD_EMPRESA
  
     Label  @ 00,09 "Conta Caixa" for "I_CONTA_CAIXA"
     Accept @ 01,10 Width 07 "A4" picture "#*#" Tag "I_CONTA_CAIXA" to VSD_CONTA_CAIXA
  
     Label  @ 03,00 "[    ] Utiliza Juros Devidos" for "I_JUROS"
     Accept @ 03,02 Width 04 "A1" picture "S,N" Tag "I_JUROS" to VSD_JUROS
  
     Label  @ 04,00 "[    ] Utiliza Comiss„o" for "I_COMISSAO"
     Accept @ 04,02 Width 04 "A1" picture "S,N" Tag "I_COMISSAO" to VSD_COMISSAO
  
     Label  @ 05,00 "[    ] Utiliza Numero Carregamento" for "I_NCARREG"
     Accept @ 05,02 Width 04 "A1" picture "S,N" Tag "I_NCARREG" to VSD_NCARREG
  
     Label  @ 06,00 "[    ] Utiliza Formas de Recebimento" for "I_FRECEBER"
     Accept @ 06,02 Width 04 "A1" picture "S,N" Tag "I_FRECEBER" to VSD_FRECEBER
  
     Label  @ 07,00 "[    ] Calcula Comiss„o Baseada no Juros/Desconto" for "I_COMISSAOJD"
     Accept @ 07,02 Width 04 "A1" picture "S,N" Tag "I_COMISSAOJD" to VSD_COMISSAOJD
     
     Label  @ 08,00 "[    ] Gera novo lan‡amento do saldo restante" for "I_SALD_GERA_NOVO_LANC"
     Accept @ 08,02 Width 04 "A1" picture "S,N" Tag "I_SALD_GERA_NOVO_LANC" to  VSD_SALD_GERA_NOVO_LANC
     
  ;;;Label  @ 06,00 "[    ] Utiliza Conta da Baixa igual … Conta do Lan‡amento" for "I_BAIXALANCTO"
  ;;;Accept @ 06,02 Width 04 "A1" picture "S,N" Tag "I_BAIXALANCTO" to VSD_BAIXALANCTO

     Label  @ 09,00 "[    ] Bloqueia Altera‡„o/Exclus„o da Anota‡„o" for "I_BLOQUEIA_ANOTACAO"
     Accept @ 09,02 Width 4 "A1" picture "S,N,P" Tag "I_BLOQUEIA_ANOTACAO" to VSD_BLOQUEIA_ANOTACAO

     Label  @ 10,00 "[    ] Bloqueia Altera‡„o/Exclus„o da Baixa" for "I_BLOQ_ALTERA_BAIXA"
     Accept @ 10,02 Width 4 "A1" picture "S,N,P" Tag "I_BLOQ_ALTERA_BAIXA" to VSD_BLOQ_ALTERA_BAIXA
  
     Label  @ 11,00 "[       ] Hist.Default" for "I_HISTORICO"
     Accept @ 11,02 Width 7 "A4" picture "#*#" Tag "I_HISTORICO" to VSD_HISTORICO
  
     Label  @ 12,00 "[             ] Script Recibo"  for "I_RECIBO"
     Accept @ 12,02 Width 13 "A10" picture "!*!" Tag "I_RECIBO" to VSD_RECIBO
     

     Label  @ 13,00 "[                ] Pl.Contas Despesas Custas de Cart¢rio"  for "I_PLCONTDCC"
     Accept @ 13,02 Width 16 "A13" picture "!*!" Tag "I_PLCONTDCC" to VSD_PLCONTDCC

     Label  @ 14,00 "[                ] Pl.Contas Recebimentos a Vista"  for "I_PLCONTAV"
     Accept @ 14,02 Width 16 "A13" picture "!*!" Tag "I_PLCONTAV" to VSD_PLCONTAV
     
     Label  @ 15,00 "[                ] Pl.Contas Recebimentos a Prazo"  for "I_PLCONTAP"
     Accept @ 15,02 Width 16 "A13" picture "!*!" Tag "I_PLCONTAP" to VSD_PLCONTAP
     
     Label  @ 16,00 "[                ] Pl.Contas Recebimentos CartÆo de D‚bito"  for "I_PLCONTCD"
     Accept @ 16,02 Width 16 "A13" picture "!*!" Tag "I_PLCONTCD" to VSD_PLCONTCD
     
     Label  @ 17,00 "[                ] Pl.Contas Recebimentos CartÆo de Cr‚dito"  for "I_PLCONTCC"
     Accept @ 17,02 Width 16 "A13" picture "!*!" Tag "I_PLCONTCC" to VSD_PLCONTCC
     
     Label  @ 18,00 "[                ] Pl.Contas Gera‡Æo de T¡tulo de Cr‚dito"  for "I_PLCONTGC"
     Accept @ 18,02 Width 16 "A13" picture "!*!" Tag "I_PLCONTGC" to VSD_PLCONTGC
                                                                
  Enddialog
  If Not RetVal
     Then If CHAVE=9 Then QuitLoop EndIf
  EndIf
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
