;** Expcmv *********************************************************************
;*  Exportacao de Lancamentos Contabies p/ arquivo TXT - Asplan                *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 28/10/2002 por Anivel Augusto Rodrigues
;Ultima Alteracao: 12/12/2003 por Davi Carrano
;Motivo Alteracao: Diretorio Asplan
;Ultima Alteracao: 13/08/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Deleta_Arquivo
;Ultima Alteracao: 14/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao GERA_TIT()
;Ultima Alteracao: 07/10/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Plano de Contas
;Ultima Alteracao: 21/01/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ijustes CODRED Plano de Contas
;Ultima Alteracao: 04/01/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes processo                 
;Ultima Alteracao: 20/08/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desprezar item notai cancalado
;Ultima Alteracao: 29/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes provisao das vendas contas Cartao de credito/cartao de debito

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc GERA_C()
AGUARDE("Aguarde, Processando Dados Financeiros")
{Ask} {\\Sistemas\\Ctacor\\MovCont} Check
Moveto [Codigo da Empresa] TypeIn "~VSDGEMPRESA.."
Moveto [Tipo da Conta    ] TypeIn "X or C"
Moveto [Data             ] TypeIn ">= ~VSDGDTINI, <= ~VSDGDTFIM"
Do_It!
ClearAll
If IsEmpty("Answer")
   Then Return
EndIf

Sort "Answer" on "Codigo da Empresa","Codigo da Conta",
                 "Data","Numero do Cheque","Codigo do EmitDest"
ClearAll

LANC_OK=True
NR=NRecords("Answer")
View "\\Sistemas\\Cadastro\\Destinat"
View "\\Sistemas\\Cadastro\\TpLanc"
View "\\Sistemas\\Ctacor\\PlContas"
View "\\Sistemas\\Ctacor\\Conta"
CoEdit "Answer"

CONTA   ="****"
CTATL   ="*"

Scan
   Barra(NR, RecNo())
   AGUARDE("Aguarde, Exportando Dados "+BARRA_STRING)

   ;****** Localiza Conta Caixa/Banco *****
   If CONTA<>[Answer->Codigo da Conta]
      Then CONTA=[Answer->Codigo da Conta]
           Moveto "\\Sistemas\\Ctacor\\Conta"
           Moveto [Codigo da Conta]
           Locate CONTA
           If RetVal
              Then CDCXBC               = [Conta Contabil           ]
                   DEPOSITO_EFETUADO    = [CC Deposito Efetuado     ]
                   CHEQUE_TRANSITO      = [CC Cheques em Transito   ]
                   CHEQUE_CAIXA         = [CC Cheques p/ Caixa      ]
                   CHEQUES_NAPRES       = [CC Cheques Emitidos/NApre]
              Else CDCXBC               = "000000000/0000"
                   DEPOSITO_EFETUADO    = "000000000/0000"
                   CHEQUE_TRANSITO      = "000000000/0000"
                   CHEQUE_CAIXA         = "000000000/0000"
                   CHEQUES_NAPRES       = "000000000/0000"
                                          ;123456789 1234
           EndIf
   EndIf

   ;****** Localiza Conta Tipo Lancamento *****
   If [Answer->Tipo do Lancamento]<>CTATL
      Then CTATL=[Answer->Tipo do Lancamento]
           Moveto "\\Sistemas\\Cadastro\\TpLanc"
           Moveto [Tipo de Lancamento]
           Locate CTATL
           If RetVal
              Then CODRED = [Conta Contabil]
              Else CODRED = "000000000/0000"
                            ;123456789 1234
           EndIf
   EndIf

   HISTOR =[Answer->Descricao do Historico]

   ;****** Localiza Conta Destinatario\Emitente *****
   CGC_CD="00000000"
   If [Answer->Tipo da Conta Trf]=""
      Then Moveto "\\Sistemas\\Cadastro\\Destinat"
           Moveto [Codigo]
           Locate [Answer->Codigo do EmitDest]
           If RetVal
              Then If [Answer->Tipo do Lancamento]="A"
                      Then CODRED = "311010001/2000"
                                    ;123456789 1234
                           If [Answer->Sistema Gerador]<>""
                              Then HISTOR=HISTOR+" "+[Razao Social  ]
                           EndIf
                      Else If LTrim(RTrim([Conta Contabil]))<>""
                              Then CODRED = [Conta Contabil]
                           EndIf
                           If [Tipo]="C" or [Tipo]="F"
                              Then If SubStr([CGC],03,1)="." and
                                      SubStr([CGC],07,1)="." and
                                      SubStr([CGC],11,1)="/" and
                                      SubStr([CGC],16,1)="-"
                                      Then WVR=""               ;CGC
                                           WVR=SubStr([CGC],01,2)+
                                               SubStr([CGC],04,3)+
                                               SubStr([CGC],08,3)+
                                               SubStr([CGC],12,4)+
                                               SubStr([CGC],17,2)
                                           CHECACGC(WVR)
                                           If WB=0
                                              Then CGC_CD=WVR
                                           EndIf
                                      Else If SubStr([CGC],04,1)="." and
                                              SubStr([CGC],08,1)="." and
                                              SubStr([CGC],12,1)="-"
                                              Then WVR=""               ;CPF
                                                   WVR=SubStr([CGC],01,3)+
                                                       SubStr([CGC],05,3)+
                                                       SubStr([CGC],09,3)+
                                                       SubStr([CGC],13,2)
                                                   CHECACPF(WVR)
                                                   If WB=0
                                                      Then CGC_CD=WVR
                                                   EndIf
                                           EndIf
                                   EndIf
                           EndIf
                   EndIf
           EndIf
   EndIf

   ;; ***** CAIXA *****
   If [Answer->Tipo da Conta    ] = "X" And
      [Answer->Tipo da Conta Trf] = "C"
      Then ;****** Localiza Conta Banco *****
           Moveto "\\Sistemas\\Ctacor\\Conta"
           Moveto [Codigo da Conta]
           Locate [Answer->Codigo da Conta Trf]
           If RetVal
              Then If [Answer->Tipo de Operacao]="09"
                      Then If [Answer->Tipo do Lancamento]="O"
                              Then CODRED =[CC Cheques em Transito]
                              Else CODRED =[CC Cheques p/ Caixa   ]
                           EndIf
                   EndIf
                   If [Answer->Tipo de Operacao]="08"
                      Then CODRED =[CC Deposito Efetuado]
                   EndIf
           EndIf
   EndIf

   If [Answer->Tipo da Conta    ]="X"   And
      [Answer->Tipo da Conta Trf]="A"   And
      [Answer->Tipo de Operacao ]="01"
      Then  Moveto "\\Sistemas\\Ctacor\\Conta"
            Moveto [Codigo da Conta]
            Locate [Answer->Codigo da Conta Trf]
            If RetVal
               Then CODRED =[CC Aplicacoes Financeiras]
            EndIf
   EndIf

   ;; ***** BANCO *****
   If [Answer->Tipo da Conta]="C" And
      [Answer->Tipo da Conta Trf]="C"
      Then CODRED = "000000000/1285"
                    ;123456789 1234
   EndIf

   If [Answer->Tipo da Conta]="C" And
      [Answer->Tipo da Conta Trf]="X"
      Then If [Answer->Tipo de Operacao]="08"
              Then If [Answer->Tipo do Lancamento]="O"
                      Then CODRED = CHEQUE_TRANSITO
                      Else CODRED = CHEQUE_CAIXA
                   EndIf
           EndIf
           If [Answer->Tipo de Operacao]="09"
              Then CODRED = DEPOSITO_EFETUADO
           EndIf
   EndIf

   If [Answer->Tipo da Conta]="C" And
      [Answer->Tipo da Conta Trf]="A" And
      ([Answer->Tipo de Operacao]="01" Or
       [Answer->Tipo de Operacao]="02")
      Then  Moveto "\\Sistemas\\Ctacor\\Conta"
            Moveto [Codigo da Conta]
            Locate [Answer->Codigo da Conta Trf]
            If RetVal
               Then CODRED = [CC Aplicacoes Financeiras]
               Else CODRED = "000000000/0000"
                             ;123456789 1234
            EndIf
   EndIf

   If [Answer->Tipo de Operacao]="13" ;Tarifa Bancaria
      Then Switch
             Case SYS_CODIGO_CLIENTE="0039": CODRED = "313070004/1146" ;Instituto
             OtherWise                     : CODRED = "381410001/1392"
           EndSwitch
   EndIf

   plcontasok=False
   If ([Answer->Tipo da Conta]="C" Or [Answer->Tipo da Conta]="X")  And
       [Answer->Tipo da Conta Trf]="" And
      ([Answer->Tipo de Operacao]="05" Or [Answer->Tipo de Operacao]="06" Or
       [Answer->Tipo de Operacao]="14" Or [Answer->Tipo de Operacao]="13")
       Then plcontasok=True
   EndIf
   If ([Answer->Tipo da Conta]="C" Or [Answer->Tipo da Conta]="X")  And
       [Answer->Tipo da Conta Trf]="" And
       [Answer->Tipo de Operacao]="07" And [Answer->Tipo do Lancamento]="L"
       Then plcontasok=True
   EndIf
   If plcontasok
       Then Moveto "\\Sistemas\\Ctacor\\Plcontas"
            Moveto [Codigo Plano_Conta]
            Locate [Answer->Codigo Plano_Conta]
            If RetVal
               Then If LTrim(RTrim([Conta Contabil]))<>""
                       Then CODRED = [Conta Contabil]
                    EndIf
            EndIf
   EndIf

   ;****** Gera Lancamento *****
   SeqLanc=SeqLanc+1
   Print File ARQ ALINHM(PREFIXO,4)
   Print File ARQ "0000"
   Print File ARQ ALINHM(StrVal(SeqLanc),4)
   Print File ARQ "0000"
   Print File ARQ DATA2STR_S2([Answer->Data])
   If [Answer->Tipo Movimento]="S"
      Then Print File ARQ AlinhM(SubStr(CODRED,01,9),9)
           Print File ARQ AlinhM(SubStr(CDCXBC,01,9),9)
           Print File ARQ AlinhM(SubStr(CODRED,11,4),4)
           Print File ARQ AlinhM(SubStr(CDCXBC,11,4),4)
           Print File ARQ "00000"
      Else Print File ARQ AlinhM(SubStr(CDCXBC,01,9),9)
           Print File ARQ AlinhM(SubStr(CODRED,01,9),9)
           Print File ARQ AlinhM(SubStr(CDCXBC,11,4),4)
           Print File ARQ AlinhM(SubStr(CODRED,11,4),4)
           Print File ARQ "00000"
   EndIf
   If [Answer->Tipo Movimento]="S" And IsBlank([Answer->Tipo da Conta Trf])
      Then Print File ARQ AlinhM(SubStr(CGC_CD,01,8),8)
           Print File ARQ "00000000"
      Else If [Answer->Tipo Movimento]="E" And IsBlank([Answer->Tipo da Conta Trf])
              Then Print File ARQ "00000000"
                   Print File ARQ AlinhM(SubStr(CGC_CD,01,8),8)
              Else Print File ARQ "00000000"
                   Print File ARQ "00000000"
           EndIf
   EndIf
   Print File ARQ "        "
   Print File ARQ "0000"
   If [Answer->Valor do Juros]>0
      Then Print File ARQ VALOR2STR_S(([Answer->Valor]-[Answer->Valor do Juros]),15)
      Else Print File ARQ VALOR2STR_S([Answer->Valor],15)
   EndIf
   Print File ARQ "0000"
   If [Answer->Tipo de Operacao]="05"
      Then HISTOR="CH "+[Answer->Numero do Cheque]+" "+HISTOR
   EndIf
   Print File ARQ COMPLETA(HISTOR,200, " ")
   Print File ARQ "    "
   Print File ARQ " "
   Print File ARQ " "+"\n"

   ;********** Gera Lancamento de Descontos ***************

   ;********** Gera Lancamento de Juros ***************
   If [Answer->Valor do Juros] > 0
      Then If [Answer->Tipo Movimento]="S"
              Then CODRED = "381230027/2861"
                            ;123456789 1234
                   HISTOR = "PG JUROS "+[Answer->Tipo do Documento]+"-"+[Answer->Numero do Documento]
              Else CODRED = "481010001/4359"
                            ;123456789 1234
                   HISTOR = "REC JUROS "+[Answer->Tipo do Documento]+"-"+[Answer->Numero do Documento]
           EndIf

           SeqLanc=SeqLanc+1
           Print File ARQ ALINHM(PREFIXO,4)
           Print File ARQ "0000"
           Print File ARQ ALINHM(StrVal(SeqLanc),4)
           Print File ARQ "0000"
           Print File ARQ DATA2STR_S2([Answer->Data])
           If [Answer->Tipo Movimento]="S"
              Then Print File ARQ AlinhM(SubStr(CODRED,01,9),9)
                   Print File ARQ AlinhM(SubStr(CDCXBC,01,9),9)
                   Print File ARQ AlinhM(SubStr(CODRED,11,4),4)
                   Print File ARQ AlinhM(SubStr(CDCXBC,11,4),4)
                   Print File ARQ "00000"
              Else Print File ARQ AlinhM(SubStr(CDCXBC,01,9),9)
                   Print File ARQ AlinhM(SubStr(CODRED,01,9),9)
                   Print File ARQ AlinhM(SubStr(CDCXBC,11,4),4)
                   Print File ARQ AlinhM(SubStr(CODRED,11,4),4)
                   Print File ARQ "00000"
           EndIf
           Print File ARQ "00000000"
           Print File ARQ "00000000"
           Print File ARQ "        "
           Print File ARQ "0000"
           Print File ARQ VALOR2STR_S([Answer->Valor do Juros],15)
           Print File ARQ "0000"
           Print File ARQ COMPLETA(HISTOR,200, " ")
           Print File ARQ "    "
           Print File ARQ " "
           Print File ARQ " "+"\n"

   EndIf

   Moveto "Answer"
EndScan

Do_It!
ClearAll
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros Movimentos de Entrada                *
;*******************************************************************************
Proc GERA_E()
AGUARDE("Aguarde, Processando Dados Entrada de Notas")

;**** Nota de Entradas pelo Faturamento ******
SetDir "\\Sistemas\\Vendas"
View "\\Sistemas\\CtaCor\\Tmp_Parc"
View "\\Sistemas\\Vendas\\NotaI"
CoEdit "\\Sistemas\\Vendas\\NotaC"
Scan For [Situacao]<>"C" And [Tipo de Pagamento]="P" And
         [Tipo Movimento Estoque]="E"

  If [Data de Emissao]<VSDGDTINI Or
     [Data de Emissao]>VSDGDTFIM
     Then Loop
  EndIf
  If Search("COMPRA",[Descricao da Destinacao])=0
     Then Loop
  EndIf
  If Not IsBlank(VSDGEMPRESA)
     Then If [Codigo da Empresa]<>VSDGEMPRESA
             Then Loop
          EndIf
  EndIf

  VRTOT_ITENS=0
  Limpa_Array()
  Moveto "\\Sistemas\\Vendas\\NotaI"
  Moveto [Codigo da Empresa]
  Locate [NotaC->Codigo da Empresa], [NotaC->Numero do Documento], [NotaC->Serie do Documento]
  While [Codigo da Empresa  ]=[NotaC->Codigo da Empresa  ] And
        [Numero do Documento]=[NotaC->Numero do Documento] And
        [Serie do Documento ]=[NotaC->Serie do Documento ]

    If [Situacao_Item]<>"C" Then
        TIPO_ITEM=[Tipo do Item]
       ; If TIPO_ITEM="P" Or
       ;    TIPO_ITEM="M" Or
       ;    TIPO_ITEM="T" Or
       ;    TIPO_ITEM="O" Or
       ;    TIPO_ITEM=""
       ;    Then TIPO_ITEM="M"
       ; EndIf
        For q From 1 to 20
          If TpItem[q]=TIPO_ITEM Or TpItem[q]=""
             Then TpItem[q]  =TIPO_ITEM
                  VrTpItem[q]=VrTpItem[q]+(([Preco Total]+[Valor do IPI])-([Valor Desconto Total]+[Valor do INSS]))
                  QuitLoop
          EndIf
        EndFor
        VRTOT_ITENS=VRTOT_ITENS+(([Preco Total]+[Valor do IPI])-([Valor Desconto Total]+[Valor do INSS]))
    EndIf
    Skip
    If EOT() Then QuitLoop EndIf
  EndWhile

  VRDIF_NOTA      =[\Sistemas\Vendas\NotaC->Valor Nota Fiscal]-VRTOT_ITENS
  VRTOT_ITENS_NOVO=0

  Moveto "\\Sistemas\\CtaCor\\Tmp_Parc"
  For q From 1 to 20
    If TpItem[q]="" Then QuitLoop EndIf
    End
    Down
    [Codigo da Empresa  ]=[\Sistemas\Vendas\NotaC->Codigo da Empresa  ]
    [Codigo             ]=[\Sistemas\Vendas\NotaC->Codigo             ]
    [CGC                ]=[\Sistemas\Vendas\NotaC->CGC                ]
    [Tipo do Item       ]=TpItem[q]
    [Serie do Documento ]=[\Sistemas\Vendas\NotaC->Serie do Documento ]
    [Numero do Documento]=[\Sistemas\Vendas\NotaC->Numero do Documento]
    [Data de Emissao    ]=[\Sistemas\Vendas\NotaC->Data de Emissao    ]

    TAXA=VrTpItem[q]/VRTOT_ITENS
    VRACRES=NDecimal((VRDIF_NOTA*TAXA)/100,2)
    If VRDIF_NOTA<0
       Then VRACRES=VRACRES*-1
    EndIf
    [Preco Total]=VrTpItem[q]+VRACRES
    VRTOT_ITENS_NOVO=VRTOT_ITENS_NOVO+[Preco Total]
  EndFor
  If ([\Sistemas\Vendas\NotaC->Valor Nota Fiscal]-VRTOT_ITENS_NOVO)<>0
     Then [Preco Total]=[Preco Total]+([\Sistemas\Vendas\NotaC->Valor Nota Fiscal]-VRTOT_ITENS_NOVO)
  EndIf
  UnLockRecord
  Moveto "\\Sistemas\\Vendas\\NotaC"
EndScan
Do_It!
ClearAll

;**** Nota de Entradas pelo Estoque ******
SetDir "\\Sistemas\\Estoque"
View "\\Sistemas\\CtaCor\\Tmp_Parc"
View "\\Sistemas\\Estoque\\NotaEI"
CoEdit "\\Sistemas\\Estoque\\NotaEC"
Scan For ([Tipo de Operacao]="C" or [Tipo de Operacao]="A") And [Tipo de Pagamento]="P"

  If [Data de Entrada]<VSDGDTINI Or
     [Data de Entrada]>VSDGDTFIM
     Then Loop
  EndIf
  If Not IsBlank(VSDGEMPRESA)
     Then If [Codigo da Empresa]<>VSDGEMPRESA
             Then Loop
          EndIf
  EndIf

  VRTOT_ITENS=0
  Limpa_Array()
  Moveto "\\Sistemas\\Estoque\\NotaEI"
  Moveto [Numero do Lancamento]
  Locate [NotaEC->Numero do Lancamento]
  While [Numero do Lancamento]=[NotaEC->Numero do Lancamento]
    TIPO_ITEM=[Tipo do Item]
   ; If TIPO_ITEM="P" Or
   ;    TIPO_ITEM="M" Or
   ;    TIPO_ITEM="T" Or
   ;    TIPO_ITEM="O" Or
   ;    TIPO_ITEM=""
   ;    Then TIPO_ITEM="M"
   ; EndIf
    For q From 1 to 20
      If TpItem[q]=TIPO_ITEM Or TpItem[q]=""
         Then TpItem[q]  =TIPO_ITEM
              VrTpItem[q]=VrTpItem[q]+(([Preco Total]+[Valor do IPI])-[Valor Desconto Total])
              QuitLoop
      EndIf
    EndFor
    VRTOT_ITENS=VRTOT_ITENS+(([Preco Total]+[Valor do IPI])-[Valor Desconto Total])
    Skip
    If EOT() Then QuitLoop EndIf
  EndWhile

  VRDIF_NOTA      =[\Sistemas\Estoque\NotaEC->Valor Nota Fiscal]-VRTOT_ITENS
  VRTOT_ITENS_NOVO=0

  Moveto "\\Sistemas\\CtaCor\\Tmp_Parc"
  For q From 1 to 20
    If TpItem[q]="" Then QuitLoop EndIf
    End
    Down
    [Codigo da Empresa  ]=[\Sistemas\Estoque\NotaEC->Codigo da Empresa  ]
    [Codigo             ]=[\Sistemas\Estoque\NotaEC->Codigo             ]
    [CGC                ]=[\Sistemas\Estoque\NotaEC->CGC                ]
    [Tipo do Item       ]=TpItem[q]
    [Serie do Documento ]=[\Sistemas\Estoque\NotaEC->Serie do Documento ]
    [Numero do Documento]=[\Sistemas\Estoque\NotaEC->Numero do Documento]
    [Data de Emissao    ]=[\Sistemas\Estoque\NotaEC->Data de Emissao    ]

    TAXA=VrTpItem[q]/VRTOT_ITENS
    VRACRES=NDecimal((VRDIF_NOTA*TAXA)/100,2)
    If VRDIF_NOTA<0
       Then VRACRES=VRACRES*-1
    EndIf
    [Preco Total]=VrTpItem[q]+VRACRES
    VRTOT_ITENS_NOVO=VRTOT_ITENS_NOVO+[Preco Total]
  EndFor
  If ([\Sistemas\Estoque\NotaEC->Valor Nota Fiscal]-VRTOT_ITENS_NOVO)<>0
     Then [Preco Total]=[Preco Total]+([\Sistemas\Estoque\NotaEC->Valor Nota Fiscal]-VRTOT_ITENS_NOVO)
  EndIf
  UnLockRecord

  Moveto "\\Sistemas\\Estoque\\NotaEC"

EndScan
Do_It!
ClearAll

SetDir "\\Sistemas\\Exporta"
Copy "\\Sistemas\\CtaCor\\Tmp_Parc" "Answer"
If IsEmpty("Answer")
   Then Return
EndIf
Empty("\\Sistemas\\CtaCor\\Tmp_Parc")

Sort "Answer" on "Codigo da Empresa","Tipo do Item","Codigo",
                 "Serie do Documento","Numero do Documento"
ClearAll


LANC_OK=True
NR=NRecords("Answer")
View "\\Sistemas\\Cadastro\\Empresas"
View "\\Sistemas\\Cadastro\\Destinat"
View "\\Sistemas\\Estoque\\TpItem"
CoEdit "Answer"

SeqLanc  =8001
SeqLancPM=8000

TPITEM=[Tipo do Item      ]
CODIGO=[Codigo            ]
TpItem()
Fornecedor()
CDOC  =[Serie do Documento]
NDOCI =NumVal([Numero do Documento])
NDOCF =NumVal([Numero do Documento])-1
NDOCCB=NumVal([Numero do Documento])
HIST  =""
VALORT=0
VRLANC=0
ULTIMO_LANC_PM=False

Scan
  Barra(NR, RecNo())
  AGUARDE("Aguarde, Exportando Dados Parcial (Entradas) "+BARRA_STRING)

  If TPITEM<>[Tipo do Item]
     Then MontaHist("E")
          ULTIMO_LANC_PM=True
          Grava_LCE()
          Grava_LDE()
          Muda_Fornecedor()
  EndIf

  If CODIGO<>[Codigo]
     Then MontaHist("E")
          Grava_LCE()
          Muda_Fornecedor()
  EndIf

  If CDOC<>[Serie do Documento]
     Then MontaHist("E")
          NDOCF =NumVal([Numero do Documento])-1
          Grava_LCE()
  EndIf

  If NumVal([Numero do Documento])<>NDOCCB
     Then If NumVal([Numero do Documento])<>(NDOCF+1)
             Then MontaHist("E")
          EndIf
  EndIf

  VRLANC=VRLANC+[Preco Total]
  VALORT=VALORT+[Preco Total]
  NDOCF =NumVal([Numero do Documento])

  NDOC  =[Numero do Documento]

EndScan
MontaHist("E")
ULTIMO_LANC_PM=True
Grava_LCE()
Grava_LDE()
Do_It!
ClearAll
EndProc

;*******************************************************************************
;* Rotina Localiza Tipo do Ittem p/ Debito da Entrada                          *
;*******************************************************************************
Proc TpItem()
Moveto "\\Sistemas\\Estoque\\TpItem"
Moveto [Tipo do Item]
Locate TPITEM
If RetVal
   Then CONTA_DB=[Conta Contabil]
   Else CONTA_DB="888888888/8888"
EndIf
Moveto "Answer"
EndProc

;*******************************************************************************
;* Rotina Localiza Fornecedor p/ Credito da Entrada                            *
;*******************************************************************************
Proc Fornecedor()
CONTA_CR="777777777/7777"
NOME_CR =""
CGC_CR  =""

Moveto "\\Sistemas\\Cadastro\\Destinat"
Moveto [Codigo]
Locate CODIGO
If RetVal
   Then If Not IsBlank([Conta Contabil])
           Then CONTA_CR=[Conta Contabil]
           Else CONTA_CR="666666666/6666"
        EndIf

        NOME_CR=[Nome Fantasia EmitDest]
        If SubStr([CGC],03,1)="." and
           SubStr([CGC],07,1)="." and
           SubStr([CGC],11,1)="/" and
           SubStr([CGC],16,1)="-"
           Then WVR=""               ;CGC
                WVR=SubStr([CGC],01,2)+
                    SubStr([CGC],04,3)+
                    SubStr([CGC],08,3)+
                    SubStr([CGC],12,4)+
                    SubStr([CGC],17,2)
                CHECACGC(WVR)
                If WB=0
                   Then CGC_CR=WVR
                EndIf
           Else If SubStr([CGC],04,1)="." and
                   SubStr([CGC],08,1)="." and
                   SubStr([CGC],12,1)="-"
                   Then WVR=""               ;CPF
                        WVR=SubStr([CGC],01,3)+
                            SubStr([CGC],05,3)+
                            SubStr([CGC],09,3)+
                            SubStr([CGC],13,2)
                        CHECACPF(WVR)
                        If WB=0
                           Then CGC_CR=WVR
                        EndIf
                EndIf
        EndIf
EndIf

Moveto "Answer"
EndProc

;*******************************************************************************
;* Rotina Gravacao do Lancamento Debito p/ Entrada e Totalizadores             *
;*******************************************************************************
Proc Grava_LDE()

;****** Gera Lancamento *****
Print File ARQ ALINHM(PREFIXO,4)
Print File ARQ "0000"
Print File ARQ ALINHM(StrVal(SeqLancPM),4)
Print File ARQ "0000"
Print File ARQ DATA2STR_S2(VSDGDTFIM)
Print File ARQ AlinhM(SubStr(CONTA_DB,01,9),9)
Print File ARQ "000000000"
Print File ARQ AlinhM(SubStr(CONTA_DB,11,4),4)
Print File ARQ "0000"
Print File ARQ "00000"
Print File ARQ "00000000"
Print File ARQ "00000000"
Print File ARQ "        "
Print File ARQ "0000"
Print File ARQ VALOR2STR_S(VALORT,15)
Print File ARQ "0000"
HISTORICO="VR NF's A PRAZO CF REGISTRO EM "+AlinhM(StrVal(Month(VSDGDTFIM)),2)+"/"+StrVal(Year(VSDGDTFIM))
Print File ARQ COMPLETA(HISTORICO,200, " ")
Print File ARQ "    "
Print File ARQ " "
Print File ARQ " "+"\n"
SeqLanc=SeqLanc+2

Moveto "Answer"
TPITEM  =[Tipo do Item       ]
DATALANC=VSDGDTFIM
VALORT  =0

TpItem()
SeqLancPM=SeqLanc-1
ULTIMO_LANC_PM=False
EndProc

;*******************************************************************************
;* Rotina Gravacao do Lancamento Credito p/ Entrada                            *
;*******************************************************************************
Proc Grava_LCE()

;****** Gera Lancamento *****
Print File ARQ ALINHM(PREFIXO,4)
Print File ARQ "0000"
Print File ARQ ALINHM(StrVal(SeqLanc),4)
Print File ARQ ALINHM(StrVal(SeqLancPM),4)
Print File ARQ DATA2STR_S2(VSDGDTFIM)
Print File ARQ AlinhM(SubStr(CONTA_DB,01,9),9)
Print File ARQ AlinhM(SubStr(CONTA_CR,01,9),9)
Print File ARQ AlinhM(SubStr(CONTA_DB,11,4),4)
Print File ARQ AlinhM(SubStr(CONTA_CR,11,4),4)
Print File ARQ "00000"
Print File ARQ "00000000"
Print File ARQ AlinhM(SubStr(CGC_CR,01,8),8)
Print File ARQ "        "
Print File ARQ "0000"
Print File ARQ VALOR2STR_S(VRLANC,15)
Print File ARQ "0000"
If Search(",", HIST)>0 Or
   Search("a", HIST)>0
   Then HISTORICO=NOME_CR+" /VR. NF's "+CDOC+" "+HIST
   Else HISTORICO=NOME_CR+" /VR. NF "+CDOC+" "+HIST
EndIf
Print File ARQ COMPLETA(HISTORICO,200, " ")
Print File ARQ "    "
Print File ARQ " "
If ULTIMO_LANC_PM
   Then Print File ARQ "S"+"\n"
   Else Print File ARQ " "+"\n"
EndIf
SeqLanc=SeqLanc+1

Moveto "Answer"
CODIGO=[Codigo]
CDOC  =[Serie do Documento ]
NDOCF =NumVal([Numero do Documento])-1
HIST  =""
VRLANC=0

EndProc

;*******************************************************************************
;* Rotina Mudanca de Fornecedor                                                *
;*******************************************************************************
Proc Muda_Fornecedor()
CODIGO=[Answer->Codigo]
NDOCF =NumVal([Answer->Numero do Documento])-1
Fornecedor()
DATALANC=VSDGDTFIM
HIST  =""
EndProc


;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros Movimentos de Saida                  *
;*******************************************************************************
Proc GERA_S()
AGUARDE("Aguarde, Processando Dados Notas de Saida")

{Ask} {\\Sistemas\\Vendas\\NotaC} Check
Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
Moveto [Data de Emissao        ] TypeIn ">= ~VSDGDTINI , <= ~VSDGDTFIM"
Moveto [Descricao da Destinacao] TypeIn "..VEND.."
Moveto [Tipo de Pagamento      ] TypeIn "P"
Moveto [Tipo Movimento Estoque ] TypeIn "S"
Moveto [Situacao               ] TypeIn "Not C"
Do_It!
ClearAll
If IsEmpty("Answer")
   Then Return
EndIf

Sort "Answer" on "Codigo da Empresa", "Forma de Pagamento", "Serie do Documento",
                 "Data de Emissao",  "Numero do Documento"
ClearAll

LANC_OK=True
NR=NRecords("Answer")
View "\\Sistemas\\Cadastro\\Empresas"
CoEdit "Answer"

FORMAPG =[Forma de Pagamento]
DATALANC=[Data de Emissao  ]
NDOCI   =NumVal([Numero do Documento])
NDOCF   =NumVal([Numero do Documento])-1
CDOC    =[Serie do Documento ]
HIST    =""
VALORT  =0
VRLANC  =0
ULTIMO_LANC_PM=False

SeqLanc  =9001
SeqLancPM=9000

Scan
  Barra(NR, RecNo())
  AGUARDE("Aguarde, Exportando Dados Parcial (Saidas) "+BARRA_STRING)

  If FORMAPG<>[Forma de Pagamento]
     Then MontaHist("S")
          NDOCF =NumVal([Numero do Documento])-1
          Grava_LDS()
          Grava_LCS()
  EndIf

  If DATALANC<>[Data de Emissao]
     Then MontaHist("S")
          Grava_LDS()
  EndIf

  If CDOC<>[Serie do Documento]
     Then MontaHist("S")
          NDOCF =NumVal([Numero do Documento])-1
          Grava_LDS()
  EndIf

  If NumVal([Numero do Documento])<>(NDOCF+1)
     Then MontaHist("S")
  EndIf

  VRLANC=VRLANC+[Valor Nota Fiscal]
  VALORT=VALORT+[Valor Nota Fiscal]
  NDOCF =NumVal([Numero do Documento])

  NDOC  =[Numero do Documento]

  Switch
    Case [Forma de Pagamento]="CT":
      CONTA_DB="112010001/7000"
      CONTA_CR="411010002/4001"
    Case [Forma de Pagamento]="CD":
      CONTA_DB="112010004/7003"
      CONTA_CR="411010001/4000"
    OtherWise                     :
      CONTA_DB="112010003/7002"
      CONTA_CR="411010002/4001"
  EndSwitch

EndScan
MontaHist("S")
ULTIMO_LANC_PM=True
Grava_LDS()
Grava_LCS()
Do_It!
ClearAll
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros Titulos Emitidos                     *
;*******************************************************************************
Proc GERA_TIT()
AGUARDE("Aguarde, Processando Dados Titulos Emitidos")

{Ask} {\\Sistemas\\Ctarec\\Duplic} Check
Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
Moveto [Data de Emissao        ] TypeIn ">= ~VSDGDTINI , <= ~VSDGDTFIM"
Do_It!
ClearAll
If IsEmpty("Answer")
   Then Return
EndIf

Sort "Answer" on "Codigo da Empresa", "Serie do Documento",
                 "Data de Emissao", "Numero do Documento"
ClearAll

LANC_OK=True
NR=NRecords("Answer")
View "\\Sistemas\\Cadastro\\Destinat"
CoEdit "Answer"

CONTA_DB=""
CONTA_CR="231030001/1241"
SeqLanc  =9001
SeqLancPM=0

Scan
  Barra(NR, RecNo())
  AGUARDE("Aguarde, Exportando Dados Titulos Emitidos "+BARRA_STRING)

 CODIGO=[Codigo do Destinatario]
 CONTA_DB="777777777/7777"
 NOME_DB =""
 CGC_DB  =""

 Moveto "\\Sistemas\\Cadastro\\Destinat"
 Moveto [Codigo]
 Locate CODIGO
 If RetVal
    Then If Not IsBlank([Conta Contabil])
            Then CONTA_DB=[Conta Contabil]
            Else CONTA_DB="666666666/6666"
         EndIf

         NOME_DB=[Nome Fantasia EmitDest]
         If SubStr([CGC],03,1)="." and
            SubStr([CGC],07,1)="." and
            SubStr([CGC],11,1)="/" and
            SubStr([CGC],16,1)="-"
            Then WVR=""               ;CGC
                 WVR=SubStr([CGC],01,2)+
                     SubStr([CGC],04,3)+
                     SubStr([CGC],08,3)+
                     SubStr([CGC],12,4)+
                     SubStr([CGC],17,2)
                 CHECACGC(WVR)
                 If WB=0
                    Then CGC_DB=WVR
                 EndIf
            Else If SubStr([CGC],04,1)="." and
                    SubStr([CGC],08,1)="." and
                    SubStr([CGC],12,1)="-"
                    Then WVR=""               ;CPF
                         WVR=SubStr([CGC],01,3)+
                             SubStr([CGC],05,3)+
                             SubStr([CGC],09,3)+
                             SubStr([CGC],13,2)
                         CHECACPF(WVR)
                         If WB=0
                            Then CGC_DB=WVR
                         EndIf
                 EndIf
         EndIf
 EndIf
 Moveto "Answer"
 HISTORICO="HONORARIO GERADO "+[Tipo do Documento]+"/"+[Numero do Documento]+" - "+NOME_DB

 ;****** Gera Lancamento *****
 Print File ARQ ALINHM(PREFIXO,4)
 Print File ARQ "0000"
 Print File ARQ ALINHM(StrVal(SeqLanc),4)
 Print File ARQ ALINHM(StrVal(SeqLancPM),4)
 Print File ARQ DATA2STR_S2([Data de Emissao])
 Print File ARQ AlinhM(SubStr(CONTA_DB,01,9),9)
 Print File ARQ AlinhM(SubStr(CONTA_CR,01,9),9)
 Print File ARQ AlinhM(SubStr(CONTA_DB,11,4),4)
 Print File ARQ AlinhM(SubStr(CONTA_CR,11,4),4)
 Print File ARQ "00000"
 Print File ARQ "00000000"
 Print File ARQ "00000000"
 Print File ARQ "        "
 Print File ARQ "0000"
 Print File ARQ VALOR2STR_S([Valor do Documento],15)
 Print File ARQ "0000"
 Print File ARQ COMPLETA(HISTORICO,200, " ")
 Print File ARQ "    "
 Print File ARQ " "
 Print File ARQ " "+"\n"
 SeqLanc=SeqLanc+1

EndScan
Do_It!
ClearAll



AGUARDE("Aguarde, Processando Dados Titulos Baixados")

{Ask} {\\Sistemas\\Ctarec\\Duplic} Check
Moveto [Numero do Lancamento   ] Example "nlanc"
Moveto [Codigo da Empresa      ] TypeIn "~VSDGEMPRESA.."
Moveto [Data de Emissao        ] TypeIn ">= ~VSDGDTINI , <= ~VSDGDTFIM"
{Ask} {\\Sistemas\\Ctarec\\DupBaixa} Check
Moveto [Numero do Lancamento   ] Example "nlanc"
Moveto [Data do Pagamento      ] TypeIn ">= ~VSDGDTINI , <= ~VSDGDTFIM"
Do_It!
ClearAll
If IsEmpty("Answer")
   Then Return
EndIf

Sort "Answer" on "Codigo da Empresa", "Serie do Documento",
                 "Data do Pagamento", "Numero do Documento"
ClearAll

LANC_OK=True
NR=NRecords("Answer")
View "\\Sistemas\\Cadastro\\Destinat"
CoEdit "Answer"

TOT_BAIXAS=0
TOT_OUTROS=0
Scan
  Barra(NR, RecNo())
  AGUARDE("Aguarde, Exportando Dados Titulos Baixados "+BARRA_STRING)

  If [Tipo da Baixa]="NORMAL"
     Then TOT_BAIXAS=TOT_BAIXAS+([Valor do Recebimento]+[Valor do Desconto])
          Loop
  EndIF

  TOT_OUTROS=TOT_OUTROS+([Valor do Recebimento]+[Valor do Desconto])

  CODIGO=[Codigo do Destinatario]

  CONTA_DB="231030001/1241"
  CONTA_CR="777777777/7777"
  NOME_CR =""
  CGC_CR  =""

  Moveto "\\Sistemas\\Cadastro\\Destinat"
  Moveto [Codigo]
  Locate CODIGO
  If RetVal
     Then If Not IsBlank([Conta Contabil])
             Then CONTA_CR=[Conta Contabil]
             Else CONTA_CR="666666666/6666"
          EndIf

          NOME_CR=[Nome Fantasia EmitDest]
          If SubStr([CGC],03,1)="." and
             SubStr([CGC],07,1)="." and
             SubStr([CGC],11,1)="/" and
             SubStr([CGC],16,1)="-"
             Then WVR=""               ;CGC
                  WVR=SubStr([CGC],01,2)+
                      SubStr([CGC],04,3)+
                      SubStr([CGC],08,3)+
                      SubStr([CGC],12,4)+
                      SubStr([CGC],17,2)
                  CHECACGC(WVR)
                  If WB=0
                     Then CGC_CR=WVR
                  EndIf
             Else If SubStr([CGC],04,1)="." and
                     SubStr([CGC],08,1)="." and
                     SubStr([CGC],12,1)="-"
                     Then WVR=""               ;CPF
                          WVR=SubStr([CGC],01,3)+
                              SubStr([CGC],05,3)+
                              SubStr([CGC],09,3)+
                              SubStr([CGC],13,2)
                          CHECACPF(WVR)
                          If WB=0
                             Then CGC_CR=WVR
                          EndIf
                  EndIf
          EndIf
  EndIf
  Moveto "Answer"
  HISTORICO="HONORARIO "+[Tipo da Baixa]+" "+[Tipo do Documento]+"/"+[Numero do Documento]+" - "+NOME_DB
  VR=[Valor do Recebimento]+[Valor do Desconto]

 ;****** Gera Lancamento *****
 Print File ARQ ALINHM(PREFIXO,4)
 Print File ARQ "0000"
 Print File ARQ ALINHM(StrVal(SeqLanc),4)
 Print File ARQ ALINHM(StrVal(SeqLancPM),4)
 Print File ARQ DATA2STR_S2([Data do Pagamento])
 Print File ARQ AlinhM(SubStr(CONTA_DB,01,9),9)
 Print File ARQ AlinhM(SubStr(CONTA_CR,01,9),9)
 Print File ARQ AlinhM(SubStr(CONTA_DB,11,4),4)
 Print File ARQ AlinhM(SubStr(CONTA_CR,11,4),4)
 Print File ARQ "00000"
 Print File ARQ "00000000"
 Print File ARQ "00000000"
 Print File ARQ "        "
 Print File ARQ "0000"
 Print File ARQ VALOR2STR_S(VR,15)
 Print File ARQ "0000"
 Print File ARQ COMPLETA(HISTORICO,200, " ")
 Print File ARQ "    "
 Print File ARQ " "
 Print File ARQ " "+"\n"
 SeqLanc=SeqLanc+1

EndScan

For wi From 1 to 1

 Switch
   Case TOT_BAIXAS>0:
     CONTA_DB="231030001/1241"
     CONTA_CR="481050003/4384"
     HISTORICO="RECEBIMENTOS HONORARIO DE "+StrVal(VSDGDTINI)+" ATE"+StrVal(VSDGDTFIM)
     VR=TOT_BAIXAS
   Case TOT_OUTROS>0:
     CONTA_DB="231030001/1241"
     CONTA_CR="481050003/4384"
     HISTORICO="CANCELAMENTOS/DEVOLUCOES DE HONORARIO DE "+StrVal(VSDGDTINI)+" ATE"+StrVAl(VSDGDTFIM)
     VR=TOT_OUTROS
   OtherWise: Loop
 EndSwitch

 ;****** Gera Lancamento *****
 Print File ARQ ALINHM(PREFIXO,4)
 Print File ARQ "0000"
 Print File ARQ ALINHM(StrVal(SeqLanc),4)
 Print File ARQ ALINHM(StrVal(SeqLancPM),4)
 Print File ARQ DATA2STR_S2(VSDGDTFIM)
 Print File ARQ AlinhM(SubStr(CONTA_DB,01,9),9)
 Print File ARQ AlinhM(SubStr(CONTA_CR,01,9),9)
 Print File ARQ AlinhM(SubStr(CONTA_DB,11,4),4)
 Print File ARQ AlinhM(SubStr(CONTA_CR,11,4),4)
 Print File ARQ "00000"
 Print File ARQ "00000000"
 Print File ARQ "00000000"
 Print File ARQ "        "
 Print File ARQ "0000"
 Print File ARQ VALOR2STR_S(VR,15)
 Print File ARQ "0000"
 Print File ARQ COMPLETA(HISTORICO,200, " ")
 Print File ARQ "    "
 Print File ARQ " "
 Print File ARQ " "+"\n"
 SeqLanc=SeqLanc+1
EndFor

Do_It!
ClearAll
EndProc

;*******************************************************************************
;* Rotina Gravacao do Lancamento Debito p/ Saidas                              *
;*******************************************************************************
Proc Grava_LDS()

;****** Gera Lancamento *****
Print File ARQ ALINHM(PREFIXO,4)
Print File ARQ "0000"
Print File ARQ ALINHM(StrVal(SeqLanc),4)
Print File ARQ ALINHM(StrVal(SeqLancPM),4)
Print File ARQ DATA2STR_S2(VSDGDTFIM)
Print File ARQ AlinhM(SubStr(CONTA_DB,01,9),9)
Print File ARQ AlinhM(SubStr(CONTA_CR,01,9),9)
Print File ARQ AlinhM(SubStr(CONTA_DB,11,4),4)
Print File ARQ AlinhM(SubStr(CONTA_CR,11,4),4)
Print File ARQ "00000"
Print File ARQ "00000000"
Print File ARQ "00000000"
Print File ARQ "        "
Print File ARQ "0000"
Print File ARQ VALOR2STR_S(VRLANC,15)
Print File ARQ "0000"
If Search(",", HIST)>0 Or
   Search("a", HIST)>0
   Then HISTORICO=AlinhM(StrVal(DATALANC),10)+" VR. NF's "+CDOC+" "+HIST
   Else HISTORICO=StrVal(DATALANC)+" VR. NF "+CDOC+" "+HIST
EndIf
Print File ARQ COMPLETA(HISTORICO,200, " ")
Print File ARQ "    "
Print File ARQ " "
If ULTIMO_LANC_PM
   Then Print File ARQ "S"+"\n"
   Else Print File ARQ " "+"\n"
EndIf
SeqLanc=SeqLanc+1

Moveto "Answer"
FORMAPG =[Forma de Pagamento]
DATALANC=[Data de Emissao ]
CDOC    =[AnSerie do Documento ]
NDOCF   =NumVal([Numero do Documento])-1
HIST    =""
VRLANC=0
EndProc

;*******************************************************************************
;* Rotina Gravacao do Lancamento Credito p/ Saidas e Totalizadores             *
;*******************************************************************************
Proc Grava_LCS()
;****** Gera Lancamento *****
Print File ARQ ALINHM(PREFIXO,4)
Print File ARQ "0000"
Print File ARQ ALINHM(StrVal(SeqLancPM),4)
Print File ARQ "0000"
Print File ARQ DATA2STR_S2(VSDGDTFIM)
Print File ARQ AlinhM(SubStr(CONTA_DB,01,9),9)
Print File ARQ "000000000"
Print File ARQ AlinhM(SubStr(CONTA_DB,11,4),4)
Print File ARQ "0000"
Print File ARQ "00000"
Print File ARQ "00000000"
Print File ARQ "00000000"
Print File ARQ "        "
Print File ARQ "0000"
Print File ARQ VALOR2STR_S(VALORT,15)
Print File ARQ "0000"
HISTORICO="VR VENDAS A PRAZO CF REGISTRO EM "+AlinhM(StrVal(Month(VSDGDTFIM)),2)+"/"+StrVal(Year(VSDGDTFIM))
Print File ARQ COMPLETA(HISTORICO,200, " ")
Print File ARQ "    "
Print File ARQ " "
Print File ARQ " "+"\n"
SeqLanc=SeqLanc+2

Moveto "Answer"
VALORT  =0

SeqLancPM=SeqLanc-1
ULTIMO_LANC_PM=False
EndProc

;*******************************************************************************
;* Rotina p/ Montar Historico                                                  *
;*******************************************************************************
Proc MontaHist(TIPO_MOVIMENTO)
Private NHIST, TIPO_MOVIMENTO
While True
  NHIST=HIST
  If NDOCI=NDOCF
     Then If NHIST=""
             Then NHIST=NHIST+StrVal(NDOCI)
             Else NHIST=NHIST+", "+StrVal(NDOCI)
          EndIf
     Else If NHIST=""
             Then If (NDOCI+1)=NDOCF
                     Then NHIST=NHIST+StrVal(NDOCI)+", "+StrVal(NDOCF)
                     Else NHIST=NHIST+StrVal(NDOCI)+" a "+StrVal(NDOCF)
                  EndIf
             Else If (NDOCI+1)=NDOCF
                     Then NHIST=NHIST+", "+StrVal(NDOCI)+", "+StrVal(NDOCF)
                     Else NHIST=NHIST+", "+StrVal(NDOCI)+" a "+StrVal(NDOCF)
                  EndIf
          EndIf
  EndIf
  If TIPO_MOVIMENTO="E"
     Then If (Len(NHIST)+Len(NOME_CR)+2)>200
             Then Grava_LCE()
             Else QuitLoop
          EndIf
     Else If Len(NHIST)>200
             Then Grava_LDS()
             Else QuitLoop
          EndIf
  EndIf

EndWhile
HIST  =NHIST
NDOCI =NumVal([Numero do Documento])
NDOCCB=NumVal([Numero do Documento])
EndProc

;*******************************************************************************
;* ROTINA LIMPA_ARRAY                                                          *
;*******************************************************************************
Proc Limpa_Array()
For q from 1 to 20
  TpItem[q]=""
  VrTpItem[q]=BlankNum()
EndFor
EndProc

;******************************************************************************
; CONVERTE DATA DE GRAVACAO PARA STRING                                       *
;******************************************************************************
PROC DATA2STR_S2(DATA)
DTGRAV=AlinhM(LTrim(Format("D13",DATA)),10)
DTGRAV=SUBSTR(DTGRAV,1,2)+SUBSTR(DTGRAV,4,2)+SUBSTR(DTGRAV,7,4)
RETURN DTGRAV
ENDPROC                                       

;********************************************************************************
;* CONVERTE VALOR PARA STRING                                                  *
;********************************************************************************
PROC VALOR2STR_S(VALOR,TAM)
VRTIT=STRVAL(VALOR)
PART1=LEN(VRTIT)-3
PART2=LEN(VRTIT)-1
VRTIT=SUBSTR(VRTIT,1,PART1)+SUBSTR(VRTIT,PART2,2)
VRTIT=FILL("0",TAM-LEN(VRTIT))+VRTIT
RETURN VRTIT
ENDPROC

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************

Empty("\\Sistemas\\CtaCor\\Tmp_Parc")

;****** Localiza Empresa *****
SeqLanc=4000

ARQ="\\Sistemas\\Exporta\\Dados\\Asplan\\MV"+"0"+PREFIXO+MES+"."+ANO
arquivos=arquivos+Completa(ARQ,62," ")+"//"

gerou_arquivos=True
Deleta_Arquivo(ARQ)

Array TpItem[20]
Array VrTpItem[20]

LANC_OK=False
GERA_C()
GERA_E()
If SYS_CODIGO_CLIENTE="0092"
   Then GERA_TIT()
   Else GERA_S()
EndIf
If Not LANC_OK
   Then MENSAGEM("N„o Existem Registros a Processar, Lan‡amentos Contabil !")
        Return
EndIf
Delete "Answer"
ClearAll
LimpAguarde()
Release Procs Gera_C, Gera_E, Grava_LDE, Grava_LCE, Grava_LCTE, MontaHist,
              VALOR2STR_S, DATA2STR_S2, Limpa_Array
