Option Explicit On Option Strict On Imports Extensiones Imports System.Data Imports Microsoft.Reporting.WebForms Partial Class Compras_RepProductosServicios Inherits ClsPaginas #Region "PROPIEDADES" Private Property DtDatos As DataTable Get DtDatos = DirectCast(ViewState("DtDatos"), DataTable) End Get Set(ByVal value As DataTable) ViewState("DtDatos") = value End Set End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString End Get Set(value As String) ViewState("Agrupador") = value End Set End Property Private Property TCEspecifico As Double Get Return ViewState("TCEspecifico").ToString.ToDouble End Get Set(value As Double) ViewState("TCEspecifico") = value End Set End Property Private Property TipoCambio As Integer Get Return ViewState("TipoCambio").ToString.ToEntero End Get Set(value As Integer) ViewState("TipoCambio") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then If UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario.Contiene(77, 21) Then Response.Redirect("/Inicio.aspx") SetValues() End If End Sub #Region "CARGAS" Private Sub SetValues() 'Carga Tipos de Gasto DdlTipoGasto.DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa) DdlTipoGasto.DataBind() 'Cargo Categorias DdlCategoria.DataSource = GlobalDTGralCategorias(UsuarioActual.CveEmpresa) DdlCategoria.DataBind() 'Cargo Clasificaciones DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) DdlClasificacion.DataBind() 'CargaProveedor DdlProveedor.setEsWebService(True) DdlProveedor.Attributes.Add("data-metodo", "getproveedores") DdlProveedor.SelectedText = "Todos" DdlProveedor.SelectedValue = "-1" 'CargaUsuarios DdlUsuario.DataSource = GlobalDTUsuarios.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) DdlUsuario.DataBind() 'CargaEstatus DdlEstatus.DataSource = GlobalDTCompEstatusFactura DdlEstatus.DataBind() 'Carga Productos DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue) DdlPS.SelectedText = "Todos" DdlPS.SelectedValue = "-1" Else DdlPS.ddl.Items.Clear() DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) DdlPS.ddl.DataBind() DdlPS.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End If 'Carga Tipos AF DdlTipoAF.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa) DdlTipoAF.DataBind() 'Carga SubTipos AF DdlSubTipoAF.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa) DdlSubTipoAF.DataBind() 'Carga Grupos CargaGrupo() 'Carga Tipo Centro de Costo CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto) If UsuarioActual.Empresa.Funcionalidad(590).ToString.ToEntero = 1 Then lblCultivo.Visible = True DivCultivo.Visible = True Else lblCultivo.Visible = False DivCultivo.Visible = False DdlSubProyecto.AutoPostBack = False End If 'CARGA COSTOS If UsuarioActual.CveEmpresa = 66 Then Dim NumItems As Integer = DdlGrupo.Items.Count 'COSTOS PROYECTO DdlGrupo.Items.Insert(NumItems, New ListItem("Costos", "13")) RowCostos.Visible = True 'Carga Familias DdlFamilia.DataSource = GlobalDTFamilias(66) DdlFamilia.DataBind() 'Carga SubFamilias DdlSubFamilia.DataSource = GlobalDTSubFamilias(66) DdlSubFamilia.DataBind() 'COSTOS AF DdlGrupo.Items.Insert(NumItems + 1, New ListItem("Costos por Activo Fijo", "14")) 'Carga AF 'DdlAF.DataSource = GlobalDTActivoFijos().FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)) 'DdlAF.DataBind() End If RowActivoFijo.Visible = True 'Carga Fechas txtFechaI.Text = FirstDayOfMonth(NowADS().AddMonths(-5)).ToShortDateString txtFechaF.Text = NowADS().ToShortDateString TipoCambio = 1 TCEspecifico = 0 End Sub Private Sub CargaGrupo() DdlGrupo.Items.Insert(0, New ListItem("Categoria", "3")) DdlGrupo.Items.Insert(1, New ListItem("Clasificación", "4")) DdlGrupo.Items.Insert(2, New ListItem("Productos-Servicios", "5")) DdlGrupo.Items.Insert(3, New ListItem("Año", "6")) DdlGrupo.Items.Insert(4, New ListItem("Mes", "7")) DdlGrupo.Items.Insert(5, New ListItem("Año/Mes", "8")) DdlGrupo.Items.Insert(6, New ListItem("Fecha", "9")) DdlGrupo.Items.Insert(7, New ListItem("Proveedor", "10")) DdlGrupo.Items.Insert(8, New ListItem("Usuario", "11")) DdlGrupo.Items.Insert(9, New ListItem("Estatus Fact.", "12")) 'Agrega el grupo si es una empresa Agricola If UsuarioActual.Empresa.Funcionalidad(590).ToString.ToEntero = 1 Then DdlGrupo.Items.Insert(9, New ListItem("Cultivo", "15")) End If DdlGrupo.DataBind() DdlGrupo.SelectedValueExist("8") End Sub Private Sub CargaDatos() Dim ObjCompras As New ClsCompras() Dim FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim().ToDate, MinFecha) Dim FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim().ToDate, MaxFecha) If RblTipoCambio.SelectedValue.ToEntero = 3 And TxtEspecifico.Text <> "" Then TCEspecifico = TxtEspecifico.Text.ToDouble Else TCEspecifico = -1 Dim TipoGasto As String = IIf(DdlTipoGasto.GetSelectedValuesM = "", "-1", DdlTipoGasto.GetSelectedValuesM).ToString Dim Categoria As String = IIf(DdlCategoria.GetSelectedValuesM = "", "-1", DdlCategoria.GetSelectedValuesM).ToString Dim SubProyectos As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString Dim Cultivo As String = IIf(DdlCultivo.GetSelectedValuesM = "", "-1", DdlCultivo.GetSelectedValuesM).ToString Dim TipoAF As String = IIf(DdlTipoAF.GetSelectedValuesM = "", "-1", DdlTipoAF.GetSelectedValuesM).ToString Dim SubTipoAF As String = IIf(DdlSubTipoAF.GetSelectedValuesM = "", "-1", DdlSubTipoAF.GetSelectedValuesM).ToString If ObjCompras.GetRepProductosServicios(DdlProyecto.SelectedValue.ToEntero, SubProyectos, Categoria, DdlClasificacion.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, FechaI, FechaF, DdlProveedor.SelectedValue.ToEntero, DdlUsuario.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero, DdlFamilia.SelectedValue.ToEntero, DdlSubFamilia.SelectedValue.ToEntero, TipoAF, SubTipoAF, DdlAF.SelectedValue.ToEntero, TipoCambio, TCEspecifico:=TCEspecifico, TipoGasto:=TipoGasto, CveUsuarioConsulta:=UsuarioActual.CveUsuario, TipoDocto:=DdlTipoDocto.SelectedValue, Deducible:=DdlDeducible.SelectedValue.ToEntero, CveCultivo:=Cultivo) Then DtDatos = ObjCompras.DtResultados GvDatos.DataSource = DtDatos Else DtDatos = Nothing GvDatos.DataSource = Nothing End If ObjCompras.Dispose() GvDatos.DataBind() Agrupador = DdlGrupo.SelectedItem.Text End Sub #End Region #Region "CONSULTAR" Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() UPDatos.Update() End Sub #End Region #Region "GRIDVIEW" Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If DdlGrupo.SelectedValue.ToEntero < 13 Or DdlGrupo.SelectedValue.ToEntero = 15 Then If e.Row.DBCampo("GpoID") = "1" Then e.Row.Cells(0).Text = e.Row.DBCampo("Moneda") e.Row.CssClass = "Totales" End If ElseIf DdlGrupo.SelectedValue.ToEntero = 13 Then If e.Row.DBCampo("Familia") = "" Then e.Row.CssClass = "Totales" ElseIf e.Row.DBCampo("SubFamilia") = "" Then e.Row.CssClass = "SubTotales2" ElseIf e.Row.DBCampo("PS") = "" Then e.Row.CssClass = "SubTotales3" End If ElseIf DdlGrupo.SelectedValue.ToEntero = 14 Then If e.Row.DBCampo("SubFamilia") = "" Then e.Row.CssClass = "Totales" ElseIf e.Row.DBCampo("AF") = "" Then e.Row.CssClass = "SubTotales2" End If End If Dim FechaI = txtFechaI.Text, FechaF = txtFechaF.Text If DdlGrupo.SelectedValue = "6" Then ' cuando es Año '-1/01 If e.Row.DBCampo("Anio") = "-1" Then FechaI = "-1" FechaF = "-1" Else FechaI = $"01/01/{e.Row.DBCampo("Anio")}" FechaF = $"01/12/{e.Row.DBCampo("Anio")}".ToDate.LastDayOfMonth.ToShortDateString End If End If If DdlGrupo.SelectedValue = "8" Then ' cuando es Año/Mes If e.Row.DBCampo("AnioMes") = "-1" Then FechaI = "-1" FechaF = "-1" Else FechaI = $"{e.Row.DBCampo("AnioMes")}/01".ToDate.ToShortDateString FechaF = $"{e.Row.DBCampo("AnioMes")}/01".ToDate.LastDayOfMonth.ToShortDateString End If End If Dim Liga = String.Format("/Compras/RepProductosServiciosDetalle.aspx?GPO={0}&Anio={1}&Mes={2}&AnioMes={3}&Fecha={4}&CveProveedor={5}&CveUsuario={6}&CveEstatusFactura={7}&FechaI={8}&FechaF={9}&CveProyecto={10}&CveSubProyecto={11}&CveCategoria={12}&CveClasificacion={13}&CvePS={14}&CveFamilia={15}&CveSubFamilia={16}&CveTipoAF={17}&CveSubTipoAF={18}&CveAF={19}&CveMoneda={20}&CveTipoGasto={21}&TipoCambio={22}&TCEspecifico={23}&Deducible={24}&CveCultivo={25}", DdlGrupo.SelectedValue, e.Row.DBCampo("Anio"), e.Row.DBCampo("Mes"), e.Row.DBCampo("AnioMes"), e.Row.DBCampo("Fecha"), e.Row.DBCampo("CveProveedor"), e.Row.DBCampo("CveUsuario"), e.Row.DBCampo("CveEstatusFactura"), FechaI, FechaF, e.Row.DBCampo("CveProyecto"), e.Row.DBCampo("CveSubProyecto"), e.Row.DBCampo("CveCategoria"), e.Row.DBCampo("CveClasificacion"), e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveFamilia"), e.Row.DBCampo("CveSubFamilia"), e.Row.DBCampo("CveTipoAF"), e.Row.DBCampo("CveSubTipoAF"), e.Row.DBCampo("CveAF"), e.Row.DBCampo("CveMoneda"), DdlTipoGasto.GetSelectedValuesM, e.Row.DBCampo("TipoCambio"), e.Row.DBCampo("TCEspecifico"), DdlDeducible.SelectedValue.ToEntero, e.Row.DBCampo("CveCultivo")) If Not e.Row.DBCampo("GpoID") = "1" Then e.Row.Cells(0).Text = String.Format("{1}", Liga, If(e.Row.DBCampo("GpoID") = "1", e.Row.DBCampo("Moneda"), e.Row.DBCampo("GPO"))) End If e.Row.Cells(1).Text = String.Format("{1}", Liga, e.Row.DBCampo("Cantidad").FormatoNumero) 'Si son igual a cero se limpia el campo If e.Row.DBCampo("SubTotal").ToDouble = 0 Then e.Row.Cells(2).Text = "" If e.Row.DBCampo("Descuento").ToDouble = 0 Then e.Row.Cells(3).Text = "" If e.Row.DBCampo("IVA").ToDouble = 0 Then e.Row.Cells(4).Text = "" If e.Row.DBCampo("Total").ToDouble = 0 Then e.Row.Cells(5).Text = "" If e.Row.DBCampo("MAX_SubTotal").ToDouble = 0 Then e.Row.Cells(6).Text = "" If e.Row.DBCampo("AVG_SubTotal").ToDouble = 0 Then e.Row.Cells(7).Text = "" If e.Row.DBCampo("MIN_SubTotal").ToDouble = 0 Then e.Row.Cells(8).Text = "" If e.Row.DBCampo("MAX_Total").ToDouble = 0 Then e.Row.Cells(9).Text = "" If e.Row.DBCampo("AVG_Total").ToDouble = 0 Then e.Row.Cells(10).Text = "" If e.Row.DBCampo("MIN_Total").ToDouble = 0 Then e.Row.Cells(11).Text = "" End If End Sub #End Region #Region "PERSONALIZAR" Protected Sub BtnPersonalizar_Click(sender As Object, e As System.EventArgs) Handles BtnPersonalizar.Click 'If ChkMaxTot.Checked Then ' GvDatos.Columns(14).Visible = True 'Else ' GvDatos.Columns(14).Visible = False 'End If UPDatos.Update() End Sub #End Region #Region " SELECTED INDEX CHANGED" Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue) End Sub Protected Sub DdlSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyecto.SelectedIndexChanged DdlCultivo.Items.Clear() If DdlSubProyecto.GetSelectedValuesM(True) <> "" Then DdlCultivo.DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveSubProyecto IN ({0})", DdlSubProyecto.GetSelectedValuesM(True))) DdlCultivo.DataBind() Else DdlCultivo.DataSource = Nothing DdlCultivo.DataBind() End If End Sub Protected Sub DdlFamilia_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlFamilia.SelectedIndexChanged DdlSubFamilia.Items.Clear() If DdlFamilia.SelectedValue <> "-1" Then DdlSubFamilia.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa, DdlFamilia.SelectedValue.ToEntero) DdlSubFamilia.DataBind() Else DdlSubFamilia.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa) DdlSubFamilia.DataBind() End If DdlSubFamilia.Items.Insert(0, New ListItem("Sin Asignar", "-2")) DdlSubFamilia.Items.Insert(0, New ListItem("Todas", "-1")) End Sub Protected Sub DdlTipoAF_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoAF.SelectedIndexChanged DdlSubTipoAF.Items.Clear() If DdlTipoAF.GetSelectedValuesM <> "" Then DdlSubTipoAF.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveTipoActivoFijo IN ({0})", DdlTipoAF.GetSelectedValuesM(True))) DdlSubTipoAF.DataBind() Else DdlSubTipoAF.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa) DdlSubTipoAF.DataBind() End If 'DdlSubTipoAF.Items.Insert(0, New ListItem("Todas", "-1")) End Sub Protected Sub DdlSubTipoAF_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubTipoAF.SelectedIndexChanged DdlAF.Items.Clear() If DdlSubTipoAF.GetSelectedValuesM <> "" Then DdlAF.DataSource = GlobalDTActivoFijos(UsuarioActual.CveEmpresa, -1).FiltraParametros(String.Format("CveSubTipoActivoFijo IN ({0})", DdlSubTipoAF.GetSelectedValuesM(True))) DdlAF.DataBind() 'Else ' DdlAF.DataSource = GlobalDTSubTipoActivoFijo(66) ' DdlAF.DataBind() End If DdlAF.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Private Sub RblTipoCambio_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoCambio.SelectedIndexChanged TipoCambio = RblTipoCambio.SelectedValue.ToEntero If RblTipoCambio.SelectedValue.ToEntero = 3 Then Dim TipoCambio As Double LiEspecifico.Visible = True TipoCambio = GlobalTipoCambio(NowADS()) TxtEspecifico.Text = TipoCambio.ToString Else LiEspecifico.Visible = False End If UpBodyTipoCambio.Update() End Sub Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) If DdlPS.UsaWebService Then DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue) DdlPS.SelectedText = "Todos" DdlPS.SelectedValue = "-1" Else DdlPS.ddl.Items.Clear() DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, DdlClasificacion.SelectedValue.ToEntero()) DdlPS.ddl.DataBind() DdlPS.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End If End Sub #End Region #Region "IMPRESION" Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click GeneraPDF("Excel") 'GvDatos.ExportToExcel("ReporteProductosServicios" & NowADS().ToShortDateString) End Sub Protected Sub GeneraPDF(Optional Formato As String = "PDF") Dim Proveedor = If(DdlProveedor.SelectedValue = "-1", "", $" Proveedor: {DdlProveedor.SelectedText}") Dim FechaInicio = If(txtFechaI.Text = "", "", $" Fecha Inicio: {txtFechaI.Text}") Dim FechaFin = If(txtFechaF.Text = "", "", $" Fecha Fin: {txtFechaF.Text}") Dim Grupo = If(DdlGrupo.SelectedValue = "-1", "", $" Agrupado por: {DdlGrupo.SelectedItem.Text}") Dim TipoGasto = If(DdlTipoGasto.GetSelectedText = "", "", $" Tipo Gasto: {DdlTipoGasto.GetSelectedText}") Dim Categoria = If(DdlCategoria.GetSelectedText = "", "", $" Categoria: {DdlCategoria.GetSelectedText}") Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $" Clasificación: {DdlClasificacion.SelectedItem.Text}") Dim PS = If(DdlPS.SelectedValue = "-1", "", $" P.S.: {DdlPS.SelectedText}") Dim Proyecto = If(DdlSubProyecto.GetSelectedText = "", "", $" Proyecto: {DdlSubProyecto.GetSelectedText}") Dim Estatus = If(DdlEstatus.SelectedValue = "-1", "", $" Estatus: {DdlEstatus.SelectedItem.Text}") Dim Usuario = If(DdlUsuario.SelectedValue = "-1", "", $" Usuario: {DdlUsuario.SelectedItem.Text}") Dim TipoAF = If(DdlTipoAF.GetSelectedText = "", "", $" Tipo AF: {DdlTipoAF.GetSelectedText}") Dim SubTipoAF = If(DdlSubTipoAF.GetSelectedText = "", "", $" SubTipo AF: {DdlSubTipoAF.GetSelectedText}") Dim AF = If(DdlAF.SelectedValue = "-1", "", $" Activo Fijo: {DdlAF.SelectedItem.Text}") Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim params As New List(Of ReportParameter)() params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToString())) params.Add(New ReportParameter("Filtros", $"{Grupo}{Proveedor}{FechaInicio}{FechaFin}{TipoGasto}{Categoria}{Clasificacion}{PS}{Proyecto}{Estatus}{Usuario}{TipoAF}{SubTipoAF}{AF}")) 'params.Add(New ReportParameter("Proveedor", DdlProveedor.SelectedItem.Text)) 'params.Add(New ReportParameter("FechaInicio", txtFechaI.Text)) 'params.Add(New ReportParameter("FechaFin", txtFechaF.Text)) 'params.Add(New ReportParameter("Grupo", DdlGrupo.SelectedItem.Text)) 'params.Add(New ReportParameter("TipoGasto", IIf(DdlTipoGasto.GetSelectedText = "", "Todos", DdlTipoGasto.GetSelectedText).ToString())) 'DdlTipoGasto.SelectedItem.Text)) 'params.Add(New ReportParameter("Categoria", IIf(DdlCategoria.GetSelectedText = "", "Todas", DdlCategoria.GetSelectedText).ToString())) 'params.Add(New ReportParameter("Clasificacion", DdlClasificacion.SelectedItem.Text)) 'params.Add(New ReportParameter("PS", IIf(DdlPS.SelectedText = "", "Todos", DdlPS.SelectedText).ToString())) 'params.Add(New ReportParameter("Proyecto", IIf(DdlProyecto.Visible, DdlProyecto.SelectedItem.Text, IIf(DdlSubProyecto.GetSelectedText = "", "Todos", DdlSubProyecto.GetSelectedText)).ToString())) 'params.Add(New ReportParameter("Estatus", DdlEstatus.SelectedItem.Text)) 'params.Add(New ReportParameter("Usuario", DdlUsuario.SelectedItem.Text)) 'params.Add(New ReportParameter("TipoAF", IIf(DdlTipoAF.GetSelectedText = "", "Todos", DdlTipoAF.GetSelectedText).ToString())) 'params.Add(New ReportParameter("SubTipoAF", IIf(DdlSubTipoAF.GetSelectedText = "", "Todos", DdlSubTipoAF.GetSelectedText).ToString())) 'params.Add(New ReportParameter("AF", IIf(DdlAF.SelectedItem.Text = "", "Todos", DdlAF.SelectedItem.Text).ToString())) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF("Empresas/Grales/Formatos/RepProductosServiciosCompras.rdlc", DtDatos, params, "Reporte de Productos Servicios", Formato) End Sub Protected Sub ImgPDF_Click(sender As Object, e As EventArgs) GeneraPDF() End Sub #End Region #Region "TIPO CAMBIO" Private Sub BtnTipoCambio_Click(sender As Object, e As EventArgs) Handles BtnTipoCambio.Click CargaDatos() RegistraScript(String.Format("$('#{0}').modal('hide');", "DivTipoCambio")) UPDatos.Update() End Sub #End Region #Region "GRAFICA" Protected Sub LnkVerGrafica_Click(sender As Object, e As EventArgs) If Not DtDatos IsNot Nothing AndAlso DtDatos.Rows.Count > 0 Then Alert("No hay datos disponibles", TipoMensaje.MsgAdvertencia) Exit Sub End If LblTituloGrafica.Text = $"Agrupado por: {Agrupador}" RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub Private Sub CambioGrafica() 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 DtDatos.Rows If Not Dr("GpoID").ToString = "1" Then Dim Row As DataRow = Nothing Row = Dt.NewRow() Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" Select Case DdlVer.SelectedValue.ToEntero Case 1 Row("Valor") = Dr("Total").ToString.FormatoNumero Case 2 Row("Valor") = Dr("SubTotal").ToString.FormatoNumero Case 3 Row("Valor") = Dr("IVA").ToString.FormatoNumero End Select 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) Select Case DdlGrafica.SelectedValue.ToEntero Case 1 RegistraScript($"CargaGraficaBarras({json})", "22") Case 2 RegistraScript($"CargaGraficaPastel({json})", "22") End Select UPModalProd.Update() End Sub Protected Sub DdlGrafica_SelectedIndexChanged(sender As Object, e As EventArgs) CambioGrafica() End Sub Protected Sub DdlVer_SelectedIndexChanged(sender As Object, e As EventArgs) CambioGrafica() End Sub #End Region End Class