;** CX_0003 ********************************************************************
;*  Grafico Fluxo de Caixa                                                     *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 03/09/2019 por Anivel Augusto Rodrigues
;Ultima Alteracao: 12/09/2019 por Anivel Augusto Rodrigues      
;Motivo Alteracao: Ajustes filewrite inicial
;Ultima Alteracao: 23/10/2019 por Anivel Augusto Rodrigues  
;Motivo Alteracao: Ajustes mensagem
;Ultima Alteracao: 23/01/2020 por Anivel Augusto Rodrigues  
;Motivo Alteracao: Ajustes ListaRegra_VSDGEMPRESA_Ativo,CheckTG_OPCTATRANSF 

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc CX_0003_AdicionaDados()
private tipo, regtabela, saldo
ClearAll

saldo=0

View tabeladados
Edit Tabela
Scan
   copytoarray regtabela
   If IsBlank(regtabela["Data"]) Then Loop EndIf
   
   saldo=saldo+  ( ( regtabela["Saldo"] + regtabela["Total_Entradas"] ) - regtabela["Total_Saidas"] )

   Moveto tabeladados
   Moveto [Ano]
   Locate Year(regtabela["Data"]),Month(regtabela["Data"])
   If Not RetVal
      Then End Down
           [Ano    ]=Year (regtabela["Data"])
           [Mes    ]=Month(regtabela["Data"])
           [Extenso]=AlinhM(strval([Mes]),2)+"/"+Substr(strval([Ano]),3,2)
   EndIf
   [Valor  ]=saldo

   moveto tabela
EndScan
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc CX_0003_CriaRegistros()
Private Mes_Aux,Ano_Aux, wi

Mes_Aux=NumVal(MESREF)
Ano_Aux=NumVal(ANOREF)
Edit tabeladados
For wi From 1 to 13
    End Down
    [Ano        ]=Ano_Aux
    [Mes        ]=Mes_Aux
    [Extenso    ]=AlinhM(strval(Mes_Aux),2)+"/"+Substr(strval(Ano_Aux),3,2)
    [Valor      ]=0

    If Mes_Aux = 12 
       Then Mes_Aux=0
            Ano_Aux=Ano_Aux+1
    EndIf
    Mes_Aux=Mes_Aux+1
EndFor
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc CX_0003_GravaCsv()
private s, arquivo, arqnew, inicio, NR, vartemp

Aguarde("Aguarde, Exportando Fluxo de Caixa")

ClearAll

arquivo=VSDGPASTA+"tmp0000.txt"
arqnew =VSDGPASTA+"CX_0003.csv"
         
NR=NRecords(tabeladados)
inicio=true

FileWrite        arquivo from "label,bar,value\n"    

Edit tabeladados 
Scan
  Barra(NR, RecNo())
  AGUARDE(BARRA_STRING)

  s=  monta_string("Saldo")  +","
  s=s+monta_string([Extenso ])+","
  s=s+strval([Valor         ])+"\n"

  FileWrite append arquivo from s    
  
EndScan
Do_It!
ClearAll

FileRead  arquivo to   vartemp
FileWrite arqnew  from vartemp    

LimpAguarde()

EndProc

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

CX_0003_VSDGDTINI=VSDGDTINI 
CX_0003_VSDGDTFIM=VSDGDTFIM

;-- variaveis para rm_flxcx.sc ----------------------------------------
VSDGEMPRESA2=VSDGEMPRESA
VSDGCONTA     =""

Array CheckTG_OPFLUXOCX[8]
CheckTG_OPFLUXOCX[1]=False
CheckTG_OPFLUXOCX[2]=False
CheckTG_OPFLUXOCX[3]=False
CheckTG_OPFLUXOCX[4]=False
CheckTG_OPFLUXOCX[5]=False
CheckTG_OPFLUXOCX[6]=False
CheckTG_OPFLUXOCX[7]=False
CheckTG_OPFLUXOCX[8]=False

ANOREF=StrVal(Year(VSDGDTINI))
MESREF=AlinhM(StrVal(Month(VSDGDTINI)),2)
VSDGDTREF=DateVal("01."+MESREF+"."+ANOREF)

VSDGCODMODELO="02" 
TipoFluxo    ="Sintetico"
TipoFiltro   ="Empresa"

;----------------------------------------------------------------------

MESFIM=MESREF
ANOFIM=StrVal((NumVal(ANOREF)+1))
VSDGDTFIM=DateVal(MESFIM+"/"+"01"+"/"+ANOFIM)
VSDGDTFIM=Ultimo_Dia_Data(VSDGDTFIM)

ListaRegra_VSDGEMPRESA_Ativo=False

Array CheckTG_OPCTATRANSF[2]
CheckTG_OPCTATRANSF[1]      =False
CheckTG_OPCTATRANSF[2]      =False

setdir "\\Sistemas\\Ctacor"
Play "\\sistemas\\ctacor\\Rm_FLXCX"
setdir "\\Sistemas\\Mobilets"

tabeladados=Cria_Temp(PrivDir())
cria_tabela(tabeladados,"Ano(S*),Mes(S*),Extenso(A10),Valor($)")

CX_0003_CriaRegistros()
CX_0003_AdicionaDados()
CX_0003_GravaCsv()

Delete tabeladados
Delete tabela

VSDGDTINI=CX_0003_VSDGDTINI 
VSDGDTFIM=CX_0003_VSDGDTFIM

ClearAll
Release Vars tabeladados, CX_0003_VSDGDTINI, CX_0003_VSDGDTFIM, MESFIM, ANOFIM, 
             VSDGEMPRESA2, VSDGCONTA, CheckTG_OPFLUXOCX, ANOREF, MESREF,
             VSDGCODMODELO, TipoFluxo, TipoFiltro, tabela
             
Release Procs CX_0003_AdicionaDados, CX_0003_CriaRegistros, CX_0003_GravaCsv
