Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class Ventas_RepVentasResumen Inherits ClsPaginas #Region "propiedades" Private Property Datos As DataTable Get If ViewState("Datos") Is Nothing Then Return New DataTable Else Return DirectCast(ViewState("Datos"), DataTable) End If End Get Set(value As DataTable) ViewState("Datos") = value End Set End Property Private Property VxC As DataTable Get If ViewState("VxC") Is Nothing Then Return New DataTable Else Return DirectCast(ViewState("VxC"), DataTable) End If End Get Set(value As DataTable) ViewState("VxC") = value End Set End Property Private Property VxP As DataTable Get If ViewState("VxP") Is Nothing Then Return New DataTable Else Return DirectCast(ViewState("VxP"), DataTable) End If End Get Set(value As DataTable) ViewState("VxP") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then CargaCombos() CargaDatos() End If End Sub Private Sub CargaCombos() 'Carga SubProyectos DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) TxtFechaI.Text = $"01/{Now.Month}/{Now.Year}" TxtFechaF.Text = Now.ToString("dd/MM/yyyy") End Sub Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click CargaDatos() End Sub Private Sub CargaDatos() Dim ObjVentas As New ClsVentas Dim ObjMovtos As New ClsMovimientos() If ObjVentas.GetRepProductosServicios(-1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, TxtFechaI.Text.ToDate, TxtFechaF.Text.ToDate, MinFecha, MaxFecha, -1, -1, -1, -1, -1, "-1", UsuarioActual.CveEmpresa, 5, CveUsuarioConsulta:=UsuarioActual.CveUsuario, TipoCambio:=1) Then VxP = ObjVentas.DtResultados GvVxP.DataSource = VxP Else GvVxP.DataSource = Nothing VxP = Nothing End If If ObjVentas.GetRepProductosServicios(-1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, TxtFechaI.Text.ToDate(), TxtFechaF.Text.ToDate(), MinFecha, MaxFecha, -1, -1, -1, -1, -1, "-1", UsuarioActual.CveEmpresa, 10, CveUsuarioConsulta:=UsuarioActual.CveUsuario, TipoCambio:=1) Then VxC = ObjVentas.DtResultados GvVxC.DataSource = VxC Else GvVxC.DataSource = Nothing VxC = Nothing End If If ObjMovtos.GetRepRecuperacion(TxtFechaI.Text.ToDate, TxtFechaF.Text.ToDate, -1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, "-1", UsuarioActual.CveEmpresa, 5, -1, "-1", CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then Datos = ObjVentas.DtResultados GvPxC.DataSource = Datos Else GvPxC.DataSource = Nothing Datos = Nothing End If Dim FechaCorte As String = $"31/12/{Now.Year}" If ObjMovtos.GetCxC(TxtFechaI.Text, TxtFechaF.Text, -1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, "-1", UsuarioActual.CveEmpresa, 5, -1, 1, -1, "-1", "-1", "-1", FechaCorte:=FechaCorte.ToDate, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then Datos = ObjMovtos.DtResultados GvCxC.DataSource = Datos Else GvCxC.DataSource = Nothing Datos = Nothing End If ObjVentas.Dispose() ObjMovtos.Dispose() GvVxP.DataBind() GvVxC.DataBind() GvPxC.DataBind() GvCxC.DataBind() GraficaPastel() GraficaBarras() End Sub Protected Sub GvVxP_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvVxP.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("Orden") = "" Then e.Row.CssClass = "Totales" End If End If End Sub Protected Sub GvVxC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvVxC.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("Orden") = "" Then e.Row.CssClass = "Totales" End If End If End Sub Protected Sub GvPxC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvPxC.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("Orden") = "" Then e.Row.CssClass = "Totales" End If End If End Sub Protected Sub GvCxC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxC.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("Orden") = "" Then e.Row.CssClass = "Totales" End If End If End Sub Private Sub GraficaPastel() Dim Dt As New DataTable() Dt.Columns.Add("Texto") Dt.Columns.Add("Valor") Dt.Columns.Add("Color") Dt.Columns.Add("Moneda") Dim RowColorIndex As Integer = 0 For Each Dr As DataRow In VxP.Rows If Not Dr("Orden").ToString = "" Then Dim Row As DataRow = Nothing Row = Dt.NewRow() Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" Row("Valor") = Dr("SubTotal").ToString.FormatoNumero Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next Dim query = From s In Dt.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()} Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(query) RegistraScript($"CargaGraficaPastel({json})", "22") UPPMov.Update() End Sub Private Sub GraficaBarras() Dim Dt As New DataTable() Dt.Columns.Add("Texto") Dt.Columns.Add("Valor") Dt.Columns.Add("Color") Dt.Columns.Add("Moneda") Dim RowColorIndex As Integer = 0 For Each Dr As DataRow In VxC.Rows If Not Dr("Orden").ToString = "" Then Dim Row As DataRow = Nothing Row = Dt.NewRow() Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" Row("Valor") = Dr("SubTotal").ToString.FormatoNumero Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next Dim query = From s In Dt.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()} Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(query) RegistraScript($"CargaGraficaBarras({json})", "22") UPPMov.Update() End Sub End Class