;** CL_0001 ********************************************************************
;*  Carteira de Clientes                                                       *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 21/06/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

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

{Ask}{\\Sistemas\\Cadastro\\Destinat}
Moveto [Codigo             ] Check
Moveto [Tipo               ]       typein "C"
Moveto [Situacao do Cliente] Check typein "as Status"
Moveto [Inativo            ] Check
do_it!
ClearAll

{Ask} {Answer} typein "Fast"
Moveto [Inativo            ]       typein "S"
Moveto [Status             ]       typein "changeto INATIVO"
do_it!
ClearAll

{Ask} {Answer} typein "Fast"
Moveto [Codigo             ]       typein "Calc Count as NRegistros"
Moveto [Status             ] check 
do_it!
ClearAll

CL_0001_AdicionaDados()

EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc CL_0001_AdicionaDados()
ClearAll

View tabeladados
CoEdit "Answer"
Scan
   Moveto tabeladados
   Moveto [Status]
   Locate [Answer->Status]
   If Not RetVal
      Then End Down
           [Status  ]=[Answer->Status   ]
           
           switch
             case [Status]="OTIMO"      : [Ordem]=1
             case [Status]="BOM"        : [Ordem]=2
             case [Status]="REGULAR"    : [Ordem]=3
             case [Status]="PESSIMO"    : [Ordem]=4
             case [Status]="RECADASTRO" : [Ordem]=5
             case [Status]="INATIVO"    : [Ordem]=99
             otherwise                  : [Ordem]=50
           endswitch
           
   EndIf
   [Valor  ]=[Valor  ] + [Answer->NRegistros  ]

   Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

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

Aguarde("Aguarde, Exportando Carteira-Clientes")

Sort tabeladados on "Ordem"
ClearAll

arquivo=VSDGPASTA+"tmp0000.txt"
arqnew =VSDGPASTA+"CL_0001.csv"

NR=NRecords(tabeladados)
inicio=true

FileWrite        arquivo from "label,value\n"    

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

  s=  monta_string([Status  ])+","
  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                                                            *
;*******************************************************************************

tabeladados=Cria_Temp(PrivDir())
cria_tabela(tabeladados,"Status(A15),Ordem(S),Valor(S)")

CL_0001_SelecionaDados()
CL_0001_GravaCsv()

Delete tabeladados

ClearAll
Release Vars tabeladados
Release Procs CL_0001_SelecionaDados, CL_0001_AdicionaDados, CL_0001_GravaCsv
