+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/General/RepIndicadorResumen.aspx.vb b/General/RepIndicadorResumen.aspx.vb
new file mode 100644
index 000000000..548df5c57
--- /dev/null
+++ b/General/RepIndicadorResumen.aspx.vb
@@ -0,0 +1,432 @@
+Imports System.Data
+Imports Extensiones
+Imports Microsoft.Reporting.WebForms
+
+Partial Class General_RepIndicadorResumen
+ Inherits ClsPaginas
+#Region "propiedades"
+
+ 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
+ Private Property CxP As DataTable
+ Get
+
+ If ViewState("CxP") Is Nothing Then
+ Return New DataTable
+ Else
+ Return DirectCast(ViewState("CxP"), DataTable)
+ End If
+
+ End Get
+ Set(value As DataTable)
+ ViewState("CxP") = value
+ End Set
+ End Property
+
+ Private Property CCxC As DataTable
+ Get
+
+ If ViewState("CCxC") Is Nothing Then
+ Return New DataTable
+ Else
+ Return DirectCast(ViewState("CCxC"), DataTable)
+ End If
+
+ End Get
+ Set(value As DataTable)
+ ViewState("CCxC") = value
+ End Set
+ End Property
+ Private Property CPxP As DataTable
+ Get
+
+ If ViewState("CPxP") Is Nothing Then
+ Return New DataTable
+ Else
+ Return DirectCast(ViewState("CPxP"), DataTable)
+ End If
+
+ End Get
+ Set(value As DataTable)
+ ViewState("CPxP") = value
+ End Set
+ End Property
+
+ Private Property DtColor As DataTable
+ Get
+
+ If ViewState("DtColor") Is Nothing Then
+ Return New DataTable
+ Else
+ Return DirectCast(ViewState("DtColor"), DataTable)
+ End If
+
+ End Get
+ Set(value As DataTable)
+ ViewState("DtColor") = 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")
+
+ CreaDataTableColor()
+ End Sub
+
+
+ Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles btnConsultar.Click
+ CargaDatos()
+ End Sub
+
+
+ Private Sub CargaDatos()
+
+ Dim ObjVentas As New ClsVentas
+ Dim ObjCompras As New ClsCompras
+ Dim ObjMovtos As New ClsMovimientos()
+
+ If ObjVentas.GetRepProductosServicios(-1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, TxtFechaI.Text.Trim(), TxtFechaF.Text.Trim(), 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 ObjCompras.GetRepProductosServicios(-1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, TxtFechaI.Text.Trim(), TxtFechaF.Text.Trim(), -1, -1, -1,
+ UsuarioActual.CveEmpresa, 5, -1, -1, "-1", "-1", -1, TipoCambio:=1, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then
+ CxP = ObjCompras.DtResultados
+ GvCxP.DataSource = CxP
+ Else
+ GvCxP.DataSource = Nothing
+ CxP = 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
+
+ CCxC = ObjMovtos.DtResultados
+ GvCCxC.DataSource = CCxC
+ Else
+ GvCCxC.DataSource = Nothing
+ CCxC = Nothing
+ End If
+
+ If ObjMovtos.GetCxP(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
+
+ CPxP = ObjMovtos.DtResultados
+ GvCPxP.DataSource = CPxP
+ Else
+ GvCPxP.DataSource = Nothing
+ CPxP = Nothing
+ End If
+
+ ObjVentas.Dispose()
+ ObjCompras.Dispose()
+ ObjMovtos.Dispose()
+
+ GvVxP.DataBind()
+ GvCxP.DataBind()
+ GvCCxC.DataBind()
+ GvCPxP.DataBind()
+
+ ' Mostrar gráficos solo si hay datos en su respectiva tabla
+ If GvVxP.Rows.Count > 0 Then
+ UPGraficaVxP.Visible = True
+ Else
+ UPGraficaVxP.Visible = False
+ End If
+ If GvCxP.Rows.Count > 0 Then
+ UPGraficaCxP.Visible = True
+ Else
+ UPGraficaCxP.Visible = False
+ End If
+ If GvCCxC.Rows.Count > 0 Then
+ UPGraficaCCxC.Visible = True
+ Else
+ UPGraficaCCxC.Visible = False
+ End If
+ If GvCPxP.Rows.Count > 0 Then
+ UPGraficaCPxP.Visible = True
+ Else
+ UPGraficaCPxP.Visible = False
+ End If
+
+ ' Si no había datos en ninguna tabla no cargar función de gráficos
+ If (GvVxP.Rows.Count = 0 AndAlso GvCxP.Rows.Count = 0 AndAlso GvCCxC.Rows.Count = 0 AndAlso GvCPxP.Rows.Count = 0) Then Exit Sub
+ GraficasPastel()
+ 'GraficasBarras()
+ 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 GvCxP_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxP.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 GvCCxC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCCxC.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 GvCPxP_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCPxP.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 CreaDataTableColor()
+ DtColor = New DataTable
+ DtColor.Columns.Add("Color")
+ Dim RowColor As DataRow = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#FF0F00"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#FF6600"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#FF9E01"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#FCD202"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#F8FF01"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#B0DE09"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#04D215"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#0D8ECF"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#0D52D1"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#2A0CD0"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#8A0CCF"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#CD0D74"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#754DEB"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#DDDDDD"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#999999"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#333333"
+ DtColor.Rows.Add(RowColor)
+ RowColor = Nothing
+ RowColor = DtColor.NewRow()
+ RowColor("Color") = "#000000"
+ DtColor.Rows.Add(RowColor)
+ End Sub
+
+ Private Sub GraficasPastel()
+
+ Dim DtVxP, DtCxP, DtCCxC, DtCPxP As New DataTable
+ Dim RowColorIndex As Integer = 0
+
+ 'Ventas x Producto
+ DtVxP.Reset()
+ DtVxP.Columns.Add("Texto")
+ DtVxP.Columns.Add("Valor")
+ DtVxP.Columns.Add("Color")
+ DtVxP.Columns.Add("Moneda")
+ RowColorIndex = 0
+ For Each Dr As DataRow In VxP.Rows
+ If Not Dr("Orden").ToString = "" Then
+ Dim Row As DataRow = Nothing
+ Row = DtVxP.NewRow()
+ Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}"
+ Row("Valor") = Dr("SubTotal").ToString.FormatoNumero
+ Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString
+ Row("Moneda") = Dr("Moneda").ToString
+ DtVxP.Rows.Add(Row)
+ RowColorIndex += 1
+ If RowColorIndex = 17 Then
+ RowColorIndex = 0
+ End If
+ End If
+ Next
+ Dim query_vxp = From s In DtVxP.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()}
+
+ 'Compras x Producto
+ DtCxP.Reset()
+ DtCxP.Columns.Add("Texto")
+ DtCxP.Columns.Add("Valor")
+ DtCxP.Columns.Add("Color")
+ DtCxP.Columns.Add("Moneda")
+ RowColorIndex = 0
+ For Each Dr As DataRow In CxP.Rows
+ If Not Dr("Orden").ToString = "" Then
+ Dim Row As DataRow = Nothing
+ Row = DtCxP.NewRow()
+ Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}"
+ Row("Valor") = Dr("SubTotal").ToString.FormatoNumero
+ Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString
+ Row("Moneda") = Dr("Moneda").ToString
+ DtCxP.Rows.Add(Row)
+ RowColorIndex += 1
+ If RowColorIndex = 17 Then
+ RowColorIndex = 0
+ End If
+ End If
+ Next
+ Dim query_cxp = From s In DtCxP.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()}
+
+ 'Alert(Newtonsoft.Json.JsonConvert.SerializeObject(CCxC.Rows))
+
+ 'Cuentas por cobrar x Cliente
+ DtCCxC.Reset()
+ DtCCxC.Columns.Add("Texto")
+ DtCCxC.Columns.Add("Valor")
+ DtCCxC.Columns.Add("Color")
+ DtCCxC.Columns.Add("Moneda")
+ RowColorIndex = 0
+ For Each Dr As DataRow In CCxC.Rows
+ If Not Dr("Orden").ToString = "" Then
+ Dim Row As DataRow = Nothing
+ Row = DtCCxC.NewRow()
+ Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}"
+ Row("Valor") = Dr("Saldo").ToString.FormatoNumero
+ Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString
+ Row("Moneda") = Dr("Moneda").ToString
+ DtCCxC.Rows.Add(Row)
+ RowColorIndex += 1
+ If RowColorIndex = 17 Then
+ RowColorIndex = 0
+ End If
+ End If
+ Next
+ Dim query_ccxc = From s In DtCCxC.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()}
+
+ 'Cuentas por pagar x Proveedor
+ DtCPxP.Reset()
+ DtCPxP.Columns.Add("Texto")
+ DtCPxP.Columns.Add("Valor")
+ DtCPxP.Columns.Add("Color")
+ DtCPxP.Columns.Add("Moneda")
+ RowColorIndex = 0
+ For Each Dr As DataRow In CPxP.Rows
+ If Not Dr("Orden").ToString = "" Then
+ Dim Row As DataRow = Nothing
+ Row = DtCPxP.NewRow()
+ Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}"
+ Row("Valor") = Dr("Saldo").ToString.FormatoNumero
+ Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString
+ Row("Moneda") = Dr("Moneda").ToString
+ DtCPxP.Rows.Add(Row)
+ RowColorIndex += 1
+ If RowColorIndex = 17 Then
+ RowColorIndex = 0
+ End If
+ End If
+ Next
+ Dim query_cpxp = From s In DtCPxP.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()}
+
+ 'Serializar datos agrupándolos en su respectivo DataTable, todos en un solo JSON
+ Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(New With {.VxP = query_vxp, .CxP = query_cxp, .CCxC = query_ccxc, .CPxP = query_cpxp})
+ 'Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(New With {.VxP = query_vxp, .CCxC = New String() {}})
+ 'Alert(json)
+ RegistraScript($"CargaGraficasPastel({json})", "22")
+ UPPMov.Update()
+ End Sub
+ Private Sub GraficasBarras()
+ '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") = DtColor.Rows(RowColorIndex)("Color").ToString
+ ' Row("Moneda") = Dr("Moneda").ToString
+ ' Dt.Rows.Add(Row)
+ ' RowColorIndex += 1
+ ' If RowColorIndex = 17 Then
+ ' RowColorIndex = 0
+ ' End If
+ ' 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($"CargaGraficasBarras({json})", "22")
+ 'UPPMov.Update()
+ End Sub
+End Class