Files
SIG/Ventas/RepTopClientesVentas.aspx.vb
2020-04-16 11:19:34 -07:00

127 lines
4.6 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports System.Web.Compilation
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Ventas_RepTopClientesVentas
Inherits ClsPaginas
Private Property DtClientes As DataTable
Get
Return DirectCast(ViewState("DtClientes"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtClientes") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
CargarFiltros()
CargaDatos()
End If
End Sub
Private Sub CargarFiltros()
Dim tablaAños As New DataTable
Dim idAño As New DataColumn
idAño.ColumnName = "idAño"
idAño.Caption = "idAño"
idAño.DataType = System.Type.GetType("System.Int32")
Dim Año As New DataColumn
Año.ColumnName = "Año"
Año.Caption = "Año"
Año.DataType = System.Type.GetType("System.Int32")
tablaAños.Columns.Add(idAño)
tablaAños.Columns.Add(Año)
Dim añoActual As Integer = DateTime.Now.Year
For AñoIndex As Integer = añoActual To (añoActual - 10) Step -1
Dim row As DataRow = tablaAños.NewRow()
row("idAño") = AñoIndex
row("Año") = AñoIndex
tablaAños.Rows.Add(row)
Next
DdlAño.DataSource = tablaAños
DdlAño.DataBind()
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
TxtTop.Text = "20"
End Sub
Private Sub CargaDatos()
Dim ObjVentas As New ClsVentas
If ObjVentas.GetRepTopClientesVentas(UsuarioActual.CveEmpresa, DdlMes.SelectedValue.ToEntero, DdlAño.SelectedValue.ToEntero, TxtTop.Text.ToEntero,
DdlSubProyecto.SelectedValue.ToEntero) Then
GvM.DataSource = ObjVentas.DtResultados
DtClientes = ObjVentas.DtResultados
End If
ObjVentas.Dispose()
GvM.DataBind()
End Sub
Protected Sub BtnConsultar_Click() Handles BtnConsultar.Click
CargaDatos()
UppGrid.Update()
End Sub
Protected Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("pEmp", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString))
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
If Imagen.Exists Then
params.Add(New ReportParameter("pImg", logouri))
Else
params.Add(New ReportParameter("pImg", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/TopClientes.rdlc", DtClientes, params, String.Format("ReporteVentas-{0}", Now.ToDateTime.ToShortDateString), Formato:="PDF")
End Sub
Protected Sub LnkVerGrafica_Click(sender As Object, e As EventArgs)
If Not DtClientes IsNot Nothing AndAlso DtClientes.Rows.Count > 0 Then
Alert("No hay datos disponibles", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
LblTituloGrafica.Text = $"Agrupado por: Clientes"
RegistraScript("$('#DivModalGrafica').modal('show')")
CambioGrafica()
End Sub
Private Sub CambioGrafica()
Dim DtClientesAux As New DataTable
DtClientesAux = DtClientes.FiltraParametros("CveCliente > 0")
Dim Dt As New DataTable()
Dt.Columns.Add("Cliente")
Dt.Columns.Add("Importe")
For Each Dr As DataRow In DtClientesAux.Rows
Dim Row As DataRow = Nothing
Row = Dt.NewRow()
Row("Cliente") = Dr("NombreComercial").ToString
Row("Importe") = Dr("ImporteAcumulado").ToString.FormatoNumero
Dt.Rows.Add(Row)
Next
Dim query = From s In Dt.AsEnumerable() Select New With {.Cliente = s("Cliente").ToString(), .Importe = s("Importe").ToString().ToDouble()}
Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(query)
RegistraScript($"CargaGraficaBarras({json})", "22")
UPModalProd.Update()
End Sub
End Class