Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class Ventas_RepProductosServicios Inherits ClsPaginas #Region "PROPIEDADES" Private Property DtVentas As DataTable Get Return DirectCast(ViewState("DtVentas"), DataTable) End Get Set(value As DataTable) ViewState("DtVentas") = 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") CargarMarcas() SetValues() End If End Sub #Region " CARGA DATOS INICIALES " Private Sub CargaGrupo() Dim TextoProyecto = "Proyecto" If UsuarioActual.Empresa.Funcionalidad(307) <> "" Then TextoProyecto = UsuarioActual.Empresa.Funcionalidad(307) If DdlProyecto.Visible Then DdlGrupo.Items.Insert(0, New ListItem(TextoProyecto, "1")) DdlGrupo.Items.Add(New ListItem(LblSubProyecto.Text, "2")) DdlGrupo.Items.Add(New ListItem("Categoria", "3")) DdlGrupo.Items.Add(New ListItem("Clasificación", "4")) DdlGrupo.Items.Add(New ListItem("Productos-Servicios", "5")) DdlGrupo.Items.Add(New ListItem("Año", "6")) DdlGrupo.Items.Add(New ListItem("Mes", "7")) DdlGrupo.Items.Add(New ListItem("Año/Mes", "8")) DdlGrupo.Items.Add(New ListItem("Fecha", "9")) DdlGrupo.Items.Add(New ListItem("Cliente", "10")) DdlGrupo.Items.Add(New ListItem("Vendedor", "12")) DdlGrupo.Items.Add(New ListItem("Usuario", "13")) DdlGrupo.Items.Add(New ListItem("Estatus Fact.", "14")) DdlGrupo.Items.Add(New ListItem("Año Ejec.", "15")) DdlGrupo.Items.Add(New ListItem("Mes Ejec.", "16")) DdlGrupo.Items.Add(New ListItem("Año/Mes Ejec.", "17")) DdlGrupo.Items.Add(New ListItem("Fecha Ejec.", "18")) DdlGrupo.Items.Add(New ListItem("Cliente - PS", "20")) DdlGrupo.Items.Add(New ListItem("Sucursal - PS", "21")) DdlGrupo.Items.Add(New ListItem("Familia - Marca - Tipo", "22")) DdlGrupo.Items.Add(New ListItem("Tipo Cliente", "23")) DdlGrupo.Items.Add(New ListItem("Marca", "24")) DdlGrupo.Items.Add(New ListItem("Cliente Sucursal", "26")) DdlGrupo.Items.Add(New ListItem("Giro", "27")) If UsuarioActual.CveEmpresa = 119 Then DdlGrupo.Items.Add(New ListItem("Proveedor", "29")) DdlGrupo.DataBind() DdlGrupo.SelectedValueExist("8") End Sub Private Sub SetValues() 'Cargo Categorias DdlCategoria.DataSource = GlobalDTGralCategorias(UsuarioActual.CveEmpresa) DdlCategoria.DataBind() 'Cargo Clasificaciones DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) DdlClasificacion.DataBind() If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then DvLitraje.Visible = True 'garantia divgarantia1.Visible = True divgarantia2.Visible = True divdistribuidor1.Visible = True divdistribuidor2.Visible = True DdlClasificacion2.DataSource = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa) DdlClasificacion2.DataBind() divClasif2texto.Visible = True divClasif2.Visible = True DdlGrupo.Items.Add(New ListItem("Clasificacion2", "25")) LblServicioDomicilioFiltro.Visible = True DVServicioDomicilio.Visible = True End If 'Vendedor DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltraParametros("VendedorTipo in (1,4)") 'vendedores y vendedores de piso DdlVendedor.DataBind() 'CargaUsuarios DdlUsuario.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa) DdlUsuario.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 = "" DdlPS.SelectedValue = "-1" Else DdlPS.ddl.Items.Clear() DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero) DdlPS.ddl.DataBind() DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) End If If UsuarioActual.Empresa.Funcionalidad(713) = "1" Then ChkIEPS.Visible = True ChkIEPS.Checked = True GvDatos.Columns(6).Visible = True End If 'CargaEstatus DdlEstatus.DataSource = GlobalDTEstatusFactura.FiltraParametros(" CveEstatusFactura NOT IN (1, 4, 5) ") DdlEstatus.DataBind() DdlEstatus.Items.Add(New ListItem("Canceladas", "4")) If UsuarioActual.Empresa.TipoFacturacion = "CFDi" Then DdlEstatus.SelectedIndex = 2 Else DdlEstatus.SelectedIndex = 1 End If 'Carga Clasificacion Cliente DdlClienteClasificacion.DataSource = GlobalDTClienteClasificaciones(UsuarioActual.CveEmpresa) DdlClienteClasificacion.DataBind() DdlClienteClasificacion.Items.Insert(0, New ListItem("Todos", "-1")) CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto, VisualizacionReporte:=1) CargarCentrosDeCosto(Nothing, DdlSubProyectoEjecucion, Nothing, Nothing) CargaGrupo() TipoCambio = 1 TCEspecifico = 0 DdlProveedor.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") If DdlProveedor.UsaWebService Then DdlClasificacion.AutoPostBack = False DdlProveedor.Attributes.Add("data-metodo", "getproveedores") Else DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlProveedor.DataBind() DdlProveedor.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End If Dim EsWS As Boolean = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False) If EsWS Then DdlClientes.setEsWebService(True) Else DdlClientes.setEsWebService(False) DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) DdlClientes.DataBind() DdlClientes.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End If If UsuarioActual.CveVendedor > 0 AndAlso Not UsuarioActual.TienePermisoProceso(263) Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString()) DdlVendedor.Attributes.Add("disabled", "disabled") DdlVendedor.Enabled = False End If txtFechaI.Text = NowADS().FirstDayOfMonth.ToShortDateString txtFechaF.Text = NowADS().ToShortDateString If UsuarioActual.TienePermisoProceso(339) Then GvDatos.Columns(3).Visible = False GvDatos.Columns(4).Visible = False GvDatos.Columns(5).Visible = False GvDatos.Columns(6).Visible = False End If End Sub #End Region #Region " CARGA DATOS " Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() UPDatos.Update() End Sub Private Sub CargaDatos() Dim TipoComprobante As String = If(DdlTipoComprobante.GetSelectedValuesM = "", "-1", DdlTipoComprobante.GetSelectedValuesM) Dim FechaI, FechaF, FechaIEjec, FechaFEjec As Date FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.ToDate, MinFecha) FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.ToDate, MaxFecha) FechaIEjec = If(IsDate(TxtFechaIEjec.Text.Trim()), TxtFechaIEjec.Text.ToDate, MinFecha) FechaFEjec = If(IsDate(TxtFechaFEjec.Text.Trim()), TxtFechaFEjec.Text.ToDate, MaxFecha) If RblTipoCambio.SelectedValue.ToEntero = 3 And TxtEspecifico.Text <> "" Then TCEspecifico = TxtEspecifico.Text.ToDouble Else TCEspecifico = -1 Dim CveProveedorCompra As Integer = If(DdlProveedor.SelectedValue.ToEntero > 0, DdlProveedor.SelectedValue.ToEntero, -1) Dim CveCliente As Integer = If(DdlClientes.SelectedValue.ToEntero > 0, DdlClientes.SelectedValue.ToEntero, -1) Dim ModalidadContable As Boolean = Not ChkLecturaAdmin.Checked Dim ObjVentas As New ClsVentas() If ObjVentas.GetRepProductosServicios(DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlCategoria.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, FechaI, FechaF, FechaIEjec, FechaFEjec, CveCliente, DdlSubProyectoEjecucion.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, DdlUsuario.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, "-1", UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero, CveUsuarioConsulta:=UsuarioActual.CveUsuario, TipoDocto:=TipoComprobante, CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero, TipoCambio:=TipoCambio, TCEspecifico:=TCEspecifico, CveProveedorCompra:=CveProveedorCompra, CveMarca:=DdlMarcaPSDes.SelectedValue.ToEntero, MostrarLitraje:=ChkLitraje.Checked, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero, EsGarantia:=DdlGarantia.SelectedValue.ToEntero, ModalidadContable:=ModalidadContable, CveCondicionesPago:=DdlCondicionesPago.SelectedValue.ToEntero, EsDistribuidor:=DdlDistribuidor.SelectedValue.ToEntero, CveClasificacion2:=DdlClasificacion2.SelectedValue.ToEntero, ServicioDomicilio:=DdlServicioDomicilio.SelectedValue.ToEntero) Then GvDatos.DataSource = ObjVentas.DtResultados DtVentas = ObjVentas.DtResultados If UsuarioActual.CveEmpresa = 140 Then GvDatos.Columns(1).Visible = True End If Else GvDatos.DataSource = Nothing End If ObjVentas.Dispose() GvDatos.DataBind() Agrupador = DdlGrupo.SelectedItem.Text End Sub Protected Sub BtnTipoCambio_Click1(sender As Object, e As EventArgs) CargaDatos() RegistraScript(String.Format("$('#{0}').modal('hide');", "DivTipoCambio")) UPDatos.Update() End Sub Protected Sub CargarMarcas() If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then DivMarca.Visible = True LblMarca.Visible = True DdlMarcaPSDes.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa) DdlMarcaPSDes.DataBind() End If DdlMarcaPSDes.Items.Insert(0, New ListItem(" Todos ", "-1")) End Sub #End Region #Region " GV DATOS - PERSONALIZAR " Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim Css As String = "Texto" Dim CveClasificacionDetalle As String = "-1" Dim cveMarca As String = DdlMarcaPSDes.SelectedValue If DdlGrupo.SelectedValue.ToEntero = 22 Then Dim tipo As Integer = If(e.Row.DBCampo("CveClasificacionDetalle").ToEntero() > 0, 4, If(e.Row.DBCampo("CveMarca").ToEntero() > 0, 3, If(e.Row.DBCampo("CveClasificacion").ToEntero() > 0, 2, 1))) Select Case tipo Case 4 CveClasificacionDetalle = e.Row.DBCampo("CveClasificacionDetalle").ToString() ' String.Format("{0}&CveClasificacionDetalle={1}&CveMarca={2}", squery, e.Row.DBCampo("CveClasificacionDetalle").ToEntero(), e.Row.DBCampo("CveMarca").ToEntero()) cveMarca = e.Row.DBCampo("CveMarca").ToString() Case 3 'squery = String.Format("{0}&CveMarca{1}", squery, e.Row.DBCampo("CveMarca").ToEntero()) cveMarca = e.Row.DBCampo("CveMarca").ToString() e.Row.CssClass = "SubTotalesB" Case 2 e.Row.CssClass = "SubTotales" Case 1 e.Row.CssClass = "Totales" End Select Else If e.Row.DBCampo("Orden") = "" Then e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(0).Width = Unit.Pixel(200) e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(1).Width = Unit.Pixel(60) e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(2).Width = Unit.Pixel(60) e.Row.Cells(3).Width = Unit.Pixel(90) e.Row.Cells(4).Width = Unit.Pixel(90) e.Row.Cells(6).Width = Unit.Pixel(80) e.Row.Cells(9).Width = Unit.Pixel(100) e.Row.CssClass = "Totales" Css = "Totales" ElseIf DdlGrupo.SelectedValue.Contiene("20", "21") And Not e.Row.DBCampo("CvePS").ToEntero > 0 Then e.Row.CssClass = "SubTotales" End If End If ' PARA LIGA Dim FechaI, FechaF, FechaIEjec, FechaFEjec As String FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") FechaIEjec = If(IsDate(TxtFechaIEjec.Text.Trim()), TxtFechaIEjec.Text.Trim(), "-1") FechaFEjec = If(IsDate(TxtFechaFEjec.Text.Trim()), TxtFechaFEjec.Text.Trim(), "-1") Dim Liga As String = String.Format("/Ventas/RepProductosServiciosDetalle.aspx?CveProyecto={0}&CveSubProyecto={1}&CveCategoria={2}&CveClasificacion={3}&CvePS={4}&CveCliente={5}&CveSubProyectoEjecucion={6}&CveVendedor={7}&CveUsuario={8}&CveEstatus={9}&Anio={10}&Mes={11}&AnioMes={12}&Fecha={13}&AnioEjec={14}&MesEjec={15}&AnioMesEjec={16}&FechaEjec={17}&FechaI={18}&FechaF={19}&FechaEI={20}&FechaEF={21}&TipoDocto={22}&Grupo={23}&CveMoneda={24}&TipoCambio={25}&TCEspecifico={26}&CveClienteClasificacion={27}&CveProveedorCompra={28}&CveMarca={29}&CveClasificacionDetalle={30}&TipoCliente={31}&ModalidadContable={32}&EsGarantia={33}&CveCondicionesPago={34}&MostrarLitraje={35}&EsDistribuidor={36}&CveClienteSucursal={37}&CveClasificacion2={38}&ServicioDomicilio={39}", e.Row.DBCampo("CveProyecto"), e.Row.DBCampo("CveSubProyecto"), e.Row.DBCampo("CveCategoria"), e.Row.DBCampo("CveClasificacion"), e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveCliente"), e.Row.DBCampo("CveSubProyectoEjecucion"), e.Row.DBCampo("Vendedor"), e.Row.DBCampo("CveUsuario"), e.Row.DBCampo("CveEstatusFactura"), e.Row.DBCampo("Anio"), e.Row.DBCampo("Mes"), e.Row.DBCampo("AnioMes"), e.Row.DBCampo("Fecha"), e.Row.DBCampo("AnioEjec"), e.Row.DBCampo("MesEjec"), e.Row.DBCampo("AnioMesEjec"), e.Row.DBCampo("FechaEjec"), FechaI, FechaF, FechaIEjec, FechaFEjec, e.Row.DBCampo("TipoDocto"), e.Row.DBCampo("CveGpo"), e.Row.DBCampo("CveMoneda"), e.Row.DBCampo("TipoCambio"), e.Row.DBCampo("TCEspecifico"), e.Row.DBCampo("CveClienteClasificacion"), e.Row.DBCampo("CveProveedorCompra"), cveMarca, CveClasificacionDetalle, If(DdlGrupo.SelectedValue.ToEntero = 23, e.Row.DBCampo("TipoCliente"), DdlTipoCliente.SelectedValue), If(Not ChkLecturaAdmin.Checked, 1, 0), e.Row.DBCampo("EsGarantia"), e.Row.DBCampo("CveCondicionesPago"), IIf(e.Row.DBCampo("MostrarLitraje") = "True", 1, 0), e.Row.DBCampo("EsDistribuidor"), e.Row.DBCampo("CveClienteSucursal").ToString.ToEntero, e.Row.DBCampo("CveClasificacion2"), DdlServicioDomicilio.SelectedValue.ToEntero) e.Row.FCLiteral("LtlGrupo").Text = String.Format("{2}", Css, Liga, e.Row.DBCampo("Gpo")) e.Row.FCLiteral("LtlCantidad").Text = String.Format("{2}", Css, Liga, e.Row.DBCampo("Cantidad").ToDecimal.ToString("###,###,###,###.##")) End If End Sub Protected Sub BtnPersonalizar_Click(sender As Object, e As System.EventArgs) Handles BtnPersonalizar.Click If ChkIEPS.Checked Then GvDatos.Columns(6).Visible = True Else GvDatos.Columns(6).Visible = False End If If ChkMaxSub.Checked Then GvDatos.Columns(7).Visible = True Else GvDatos.Columns(7).Visible = False End If If ChkAVGSub.Checked Then GvDatos.Columns(8).Visible = True Else GvDatos.Columns(8).Visible = False End If If ChkMinSub.Checked Then GvDatos.Columns(9).Visible = True Else GvDatos.Columns(9).Visible = False End If If ChkMaxTot.Checked Then GvDatos.Columns(10).Visible = True Else GvDatos.Columns(10).Visible = False End If If ChkAvgTot.Checked Then GvDatos.Columns(11).Visible = True Else GvDatos.Columns(11).Visible = False End If If ChkMinTot.Checked Then GvDatos.Columns(12).Visible = True Else GvDatos.Columns(12).Visible = False End If UPDatos.Update() End Sub #End Region #Region " SELECTED INDEX CHANGED" Protected Sub DdlClienteClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) CargaClientes() End Sub Private Sub CargaClientes() DdlClientes.ddl.Items.Clear() DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1).FiltraParametros($"CveClienteClasificacion = {DdlClienteClasificacion.SelectedValue.ToEntero} OR {DdlClienteClasificacion.SelectedValue.ToEntero} = -1") DdlClientes.DataBind() DdlClientes.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue, AplicaTodos:="Todos") End Sub 'Protected Sub DdlCategoria_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCategoria.SelectedIndexChanged ' DdlClasificacion.Items.Clear() ' If DdlCategoria.SelectedValue <> "-1" Then ' Dim ObjClasificaciones As New ClsClasificaciones ' If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then ' DdlClasificacion.DataSource = ObjClasificaciones.DtResultados ' DdlClasificacion.DataBind() ' End If ' ObjClasificaciones.Dispose() ' End If ' DdlClasificacion.Items.Insert(0, New ListItem("Todas", "-1")) 'End Sub Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClasificacion.SelectedIndexChanged If UsuarioActual.Empresa.Funcionalidad(105) = "" Then DdlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero) DdlPS.DataBind() DdlPS.ddl.Items.Insert(0, New ListItem("Todos", "-1")) Else DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue) DdlPS.SelectedText = "Todos" DdlPS.SelectedValue = "-1" End If End Sub Protected Sub DdlTipoComprobante_SelectedIndexChanged(sender As Object, e As EventArgs) DdlEstatus.Items.Clear() If DdlTipoComprobante.SelectedValue <> "-1" Then DdlEstatus.DataSource = GlobalDTEstatusFactura.FiltraParametros(String.Format("TipoDocto = '{0}'", DdlTipoComprobante.SelectedValue)) Else DdlEstatus.DataSource = GlobalDTEstatusFactura End If DdlEstatus.Items.Add(New ListItem("Todos", "-1")) DdlEstatus.DataBind() DdlEstatus.SelectedValueExist("3") 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 #End Region #Region " IMPRIMIR " Protected Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click If GvDatos.Rows.Count > 0 Then GenerarPDF() Else Alert("No hay datos para imprimir") End If End Sub Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click GvDatos.ExportToExcel("ReporteProductosServicios" & NowADS().ToShortDateString) End Sub Private Sub GenerarPDF() Dim FechaI, FechaF, FechaIEjec, FechaFEjec As Date FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.ToDate, MinFecha) FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.ToDate, MaxFecha) FechaIEjec = If(IsDate(TxtFechaIEjec.Text.Trim()), TxtFechaIEjec.Text.ToDate, MinFecha) FechaFEjec = If(IsDate(TxtFechaFEjec.Text.Trim()), TxtFechaFEjec.Text.ToDate, MaxFecha) Dim Cliente As String = If(DdlClientes.SelectedText = "", "", $" Cliente: {DdlClientes.SelectedText}") Dim Proveedor As String = If(DdlProveedor.SelectedValue = "", "", $" Proveedor: {DdlProveedor.SelectedText}") Dim FechaInicio As String = If(txtFechaI.Text = "", "", $" Fecha Inicio: {txtFechaI.Text}") Dim FechaFin As String = If(txtFechaF.Text = "", "", $" Fecha Fin: {txtFechaF.Text}") Dim Grupo As String = If(DdlGrupo.SelectedValue = "-1", "", $" Agrupado por: {DdlGrupo.SelectedItem.Text}") Dim Categoria As String = If(DdlCategoria.SelectedValue = "-1", "", $" Categoria: {DdlCategoria.SelectedItem.Text }") Dim Clasificacion As String = If(DdlClasificacion.SelectedValue = "-1", "", $" Clasificación: {DdlClasificacion.SelectedItem.Text}") Dim PS As String = If(DdlPS.SelectedValue = "-1", "", $" P.S.: {DdlPS.SelectedText}") Dim Proyecto As String = If(DdlSubProyecto.SelectedValue = "-1", "", $" Proyecto: {DdlSubProyecto.SelectedItem.Text}") Dim Estatus As String = If(DdlEstatus.SelectedValue = "-1", "", $" Estatus: {DdlEstatus.SelectedItem.Text}") Dim Usuario As String = If(DdlUsuario.SelectedValue = "-1", "", $" Usuario: {DdlUsuario.SelectedItem.Text}") If DtVentas IsNot Nothing AndAlso DtVentas.Rows.Count > 0 Then Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri As String = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("FechaInicio", If(txtFechaI.Text <> "", FechaI.ToShortDateString, ""))) params.Add(New ReportParameter("FechaFin", If(txtFechaF.Text <> "", FechaF.ToShortDateString, ""))) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString)) params.Add(New ReportParameter("Filtros", $"{Grupo}{Cliente}{FechaInicio}{FechaFin}{Categoria}{Clasificacion}{PS}{Proyecto}{Estatus}{Usuario}{Proveedor}")) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF("Empresas/Grales/Formatos/RepProductosServicios.rdlc", DtVentas, params, "ReportePS") Else Alert("No hay información para mostrar.", TipoMensaje.MsgAdvertencia) End If End Sub #End Region #Region "GRAFICA" Protected Sub LnkVerGrafica_Click(sender As Object, e As EventArgs) If Not DtVentas IsNot Nothing AndAlso DtVentas.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 DtVentas.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("Moneda") = Dr("Moneda").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 Case 4 Row("Valor") = Dr("Cantidad").ToString.FormatoNumero Row("Texto") = $"{Dr("GPO").ToString}" End Select Row("Color") = Colors(RowColorIndex) 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(), .Categoria = s("Texto").ToString()} If DdlVer.SelectedValue.ToEntero = 4 Then query = From s In Dt.AsEnumerable() Select New With {.Texto = s("Texto").ToString() & " Cantidad", .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = "", .Categoria = s("Texto").ToString()} End If 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