;** CX_0002 ********************************************************************
;*  Cheques pre-datados nĈo descontados                                        *
;*******************************************************************************
;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: 23/10/2019 por Anivel Augusto Rodrigues  
;Motivo Alteracao: Ajustes mensagem

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros                                   *
;*******************************************************************************
Proc CX_0002_SelecionaDados()
ClearAll

ClearAll
{Ask} TypeIn "\\Sistemas\\Ctacor\\MovCont" Enter Check
Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA.."
Moveto [Tipo da Conta         ] TypeIn "C"
Moveto [Tipo Movimento        ] TypeIn "S"
Moveto [Tipo de Operacao      ] TypeIn "05 or 08"
Moveto [Data Cheque Descontado] TypeIn "Blank"
Moveto [Cheque Pre-Datado     ] TypeIn "S"
Moveto [Data Cheque Pre-Datado] TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
Do_It!
ClearAll

{Ask} {Answer} TypeIn "Fast Delete"
Moveto [Tipo de Operacao  ] TypeIn "08"
Moveto [Tipo do Lancamento] TypeIn "O or P"
Do_It!
ClearAll

CX_0002_AdicionaDados(1)





ClearAll
{Ask} TypeIn "\\Sistemas\\Ctacor\\MovCont" Enter Check
Moveto [Codigo da Empresa     ] TypeIn "~VSDGEMPRESA.."
Moveto [Tipo da Conta         ] TypeIn "C"
Moveto [Tipo Movimento        ] TypeIn "S"
Moveto [Tipo de Operacao      ] TypeIn "05 or 08"
Moveto [Data Cheque Descontado] TypeIn "Blank"
Moveto [Cheque Pre-Datado     ] TypeIn "N"
Moveto [Data                  ] TypeIn "<~VSDGDTFIM"
Do_It!
ClearAll

{Ask} {Answer} TypeIn "Fast Delete"
Moveto [Tipo de Operacao  ] TypeIn "08"
Moveto [Tipo do Lancamento] TypeIn "O or P"
Do_It!
ClearAll

CX_0002_AdicionaDados(2)


EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc CX_0002_AdicionaDados(tipo)
private tipo
ClearAll

if isempty("Answer")
   then return
endif   

View tabeladados
Edit "Answer"
Scan

   Moveto tabeladados
   end
   down
   [Tipo     ]=tipo
   [nome     ]=[Answer->Nome Fantasia EmitDest]
   switch
     case tipo=1: [descricao]="BOM P/ "+format("D10",[Answer->Data Cheque Pre-Datado]) 
     case tipo=2: [descricao]="EMITIDO "+format("D10",[Answer->Data]) 
   endswitch
   [info     ]="CH "+[Answer->Numero do Cheque]
   [valor    ]=[Answer->Valor]

   Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

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

Aguarde("Aguarde, Exportando Vendas Di rias")

Sort tabeladados on "Tipo","Data"
ClearAll

for wi from 1 to 2

arquivo=VSDGPASTA+"tmp0000.txt"
  switch
    case wi=1 : arqnew =VSDGPASTA+"CX_0002.csv"
    case wi=2 : arqnew =VSDGPASTA+"CX_0002N.csv"
  endswitch

  {ask} typein tabeladados Enter check
  moveto [Tipo] typein strval(wi)
  do_it! 
  
  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                                                            *
;*******************************************************************************

tabeladados=Cria_Temp(PrivDir())
cria_tabela(tabeladados,"Tipo(s),Data(D),NumeroCheque(A11),nome(A20),descricao(A20),info(A20),valor(N)")

CX_0002_SelecionaDados()
CX_0002_GravaCsv()

Delete tabeladados

ClearAll
Release Vars tabeladados
Release Procs CX_0002_SelecionaDados, CX_0002_AdicionaDados, CX_0002_GravaCsv
