;** CX_0001 ********************************************************************
;*  Saldo das Contas                                                           *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 19/06/2019 por Anivel Augusto Rodrigues
;Ultima Alteracao: 04/09/2019 por Anivel Augusto Rodrigues     
;Motivo Alteracao: ajustes registros sem movimentos
;Ultima Alteracao: 12/09/2019 por Anivel Augusto Rodrigues      
;Motivo Alteracao: Ajustes filewrite inicial
;Ultima Alteracao: 12/09/2019 por Anivel Augusto Rodrigues      
;Motivo Alteracao: Ajustes Play rm_0170a
;Ultima Alteracao: 23/10/2019 por Anivel Augusto Rodrigues  
;Motivo Alteracao: Ajustes mensagem

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc CX_0001_AdicionaDados()
private regconta, regtabela2
ClearAll

View "\\sistemas\\ctacor\\conta"
View tabeladados
CoEdit tabela2
Scan
   copytoarray regtabela2

   Moveto tabeladados
   Moveto [Codigo da Conta]
   Locate regtabela2["Codigo da Conta"]
   If Not RetVal
      Then End Down
           [Codigo da Conta          ]=regtabela2["Codigo da Conta"   ]
           getrecord "\\sistemas\\ctacor\\conta" regtabela2["Codigo da Conta"   ] to regconta
           if retval
              then [Tipo da Conta]=regconta["Tipo da Conta"     ]
                   [nome         ]=regconta["Descricao da Conta"] 
           endif   
           switch
             case [Tipo da Conta]="C" : [descricao]="C/C "+regconta["Nome do Banco"] [info]="consolidado"
             case [Tipo da Conta]="X" : [descricao]="Cx"
             case [Tipo da Conta]="A" : [descricao]="C/A "+regconta["Nome do Banco"]
           endswitch
   EndIf
   [Valor  ]=[Valor  ] + (regtabela2["saldo"]+regtabela2["Entradas_Realizadas"])-regtabela2["Saidas_Realizadas"]

   Moveto tabela2
EndScan
Do_It!
ClearAll

EndProc

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

Aguarde("Aguarde, Exportando Contas Saldos")

ClearAll


for wi from 1 to 4

arquivo=VSDGPASTA+"tmp0000.txt"
  switch
    case wi=1 : arqnew =VSDGPASTA+"CX_0001.csv"
    case wi=2 : arqnew =VSDGPASTA+"CX_0001A.csv"
    case wi=3 : arqnew =VSDGPASTA+"CX_0001C.csv"
    case wi=4 : arqnew =VSDGPASTA+"CX_0001X.csv"
  endswitch

  {ask} typein tabeladados Enter check
  switch
    case wi=1: moveto [Tipo da Conta] typein "not blank" 
    case wi=2: moveto [Tipo da Conta] typein "A" 
    case wi=3: moveto [Tipo da Conta] typein "C" 
    case wi=4: moveto [Tipo da Conta] typein "X" 
  endswitch
  Do_it!
  Sort "Answer" on "nome"
  

  NR=NRecords("Answer")
  inicio=true

  FileWrite        arquivo from "nome,descricao,info,valor\n"    

  Edit "Answer" 
  Scan
    Barra(NR, RecNo())
    AGUARDE(BARRA_STRING)

    if NR=0 
       then [Nome     ]="?"
            [Descricao]="** SEM MOVIMENTO **"
            [Valor    ]=0
    endif             

    s=  monta_string([nome     ])+","
    s=s+monta_string([descricao])+","
    s=s+monta_string([info     ])+","
    s=s+strval([Valor          ])+"\n"
  
    FileWrite append arquivo from s    
    
  EndScan
  Do_It!
  ClearAll
  
  FileRead  arquivo to   vartemp
  FileWrite arqnew  from vartemp    

endfor

LimpAguarde()

EndProc

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

;-- variveis para RM_0170A -----------------------------------------------------
VSDGEMPRESA2=VSDGEMPRESA
VSDGOPDTEMISCOMP="1"

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

Array TG_OPCONTAS[1]
Array CheckTG_OPCONTAS[ArraySize(TG_OPCONTAS)]
CheckTG_OPCONTAS[1]=False

SetDir "\\sistemas\\ctacor"
Play "\\sistemas\\ctacor\\rm_0170a"
SetDir "\\sistemas\\Mobilets"
;-------------------------------------------------------------------------------

tabeladados=Cria_Temp(PrivDir())
cria_tabela(tabeladados,"Codigo da Conta(A4),Tipo da Conta(A1),nome(A20),descricao(A20),info(A20),valor(N)") 

CX_0001_AdicionaDados()
CX_0001_GravaCsv()

Delete tabeladados


;-- tabelas  da   RM_0170A -----------------------------------------------------
if istable(Tabela)   then Delete Tabela   endif
if istable(Tabela2)  then Delete Tabela2  endif
Delete "\\sistemas\\ctacor\\Tmp_cont" 
;-------------------------------------------------------------------------------

ClearAll
Release Vars tabeladados, ANOREF,MESREF,VSDGDTREF,
             Tabela, Tabela2, Tmp_cont
         
Release Procs CX_0001_AdicionaDados, CX_0001_GravaCsv
