;** VN_0502 ********************************************************************
;*  Grafico de Ped.Vendas Mensal                                               *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 14/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 VN_0502_SelecionaDados()
ClearAll

If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC")
   Then
         {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC" Enter
         Moveto [Codigo da Empresa      ]       TypeIn "~VSDGEMPRESA.."
         Moveto [Data de Emissao        ] check TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
         Moveto [Descricao da Destinacao]       TypeIn "..VEND.. Or ..SAIDA.. Or ..SERV.."
         Moveto [Situacao do Pedido     ]       TypeIn ".."
         Moveto [Valor Nota Fiscal      ]       TypeIn "Calc Sum as Valor Total"
         Do_It!
         ClearAll
  
         VN_0502_AdicionaDados()
endif   

EndProc

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

View tabeladados
Edit "Answer"
Scan
   If IsBlank([Data de Emissao]) Then Loop EndIf

   Moveto tabeladados
   Moveto [Ano]
   Locate Year([Answer->Data de Emissao]),Month([Answer->Data de Emissao])
   If Not RetVal
      Then End Down
           [Ano   ]=Year ([Answer->Data de Emissao])
           [Mes   ]=Month([Answer->Data de Emissao])
   EndIf
   [Valor  ]=[Valor  ]+[Answer->Valor Total]

   Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

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

Mes_Aux=NumVal(MESINI)
Ano_Aux=NumVal(ANOINI)
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 VN_0502_GravaCsv()
private s, arquivo, arqnew, inicio, NR, vartemp

Aguarde("Aguarde, Exportando Ped.Vendas Mensal")

ClearAll

arquivo=VSDGPASTA+"tmp0000.txt"
arqnew =VSDGPASTA+"VN_0502.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("VENDAS")  +","
  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                                                            *
;*******************************************************************************

VN_0502_VSDGDTINI=VSDGDTINI 
VN_0502_VSDGDTFIM=VSDGDTFIM

MESINI=AlinhM(StrVal((NumVal(VSDGMES))),2)
ANOINI=StrVal((NumVal(VSDGANO)-1))
VSDGDTINI=DateVal(MESINI+"/"+"01"+"/"+ANOINI)

MESFIM=AlinhM(StrVal((NumVal(VSDGMES)+1)),2)
If NumVal(MESFIM)=13
   Then MESFIM="01"
        ANOFIM=StrVal((NumVal(VSDGANO)+1))
   Else ANOFIM=VSDGANO
EndIf

VSDGDTFIM=DateVal(MESFIM+"/"+"01"+"/"+ANOFIM)-1

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

VN_0502_CriaRegistros()

Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  VN_0502_SelecionaDados()
EndWhile

VN_0502_GravaCsv()

Delete tabeladados

VSDGDTINI=VN_0502_VSDGDTINI 
VSDGDTFIM=VN_0502_VSDGDTFIM

ClearAll
Release Vars tabeladados, VN_0502_VSDGDTINI, VN_0502_VSDGDTFIM, MESINI, ANOINI, MESFIM, ANOFIM
Release Procs VN_0502_SelecionaDados, VN_0502_AdicionaDados, VN_0502_CriaRegistros, VN_0502_GravaCsv
