Dashboard ventas

This commit is contained in:
RPimienta
2024-11-14 22:48:52 -06:00
parent a3d27d0a5b
commit 14564014e1
4 changed files with 626 additions and 0 deletions

View File

@@ -0,0 +1,253 @@

Imports System.Activities.Statements
Imports System.Data
Imports Extensiones
Partial Class Ventas_DashboardVentas
Inherits ClsPaginas
Private Property DtVentasClasificacion As DataTable
Get
Return CType(ViewState("DtVentasClasificacion"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtVentasClasificacion") = value
End Set
End Property
Private Property DtVentas As DataTable
Get
Return CType(ViewState("DtVentas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtVentas") = value
End Set
End Property
Private Property DtVentasClasificacionxMes As DataTable
Get
Return CType(ViewState("DtVentasClasificacionxMes"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtVentasClasificacionxMes") = value
End Set
End Property
Private Property DtVentasGrafica As DataTable
Get
Return CType(ViewState("DtVentasGrafica"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtVentasGrafica") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaCombos()
End If
End Sub
Private Sub CargaCombos()
CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto, AplicaTodos:="Seleccione")
DdlSubProyecto.Items(0).Text = "Seleccione"
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
UpDatos.Update()
End Sub
Protected Sub CargaDatos()
Dim ObjVentas As New ClsVentas
If ObjVentas.GetDashboardVentasGet(UsuarioActual.CveEmpresa, DdlSubProyecto.SelectedValue.ToEntero, DdlAgrupador.SelectedValue.ToEntero) Then
Dim DsDatos = ObjVentas.DataSetResultados.Copy()
If DsDatos IsNot Nothing Then
'DESGLOSE
DtVentasClasificacion = DsDatos.Tables(0)
DtVentas = DsDatos.Tables(1)
DtVentasClasificacionxMes = DsDatos.Tables(2)
DtVentasGrafica = DsDatos.Tables(3)
DtVentasClasificacion.Columns.Add("PorcentajeVenta", GetType(Decimal))
DtVentasClasificacion.Columns.Add("Ano2xAno1", GetType(Decimal))
DtVentasClasificacion.Columns.Add("Ano2xPPTO", GetType(Decimal))
DtVentas.Columns.Add("Ano3xAno1", GetType(Decimal))
DtVentas.Columns.Add("Ano3xAno2", GetType(Decimal))
DtVentas.Columns.Add("CumplimientaRealVSPPTO", GetType(Decimal))
DtVentas.Columns.Add("Ano3xPPTO", GetType(Decimal))
Dim AcumuladoAno1 As Decimal = 0
Dim AcumuladoAno2 As Decimal = 0
Dim AcumuladoAno3 As Decimal = 0
Dim AcumuladoPPTO As Decimal = 0
For Each Row As DataRow In DtVentas.Rows
AcumuladoAno1 += Row("TotalAno1").ToString().ToDecimal()
AcumuladoAno2 += Row("TotalAno2").ToString().ToDecimal()
AcumuladoAno3 += Row("TotalAno3").ToString().ToDecimal()
AcumuladoPPTO += Row("TotalAno3Presupuesto").ToString().ToDecimal()
Row("Ano3xAno1") = (AcumuladoAno3 / AcumuladoAno1) - 1
Row("Ano3xAno2") = (AcumuladoAno3 / AcumuladoAno2) - 1
Row("CumplimientaRealVSPPTO") = (Row("TotalAno3").ToString().ToDecimal() * 100) / Row("TotalAno3Presupuesto").ToString().ToDecimal() / 100
Row("Ano3xPPTO") = (AcumuladoAno3 / AcumuladoPPTO) - 1
Next
For Each Row As DataRow In DtVentasClasificacion.Rows
Row("Ano2xAno1") = If(Row("TotalAno1").ToString().ToDecimal() = 0, 0, (Row("TotalAno2").ToString().ToDecimal() - Row("TotalAno1").ToString().ToDecimal()) / Row("TotalAno1").ToString().ToDecimal())
Row("Ano2xPPTO") = (Row("TotalAno2").ToString().ToDecimal() - Row("TotalAno2Presupuesto").ToString().ToDecimal()) / Row("TotalAno2Presupuesto").ToString().ToDecimal()
Row("PorcentajeVenta") = If(DtVentasClasificacion.SUMD("TotalAno2") = 0, 0, Row("TotalAno2").ToString().ToDecimal() / DtVentasClasificacion.SUMD("TotalAno2"))
Next
GvVentasClasificacion.DataSource = DtVentasClasificacion
GvVentas.DataSource = DtVentas
GvVentasClasificacionxMes.DataSource = DtVentasClasificacionxMes
GvVentasAcumulado.DataSource = DtVentas
End If
End If
ObjVentas.Dispose()
GvVentasClasificacion.Columns(1).HeaderText = Now.Year.ToString()
GvVentasClasificacion.Columns(2).HeaderText = (Now.Year - 1).ToString()
GvVentasClasificacion.Columns(4).HeaderText = $"PRESUPUESTO {Now.Year}"
GvVentasClasificacion.Columns(5).HeaderText = $"{Now.Year} VS {Now.Year - 1}"
GvVentasClasificacion.Columns(6).HeaderText = $"{Now.Year} VS PPTO"
GvVentasClasificacionxMes.Columns(1).HeaderText = $"{Now.Year}-Enero"
GvVentasClasificacionxMes.Columns(2).HeaderText = $"{(Now.Year - 1)}-Enero"
GvVentasClasificacionxMes.Columns(3).HeaderText = $"{Now.Year}-Febrero"
GvVentasClasificacionxMes.Columns(4).HeaderText = $"{(Now.Year - 1)}-Febrero"
GvVentasClasificacionxMes.Columns(5).HeaderText = $"{Now.Year}-Marzo"
GvVentasClasificacionxMes.Columns(6).HeaderText = $"{(Now.Year - 1)}-Marzo"
GvVentasClasificacionxMes.Columns(7).HeaderText = $"{Now.Year}-Abril"
GvVentasClasificacionxMes.Columns(8).HeaderText = $"{(Now.Year - 1)}-Abril"
GvVentasClasificacionxMes.Columns(9).HeaderText = $"{Now.Year}-Mayo"
GvVentasClasificacionxMes.Columns(10).HeaderText = $"{(Now.Year - 1)}-Mayo"
GvVentasClasificacionxMes.Columns(11).HeaderText = $"{Now.Year}-Junio"
GvVentasClasificacionxMes.Columns(12).HeaderText = $"{(Now.Year - 1)}-Junio"
GvVentasClasificacionxMes.Columns(13).HeaderText = $"{Now.Year}-Julio"
GvVentasClasificacionxMes.Columns(14).HeaderText = $"{(Now.Year - 1)}-Julio"
GvVentasClasificacionxMes.Columns(15).HeaderText = $"{Now.Year}-Agosto"
GvVentasClasificacionxMes.Columns(16).HeaderText = $"{(Now.Year - 1)}-Agosto"
GvVentasClasificacionxMes.Columns(17).HeaderText = $"{Now.Year}-Septiembre"
GvVentasClasificacionxMes.Columns(18).HeaderText = $"{(Now.Year - 1)}-Septiembre"
GvVentasClasificacionxMes.Columns(19).HeaderText = $"{Now.Year}-Octubre"
GvVentasClasificacionxMes.Columns(20).HeaderText = $"{(Now.Year - 1)}-Octubre"
GvVentasClasificacionxMes.Columns(21).HeaderText = $"{Now.Year}-Noviembre"
GvVentasClasificacionxMes.Columns(22).HeaderText = $"{(Now.Year - 1)}-Noviembre"
GvVentasClasificacionxMes.Columns(23).HeaderText = $"{Now.Year}-Diciembre"
GvVentasClasificacionxMes.Columns(24).HeaderText = $"{(Now.Year - 1)}-Diciembre"
'GvVentasClasificacionxMes.Columns(1).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(2).HeaderText = $"{(Now.Year - 1)}"
'GvVentasClasificacionxMes.Columns(3).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(4).HeaderText = $"{(Now.Year - 1)}"
'GvVentasClasificacionxMes.Columns(5).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(6).HeaderText = $"{(Now.Year - 1)}"
'GvVentasClasificacionxMes.Columns(7).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(8).HeaderText = $"{(Now.Year - 1)}"
'GvVentasClasificacionxMes.Columns(9).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(10).HeaderText = $"{(Now.Year - 1)}"
'GvVentasClasificacionxMes.Columns(11).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(12).HeaderText = $"{(Now.Year - 1)}"
'GvVentasClasificacionxMes.Columns(13).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(14).HeaderText = $"{(Now.Year - 1)}"
'GvVentasClasificacionxMes.Columns(15).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(16).HeaderText = $"{(Now.Year - 1)}"
'GvVentasClasificacionxMes.Columns(17).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(18).HeaderText = $"{(Now.Year - 1)}"
'GvVentasClasificacionxMes.Columns(19).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(20).HeaderText = $"{(Now.Year - 1)}"
'GvVentasClasificacionxMes.Columns(21).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(22).HeaderText = $"{(Now.Year - 1)}"
'GvVentasClasificacionxMes.Columns(23).HeaderText = $"{Now.Year}"
'GvVentasClasificacionxMes.Columns(24).HeaderText = $"{(Now.Year - 1)}"
GvVentas.Columns(1).HeaderText = (Now.Year - 2).ToString()
GvVentas.Columns(2).HeaderText = (Now.Year - 1).ToString()
GvVentas.Columns(3).HeaderText = Now.Year.ToString()
GvVentas.Columns(4).HeaderText = $"PRESUPUESTO {Now.Year}"
GvVentas.Columns(5).HeaderText = $"CUMPLIMIENTO REAL VS PPTO {Now.Year}"
GvVentasAcumulado.Columns(1).HeaderText = $"{Now.Year} VS {Now.Year - 2}"
GvVentasAcumulado.Columns(2).HeaderText = $"{Now.Year} VS {Now.Year - 1}"
GvVentasAcumulado.Columns(3).HeaderText = $"{Now.Year} VS PPTO"
GvVentasClasificacion.DataBind()
GvVentas.DataBind()
GvVentasClasificacionxMes.DataBind()
GvVentasAcumulado.DataBind()
CargaGraficas(DtVentasGrafica)
'Dim Ano3 = DateTime.Now.Year.ToString()
'Dim Ano2 = (DateTime.Now.Year - 1).ToString()
'Dim Ano1 = (DateTime.Now.Year - 2).ToString()
'Dim Dt As New DataTable()
'Dt.Columns.Add("Mes")
'Dt.Columns.Add(DateTime.Now.Year.ToString())
'Dt.Columns.Add((DateTime.Now.Year - 1).ToString())
'Dt.Columns.Add((DateTime.Now.Year - 2).ToString())
'Dt.Columns.Add("Presupuesto")
'For Each Dr As DataRow In DtVentas.Rows
' Dim Row As DataRow = Dt.NewRow()
' Row("Mes") = Dr("Mes").ToString()
' Row(DateTime.Now.Year.ToString()) = Dr("TotalAno3").ToString().FormatoNumero
' Row((DateTime.Now.Year - 1).ToString()) = Dr("TotalAno2").ToString().FormatoNumero
' Row((DateTime.Now.Year - 2).ToString()) = Dr("TotalAno1").ToString().FormatoNumero
' Row("Presupuesto") = Dr("TotalAno3Presupuesto").ToString().FormatoNumero
' Dt.Rows.Add(Row)
'Next
'Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(Dt)
'RegistraScript($"CargaGrafica({json});console.log({json})", "22")
End Sub
Private Sub CargaGraficas(ByVal DtVentas As DataTable)
MuestraGrafica(div_ventas, DtVentas, "Ano", "Total", "", "", "gh2", "")
End Sub
Private Sub MuestraGrafica(ByVal divcontainer As HtmlGenericControl, ByVal DTDatos As DataTable, ByVal ColTitle As String, ByVal ColValue As String, ByVal Titulo As String, ByVal SubTitulo As String, ByVal Optional Indicador As String = "gh", ByVal Optional XReferencia As String = "", ByVal Optional YReferencia As String = "")
Dim Info As String = ""
Dim SBJSScript As StringBuilder = New StringBuilder()
If DTDatos.Rows.Count > 0 Then
'For Each DbRow As DataRow In DTDatos.Rows
' Info = String.Format("{2}['{1}',{0}],", DbRow("TotalAno1"), DbRow(ColTitle), Info)
' Info = String.Format("{2}['{1}',{0}],", DbRow("TotalAno2"), DbRow(ColTitle), Info)
' Info = String.Format("{2}['{1}',{0}],", DbRow("TotalAno3"), DbRow(ColTitle), Info)
' Info = String.Format("{2}['{1}',{0}],", DbRow("TotalAno3Presupuesto"), DbRow(ColTitle), Info)
'Next
'For Each DbRow As DataRow In DTDatos.Rows
' Info = String.Format("{2}['{1}',{0}],", DbRow("TotalAno1"), DateTime.Now.Year - 2, Info)
' Info = String.Format("{2}['{1}',{0}],", DbRow("TotalAno2"), DateTime.Now.Year - 1, Info)
' Info = String.Format("{2}['{1}',{0}],", DbRow("TotalAno3"), DateTime.Now.Year, Info)
' Info = String.Format("{2}['{1}',{0}],", DbRow("TotalAno3Presupuesto"), $"PRESUPUESTO {Now.Year}", Info)
'Next
For Each DbRow As DataRow In DTDatos.Rows
Info = String.Format("{2}['{1}',{0}],", DbRow(ColValue), DbRow(ColTitle), Info)
Next
If Info.Length > 0 Then
'Info = Info.Remove(Info.Length - 1, 1)
SBJSScript.AppendFormat("graficahighcharts('{0}','{1}','{2}','{3}',[{4}],1,'{5}');", divcontainer.ClientID, Titulo, SubTitulo, YReferencia, Info, XReferencia)
End If
Else
SBJSScript.AppendFormat("graficahighcharts('{0}','{1}','{2}','{3}',[{4}],1,'{5}');", divcontainer.ClientID, Titulo, SubTitulo, YReferencia, " ", XReferencia)
End If
RegistraScript(SBJSScript.ToString(), Indicador)
End Sub
End Class