;** VN_0520 ********************************************************************
;*  Grafico Indicador PedVendas Metas                                          *
;*******************************************************************************
;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_0520_SelecionaDados()
ClearAll

{Ask} TypeIn "\\Sistemas\\Vendas\\PedidoC" Enter
Moveto [Codigo da Empresa      ]       TypeIn "~VSDGEMPRESA.."
Moveto [Data de Emissao        ]       TypeIn ">=~VSDGDTINI, <=~VSDGDTFIM"
Moveto [Descricao da Destinacao]       TypeIn "..VEND.. Or ..SAIDA.. Or ..SERV.."
Moveto [Situacao do Pedido     ]       TypeIn ".."
Moveto [Codigo do Representante  ] check
Moveto [Numero do Pedido       ]       TypeIn "Calc Count as NPedidos" 
Moveto [Valor Mercadoria Liquido ]     TypeIn "Calc Sum as Valor Total"
Do_It!
ClearAll
VN_0005_AdicionaDados("V")

{Ask} {\\Sistemas\\Vendas\\Rankvc}
Moveto [Numero da Programacao  ]       TypeIn "_Prog"
Moveto [Codigo da Empresa      ]       TypeIn "~VSDGEMPRESA.."
Moveto [Data Inicial           ]       TypeIn "~VSDGDTINI.."
{Ask} {\\Sistemas\\Vendas\\Rankvi}
Moveto [Numero da Programacao  ]       TypeIn "_Prog"
Moveto [Codigo do Representante] Check 
Moveto [Meta_Faturamento       ]       TypeIn "Calc Sum as Valor Total" 
Do_it!
ClearAll
VN_0005_AdicionaDados("M")

EndProc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc VN_0005_AdicionaDados(tipo)
private tipo, regrepresen
ClearAll

View "\\sistemas\\cadastro\\represen"
View tabeladados
CoEdit "Answer"
Scan
   Moveto tabeladados
   Moveto [Codigo do Representante]
   Locate [Answer->Codigo do Representante]
   If Not RetVal
      Then End Down
           [Codigo do Representante  ]=[Answer->Codigo do Representante   ]
           [nome                     ]="["+[Codigo do Representante   ]+"] "
           getrecord "\\sistemas\\cadastro\\represen" [Answer->Codigo do Representante ] to regrepresen
           if retval
              then [nome     ]=[nome]+regrepresen["Nome Fantasia Represent"]
           endif   
   EndIf

   switch
     case tipo="V": [ValorPedidos]=[ValorPedidos] + [Answer->Valor Total] 
                    [NPedidos    ]=[NPedidos    ] + [Answer->NPedidos   ] 

     case tipo="M": [ValorMeta   ]=[ValorMeta   ] + [Answer->Valor Total] 

   endswitch

   Moveto "Answer"
EndScan
Do_It!
ClearAll

EndProc

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

Aguarde("Aguarde, Exportando PedVendas Metas")

clearall
Edit tabeladados 
Scan
  VN_0520_VM=VN_0520_VM+[ValorMeta   ]
  VN_0520_TV=VN_0520_TV+[ValorPedidos]

  [Valor    ]=ndecimal(([ValorPedidos]/[ValorMeta   ])*100,1)
EndScan
Do_It!
Sort tabeladados on "Valor" D
clearall

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

FileWrite        arquivo from "label,value\n"    

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

  s=  monta_string([nome     ])+","
  s=s+strval([valor          ])+"\n"

  FileWrite append arquivo from s    
  
EndScan
Do_It!
ClearAll

FileRead  arquivo to   vartemp
FileWrite arqnew  from vartemp    

VN_0520_PM =ndecimal(((VN_0520_TV/VN_0520_VM)*100),1)

arqnew =VSDGPASTA+"VN_0521.csv"
FileWrite        arqnew  from "maximo,atual\n"   
FileWrite append arqnew  from strval(100)+","+strval(VN_0520_PM)+"\n"


LimpAguarde()
  
EndProc

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

Aguarde("Aguarde, Exportando PedVendas Metas")


Sort tabeladados on "ValorPedidos" D
clearall

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

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

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

  VN_0520_VM=VN_0520_VM+[ValorMeta   ]
  VN_0520_TV=VN_0520_TV+[ValorPedidos]

  [Valor    ]=[ValorPedidos]
  [descricao]="ticket medio "+format("W10.2,EIC",[ValorPedidos]/[NPedidos])
  [info     ]=format("W4,EIC",[NPedidos])+" Pedidos, "+format("W4.1,EIC",([ValorPedidos]/[ValorMeta   ])*100)+"%"

  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    

VN_0520_PM =ndecimal(((VN_0520_TV/VN_0520_VM)*100),1)

arqnew =VSDGPASTA+"VN_0521.csv"
FileWrite        arqnew  from "maximo,atual\n"   
FileWrite append arqnew  from strval(100)+","+strval(VN_0520_PM)+"\n"


LimpAguarde()
  
EndProc

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

Aguarde("Aguarde, Exportando PedVendas Metas")


Sort tabeladados on "ValorPedidos" D
clearall

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

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

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

  VN_0520_VM=VN_0520_VM+[ValorMeta   ]
  VN_0520_TV=VN_0520_TV+[ValorPedidos]

  [valor    ]=ndecimal(([ValorPedidos]/[ValorMeta   ])*100,1)
  [mascara  ]="%"
  [descricao]="ticket medio "+format("W10.2,EIC",[ValorPedidos]/[NPedidos])
  [info     ]=format("W4,EIC",[NPedidos])
  [foto     ]="http://via.placeholder.com/150"

  s=  monta_string([nome     ])+","
  s=s+monta_string([descricao])+","
  s=s+monta_string([info     ])+","
  s=s+monta_string([mascara  ])+","
  s=s+monta_string([foto     ])+","
  s=s+strval([valor          ])+"\n"

  FileWrite append arquivo from s    
  
EndScan
Do_It!
ClearAll

FileRead  arquivo to   vartemp
FileWrite arqnew  from vartemp    

VN_0520_PM =ndecimal(((VN_0520_TV/VN_0520_VM)*100),1)

arqnew =VSDGPASTA+"VN_0521.csv"
FileWrite        arqnew  from "maximo,atual\n"   
FileWrite append arqnew  from strval(100)+","+strval(VN_0520_PM)+"\n"


LimpAguarde()
  
EndProc

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

tabeladados=Cria_Temp(PrivDir())
cria_tabela(tabeladados,"Codigo do Representante(A4),ValorMeta($),ValorPedidos($),NPedidos(S),nome(A30),descricao(A30),info(A30),mascara(A5),foto(a100),valor(N)")

;variaveis
VN_0520_VM =0
VN_0520_TV =0
VN_0520_PM =0

VN_0520_SelecionaDados()
VN_0520_GravaCsv()

Delete tabeladados

ClearAll
Release Vars tabeladados,
             VN_0520_VM,VN_0520_TV,VN_0520_PM
Release Procs VN_0520_SelecionaDados, VN_0520_AdicionaDados, VN_0520_GravaCsv
