;** Bib_Dup  *******************************************************************
;*  Biblioteca dp/ Duplic - contas a receber                                   *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 24/05/2019 por Anivel Augusto Rodrigues
;Ultima Alteracao: 28/05/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado novas rotinas
;Ultima Alteracao: 01/10/2019 por Bruno Carvalho
;Motivo Alteracao: Ajustes nos rateios na proc Parcelas()

;*******************************************************************************
@ 22,28 ?? "Gerando Biblioteca Bib_Dup.Lib"
Style Blink
?? "... "

If IsFile("\\Sistemas\\Ctarec\\Bib_Dup.Lib")
   Then Run NoRefresh "Del \\Sistemas\\Ctarec\\Bib_Dup.Lib>Nul"
EndIf
CreateLib "\\Sistemas\\Ctarec\\Bib_Dup" Size 100

;*******************************************************************************
;* Rotina para Localizar Registro Carteira                                     *
;*******************************************************************************
Proc Bib_Dup_CHAVEC2()

While True
  Origem_Disparo=""

  End
  If OPCAO_FORM="3"
     Then Down
     Else CtrlPgdn
  EndIf
  
  If PASSOU
     Then [Codigo do Documento]=TIPODOC
          [Codigo da Empresa  ]=CODEMP
          Moveto [Numero do Documento]
     Else [Codigo da Empresa]=SYS_EMPRESA_DEFAULT
          Moveto [Codigo da Empresa]
  EndIf
  FORM_CONTATO =""
  SetaCorRegistro("Editar")
  While True

  MSGCAMPO=""
  TECLA=""  
  If Field()="Codigo da Empresa"  Or
     Field()="Codigo do Documento"
     Then TECLA="F1=Tabelas  "
  EndIf

  If OPCAO_FORM="3"
       Then TECLA=TECLA+"F4=N§ Lan‡amento "
       Else TECLA=TECLA+"F4=N§ Boleta "
  EndIf

  AguardaTeclasPadrao()

  Switch
    Case RetVal=-33 : SemFuncoes()
    Case RetVal=-94 : MsgTeclasPadrao()
    Case RetVal="F1":
         If Field()="Codigo da Empresa" Or
            Field()="Codigo do Documento"
            Then CONSULTAF1()
         EndIf
    Case RetVal="F3":
         If OPCAO_FORM="3"
            Then OPCAO_FORM="4"
            Else OPCAO_FORM="3"
         EndIf
         Del
         CHAVEC=6
         Return
    Case RetVal="F4":
        If OPCAO_FORM="3"
           Then TIPO_TRABALHO=0
           Else TIPO_TRABALHO=2
         EndIf
         CHAVEC=5
         Del
         Return
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         Del
         While True
           Origem_Disparo=""

           FORM_CONTATO =""

           If OPCAO_FORM="3"
              Then PAGINA("Duplic","MR")
              Else PAGINA("Duplic","MT")
           EndIf
           NLANC=[Numero do Lancamento]
           Switch
             Case EDITAR="S":
                  PickForm "4"
                  Echo Normal
                  Echo Off
                  If [Sistema Gerador]<>"MA"
                     Then MSG="Sistema Origem = "+PegaNomeSistemaGerador()+"//"
                          FastMsg(MSG)
                  EndIf
                  If TITULOS_SOBAIXAS    Or 
                     TITULOS_SOANOTACOES Or 
                     Checa_Controle([Numero_Controle_Dia])
                     Then CHAVEC=0
                          Controla_EdicaoC()
                     Else UnLockRecord
                  EndIf
             Case EXCLUIR="S":
                  If TITULOS_SOBAIXAS  Or TITULOS_SOANOTACOES
                     Then FastMsg("Exclus„o n„o permitida !")
                          UnLockRecord
                     Else PickForm "4"
                          Echo Normal
                          Echo Off
        
                          If [Sistema Gerador]<>"MA"
                             Then MSG="Sistema Origem = "+PegaNomeSistemaGerador()+"//"
                                  MSG=MSG+"Excluir este lan‡amento em caso de erro no Sistema !//"
                                  MSG=MSG+"Caso contrario corriga o lan‡amento no Sistema Origem !//"
                             Else MSG=""
                          EndIf
                          MSG=MSG+"Confirma a Exclus„o do Lan‡amento ?"
                          If CONFGERAL_Supervisor(MSG)
                             Then EXCLUSAO()
                             Else UnLockRecord
                          EndIf
                  EndIf
             OtherWise: QuitLoop
           EndSwitch
           If OPCAO_FORM="3"
              Then PickForm "3"
              Else PickForm "4"
           EndIf
           SetaPosForm()
         EndWhile
         QuitLoop
    Case Retval="ESC":
         If Field()="Codigo da Empresa"
            Then CHAVEC=9
                 Del
                 Return
         EndIf
         If Field()="Codigo do Documento"
            Then [Codigo do Documento]=""
                 Moveto [Codigo da Empresa]
         EndIf
         If Field()="Numero do Documento"
            Then Moveto [Codigo do Documento]
         EndIf
    Case Retval="ENTER":
         Switch
           Case Field()="Codigo da Empresa": 
                EMPRESA=[]
                Moveto [Codigo do Documento]
                Loop
           Case Field()="Codigo do Documento":
                Moveto [Numero do Documento]
                Loop
           Case Field()="Numero do Documento":
                EMPRESA =[Codigo da Empresa  ]
                TPDOCTO =[Codigo do Documento]
                NUMDOCTO=[Numero do Documento]
         EndSwitch
         PASSOU=True
         CODEMP= [Codigo da Empresa]
         TIPODOC=[Codigo do Documento]
         Del
         PickForm "4"
         Moveto [Codigo da Empresa]
         Locate IndexOrder by "IndDup1" EMPRESA,TPDOCTO,NUMDOCTO
         If Not Retval
            Then FastMsg("Lan‡„mento n„o encontrado !")
            Else CHAVEC=0
                 If Not IsLockRecord()
                    Then Echo Normal
                         Echo Off
                         If [Sistema Gerador]<>"MA"
                            Then MSG="Sistema Origem = "+PegaNomeSistemaGerador()+"//"
                                 FastMsg(MSG)
                         EndIf
                         If TITULOS_SOBAIXAS    Or 
                            TITULOS_SOANOTACOES Or 
                            Checa_Controle([Numero_Controle_Dia])
                            Then Return
                         EndIf
                 EndIf
         EndIf   
         If OPCAO_FORM="3"
            Then PickForm "3"
         EndIf
         QuitLoop
    EndSwitch
  EndWhile
EndWhile
EndProc   ; (Bib_Dup_CHAVEC2)

;*******************************************************************************
;* Rotina para Localizar Registro Boleta                                       *
;*******************************************************************************
Proc Bib_Dup_CHAVEC3()

While True
  Origem_Disparo=""

  End
  CtrlPgdn

  Moveto [Documento no Banco]

  FORM_CONTATO =""
  SetaCorRegistro("Editar")

  While True

  MSGCAMPO=""
  TECLA="F4=N§ Lan‡amento"
  AguardaTeclasPadrao()

  Switch
    Case RetVal=-33 : SemFuncoes()
    Case RetVal=-94 : MsgTeclasPadrao()
    Case RetVal="F3":
         OPCAO_FORM="3"
         PickForm "3"
         TIPO_TRABALHO=0
         Del
         CHAVEC=5
         Return
    Case RetVal="F4":
         TIPO_TRABALHO=0
         CHAVEC=5
         Del
         Return
    Case RetVal="F7" Or RetVal="UP" Or RetVal="PGUP" Or RetVal="HOME":
         Del
         While True
           Origem_Disparo=""

           FORM_CONTATO =""

           PAGINA("Duplic","MT")
           NLANC=[Numero do Lancamento]
           Switch
             Case EDITAR="S":
                  PickForm "4"
                  Echo Normal
                  Echo Off
                  If [Sistema Gerador]<>"MA"
                     Then MSG="Sistema Origem = "+PegaNomeSistemaGerador()+"//"
                          FastMsg(MSG)
                  EndIf
                  If TITULOS_SOBAIXAS    Or 
                     TITULOS_SOANOTACOES Or
                     Checa_Controle([Numero_Controle_Dia])
                     Then CHAVEC=0
                          Controla_EdicaoC()
                     Else UnLockRecord
                  EndIf
             Case EXCLUIR="S":
                  If TITULOS_SOBAIXAS  Or TITULOS_SOANOTACOES
                     Then FastMsg("Exclus„o n„o permitida !")
                          UnLockRecord
                     Else PickForm "4"
                          Echo Normal
                          Echo Off
        
                          If [Sistema Gerador]<>"MA"
                             Then MSG="Sistema Origem = "+PegaNomeSistemaGerador()+"//"
                                  MSG=MSG+"Excluir este lan‡amento em caso de erro no Sistema !//"
                                  MSG=MSG+"Caso contrario corriga o lan‡amento no Sistema Origem !//"
                             Else MSG=""
                          EndIf
                          MSG=MSG+"Confirma a Exclus„o do Lan‡amento ?"
                          If CONFGERAL_Supervisor(MSG)
                             Then EXCLUSAO()
                             Else UnLockRecord
                          EndIf
                  EndIf
             OtherWise: QuitLoop
           EndSwitch
           SetaPosForm()
         EndWhile
         QuitLoop
    Case Retval="ESC":
         If Field()="Documento no Banco"
            Then CHAVEC=9
                 Del
                 Return
         EndIf
    Case Retval="ENTER":
         If IsBlank([]) Then Loop EndIf
         Switch
           Case Field()="Documento no Banco":
                DOCTOBANCO=[Documento no Banco]
         EndSwitch
         Del
         Moveto [Documento no Banco]
         Locate DOCTOBANCO
         If Not Retval
            Then FastMsg("Lan‡„mento n„o encontrado !")
            Else CHAVEC=0
                 If Not IsLockRecord()
                    Then Echo Normal
                         Echo Off
                         If [Sistema Gerador]<>"MA"
                            Then MSG="Sistema Origem = "+PegaNomeSistemaGerador()+"//"
                                 FastMsg(MSG)
                         EndIf
                         If TITULOS_SOBAIXAS    Or 
                            TITULOS_SOANOTACOES Or 
                            Checa_Controle([Numero_Controle_Dia])
                            Then Return
                         EndIf
                 EndIf
         EndIf   
         If OPCAO_FORM="3"
            Then PickForm "3"
         EndIf
         QuitLoop
    EndSwitch
  EndWhile
EndWhile
EndProc   ; (Bib_Dup_CHAVEC3)

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc Parcelas_SD_Dialog(Disparo,Campo,Evento,Elemento)
Private Disparo,Campo,Evento,Elemento

TECLA=""
MSG_CAMPO=""
Temp=True

If INICIO_DIALOG
   Then INICIO_DIALOG=False
        Switch
          Case SD=1: Campo="TG_VENCIMENTOS"
          Case SD=2: Campo="TG_DOCTO"
          Case SD=3: Campo="TG_OPDOCTO"
        EndSwitch
EndIf

If Disparo="OPEN" Then AoCriarShowDialog() EndIf

If Disparo="CLOSE"
   Then Switch
          Case Campo="YES": AcceptDialog
          Case Campo="NO" : CancelDialog
        EndSwitch
        Return Temp
EndIf

If Disparo="SELECT" And Campo="TG_VENCIMENTOS" And
   DynArraySize(Array_Vencimentos)>0 
   Then Temp=True
        CHAMA=True
        Parcelas_Vencimento()
EndIf

If Disparo="UPDATE"
   Then Switch
          Case Campo="TG_ADICIONA":
            Temp=True
            CHAMA=False
            Parcelas_Vencimento()
          Case Campo="TG_MULTIPLA":
            Temp=True
            Parcelas_Quant()
            Campo="TG_VENCIMENTOS"
          Case Campo="YES": AcceptDialog
          Case Campo="NO" : CancelDialog
          OtherWise       : Return Temp
        EndSwitch
EndIf

If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] =   9: Temp=False

     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case SD=1:
              Switch 
						    Case Campo="TG_ADICIONA"       : Campo="TG_VENCIMENTOS"
						    Case Campo="TG_MULTIPLA"       : Campo="TG_VENCIMENTOS"
						    Case Campo="TG_VENCIMENTOS"    : Campo="NO"
                Case Campo="YES" Or Campo="NO" : Campo="TG_VENCIMENTOS"
              EndSwitch
            Case SD=2: 
              Switch 
                Case Campo="TG_DOCTO"          : CancelDialog
                Case Campo="TG_DTEMID"         : Campo="TG_DOCTO"
                Case Campo="TG_DTREFE"         : Campo="TG_DTEMID"
						    Case Campo="TG_VALOR"          : Campo="TG_DTREFE"
              EndSwitch
            Case SD=3: 
              Switch 
                Case Campo="TG_OPDOCTO"        : Campo="NO"
						    Case Campo="TG_PARCELA"        : Campo="TG_OPDOCTO"
                Case Campo="TG_OPDTEM"         : Campo="TG_PARCELA"
                Case Campo="YES" Or Campo="NO" : Campo="TG_OPDOCTO"
              EndSwitch
          EndSwitch

       Case Evento["KeyCode"]=-60 And DynArraySize(Array_Vencimentos)>0:
            Campo="TG_VENCIMENTOS"

       Case Evento["KeyCode"] = -83 And Campo="TG_VENCIMENTOS":
            If DynArraySize(Array_Vencimentos)>0 And NumVal(ArrayElement)>1
               Then If QuerExcluir("este vencimento")
                       Then Array_vencimentos[ArrayElement]=""

                            DynArray Array_VencimentosI[]
                            c=0
                            For i From 1 To DynArraySize(Array_Vencimentos)
                              If IsBlank(Array_Vencimentos[i]) Then Loop EndIf
                              c=c+1
                              Array_VencimentosI[c]=AlinhM(StrVal(c),2)+SubStr(Array_Vencimentos[i],3,70)
                            EndFor

                            Release Vars Array_Vencimentos
                            DynArray Array_Vencimentos[]
                            For i From 1 To DynArraySize(Array_VencimentosI)
                              Array_Vencimentos[i]=Array_VencimentosI[i]
                            EndFor
                            Release Vars Array_VencimentosI
                    EndIf
            EndIf
       Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_OPDOCTO"   : Campo="TG_PARCELA"
                         VSDGOPDOCTO=ControlValue("TG_OPDOCTO")
                    Case Campo="TG_PARCELA"   : Campo="TG_OPDTEM"
                         VSDGPARCELA=ControlValue("TG_PARCELA")
                    Case Campo="TG_OPDTEM"   : Campo="YES"
                         
                    Case Campo="TG_DOCTO"          : Campo="TG_DTEMID"
                         VSDGDOCTO=ControlValue("TG_DOCTO")
                    Case Campo="TG_DTEMID"         : Campo="TG_DTREFE"
                         VSDGDTEMID=ControlValue("TG_DTEMID")
                    Case Campo="TG_DTREFE"         : Campo="TG_VALOR"
                         VSDGDTREFE=ControlValue("TG_DTREFE")
                    Case Campo="TG_VALOR"          :
                         VSDGVALOR=ControlValue("TG_VALOR")
                         AcceptDialog

                    Case Campo="TG_VENCIMENTOS" And
                         DynArraySize(Array_Vencimentos)>0:
                         CHAMA=True
                         Parcelas_Vencimento()
                    Case Campo="TG_ADICIONA":
                         CHAMA=False
                         Parcelas_Vencimento()
                    Case Campo="TG_MULTIPLA":  Campo="TG_VENCIMENTOS"
                         Parcelas_Quant()

                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf

SelectControl Campo
TECLA=" Esc=Retornar  "

Switch
  Case Campo="TG_OPDTEM"       : MensagemCheckBoxes()
  Case Campo="TG_PARCELA"      : MSGCAMPO="Informe a quantidade de desdobramentos a mais que deseja gerar"
  Case Campo="TG_DOCTO"        : MSGCAMPO="Informe o documento "
  Case Campo="TG_DTEMID"       : MSGCAMPO="Informe a emissäo "
  Case Campo="TG_DTREFE"       : MSGCAMPO="Informe o vencimento "
  Case Campo="TG_VALOR"        : MSGCAMPO="Informe o valor "

  Case Campo="TG_ADICIONA"     : MSGCAMPO="Adicionar novo desdobramento [Enter]"
  Case Campo="TG_MULTIPLA"     : MSGCAMPO="Gera multiplos desdobramentos [Enter]"

  Case Campo="TG_OPDOCTO"      : MensagemRadioButtons()
  Case Campo="TG_VENCIMENTOS"  : MSGCAMPO="Vencimentos "
       If DynArraySize(Array_Vencimentos)>0
          Then TECLA=TECLA+"Del=Excluir  Enter=Editar  "+Chr(27)+""+Chr(26)+"=Selecionar  "
       EndIf

  Case Campo="YES"             : MSGCAMPO="Confirma Dados [Enter]"
  Case Campo="NO"              : MSGCAMPO="Cancelar [Enter]"
EndSwitch

@ 24,0 ?? TECLA+Spaces(80-Len(TECLA))
PaintCanvas Attribute 31 24,0,24,79
Message(MSGCAMPO)

RefreshDialog
Return TEMP
EndProc  ; (Parcelas_SD_Dialog)

;*******************************************************************************
;*  Rotina para a Tela Principal                                                *
;*******************************************************************************
Proc Parcelas_Show()
Message("")
Echo Normal
Echo Off
Mouse Show

If IsAssigned(Array_Vencimentos)
   Then Release Vars Array_Vencimentos
EndIf
DynArray Array_Vencimentos[]

VSDGOPDOCTO=1
VSD_I_SEQ=1

;1234567890123456789012345678901234567
;01 1234567890 99/99/9999 9.999.999,99
  Array_Vencimentos[1]="01 "+
                       Format("W10,AL",[Duplic->Numero do Documento])+" "+
                       Format("D13",DateVal([Duplic->Data de Emissao]))+" "+
                       Format("D13",DateVal([Duplic->Data de Vencimento]))+" "+
                       Format("W12.2,EIC",[Duplic->Saldo do Documento])+" "+
                       Format("W12.2",[Duplic->Saldo do Documento])

SD=1
INICIO_DIALOG=True

ShowDialog "Relacao de Desdobramentos" Proc "Parcelas_SD_Dialog"
  Trigger "OPEN","ARRIVE","UPDATE","CLOSE","SELECT"
     Key "ENTER","ESC","F2","DEL"
   @ 02,03 Height 19 Width 57

    Frame Single From 00,00 to 14,54

    PickDynArray @ 02,01 Height 12 width 52
     Columns 1
      Array_Vencimentos
       Tag "TG_VENCIMENTOS"
        To ArrayElement
    Label @ 00,01 "~D~esdobramentos"  For "TG_VENCIMENTOS"
    Label @ 01,01 "N§   Docto     DtEmiss„o  DtVencto         Valor"  For "TG_VENCIMENTOS"
   
                  ;01 1234567890 99/99/9999 99/99/9999 9.999.999,99
    Pushbutton @ 15,00 width 13 "~N~ovo"                               Tag "TG_ADICIONA"  To BottonValue
    Pushbutton @ 15,14 width 13 "~M~ultiplas"                          Tag "TG_MULTIPLA"  To BottonValue
    
    Pushbutton @ 15,30 width 11 "~O~k"       OK     Default Value "Ok" Tag "YES"          To BottonValue
    Pushbutton @ 15,43 width 11 "~C~ancela"  CANCEL                    Tag "NO"           To BottonValue

  EndDialog
  Mouse Show
  If Not RetVal
     Then Return False
     Else Return True
  EndIf

EndProc  ;(Inicial)

;*******************************************************************************
;*  Rotina para a Tela de Vencimentos                                         *
;*******************************************************************************
Proc Parcelas_Vencimento()
;1234567890123456789012345678901234567
;01 1234567890 99/99/9999 9.999.999,99

If CHAMA
   Then VSD_I_SEQ =SubStr(Array_Vencimentos[ArrayElement],1,2)
        VSDGDOCTO  =RTrim(SubStr(Array_Vencimentos[ArrayElement],4,10))
        VSDGDTEMID=DateVal(LTrim(SubStr(Array_Vencimentos[ArrayElement],15,2))+"."+
                                 SubStr(Array_Vencimentos[ArrayElement],18,2)+"."+
                                 SubStr(Array_Vencimentos[ArrayElement],21,4))
        VSDGDTREFE=DateVal(LTrim(SubStr(Array_Vencimentos[ArrayElement],26,2))+"."+
                                 SubStr(Array_Vencimentos[ArrayElement],29,2)+"."+
                                 SubStr(Array_Vencimentos[ArrayElement],32,4))
        VSDGVALOR =NumVal(SubStr(Array_Vencimentos[ArrayElement],50,12))
   Else Array_Vencimentos[1]="01 "+
             Format("W10,AL",[Duplic->Numero do Documento])+" "+
             Format("D13",DateVal([Duplic->Data de Emissao]))+" "+
             Format("D13",DateVal([Duplic->Data de Vencimento]))+" "+
             Format("W12.2,EIC",[Duplic->Saldo do Documento])+" "+
             Format("W12.2",[Duplic->Saldo do Documento])
            
             VSD_I_SEQ =AlinhM(StrVal(DynArraySize(Array_Vencimentos)+1),2)
             VSDGDOCTO =""
             VSDGVALOR =BlankNum()
             VSDGDTEMID=BlankDate()
             VSDGDTREFE=BlankDate()
EndIf

While True
  SD=2
  INICIO_DIALOG=True
  ShowDialog "Desdobramento [    ]" Proc "Parcelas_SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "ENTER","ESC"
   @ 03,19   Height 04 Width 58

    Accept @ -01,33 Width 4 "A2" Tag "I_Seq" To VSD_I_SEQ

    Label  @ 00,00 "Docto"  For "TG_DOCTO"
    Accept @ 01,01 Width 13 "A10"  Picture "!*!" Tag "TG_DOCTO" To VSDGDOCTO

    Label  @ 00,18 "Emiss„o"  For "TG_DTEMID"
    Accept @ 01,15 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTEMID" To VSDGDTEMID

    Label  @ 00,28 "Vencto"  For "TG_DTREFE"
    Accept @ 01,29 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTREFE" To VSDGDTREFE

    Label  @ 00,42 "Valor" For "TG_VALOR"
    Accept @ 01,43 Width 12 "$" picture "#*#.[##]" Tag "TG_VALOR" To VSDGVALOR

  EndDialog
  Mouse Show
  If Not RetVal
		 Then QuitLoop
  EndIf

  If IsBlank(VSDGDOCTO)
    Then Mensagem("Documento Invalido !")
         Loop
  EndIf
  If IsBlank(VSDGVALOR) Or IsBlank(VSDGDTREFE) Or IsBlank(VSDGDTEMID)
    Then Mensagem("Data ou Valor Invalido !")
         Loop
  EndIf

  ;01 1234567890 99/99/9999 9.999.999,99
  Array_Vencimentos[NumVal(VSD_I_SEQ)]= VSD_I_SEQ+" "+
                                Format("W10,AL",VSDGDOCTO)+" "+
                                Format("D13",VSDGDTEMID)+" "+
                                Format("D13",VSDGDTREFE)+" "+
                                Format("W12.2,EIC",VSDGVALOR)+" "+
                                Format("W12.2",VSDGVALOR)
  Return
EndWhile

SD=1
EndProc    ; (Vencimento)

;*******************************************************************************
;*  Rotina para a Digitacao da Quantidade de Parcelas                          *
;*******************************************************************************
Proc Parcelas_Quant()
VSDGPARCELA=BlankNum()

SD=3
INICIO_DIALOG=True

Array TG_OPDTEM[1]
TG_OPDTEM[1]="Gerar Data de Emiss„o diferentes"

Array CheckTG_OPDTEM[ArraySize(TG_OPDTEM)]
CheckTG_OPDTEM[1]=False

ShowDialog " +Desdobramento(s) " Proc "Parcelas_SD_Dialog"
Trigger "OPEN","ARRIVE"
Key "ENTER","ESC"
 @ 03,20   Height 11 Width 57

  Label @ 00,00 "Desdobramento do Documento por" For "TG_OPDOCTO"
   RadioButtons @ 01,01 Height 1 Width 55
     "~L~etra",
     "~N~umero",
     "~M~es/Ano",
     "~P~arcela"
     Tag "TG_OPDOCTO"
     To VSDGOPDOCTO
     
  @ 02,00 ?? "      docto/A    docto/1      MM/AA        NP/TP"   

  Label  @ 04,00 "Quantidade"  For "TG_PARCELA"
  Accept @ 05,03  Width 05 "A4"  Picture "#*#" Tag "TG_PARCELA" To VSDGPARCELA
  
  CheckBoxes @ 05,12 Height 1 Width 40 Tag "TG_OPDTEM"
  TG_OPDTEM[1] to CheckTG_OPDTEM[1]

  Pushbutton @ 07,30 width 11 "~O~k"       OK     Default Value "Ok" Tag "YES"          To BottonValue
  Pushbutton @ 07,43 width 11 "~C~ancela"  CANCEL                    Tag "NO"           To BottonValue
  
EndDialog
Mouse Show
If RetVal
   Then If Not IsBlank(VSDGPARCELA)
           Then Parcelas_Datas(VSDGPARCELA)
        EndIf
EndIf

SD=1
EndProc  ;(Quant)

;*******************************************************************************
;* Calcula as Datas das Parcelas                                               *
;*******************************************************************************
Proc Parcelas_Datas(PARCELAS)
Private PARCELAS,DOCTO,VALOR,DATAp,DATAE,
        DATA,DIA,MES,ANO,CONT,pos,
        DATAEM,DIAEM,MESEM,ANOEM,
        NMES, NANO, NPARC, TPARC

If DynArraySize(Array_Vencimentos)>0
  Then 
       DOCTO =RTrim(SubStr(Array_Vencimentos[1],4,10))
       DATAEM=DateVal(LTrim(SubStr(Array_Vencimentos[1],15,2))+"."+
                SubStr(Array_Vencimentos[1],18,2)+"."+
                SubStr(Array_Vencimentos[1],21,4))
       DATA  =DateVal(LTrim(SubStr(Array_Vencimentos[1],26,2))+"."+
                SubStr(Array_Vencimentos[1],29,2)+"."+
                SubStr(Array_Vencimentos[1],32,4))
       VALOR =NumVal(SubStr(Array_Vencimentos[1],50,12))
  Else 
       DOCTO =RTrim([Duplic->Numero do Documento])
       DATAEM=DateVal(LTrim([Duplic->Data de Emissao]))
       DATA  =DateVal(LTrim([Duplic->Data de Vencimento]))
       VALOR =NumVal([Duplic->Saldo do Documento])
EndIf

Release Vars Array_Vencimentos
DynArray Array_Vencimentos[]

If DynArraySize(Array_Vencimentos)<=0
   Then
        Array_Vencimentos[1]="01 "+
                 Format("W10,AL",[Duplic->Numero do Documento])+" "+
                 Format("D13",DateVal([Duplic->Data de Emissao]))+" "+
                 Format("D13",DateVal([Duplic->Data de Vencimento]))+" "+
                 Format("W12.2,EIC",[Duplic->Saldo do Documento])+" "+
                 Format("W12.2",[Duplic->Saldo do Documento])
   Else
        Array_Vencimentos[1]= AlinhM(StrVal(1),2)+" "+
                  Format("W10,AL",DOCTO)+" "+
                  Format("D13",DateVal([Duplic->Data de Emissao]))+" "+
                  Format("D13",DATA)+" "+
                  Format("W12.2,EIC",VALOR)+" "+
                  Format("W12.2",VALOR)
EndIf

DIA  =NumVal(Day(DATA))
MES  =NumVal(Month(DATA))
ANO  =NumVal(Year(DATA))

DIAEM=NumVal(Day(DATAEM))
MESEM=NumVal(Month(DATAEM))
ANOEM=NumVal(Year(DATAEM))

CONT =2

While CONT<=NumVal(PARCELAS)+1
    If MES<12
       Then MES=MES+1
       Else ANO=ANO+1
            MES=1
    EndIf
   If Day(Ultimo_dia(AlinhM(StrVal(MES),2)+StrVal(ANO)))<DIA
      Then DIA=Day(Ultimo_dia(AlinhM(StrVal(MES),2)+StrVal(ANO)))
   EndIf

   DATAP=DateVal(AlinhM(StrVal(MES),2)+"/"+AlinhM(StrVal(DIA),2)+"/"+StrVal(ANO))

   If Not  CheckTG_OPDTEM[1]
      Then DATAE=DATAEM
      Else If MESEM<12
              Then MESEM=MESEM+1
              Else ANOEM=ANOEM+1
                   MESEM=1
           EndIf
           If Day(Ultimo_dia(AlinhM(StrVal(MESEM),2)+StrVal(ANOEM)))<DIAEM
              Then DIAEM=Day(Ultimo_dia(AlinhM(StrVal(MESEM),2)+StrVal(ANOEM)))
           EndIf
           DATAE=DateVal(AlinhM(StrVal(MESEM),2)+"/"+AlinhM(StrVal(DIAEM),2)+"/"+StrVal(ANOEM))
   EndIf

   Switch
     Case VSDGOPDOCTO=1:
           pos=SearchFrom("/",DOCTO,1)
           pos=pos-1
           If pos<1
              Then Pos=Len(Docto)
           EndIf
           DOCTO=SubStr(DOCTO,1,pos)+"/"+Chr(64+Cont)
      Case VSDGOPDOCTO=2:
           pos=SearchFrom("/",DOCTO,1)
           pos=pos-1
           If pos<1
              Then Pos=Len(Docto)
           EndIf
           DOCTO=SubStr(DOCTO,1,pos)+"/"+StrVal(Cont)
      Case VSDGOPDOCTO=3:
           NVDOCTO="?"
           pos=SearchFrom("/",DOCTO,1)
           pos=pos-1
           If pos>0
              Then NMES=SubStr(DOCTO,1,pos)
                   NANO=RTrim(SubStr(DOCTO,pos+2,4))
                   If ConteudoNumerico(NMES) And
                      ConteudoNumerico(NANO)
                      Then NMES=NumVAl(NMES)
                           NANO=NumVAl(NANO)
                           If NMES>=1 And NMES<=12
                              Then If NMES<12
                                      Then NMES=NMES+1
                                      Else NANO=NANO+1
                                           NMES=1
                                   EndIf
                                   NVDOCTO=AlinhM(StrVal(NMES),2)+"/"+StrVal(NANO)
                           EndIf
                   EndIf
           EndIf
           DOCTO=NVDOCTO
           If CONT=2 And NVDOCTO="?"
              Then Mensagem("Documento formato invalido !// //Informe MM/AAAA.")
           EndIf
      Case VSDGOPDOCTO=4:
           NVDOCTO="?"
           pos=SearchFrom("/",DOCTO,1)
           pos=pos-1
           If pos>0
              Then NPARC=SubStr(DOCTO,1,pos)
                   TPARC=RTrim(SubStr(DOCTO,pos+2,4))
                   If ConteudoNumerico(NPARC) And
                      ConteudoNumerico(TPARC)
                      Then NPARC=NumVal(NPARC)+1
                           NVDOCTO=StrVal(NPARC)+"/"+TPARC
                   EndIf
           EndIf
           DOCTO=NVDOCTO
           If CONT=2 And NVDOCTO="?"
              Then Mensagem("Documento formato invalido !// //Informe 9/9.")
           EndIf
   EndSwitch

   Array_Vencimentos[CONT]= AlinhM(StrVal(CONT),2)+" "+
                      Format("W10,AL",DOCTO)+" "+
                      Format("D13",DATAE)+" "+
                      Format("D13",DATAP)+" "+
                      Format("W12.2,EIC",VALOR)+" "+
                      Format("W12.2",VALOR)

   CONT=CONT+1
 EndWhile

EndProc  ;(Datas)

;;*******************************************************************************
;;* Rotina para Verificar se a Data Digitada e o Documento ja existem           *
;;*******************************************************************************
;Proc Ver_Data(DOCTO,DATA)
;Private Ok,DOCTO,DATA,I
;
;Ok=False
;
;If DynArraySize(Array_Vencimentos)<=0
;   Then Return Ok
;EndIf
;
;For i From 1 To DynArraySize(Array_Vencimentos)
;  If i=NumVal(VSD_I_SEQ) Then Loop EndIf
;  If DATA=DateVal(LTrim(SubStr(Array_Vencimentos[i],15,2))+"."+
;                  SubStr(Array_Vencimentos[i],18,2)+"."+
;                  SubStr(Array_Vencimentos[i],21,4))
;     Then Ok=True
;          QuitLoop
;  EndIf
;  If DOCTO=RTrim(SubStr(Array_Vencimentos[i],4,10))
;     Then Ok=True
;          QuitLoop
;  EndIf
;EndFor
;
;Return Ok
;EndProc  ;(Ver_Data)

;;*******************************************************************************
;;* Rotina de Controle p/ ShowDialog Grade                                      *
;;*******************************************************************************
;Proc Opcoes_Dialog(Disparo,Campo,Evento,Elemento)
;private Disparo,Campo,Evento,Elemento
;
;Temp=True
;TECLA=" Esc=Retornar  Enter=Selecionar  =Mover  "
;If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then
;   Switch
;      Case Evento["KeyCode"] = 9 Or Evento["KeyCode"] = -15: Temp=False
;      Case Evento["KeyCode"] = 27:
;           Resultado_F1=False
;           CancelDialog
;      Case Evento["KeyCode"] = 13:
;           Temp=False
;           MontaRegistro_F1(OPCAODIVERSAS,ArrayElement)
;           Resultado_F1=True
;           AcceptDialog
;   EndSwitch
;EndIf
;
;@ 24,0 ?? TECLA+Spaces(80-Len(TECLA))
;PaintCanvas Attribute 31 24,0,24,79
;Return Temp
;EndProc      ; (Opcoes_Dialog)


;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc Parcelas()

If Not TITULOS_SOBAIXAS    And 
   Not TITULOS_SOANOTACOES And
  (CHAVEC=1 Or (CHAVEC=0 And [Duplic->Saldo do Documento]>0))
Then 
     If Parcelas_Show() 
        Then
              If DynArraySize(Array_Vencimentos)>0
        				 Then  Moveto "Duplic"
        							 CopyToArray REG_VENC
                                     
                                     RateioPC("ARRAY_CRIA_RATEIO") 
                                     n=0
                                     Moveto "Duplic"
                                     				
                       For i From 1 To DynArraySize(Array_Vencimentos)
        						     If i>1
        						        Then Moveto [Numero do Lancamento]
        							   	  		 End
        							   	  		 If Numero_Lancamento("Interno","Locked_CtrlPgDn")
        												    Then REG_VENC["Numero do Lancamento"]=PROXLANCTO_NLANC
                                         Release Vars PROXLANCTO_NLANC
                                         CopyFromArray REG_VENC
                                    Else QuitLoop     
        											   EndIf	 
                         EndIf
                         
                         [Numero do Documento]=RTrim(SubStr(Array_Vencimentos[i],4,10))
        								 [Data de Emissao   ]=DateVal(LTrim(SubStr(Array_Vencimentos[i],15,2))+"."+
        																										 SubStr(Array_Vencimentos[i],18,2)+"."+
        																										 SubStr(Array_Vencimentos[i],21,4))
        								 [Data de Vencimento ]=DateVal(LTrim(SubStr(Array_Vencimentos[i],26,2))+"."+
        																										 SubStr(Array_Vencimentos[i],29,2)+"."+
        																										 SubStr(Array_Vencimentos[i],32,4))
        								 [Valor do Documento ]=NumVal(SubStr(Array_Vencimentos[i],50,12))
        
        								 [Saldo do Documento ]=[Valor do Documento]
                         [Data a Receber     ]=[Data de Vencimento]
        								 lc=[Tipo do Lancamento]
        								 [Tipo do Lancamento]=""
        								 [Tipo do Lancamento]=lc
        
        								 While True
        											 NDIAS=0
                               If Dow([Data a Receber])="Sat"
        													Then NDIAS=2
                                  Else If Dow([Data a Receber])="Sun"
        																	Then NDIAS=1
        															 EndIf
        											 EndIf
                               DIA = [Data a Receber]
                               GetRecord "\\Sistemas\\Cadastro\\Feriados" DIA To REG_DIA
                               If Retval
                                  Then NDIAS=REG_DIA["Dias a Pagar"]
                               EndIf
        											 Moveto "Duplic"
                               [Data a Receber]=[Data a Receber]+NDIAS
        											 If NDIAS=0 or Isblank(NDIAS)
        													Then QuitLoop
        											 EndIf
        								 EndWhile
        								 UnLockRecord
                                         
                                         RateioPC("ARRAY_RATEIO")
                                         Moveto "Duplic"
        							 
                                     EndFor
        							 Moveto "DupBaixa"
        							 Tecla_Funcao=""
        							 DIGITAC =False
        							 CHAVEI=9
        							 Return
        			EndIf
		 EndIf
Else 
     Switch
       Case TITULOS_SOBAIXAS    : FastMsg("Fun‡Æo nÆo permitida, s¢ baixas !")
       Case TITULOS_SOANOTACOES : FastMsg("Fun‡Æo nÆo permitida, s¢ anota‡”es !")
       OtherWise                : FastMsg("Fun‡Æo nÆo permitida, t¡tulo j  baixado !")
     EndSwitch  
EndIf

Endproc



;*******************************************************************************
;* Rotina de Entra Reajuste de Preco                                           *
;*******************************************************************************
Proc Bib_Dup_DialogAlteraPorcComissao(Disparo,Campo,Evento,Elemento)
private Disparo,Campo,Evento,Elemento

Temp=True
MSG_CAMPO=""
TECLA=""

If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
  Switch
    Case Evento["KeyCode"] = 9: Temp=False
    Case Evento["KeyCode"] = 27:
         Switch
           Case Campo="Codigo1"           : Campo="NO"
           Case Campo="YES" Or Campo="NO" : Campo="Codigo1"
         EndSwitch
         TEMP=False
    Case Evento["KeyCode"] = 13:
    Switch
       Case Campo="Codigo1"               : Campo="YES"
         COD1=ControlValue("Codigo1")
         
       Case Campo="YES"                   : AcceptDialog
       Case Campo="NO"                    : CancelDialog
    EndSwitch
    TEMP=false
  EndSwitch
endif
switch
  case Campo="Codigo1" : MSG_CAMPO="Informe a % desejada" 
endswitch

Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina Principal De Reajuste de Preco                                       *
;*******************************************************************************
Proc Bib_Dup_AlteraPorcComissao()
private ncampo

ncampo=field()

ShowDialog "% ComissÆo" Proc "Bib_Dup_DialogAlteraPorcComissao"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB"
   @ 05,12   Height 07 Width 36

  Label  @ 00,00 "Percentual" for "Codigo1"
  Accept @ 01,01 Width 13 "N" Tag "Codigo1" to COD1

  Pushbutton @ 03,05 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
  Pushbutton @ 03,19 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

Enddialog
if retval
   then [TaxaComissao     ]=COD1
        [Valor da Comissao]=Round(([Valor do Documento]*[TaxaComissao])/100,2)
        [Saldo da comissao]=[Valor da Comissao]
endif

moveto field ncampo

EndProc

;*******************************************************************************
;* Processo parqa Corrigir Baixa                                               *
;*******************************************************************************
proc Bib_Dup_GravaBaixa()
private i

while true
  seqok=false
  
  End Down
  [Numero do Lancamento]=[\sistemas\ctacor\movcont->Lancamento Gerador]
  [Sequencia da Baixa  ]=[\sistemas\ctacor\movcont->Sequencia Gerador ]
  if not islockrecord()
     then 
          [Codigo da Conta          ]=[\sistemas\ctacor\movcont->Codigo da Conta  ]
          [Codigo da Empresa        ]=[\sistemas\ctacor\movcont->Codigo da Empresa]
          [Data do Pagamento        ]=[\sistemas\ctacor\movcont->Data             ]
          [Valor do Recebimento     ]=[\sistemas\ctacor\movcont->Valor            ]
          [Valor do Desconto        ]=[\sistemas\ctacor\movcont->Valor do Desconto]
          [Valor do Juros           ]=[\sistemas\ctacor\movcont->Valor do Juros   ]
          [Tipo da Baixa            ]="NORMAL"
       
          [Codigo CCusto            ]=[\sistemas\ctacor\movcont->Codigo CCusto         ]
          [Codigo Plano_Conta       ]=[\sistemas\ctacor\movcont->Codigo Plano_Conta    ]
          [Lancamento Conta Corrente]=[\sistemas\ctacor\movcont->Numero do Lancamento]
          
          [Codigo do Historico      ]=[\sistemas\ctacor\movcont->Codigo do Historico   ]
          [Descricao do Historico   ]=[\sistemas\ctacor\movcont->Descricao do Historico]
       
          [Codigo_Usuario           ]=[\sistemas\ctacor\movcont->Codigo_Usuario     ]
          [Data_Inclusao            ]=[\sistemas\ctacor\movcont->Data_Inclusao      ]
          [Hora_Inclusao            ]=[\sistemas\ctacor\movcont->Hora_Inclusao      ]
          [Numero_Controle_Dia      ]=[\sistemas\ctacor\movcont->Numero_Controle_Dia]
          
          [Observacoes              ]="VISE BX AC"
          UnLockRecord
          quitloop
  endif
  del
endwhile          

endproc

;*******************************************************************************
;* Rotina para gerar novo lancamento                                           *
;*******************************************************************************
Proc Bib_Dup_Gera_Lancamento()
Private REG_LANC_NOVO,DESC_LANC,ANT_FIELD,ANT_TAB 

ANT_TAB   = Table()
ANT_FIELD = Field()

DESC_LANC = [Duplic->Descricao do Lancamento]   ;Campos que dependem do lookup

Moveto "Duplic"
CopyToArray REG_LANC_NOVO
UnLockRecord
Do_it!
FormKey
CoeditKey

If Bib_Dup_ProximaOrdem()
   Then REG_LANC_NOVO["Numero do Documento"]     = Completa(Rtrim(Ltrim(REG_LANC_NOVO["Numero do Documento"])),9," ")+"X"
        
        If SubStr([Numero do Documento],10,1)<>"X"
           Then REG_LANC_NOVO["Numero Lancamento Pai"] = NLANC
        EndIf
        
        If Search("GERADO DO LANCTO",REG_LANC_NOVO["Observacoes"])=0
           Then If REG_LANC_NOVO["Observacoes"]<>""
                   Then REG_LANC_NOVO["Observacoes"] = REG_LANC_NOVO["Observacoes"] + " / " 
                EndIf       
                REG_LANC_NOVO["Observacoes"] = REG_LANC_NOVO["Observacoes"]+"GERADO DO LANCTO "+Completa(StrVal(REG_LANC_NOVO["Numero Lancamento Pai"]),8," ")+
                                               "DtVencto: "+StrVal(REG_LANC_NOVO["Data de Vencimento"])+"  VrOriginal: "+
                                               Ltrim(StrVal(Format("W12.2",REG_LANC_NOVO["Valor do Documento"])))
        EndIf
        
        REG_LANC_NOVO["Numero do Lancamento"]    = NLANC_NOVO
        REG_LANC_NOVO["Data de Vencimento"]      = DATA_PAGTO_NOVO
        REG_LANC_NOVO["Data a Receber"]          = DATA_PAGTO_NOVO 
        REG_LANC_NOVO["Valor do Documento"]      = SALDO_NOVO                    
        REG_LANC_NOVO["Saldo do Documento"]      = SALDO_NOVO
        REG_LANC_NOVO["Valor da Comissao"]       = SALDO_COMISSAO
        REG_LANC_NOVO["Saldo da Comissao"]       = SALDO_COMISSAO
        REG_LANC_NOVO["Data_Inclusao"]           = Today()
        REG_LANC_NOVO["Hora_Inclusao"]           = Time() 
        REG_LANC_NOVO["Codigo_Usuario"]          = SYS_CHAPA_USUARIO
        REG_LANC_NOVO["Numero_Controle_Dia"]     = SYS_CONTROLE_DIA   
        
        UnLockRecord
        If [Numero do Lancamento] = NLANC_NOVO
           Then Del
                End Down
                CopyFromArray REG_LANC_NOVO 
                Moveto [Numero do Lancamento]
                PostRecord KeyViol LeaveLocked
                If RetVal     
                   Then [Descricao do Lancamento] = DESC_LANC
                        Moveto [Numero do Lancamento]
                        Locate NLANC
                        [Saldo do Documento   ]=0
                        [Saldo da Comissao    ]=0
                        
                        If [Observacoes]<>""
                           Then [Observacoes] = [Observacoes] + " / "
                        EndIf
                        [Observacoes]=[Observacoes]+"PROX LANCTO GERADO: "+NLANC_NOVO
                        
                        If SubStr([Numero do Documento],10,1)<>"X"
                           Then [Numero Lancamento Pai] = NLANC
                        EndIf                
                        Temp = True
                   Else Temp = False 
                EndIf     
           Else Temp = False            
        EndIf 
   Else Temp = False     
EndIf

Moveto "Duplic"
UnLockRecord
KeyPress "F7"
Moveto [Numero do Lancamento]
Locate NLANC
PostRecord KeyViol LeaveLocked
Moveto ANT_TAB
Moveto Field ANT_FIELD

Return Temp

EndProc ;Bib_Dup_Gera_Lancamento()

;*******************************************************************************
;* Rotina para gerar proximo lancamento                                        *
;*******************************************************************************
Proc Bib_Dup_ProximaOrdem()
Private i
 
Moveto [Numero do Lancamento]
End
If Numero_Lancamento("Interno","Locked_Down")
   Then NLANC_NOVO = PROXLANCTO_NLANC
        Release Vars PROXLANCTO_NLANC
        Return True
   Else Return False             
EndIf

EndProc ;Bib_Dup_ProximaOrdem()




;*******************************************************************************
;* Digitacao de Enderecos                                                      *
;*******************************************************************************
Proc Bib_Dup_Endereco_Cob(PARAM)
Private PARAM,REG_ENDCOB
            
If PARAM="END_COB"
   Then GetRecord "\\Sistemas\\Cadastro\\End_Cob" [Duplic->Codigo do Destinatario] To REG_ENDCOB
        If RetVal
           Then FAZ_ENDCOB = 1
                Bib_Dup_Endereco_Cob("VALOR")
           Else FAZ_ENDCOB = 2
        EndIf
        Return
EndIf            
                                
If PARAM="VALOR"
   Then VSD_E_Endereco=REG_ENDCOB["Endereco de Entrega"]
        VSD_E_Bairro  =REG_ENDCOB["Bairro de Entrega"]
        VSD_E_Cidade  =REG_ENDCOB["Cidade de Entrega"]
        VSD_E_UF      =REG_ENDCOB["UF de Entrega"]
        VSD_E_CEP     =REG_ENDCOB["CEP de Entrega"]
        
        VSD_C_Endereco=REG_ENDCOB["Endereco de Cobranca"]
        VSD_C_Bairro  =REG_ENDCOB["Bairro de Cobranca"]
        VSD_C_Cidade  =REG_ENDCOB["Cidade de Cobranca"]
        VSD_C_UF      =REG_ENDCOB["UF de Cobranca"]
        VSD_C_CEP     =REG_ENDCOB["CEP de Cobranca"]
        
        Return
EndIf

END_COB = True
INICIO_DIALOG=True

If Not IsAssigned(CHAVEB)           Then CHAVEB=1               EndIf

Showdialog "Endere‡os Complementares" Proc "Geral_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","PGDN","F8"
   @ 5,08 height 17 width 63
                                                 
   Frame Single From 0,0 to 5,60
   @ 0,1 ?? " Local de Entrega "
   paintcanvas attribute 26 0, 0, 5, 60
   Label  @ 1,01 "Endere‡o" for "E_Endereco"
   Accept @ 2,02  Width 43 "A40" picture "!*!" Tag "E_Endereco" to VSD_E_Endereco
   Label  @ 1,45 "CEP" for "E_CEP"
   Accept @ 2,46  Width 13 "A10" picture "##.###-###" Tag "E_CEP" to VSD_E_CEP

   Label  @ 3,01 "Bairro" for "E_Bairro"
   Accept @ 4,02  Width 23 "A20" picture "!*!" Tag "E_Bairro" to VSD_E_Bairro
   Label  @ 3,25 "Cidade" for "E_Cidade"
   Accept @ 4,26  Width 23 "A20" picture "!*!" Tag "E_Cidade" to VSD_E_Cidade
   Label  @ 3,49 "UF" for "E_UF"
   Accept @ 4,50  Width 05 "A2" picture "!*!" Tag "E_UF" to VSD_E_UF

   Frame Single From 6,0 to 11,60
   @ 6,1 ?? " Local de Cobran‡a "
   paintcanvas attribute 30 6, 0,11, 60
   Label  @ 7,01 "Endere‡o" for "C_Endereco"
   Accept @ 8,02  Width 43 "A40" picture "!*!" Tag "C_Endereco" to VSD_C_Endereco
   Label  @ 7,45 "CEP" for "C_CEP"
   Accept @ 8,46  Width 13 "A10" picture "##.###-###" Tag "C_CEP" to VSD_C_CEP

   Label  @ 9,01 "Bairro" for "C_Bairro"
   Accept @ 10,02  Width 23 "A20" picture "!*!" Tag "C_Bairro" to VSD_C_Bairro
   Label  @ 9,25 "Cidade" for "C_Cidade"
   Accept @ 10,26  Width 23 "A20" picture "!*!" Tag "C_Cidade" to VSD_C_Cidade
   Label  @ 9,49 "UF" for "C_UF"
   Accept @ 10,50  Width 05 "A2" picture "!*!" Tag "C_UF" to VSD_C_UF
   
   Pushbutton @ 13,25 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES_END" To BottonValue

Enddialog
END_COB = False

EndProc  ; Bib_Dup_Endereco_Cob()

;*******************************************************************************
;* Digitacao da Ficha                                                          *
;*******************************************************************************
Proc Bib_Dup_Ficha_Financeira(PARAM)
Private PARAM,REG_FICHACLI
            
If PARAM="FICHA_FIN"
   Then ;Como nÆo est  no FORM, foi poss¡vel apenas mover para a tabela a qual j  esta sendo aberta no inicio da aplica‡Æo
        GetRecord "\\Sistemas\\Cadastro\\Fichacli" [Duplic->Codigo do Destinatario] To REG_FICHACLI 
        If RetVal     
           Then FAZ_FICHA_FIN = 1
                Bib_Dup_Ficha_Financeira("VALOR")
           Else FAZ_FICHA_FIN = 2
        EndIf
        Return
EndIf            
                                
If PARAM="VALOR"                            
   Then VSD_DP_Compra      =REG_FICHACLI["Data da Primeira Compra"  ]
        VSD_VP_Compra      =REG_FICHACLI["Valor da Primeira Compra" ]
        VSD_DU_Compra      =REG_FICHACLI["Data da Ultima Compra"    ]
        VSD_VU_Compra      =REG_FICHACLI["Valor da Ultima Compra"   ]
        VSD_DM_Fatura      =REG_FICHACLI["Data da Maior Fatura"     ]
        VSD_M_Fatura       =REG_FICHACLI["Maior Fatura"             ]
        VSD_M_Atraso       =REG_FICHACLI["Maior Atraso"             ]
        VSD_DM_Atraso      =REG_FICHACLI["Data do Maior Atraso"     ]
        VSD_VM_Atraso      =REG_FICHACLI["Valor do Maior Atraso"    ] 
        VSD_N_Atrasos      =REG_FICHACLI["Numero de Atrasos"        ]
        VSD_L_Credito      =REG_FICHACLI["Limite de Credito"        ]
        VSD_MD_Atraso      =REG_FICHACLI["Maximo Dias Atraso"       ]
        VSD_SPC_DATConsulta=REG_FICHACLI["Data_Ultima_Consulta"     ]
        VSD_SPC_SITConsulta=REG_FICHACLI["Situacao_Consulta"        ]
        VSD_SPC_OBSConsulta=REG_FICHACLI["Protocolo_Obs_Consulta"   ]
        Return
EndIf

FICHA_FIN = True
INICIO_DIALOG=True

If Not IsAssigned(CHAVEB)           Then CHAVEB=1               EndIf

Showdialog "Ficha Financeira" Proc "Geral_Dialog"
  Trigger "OPEN","ARRIVE"
   Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","PGDN"
   @ 5,01 height 17 width 77

   Frame Single From 0,0 to 4,39
   @ 0,2 ?? " Compras Data/Valor "
   paintcanvas attribute 26 0, 0, 4, 38
   Label  @ 1,01 "Primeira:" for "DP_Compra"
   Accept @ 1,11  Width 13 "D" picture "[#]#;.##;.##[##]" Tag "DP_Compra" to VSD_DP_Compra
   Accept @ 1,27  Width  11 "$" picture "#*#.[##]" Tag "VP_Compra" to VSD_VP_Compra
   Label  @ 2,01 "Ultima..:" for "DU_Compra"
   Accept @ 2,11  Width 13 "D" picture "[#]#;.##;.##[##]" Tag "DU_Compra" to VSD_DU_Compra
   Accept @ 2,27  Width 11 "$" picture "#*#.[##]" Tag "VU_Compra" to VSD_VU_Compra
   Label  @ 3,01  "Maior...:" for "DM_Fatura"
   Accept @ 3,11  Width 13 "D" picture "[#]#;.##;.##[##]" Tag "DM_Fatura" to VSD_DM_Fatura
   Accept @ 3,27  Width 11 "$" picture "#*#.[##]" Tag "M_Fatura" to VSD_M_Fatura

   Frame Single From 0,40 to 4,74
   @ 0,42 ?? " Atrasos "
   paintcanvas attribute 26 0, 0, 4, 74
   Label  @ 1,41 "O Maior Atraso foi          Dias" for "M_Atraso"
   Accept @ 1,61  Width 8 "S" picture "#*#" Tag "M_Atraso" to VSD_M_Atraso
   Label  @ 2,41 "em                 " for "DM_Atraso"
   Accept @ 2,45  Width 13 "D" picture "[#]#;.##;.##[##]" Tag "DM_Atraso" to VSD_DM_Atraso
   Label  @ 2,58 "com" for "VM_Atraso"
   Accept @ 2,63  Width 11 "$" picture "#*#.[##]" Tag "VM_Atraso" to VSD_VM_Atraso
   Label  @ 3,41 "Frequencia de        " for "N_Atrasos"
   Accept @ 3,56  Width 8 "S" picture "#*#" Tag "N_Atrasos" to VSD_N_Atrasos

   Frame Single From 5,0 to 7,20
   @ 5,2 ?? " Credito Maximo "
   paintcanvas attribute 26 0, 0, 7, 38
   Accept @ 6,03  Width  14 "$" picture "#*#.[##]" Tag "L_Credito" to VSD_L_Credito

   Frame Single From 5,22 to 7,46
   @ 5,23 ?? " Maximo de Dias Atraso "
   paintcanvas attribute 26 0, 0, 7, 46
   Accept @ 6,24  Width 21 "S" picture "#*#" Tag "MD_Atraso" to VSD_MD_Atraso
   
   Frame Single From 8,0 to 11,59
   @ 8,2 ?? " Consulta SPC "
   paintcanvas attribute 26 0, 0, 11, 59
   Label  @ 09,02 "Ultima Consulta" for "C_SPCDATA"
   Accept @ 10,03  Width  15 "D" picture "[#]#;.##;.##[##]" Tag "C_SPCDATA" to VSD_SPC_DATConsulta
   Label  @ 09,19 "Situa‡„o" for "C_SPCSITUACAO"
   Accept @ 10,20  Width 13 "A15" picture "REGULAR,IRREGULAR" Tag "C_SPCSITUACAO" to VSD_SPC_SITConsulta        
   Label  @ 09,34 "Protocolo" for "C_SPCOBSCONSULTA"  
   Accept @ 10,35  Width  23 "A25" picture "!*!" Tag "C_SPCOBSCONSULTA" to VSD_SPC_OBSConsulta  

   Pushbutton @ 13,32 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES_END" To BottonValue

Enddialog
FICHA_FIN = False

EndProc   ; (Ficha)

;*******************************************************************************
;* Rotina para Digitacao Complemento de Clientes                               *
;*******************************************************************************
Proc Bib_Dup_Complemento_Dest(PARAM)
Private PARAM, REG_PESSOA,regdestinfo

GetRecord "\\Sistemas\\Cadastro\\Destinat" [Duplic->Codigo do Destinatario] To REG_PESSOA
If RetVal
   Then VSD_DATA_NASC=REG_PESSOA["Data de Nascimento"]
   Else VSD_DATA_NASC=""
EndIf   
            
If PARAM="CAD_COMP"
   Then 
        GetRecord "\\Sistemas\\Cadastro\\Destinfo" [Duplic->Codigo do Destinatario] To regdestinfo
        If RetVal     
           Then FAZ_COMP = 1
                Bib_Dup_Complemento_Dest("VALOR")
           Else FAZ_COMP = 2
        EndIf
        Return
EndIf            
                                
If PARAM="VALOR"      
   Then VSD_REF_COM1    =regdestinfo["Referencia Comercial1"]
        VSD_REF_COM2    =regdestinfo["Referencia Comercial2"]
        VSD_REF_COM3    =regdestinfo["Referencia Comercial3"]
        VSD_REF_BANC    =regdestinfo["Referencia Bancaria"  ]
        VSD_PAI_SOCIO   =regdestinfo["Pai Socio"            ]
        VSD_CGC_PAI     =regdestinfo["CGC/CPF Pai Socio"    ]
        VSD_MAE_SOCIO   =regdestinfo["Mae Socio"            ]
        VSD_CGC_MAE     =regdestinfo["CGC/CPF Mae Socio"    ]
        VSD_RENDA_FAT   =regdestinfo["Renda Faturamento"    ]
        VSD_N_PARENTE   =regdestinfo["Nome Parente"         ]
        VSD_END_PARENTE =regdestinfo["Endereco Parente"     ]
        VSD_LOCAL_TRAB  =regdestinfo["Local Trabalho"       ]
        VSD_END_TRAB    =regdestinfo["Endereco Trabalho"    ]
        VSD_TEMPO_TRAB  =regdestinfo["Tempo Trabalho"       ]
        VSD_NOME_FIADOR =regdestinfo["Nome Fiador"          ]
        VSD_CGC_FIADOR  =regdestinfo["CGC/CPF Fiador"       ]
        VSD_END_FIADOR  =regdestinfo["Endereco Fiador"      ]
        VSD_TEL_FIADOR  =regdestinfo["Telefone Fiador"      ]
        VSD_IMOVEL_P    =regdestinfo["Imovel Proprio/Valor" ]
        VSD_REF_PESSOAL =regdestinfo["Referencia Pessoal"   ]
EndIf

CAD_COMP = True
INICIO_DIALOG=True

If Not IsAssigned(CHAVEB)           Then CHAVEB=1               EndIf

Showdialog "Dados complementares do cliente " Proc "Geral_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","PGDN"
    @ 01,00 height 23 width 80

   @ 00,01 ?? "Referˆncia Comercial"
   ;Label  @ 01,01  "1" for "C_Referencia Comercial1"
   Accept @ 01,01   Width 38 "A40" picture "!*!" Tag "C_Referencia Comercial1" to VSD_REF_COM1
   ;Label  @ 02,01  "2" for "C_Referencia Comercial2"
   Accept @ 02,01   Width 38 "A40" picture "!*!" Tag "C_Referencia Comercial2" to VSD_REF_COM2
   ;Label  @ 03,01  "3" for "C_Referencia Comercial3"
   Accept @ 03,01   Width 38 "A40" picture "!*!" Tag "C_Referencia Comercial3" to VSD_REF_COM3

   Label  @ 00,39  "Renda/Faturamento" for "C_Renda Faturamento"
   Accept @ 01,40   Width 13 "$" picture "#*#.[##]" Tag "C_Renda Faturamento" to VSD_RENDA_FAT

   @ 04,01 ?? "Referˆncia Banc ria"
   ;Label  @ 05,01  "1" for "C_Referencia Bancaria"
   Accept @ 05,01   Width 38 "A40" picture "!*!" Tag "C_Referencia Bancaria" to VSD_REF_BANC

   @ 06,01 ?? "Referˆncia Pessoal"
   Accept @ 07,01   Width 76 "A80" picture "!*!" Tag "C_Referencia Pessoal" to VSD_REF_PESSOAL

   @ 08,01 ?? "Pais/S¢cios/Conjuge"
   ;Label  @ 09,01  "1" for "C_Pai Socio"
   Accept @ 09,01   Width 38 "A40" picture "!*!" Tag "C_Pai Socio" to VSD_Pai_Socio
   ;Label  @ 10,01  "2" for "C_Mae Socio"
   Accept @ 10,01   Width 38 "A40" picture "!*!" Tag "C_Mae Socio" to VSD_Mae_Socio
   Accept @ 09,40   Width 20 "A18" picture "##[.]###.###/####-##,###.###.###-##" Tag "C_CGC_PAI" to VSD_CGC_PAI
   Accept @ 10,40   Width 20 "A18" picture "##[.]###.###/####-##,###.###.###-##" Tag "C_CGC_MAE" to VSD_CGC_MAE

   @ 11,01 ?? "Parente.: Nome/Endere‡o"
   ;Label  @ 10,01  "Nome" for "C_Nome Parente"                                                     
   Accept @ 12,01   Width 38 "A40" picture "!*!" Tag "C_Nome Parente" to VSD_N_PARENTE
   ;Label  @ 11,01  "Endere‡o" for "C_Endereco Parente"
   Accept @ 12,40   Width 37 "A40" picture "!*!" Tag "C_Endereco Parente" to VSD_END_PARENTE

   @ 13,01 ?? "Trabalho: Local/Endere‡o/Tempo"
   ;Label  @ 13,01  "Local" for "C_Local Trabalho"
   Accept @ 14,01   Width 38 "A40" picture "!*!" Tag "C_Local Trabalho" to VSD_LOCAL_TRAB
   ;Label  @ 14,01  "Endere‡o" for "C_Endereco Trabalho"
   Accept @ 14,40   Width 37 "A40" picture "!*!" Tag "C_Endereco Trabalho" to VSD_END_TRAB
   ;Label  @ 15,01  "Tempo" for "C_Tempo Trabalho"
   Accept @ 15,01   Width 38 "A40" picture "!*!" Tag "C_Tempo Trabalho" to VSD_TEMPO_TRAB

   @ 16,01 ?? "Fiador..: Nome/CGC/Endere‡o/Telefone"
   ;Label  @ 17,01  "Nome" for "C_Nome_Fiador"
   Accept @ 17,01   Width 38 "A40" picture "!*!" Tag "C_Nome_Fiador" to VSD_NOME_FIADOR
   Accept @ 17,40   Width 37 "A18" picture "##[.]###.###/####-##,###.###.###-##" Tag "C_CGC_Fiador" to VSD_CGC_FIADOR
   ;Label  @ 18,01  "Endere‡o" for "C_End_Fiador"
   Accept @ 18,01   Width 38 "A40" picture "!*!" Tag "C_End_Fiador" to VSD_End_FIADOR
   Accept @ 18,40   Width 37 "A18" picture "!*!" Tag "C_Tel_Fiador" to VSD_Tel_FIADOR
            
   Label  @ 19,00  "Im¢vel..: Pr¢prio/Valor" for "C_Imovel Proprio/Valor"
   Accept @ 20,01   Width 38 "A40" picture "!*!" Tag "C_Imovel Proprio/Valor" to VSD_IMOVEL_P
   Label  @ 19,39  "Data Nascimento" for "C_Data de Nascimento"
   Accept @ 20,40   Width 15 "D" picture "##.##.##[##]" Tag "C_Data de Nascimento" to VSD_DATA_NASC

   Pushbutton @ 20,67 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES_END" To BottonValue

Enddialog
CAD_COMP = False

EndProc  ; (Bib_Dup_Complemento_Dest)

;*******************************************************************************
;* Rotina para Ver Calculo do Custo                                            *
;*******************************************************************************
Proc Bib_Dup_Dados_Cliente()
Private TabTemp , TECLA_ANT

opcao_ver=false

If Not IsAssigned(END_COB)       Then END_COB       = False EndIf
If Not IsAssigned(CAD_COMP)      Then CAD_COMP      = False EndIf 
If Not IsAssigned(FICHA_FIN)     Then FICHA_FIN     = False EndIf
If Not IsAssigned(FAZ_FICHA_FIN) Then FAZ_FICHA_FIN = 0     EndIf
If Not IsAssigned(FAZ_ENDCOB)    Then FAZ_ENDCOB    = 0     EndIf 
If Not IsAssigned(FAZ_COMP)      Then FAZ_COMP      = 0     EndIf

TabTemp=Table() 

If TabTemp="Duplic"
  Then UnlockRecord
       Formkey
       IsLockRecord()
  Else Formkey
EndIf

Moveto "Duplic"                                  
Moveto "\\Sistemas\\Cadastro\\Destinat"
PickForm "13"
Moveto [Codigo]
Locate [Duplic->Codigo do Destinatario]
If Retval
  Then COD=[CODIGO]
       While True
         Prompt " Esc=Retornar  Alt+F=Fun‡”es"
         JANELA_DIALOG_DESABILITA="1"
         Wait Field 
          Until "ESC","F3","F4","F5","F6","F7",-33,-18
          [CODIGO]=COD 
    
          If RetVal=-33 
             Then Echo Normal
                  Echo Off
                  ShowPopup " Fun‡”es " CENTERED
                    "F3 ~E~ndere‡o/Cobran‡a    " : " Endere‡o/Cobranca      " : "F3",
                    "F4 ~F~icha Financeira     " : " Ficha Financeira       " : "F4",
                    "F5 ~O~bserva‡”es          " : " Observa‡”es            " : "F5",
                    "F7 ~O~bserva‡”es p/ Venda " : " Observa‡”es p/ Venda   " : "F7",
                    "F6 Com~p~lementos         " : " Complementos           " : "F6",
                    Separator,
                    "Outros Email               ": " Inclus„o/altera‡„o de outros email" : "Alt+E",
                    Separator,
                    "~C~ancelar                " : " Cancelar a Opera‡„o    " : "CANCELAR"
                     EndMenu
                     To MenuVar
                     Echo Off
          
              If MenuVar = "CANCELAR"
                 Then Loop
                 Else RetVal= MenuVar 
              EndIf
          EndIf
          
          If (Retval="F3" Or Retval="F4" Or RetVal="F6") And (FAZ_ENDCOB=0 Or FAZ_FICHA_FIN=0 or FAZ_COMP=0)  
             Then TECLA_ANT=RetVal
                  
                  If RecordStatus("Locked") Then UnLockRecord EndIf       
                  Formkey
                  
                  Switch
                    Case TECLA_ANT="F3" And FAZ_ENDCOB=0     :  Bib_Dup_Endereco_Cob("END_COB")
                    Case TECLA_ANT="F4" And FAZ_FICHA_FIN=0  :  Bib_Dup_Ficha_Financeira("FICHA_FIN")
                    Case TECLA_ANT="F6" And FAZ_COMP=0       :  Bib_Dup_Complemento_Dest("CAD_COMP")
                  EndSwitch
                  
                  Moveto "\\Sistemas\\Cadastro\\Destinat"
                  PickForm "13"
                   
                  RetVal = TECLA_ANT
          EndIf 

          Switch
            Case RetVal="Alt+E" Or RetVal=-18 :
                 EMAIL_PARAM_ROTINA="DUPLIC"
                 Play "\\Sistemas\\Cadastro\\DestMail"
            Case Retval="F4" : 
                 If FAZ_FICHA_FIN=2
                    Then Mensagem("N„o h  Ficha Financeira cadastrada para este cliente !")
                    Else Bib_Dup_Ficha_Financeira("")
                 EndIf
            Case Retval="F3" : 
                 If FAZ_ENDCOB=2
                    Then Mensagem("N„o h  Endere‡o/Cobranca cadastrados para este cliente !")
                    Else Bib_Dup_Endereco_Cob("")
                 EndIf
            Case Retval="F6" : 
                 If FAZ_COMP=2
                    Then Mensagem("N„o h  Complementos cadastrados para este cliente !")
                    Else Bib_Dup_Complemento_Dest("")
                 EndIf
            Case Retval="F5" :                
                 Observacao("DestObs")                    
            Case Retval="F7" :
                 Observacao("Vendas") 
            Case RetVal="ESC" : QuitLoop     
          Endswitch
          Moveto "\\Sistemas\\Cadastro\\Destinat"
       EndWhile
  Else Mensagem("Cliente nÆo cadastrado !")
EndIf

ResyncKey
UnLockRecord
FormKey
Moveto "Duplic"
FormKey

Switch
 Case TabTemp="Duplic"                       : Tecla_Funcao=-10
 Case TabTemp="Dupbaixa"                     : Tecla_Funcao="F8"
 Case TabTemp="\\sistemas\\cheqrec\\chequei" : Tecla_Funcao="F6"
 Case TabTemp="Dupnotas"                     : Tecla_Funcao="F9"
 OtherWise                                   : Tecla_Funcao=""
EndSwitch  

EndProc  ;  Bib_Dup_Dados_Cliente()


;*******************************************************************************
;* Rotina Imprime Recibo                                                       *
;*******************************************************************************
Proc Bib_Dup_Imprime_Recibo()
SaveTables

Release Vars PARAM_IMPRESSAO
MSGDISPOSITIVO="Recibo"
DispositivoI("RCB")

If OK="" 
   Then Return
EndIf

clieant="****"
ULTIMA_BAIXA=True

ENDERECO=""
BAIRRO  =""
CIDADE  =""
TELEFONE=""

GetRecord "\\Sistemas\\Cadastro\\Destinat" [Duplic->Codigo do Destinatario] To REG_DESTINATARIO 
If RetVal
  Then ENDERECO = REG_DESTINATARIO["Endereco"]                
       BAIRRO   = REG_DESTINATARIO["Bairro"  ]
       CIDADE   = REG_DESTINATARIO["Cidade"  ]
       TELEFONE = REG_DESTINATARIO["Telefone"]
EndIf

Moveto "Dupbaixa"
Moveto [Sequencia da Baixa]

Locate NLANC,NITEM
If Retval 
   Then ArqImp="Recibo.txt"
        Deleta_Arquivo(Arqimp)
        Sleep 700
       
        Play PARAM_RELAT
        ImpriArq(ArqImp)
EndIf

EndProc ;Bib_Dup_Imprime_Recibo()

;*******************************************************************************
;* Rotina para Digitacao da Cabeca                                             *
;*******************************************************************************
Proc Bib_Dup_Cliente_Inativo()

If Isblank([Codigo do Destinatario])
   Then Return False
EndIf   

GetRecord "\\Sistemas\\Cadastro\\Destinat" [Codigo do Destinatario] To CLIE_INATIVO 
If RetVal
   Then If CLIE_INATIVO["Inativo"]="S"
           Then Switch
                  Case CLIE_INATIVO["Tipo"]="F" : Mensagem("Fornecedor Inativo!") 
                  Case CLIE_INATIVO["Tipo"]="C" : Mensagem("Cliente Inativo!")
                  OtherWise                     : Mensagem("Cadasro Inativo!")            
                EndSwitch
                Return True     
        EndIf  
EndIf

Return False

EndProc ;Bib_Dup_Cliente_Inativo()


;*******************************************************************************
;* Rotina pega dados do cadastro cliente                                       *
;*******************************************************************************
Proc Bib_Dup_Pega_DadosCliente()
private regdestinat

getrecord "\\sistemas\\cadastro\\destinat" [Duplic->Codigo do Destinatario] to regdestinat 
If retval
   Then CLIENTE_NOME  =regdestinat["Razao Social"]
        CLIENTE_CIDADE=regdestinat["Cidade"      ]
        CLIENTE_UF    =regdestinat["UF"          ]
        CLIENTE_CPF   =regdestinat["CGC"         ]
        FORM_CONTATO  =regdestinat["Contato"]+" - "+regdestinat["Telefone"]
   Else CLIENTE_NOME  =""
        CLIENTE_CIDADE=""
        CLIENTE_UF    =""
        CLIENTE_CPF   =""
        FORM_CONTATO  =""
EndIf

EndProc



;******************************************************************************
;* Monta Procedures                                                           *
;******************************************************************************
WriteLib "\\Sistemas\\Ctarec\\Bib_Dup"
         Bib_Dup_CHAVEC2, Bib_Dup_CHAVEC3,
         Parcelas, Parcelas_Show, Parcelas_SD_Dialog, 
         Parcelas_Vencimento, Parcelas_Quant, Parcelas_Datas,
         Bib_Dup_DialogAlteraPorcComissao, Bib_Dup_AlteraPorcComissao,
         Bib_Dup_GravaBaixa,
         Bib_Dup_Gera_Lancamento, Bib_Dup_ProximaOrdem,
         Bib_Dup_Endereco_Cob, Bib_Dup_Ficha_Financeira, Bib_Dup_Complemento_Dest, Bib_Dup_Dados_Cliente,
         Bib_Dup_Imprime_Recibo,
         Bib_Dup_Cliente_Inativo, Bib_Dup_Pega_DadosCliente