;** Mediat *********************************************************************
;*  Media de Titulos                                                           *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 24/11/2003 por Karen Lauar Nery
;Ultima Alteracao: 20/06/2005 por Nikolas M. Mateus
;Motivo Alteracao: Inclusao relatorio modelo Receber/Pagar - Acionado por (F8)
;Ultima Alteracao: 07/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Indice Inddup1/Duplic
;Ultima Alteracao: 23/05/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Controla_Edicao
;Ultima Alteracao: 24/12/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Seta_Sequencia
;Ultima Alteracao: 14/02/2011 por Bruno Carvalho
;Motivo Alteracao: Ajustes Novo Layout de Teclas
;Ultima Alteracao: 27/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 07/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes cor editar
;Ultima Alteracao: 31/01/2020 por Bruno Carvalho             
;Motivo Alteracao: Adicionado processo para escolher mais de um tipo de carteira
;Ultima Alteracao: 04/02/2020 por Bruno Carvalho             
;Motivo Alteracao: Adicionado proc ListaRegra_Funcao(), onde foi ajustado ListaRegra_TGAtivado
;Ultima Alteracao: 20/05/2020 por Bruno Carvalho
;Motivo Alteracao: Alterado CopyReport "...\\Ctarec\\MediaI" p/ "...\\Ctarec\\RM_0030"

;*******************************************************************************
;* Rotina para Localizar Registro Carteira                                     *
;*******************************************************************************
Proc CHAVEC()
FACA_DIGITAC=True
TITULO=""
While True
  Moveto [Numero do Lote]
  End
  NLOTE=[]
  If OPCAO_FORM="1"
     Then Down
     Else PgDn
  EndIf
  ;***** se for cart

  SetaCorRegistro("Editar")
  While True
  TECLA="F9=Limpar"
  AguardaTeclasPadrao()
  
  If RetVal=-33
     Then Echo Normal
          Echo Off
          ShowPopup " Fun‡”es " CENTERED
           "F5 ~I~mprimir        " : " Imprimir                 " : "F5",
           "~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=-94 : MsgTeclasPadrao()
      Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
           While True
             FACA_DIGITAC=True
             TITULO=""
             If OPCAO_FORM="1"
                Then PAGINA("Mediac","MR")
                Else PAGINA("Mediac","MT")
             EndIf
             NLOTE  =[Numero do Lote]
             If EDITAR="S"
                Then PickForm "F"
                     CHAVE=0
                     Controla_EdicaoC()
                Else If EXCLUIR="S"
                        Then If QuerExcluir("este lote")
                                Then Exclusao()
                                Else UnLockRecord
                             EndIf
                        Else Quitloop
                     EndIf
             EndIf
             SetaPosForm()
           EndWhile
           QuitLoop
      Case RetVal="F3":
           If OPCAO_FORM="F"
              Then OPCAO_FORM="1"
              Else OPCAO_FORM="F"
           EndIf
           Del
           CHAVE=6
           Return
      Case RetVal="F5":
           Del
           Imprime2()
           QuitLoop
      Case RetVal="F9":
           ConfGeral("Deseja Apagar todos os lotes ?")
           If OK="S"
              Then Do_it!
                   Empty "MediaC"
                   Empty "MediaI"
                   Coedit "MediaI"
                   Moveto "MediaC"
                   PickForm "1"
              Else Loop
           EndIf
      Case Retval="ESC":
           CHAVE=9
           Del
           Return
      Case Retval="ENTER":
           If IsBlank([])
              Then If IsBlank(NLOTE)
                      Then []=1
                      Else []=NLOTE+1
                   EndIf
           EndIf
           NLOTE=[]
           Del
           PickForm "F"
           Moveto "Duplic" SetHighLight Current Record 51  Field 51

           Moveto "Mediac"
           Locate NLOTE
           If Retval
              Then CHAVE=0
              Else CHAVE=1
                   End Pgdn
                   [Numero do Lote  ]=NLOTE
           EndIf
           If IsLockRecord()
              Then If OPCAO_FORM="1"
                      Then PickForm "1"
                           QuitLoop
                   EndIf
           EndIf
           Return
      EndSwitch
  EndWhile
EndWhile
EndProc ; (CHAVEC)

;*******************************************************************************
;* Rotina para Digitacao da Cabeca                                             *
;*******************************************************************************
Proc DIGITAC()
FACA_CHAVEI=True

VROLD=[Valor da Operacao]

If CHAVE=1
   Then Moveto "MediaC"
        Moveto [Codigo]
   Else CHAVEC=9
        Return
EndIf

While True

  TECLA=" Esc=Retornar  "
  If Field()="Codigo"
     Then TECLA=TECLA+"F1=Tabelas  "
  EndIf
  If CHAVE=0
     Then TECLA=TECLA+"F8/=Titulos  Del=Excluir  "
  EndIf
  Prompt TECLA

  MSGCAMPO=""
  Switch
  EndSwitch

  Wait Field
     Message(MSGCAMPO)

     Until "F1","ESC","ENTER","DEL","FIELDVIEW","F35","F8","DOWN"

  Switch
  Case Retval="FIELDVIEW" or Retval="F35":
       EDITFIELD()
  Case RetVal="F1":
       If Field()="Codigo"
          Then CONSULTAF1()
       EndIf
  Case RetVal="F8" Or
       RetVal="DOWN":
       If CHAVE = 0
          Then QuitLoop
          Else Loop
       EndIf
  Case Retval="DEL" And CHAVE=0:
       If QuerExcluir("este lote")
          Then EXCLUSAO()
               CHAVE=9
               QuitLoop
       EndIf
  Case Retval="ESC":
       Switch
       Case Field()="Codigo":
            If QuerDesfazer("")
               Then If CHAVE=1
                       Then Exclusao()
                    EndIf
                    FACA_CHAVEI =False
                    FACA_DIGITAC=False
                    CHAVE=9
                    QuitLoop
            EndIf
       Case Field()="Data da Operacao":
            Moveto [Codigo]
       OtherWise:
            Left
       EndSwitch
  Case Retval="ENTER":
       Switch
       Case Field()="Codigo":
            If Not IsBlank([])
               Then CODCLI=[Codigo]
                    Moveto [Data da Operacao]
            EndIf
       Case Field()="Data da Operacao":
            If IsBlank([])
               Then []=Today()
            EndIf
            Quitloop
       OtherWise:
            Right
       EndSwitch
  EndSwitch
EndWhile
EndProc ; (DIGITAC)

;*******************************************************************************
;* Rotina para Localizar Item                                                  *
;*******************************************************************************
Proc CHAVEI()

While True
  Verifica_Data()

  Moveto [Numero do Item]
  End
  NITEM=[Numero do Item ]
  Down
  Moveto [Numero do Item]
  Seta_Sequencia(NITEM,False)
  If IsLockRecord()
     Then Del
          Loop
  EndIf

  SetaCorRegistro("Editar")
  While True
    Prompt " Esc=Sair  F7=Paginar  F6=Sele‡„o  PgDn=Finalizar  F4=Imp  F8=Imp(Cred/Deb)"

    Wait Field
         Until "ESC","ENTER","F7","HOME","UP","PGUP","PGDN","F6","F4","F8"

    Switch
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         Del
         While True
           Verifica_Data()

           PAGINA("Mediai","MR")
           If EDITAR="S"
              Then CHAVEI=0
                   NLOTE  =[Numero do Lote]
                   NITEM  =[Numero do Item]
                   UnLockRecord
                ;;;Controla_EdicaoI()
              Else If EXCLUIR="S"
                      Then If QuerExcluir("")
                              Then Del
                              Else UnLockRecord
                           EndIf
                      Else Quitloop
                   EndIf
           EndIf
           SetaPosForm()
         EndWhile
         QuitLoop
    Case RetVal="PGDN":
         Del
         If RecordStatus("New")
            Then Mensagem("Tabela sem Registros !")
                 Exclusao()
         EndIf
         FACA_CHAVEI =False
         FACA_DIGITAC=False
         CHAVEI=9
         Return
    Case Retval="F4":
         Del
         IMPRIME()
         CHAVEI=8
         Return
    Case Retval="F8":
         Del
         VSDGCDCLI=[MediaC->Codigo]
         IMPRIME3()
         CHAVEI=8
         Return

    Case RetVal="F6":
         Del
         Do_It!
         ClearAll

         Selecao()

         CoEdit "Mediac"
         PickForm "F"
         Moveto [Numero do Lote]
         Locate NLOTE

         Moveto "Mediai"
         QuitLoop
    Case Retval="ESC" Or Retval="PGDN":
         Del
         If RecordStatus("New")
            Then Mensagem("Tabela sem Registros !")
                 FACA_DIGITAC=False
                 Exclusao()
         EndIf
         If CHAVE=0
            Then FACA_DIGITAC=False
         EndIf
         FACA_CHAVEI =False
         CHAVEI=9
         Return
    Case Retval="ENTER":
         If Not Seta_Sequencia(NITEM,True)       ;***** false
            Then Del
                 QuitLoop
         EndIf
         NITEM=[]
         Del
         Locate NLOTE,NITEM
         If Retval
            Then CHAVEI=0
            Else CHAVEI=1
                 End Down
                 [Numero do Lote  ]=NLOTE
                 [Numero do Lote_2]=NLOTE
                 [Numero do Item  ]=NITEM
                 UnLockRecord
                 Locate NLOTE,NITEM
         EndIf
         Return
    EndSwitch
  EndWhile
EndWhile
EndProc  ; (ChaveI)

;*******************************************************************************
;* Rotina para Digitacao dos Itens                                             *
;*******************************************************************************
Proc DIGITAI()

Moveto [Codigo da Empresa]

While True

  TECLA=" Esc=Retornar  "
  If Field()="Codigo da Empresa"  Or
     Field()="Codigo do Documento"
     Then TECLA=TECLA+"F1=Tabelas  "
  EndIf
  Prompt TECLA

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

  Switch
    Case RetVal="F1":
         If Field()="Codigo da Empresa" Or
            Field()="Codigo do Documento"
            Then CONSULTAF1()
         EndIf
    Case Retval="FIELDVIEW" or Retval="F35":
         EDITFIELD()
    Case Retval="ESC":
         Switch
           Case Field()="Codigo da Empresa":
                If CHAVEI=1
                   Then Del
                EndIf
                QuitLoop
           OtherWise:Left
         EndSwitch
    Case Retval="ENTER":
         If IsBlank([]) Then Loop EndIf
         Switch
           Case Field() = "Numero do Documento":
                EMPRESA =[Codigo da Empresa  ]
                TPDOCTO =[Codigo do Documento]
                NUMDOCTO=[Numero do Documento]
                Moveto "Duplic"
                Locate IndexOrder by "IndDup1" EMPRESA,TPDOCTO,NUMDOCTO
                If RetVal
                  Then Moveto "MediaI"
                       If [MediaC->Codigo]<> [Duplic->Codigo do Destinatario]
                          Then Mensagem("Cliente Diferente do Selecionado !")
                               Moveto [Codigo da Empresa]
                          Else If ([Duplic->Saldo do Documento] > 0.01)
                                  Then SEQ=[Numero do Item]
                                       Del
                                       Moveto [Numero do Lote_2]
                                       Locate IndexOrder by "Ind_01" NLOTE,EMPRESA,TPDOCTO,NUMDOCTO
                                       If Not RetVal
                                          Then End Down
                                               [Numero do Item]=SEQ
                                               [Numero do Lancamento]=[Duplic->Numero do Lancamento]
                                               Moveto "Mediai"
                                               [Data da Operacao    ]=[Mediac->Data da Operacao]
                                               UnLockRecord
                                               QuitLoop
                                           Else CHAVEI=0
                                                QuitLoop
                                       EndIf
                                 Else Mensagem("Titulo com saldo igual ou inferior a zero !")
                                      [Codigo da Empresa  ]=""
                                      [Codigo do Documento]=""
                                      [Numero do Documento]=""
                                      Moveto [Codigo da Empresa]
                               EndIf
                       EndIf
                  Else Moveto "MediaI"
                       MENSAGEM("Titulo n„o encontrado !")
                       Loop
             EndIf
           OtherWise: Right
         EndSwitch
  EndSwitch
EndWhile
EndProc  ; (DIGITAI)

;*******************************************************************************
;* Exclusao de Lote                                                            *
;*******************************************************************************
Proc EXCLUSAO()
Moveto "Mediac"
If OPCAO_FORM="1"
   Then PickForm "F"
EndIf

CHAVE=8
VROLD=[Valor da Operacao]


Moveto "Mediac"
Moveto "Mediai"
While RecordStatus("New")=False
  Del
EndWhile

Moveto "Mediac"
Del
If OPCAO_FORM="1"
   Then PickForm "1"
EndIf
EndProc; (Exclusao)

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp = True
TECLA    =""
MSG_CAMPO=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case Evento["KeyCode"] = -60 Or 
          Evento["KeyCode"] = "F2" : If Campo="TG_TPCART"                      
                                        Then ListaRegra_F2() 
                                     EndIf
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_CONTA"         : Campo="NO"
            Case Campo="TG_TPDATA"        : Campo="TG_CONTA"
            Case Campo="TG_DTINI"         : Campo="TG_TPDATA"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_TPCART"        : Campo="TG_DTFIM"
            Case Campo="YES" Or Campo="NO": Campo="TG_CONTA"
          EndSwitch
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_CONTA"      : Campo="TG_TPDATA"
                    Case Campo="TG_TPDATA"     :
                      VSDGTPDATA=ControlValue("TG_TPDATA")
                      If IsBlank(VSDGTPDATA)
                         Then VSDGTPDATA="1"
                      EndIf
                      If VSDGTPDATA="1"
                         Then VSDGNOMTPDATA="EMISSAO"
                         Else VSDGNOMTPDATA="VENCIMENTO"
                      EndIf
                      Campo="TG_DTINI"
                    Case Campo="TG_DTINI"      : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"      : Campo="TG_TPCART"
                    Case Campo="TG_TPCART"     : Campo = "YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="":
       MSG_CAMPO=""
  Case Campo="TG_TPDATA":
       MSG_CAMPO="1 = EMISSAO  2=VENCIMENTO"
EndSwitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina Selecao                                                              *
;*******************************************************************************
Proc Selecao()
LimpAguarde()

VSDGCONTA  =""
VSDGTPCART =""
VSDGTPDATA =""
VSDGDTINI  =BlankDate()
VSDGDTFIM  =BlankDate()

ListaRegra_Funcao("ListaRegra_TGAtivado","[TG_TPCART]") 

While True
  ShowDialog "Sele‡„o de T¡tulos" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC", -60, "F2" 
  
   @ 05,16   Height 13 Width 56

    Label  @ 00,00 "Conta"  For "TG_CONTA"
    Accept @ 01,01 Width 07 "A4"  Picture "#*#" Tag "TG_CONTA" To VSDGCONTA
    Accept @ 01,09 Width 33 "A30" Picture "!*!" Tag "TG_NOMCONT" To VSDGNOMCONTA

    Label  @ 02,00 "Op‡äes de Datas" For "TG_TPDATA"
    Accept @ 03,01 Width 07 "A1"  Picture "1,2"  Tag "TG_TPDATA"     To VSDGTPDATA
    Accept @ 03,09 Width 23 "A18" Picture "!*!"  Tag "TG_NOMOTPDATA" To VSDGNOMTPDATA

    Label  @ 04,00 "Per¡odo Referente" For "TG_DTINI"
    Label  @ 05,00 "de" For "TG_DTINI"
    Accept @ 05,04 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 05,17 "at‚" For "TG_DTFIM"
    Accept @ 05,22 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Label  @ 06,00 "Tipo de Carteira"  For "TG_TPCART"
    Accept @ 07,01 Width 04 "A1"  Picture "!" Tag "TG_TPCART"  To VSDGTPCART
    Accept @ 07,06 Width 23 "A20" Picture "!*!" Tag "TG_NOMCART" To VSDGNOMCART

    Pushbutton @ 09,14 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 09,28 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  If VSDGDTFIM=BlankDate()
     Then Mensagem("Data Final Invalida !")
          Loop
  EndIf

  AGUARDE("Aguarde, Processando Dados")

  ClearAll
  {Ask} {Duplic} Check
  Moveto [Codigo da Conta       ] TypeIn "~VSDGCONTA.."
                   If VSDGTPDATA="1"
     TheN Moveto [Data de Emissao       ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
     Else Moveto [Data de Vencimento    ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
  EndIf
  Moveto [Saldo do Documento    ] TypeIn "> 0.01"
  Switch                                                                                                                            
    Case ListaRegra_VSDGTPCART_Ativo  : Moveto [Tipo do Lancamento] TypeIn ListaRegra_VSDGTPCART
    Otherwise                         : Moveto [Tipo do Lancamento] TypeIn "~VSDGTPCART.."
  EndSwitch     
  Do_It!
  ClearAll

  If IsEmpty("Answer")
     Then MENSAGEM("N„o existem registros a processar")
          Delete "Answer"
          Loop
  EndIf

  View "Answer"
  View "Duplic"
  View "Mediai"
  CoEdit "Mediac"
  Moveto [Numero do Lote]
  Locate NLOTE
  DATA=[Data da Operacao]

  Moveto "Answer"
  Scan

    EMPRESA =[Codigo da Empresa  ]
    TPDOCTO =[Codigo do Documento]
    NUMDOCTO=[Numero do Documento]

    Moveto "Duplic"
    Moveto [Codigo da Empresa]
    Locate IndexOrder by "IndDup1" EMPRESA,TPDOCTO,NUMDOCTO
    If RetVal
        Then If [MediaC->Codigo]=[Codigo do Destinatario]
                Then Moveto "MediaI"
                     Moveto [Numero do Lote_2]
                     Locate IndexOrder by "Ind_01" NLOTE,EMPRESA,TPDOCTO,NUMDOCTO
                     If Not RetVal
                        Then NLANC=[Duplic->Numero do Lancamento]
                             NITEM=NITEM+1
                             End Down
                             [Numero do Lote      ]=NLOTE
                             [Numero do Lote_2    ]=NLOTE
                             [Numero do Item      ]=NITEM
                             [Numero do Lancamento]=NLANC
                             [Data da Operacao    ]=DATA
                             UnLockRecord
                        EndIf

                EndIf
        EndIf
    Moveto "Answer"
  EndScan
  Do_It!
  ClearAll
  Delete "Answer"
  Mensagem("Sele‡„o Processada !")
  QuitLoop
EndWhile
ClearAll
EndProc

;*******************************************************************************
;* Funcao que verifica a Menor Data e a Maior Data                             *
;*******************************************************************************
Proc VERIFICA_DATA()
Private MEDATA, MADATA, VRTOTAL, VRPESO, NREG

MDDATA  = BlankDate()
MEDATA  = BlankDate()
MADATA  = BlankDate()
VRTOTAL = BlankNum()
VRPESO  = 0

Moveto  "MediaI"
Moveto [Numero do Item]
NREG    = ImageCCount()

If NREG>0
   Then Scan
           If MEDATA>[Data de Vencimento] Or IsBlank(MEDATA)
              Then MEDATA=[Data de Vencimento]
           EndIf
           If MADATA<[Data de Vencimento] Or IsBlank(MADATA)
              Then MADATA=[Data de Vencimento]
           EndIf
           VRTOTAL=VRTOTAL+[Saldo do Documento]
        EndScan

        Moveto "MediaI"
        Scan
          MDIA = [Data de Vencimento] - MEDATA
          If MDIA=0
             Then [Valor_Multiplicado] = [Saldo do Documento]
             Else [Valor_Multiplicado] = [Saldo do Documento] * MDIA
          EndIf
          VRPESO =VRPESO +[Valor_Multiplicado]
          [Numero do Lote_2]=[Numero do Lote]
        EndScan

        M_DIAREF     = Round( ( VRPESO / VRTOTAL ), 3 )
        M_DIAREFI    = Int( M_DIAREF )
        M_DIAREFD    = M_DIAREF - M_DIAREFI
        If M_DIAREFD > 0.51
           Then M_DIAREFI = M_DIAREFI + 1
        EndIf

        If Not IsBlank(MEDATA)
           Then MDDATA=MEDATA+M_DIAREFI
        EndIf
EndIf

Moveto  "MediaC"
[Menor Data ]=MEDATA
[Maior Data ]=MADATA
[Data Media ]=MDDATA
[Valor Total]=VRTOTAL

Moveto "MediaI"

EndProc   ; (Verifica_Data)

;*******************************************************************************
;* Rotina De Impressao                                                         *
;*******************************************************************************
Proc IMPRIME2()
Do_It!

DISPOSITIVO()


If OK<>""
   Then AGUARDE("Aguarde, gerando o relat¢rio")
        {Ask} {MediaC} Check
        Moveto [Numero do Lote] Example "lote"
        {Ask} {MediaI} Check
        Moveto [Numero do Lote] Example "lote"
        Do_It!
        ClearAll
        If Not IsEmpty("Answer")
           Then CopyReport "\\Base\\Sistemas\\CtaRec\\Rm_1500" "R" "Answer" "R"
                IMPRIREL("Answer","R")
                Delete "Answer"
        EndIf
EndIf
ClearAll
Coedit "MediaC"
PickForm "1"
End
EndProc  ; (Imprime2)

;*******************************************************************************
;* Rotina de Impressao                                                         *
;*******************************************************************************
Proc IMPRIME()
Do_It!
DISPOSITIVO()

VSDGMEDIA=[MediaC->Data Media]

If OK<>""
   Then AGUARDE("Aguarde, gerando o relat¢rio")
        {Ask} {MediaI} Check
        Moveto [Numero do Lote] TypeIn "~NLOTE"
        Do_It!
        ClearAll

        If Not IsEmpty("Answer")
           Then CopyReport "\\Base\\Sistemas\\CtaRec\\RM_0030" "R" "Answer" "R"
                IMPRIREL("Answer","R")
        EndIf
EndIf
ClearAll
Coedit "MediaC"
PickForm "F"
Moveto [Numero do Lote]
Locate NLOTE
Moveto "Mediai"
End
EndProc  ; (Imprime)


;*********************************** CRED/DEB *********************************
Proc IMPRIME3()
Do_It!
DISPOSITIVO()

VSDGMEDIA=[MediaC->Data Media]

If OK<>""
   Then AGUARDE("Aguarde, gerando o relat¢rio")
        {Ask} {MediaI} Check
        Moveto [Numero do Lote] TypeIn "~NLOTE"
        Do_It!
        ClearAll

        If Not IsEmpty("Answer")
           Then {Ask} {Answer} TypeIn "Fast"
                Moveto [Descricao da conta] TypeIn "Changeto \"1-Titulos a Receber\""
                Do_IT!
                ClearAll

                {Ask} {\\Sistemas\\Ctapag\\titulos}
                Moveto [Codigo do Emitente     ] Example "cdemit" TypeIn ", ~VSDGCDCLI.."
                Moveto [Codigo da Empresa      ] Example "cdempr"
                Moveto [Nome Fantasia Empresa  ] Example "nomempr"
                Moveto [Nome Fantasia Emitdest ] Example "nomemit"
                Moveto [Data de Vencimento     ] Example "dtvecto"
                Moveto [Saldo do Documento     ] Example "sdoc" TypeIn ", >0.01"
                Moveto [Codigo do Documento    ] Example "codoct"
                Moveto [Numero do Documento    ] Example "nudoct"
                Moveto [Numero do Lancamento   ] Example "nulanc"
                Moveto [Codigo da Conta        ] Example "codcon"
                Moveto [Descricao do Lancamento] Example "desclan"

                {Ask} {Answer} TypeIn "Insert"

                Moveto [Descricao do Lancamento] Example "desclan"
                Moveto [Codigo do Destinatario ] Example "cdemit"
                Moveto [Codigo da Empresa      ] Example "cdempr"
                Moveto [Data de Vencimento     ] Example "dtvecto"
                Moveto [Nome Fantasia Empresa  ] Example "nomempr"
                Moveto [Nome Fantasia Emitdest ] Example "nomemit"
                Moveto [Saldo do Documento     ] Example "sdoc*-1"
                Moveto [Descricao da Conta     ] TypeIn "2-Titulos A Pagar"
                Moveto [Codigo do Documento    ] Example "codoct"
                Moveto [Numero do Documento    ] Example "nudoct"
                Moveto [Numero do Lancamento   ] Example "nulanc"
                Moveto [Codigo da Conta        ] Example "codcon"

                Do_IT!
                ClearAll

                CopyReport "\\Base\\Sistemas\\CtaRec\\RM_0030" "2" "Answer" "R"
                IMPRIREL("Answer","R")
        EndIf
EndIf
ClearAll
Coedit "MediaC"
PickForm "F"
Moveto [Numero do Lote]
Locate NLOTE
Moveto "Mediai"
End
EndProc  ; (Imprime3)

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoI()
DIGITAI()
Moveto "Mediai"
If RecordStatus("Locked") Then UnLockRecord EndIf
EndProc

;*******************************************************************************
;* Rotina para controlar Edicao do registro                                    *
;*******************************************************************************
Proc Controla_EdicaoC()
While FACA_DIGITAC
  SetaCorRegistro("Editando")
  DIGITAC()
  If CHAVE=9 Then QuitLoop EndIf
  SetaCorRegistro("Padrao")

  While FACA_CHAVEI
    Moveto "Mediai"
    CHAVEI()
    If CHAVEI=9 Then QuitLoop EndIf
    Controla_EdicaoI()
  EndWhile
  SetaCorRegistro("Padrao")
  Moveto "Mediac"
EndWhile
If RecordStatus("Locked") Then UnLockRecord EndIf
If OPCAO_FORM="1"
   Then PickForm "1"
EndIf
EndProc

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bib_Proc"

CoEdit "Mediac"

PickForm "1"
NLOTE=0
DIGITENS = 0
OPCAO_FORM="1"
While True
  CHAVEC()
  If CHAVE=9 Then QuitLoop EndIf
  If CHAVE=6
     Then If OPCAO_FORM="F"
             Then PickForm "F"
             Else PickForm "1"
          EndIf
          Loop
  EndIf
  Controla_EdicaoC()
EndWhile
Do_It!
ClearAll
Release Vars All
Release Procs All
