Option Explicit On Option Strict On Imports System.Data Imports System.Drawing Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class Ventas_RepVentasUtilidadDetalle Inherits ClsPaginas #Region "P R O P I E D A D E S " Private Property CveVenta As Integer Get CveVenta = ViewState("CveVenta").ToString.ToEntero End Get Set(value As Integer) ViewState("CveVenta") = value End Set End Property Private Property CveVendedor As String Get CveVendedor = ViewState("CveVendedor").ToString End Get Set(value As String) ViewState("CveVendedor") = value End Set End Property Private Property CveCliente As Integer Get CveCliente = ViewState("CveCliente").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCliente") = value End Set End Property Private Property Orden As Integer Get Orden = ViewState("Orden").ToString.ToEntero End Get Set(value As Integer) ViewState("Orden") = value End Set End Property Private Property CveSubProyecto As String Get CveSubProyecto = ViewState("CveSubProyecto").ToString End Get Set(value As String) ViewState("CveSubProyecto") = value End Set End Property Private Property CvePS As Integer Get CvePS = ViewState("CvePS").ToString.ToEntero End Get Set(value As Integer) ViewState("CvePS") = value End Set End Property Private Property CveClasificacion As Integer Get CveClasificacion = ViewState("CveClasificacion").ToString.ToEntero End Get Set(value As Integer) ViewState("CveClasificacion") = value End Set End Property Private Property CveMovimiento As Integer Get CveMovimiento = ViewState("CveMovimiento").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMovimiento") = value End Set End Property Private Property DtVentas As DataTable Get Return DirectCast(ViewState("DtVentas"), DataTable) End Get Set(value As DataTable) ViewState("DtVentas") = 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 txtFechaI.Text = IfNull(Request("FechaI"), Now.FirstDayOfMonth.ToShortDateString).ToString txtFechaF.Text = IfNull(Request("FechaF"), Now.LastDayOfMonth.ToShortDateString).ToString CveVenta = If(Request("CveVenta") <> "", Request("CveVenta").ToString.ToEntero, "-1".ToEntero) CveVendedor = IfNull(Request("CveVendedor"), "-1").ToString CveCliente = IfNull(Request("CveCliente"), "-1").ToString.ToEntero CveSubProyecto = IfNull(Request("CveSubProyecto"), "-1").ToString Orden = IfNull(Request("Orden"), "-1").ToString.ToEntero CvePS = IfNull(Request("CvePS"), "-1").ToString.ToEntero CveClasificacion = IfNull(Request("CveClasificacion"), "-1").ToString.ToEntero CargaCombos() CargaDatos() If CveVenta = -1 Then UpDetalles.Visible = False UpDetallesCosto.Visible = False UpIndicador.Visible = False ImgCosto.Visible = True Else UPFiltros.Visible = False GvDatos.CssClass = "table table-striped table-hover Widthall ScrollAD gvFull" End If End If End Sub Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() UPDatos.Update() End Sub Private Sub CargaCombos() 'Carga Clientes DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) DdlClientes.DataBind() If CveCliente > 0 Then DdlClientes.SelectedValueExist(CveCliente) 'CargaSubProyectos DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) DdlSubProyecto.DataBind() If CveSubProyecto <> "" Then DdlSubProyecto.SelectedValuesIfExistM(CveSubProyecto) 'Carga Vendedor DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) DdlVendedor.DataBind() If UsuarioActual.CveVendedor > 0 AndAlso Not UsuarioActual.TienePermisoProceso(263) Then DdlVendedor.SelectedValuesIfExistM(UsuarioActual.CveVendedor.ToString()) DdlVendedor.Attributes.Add("disabled", "disabled") DdlVendedor.Enabled = False End If '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 DdlMarcas.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa) DdlMarcas.DataBind() DdlMarcas.Items.Insert(0, New ListItem("Todas", "-1")) 'Cargo Clasificaciones DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) DdlClasificacion.DataBind() DdlClasificacion.SelectedValueExist(CveClasificacion) DdlPS.SelectedValue = CvePS.ToString If CvePS.ToEntero > 0 AndAlso GlobalDTPS(UsuarioActual.CveEmpresa, CvePS.ToEntero).Rows.Count > 0 Then DdlPS.SelectedText = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS.ToEntero).Rows(0)("PSCodigo").ToString Else DdlPS.SelectedText = "Todos" End If End Sub Private Sub CargaDatos() Dim ObjVentas As New ClsVentas() Dim FechaI As Date = txtFechaI.Text.ToDate Dim FechaF As Date = txtFechaF.Text.ToDate Dim Sucursales As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString If ObjVentas.GetReporteVentasUtilidadDetalle(Vendedores, If(CveVenta = -1, Orden, CveVenta), DdlClientes.SelectedValue.ToEntero, Sucursales, FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, -1, DdlClasificacion.SelectedValue.ToEntero, DdlMarcas.SelectedValue.ToEntero, -1) Then DtVentas = ObjVentas.DtResultados GvDatos.DataSource = ObjVentas.DtResultados GvDatos.DataBind() If ObjVentas.DtResultados.Rows.Count > 0 Then CveMovimiento = ObjVentas.DtResultados.Rows(1)("CveMovimiento").ToString.ToEntero LblDiasVencimiento.Text = ObjVentas.DtResultados.Rows(1)("DiasVencimiento").ToString LblDiasEmision.Text = ObjVentas.DtResultados.Rows(1)("DiasEmision").ToString LblCostoFecha.Text = "$" + ObjVentas.Costo.ToString("N2") HLCostoFolio.Text = ObjVentas.FolioCosto LblFechaSalid.Text = ObjVentas.FechaSalidaCosto.ToDate.ToShortDateString LblFechaVenta.Text = ObjVentas.FechaVenta.ToDate.ToShortDateString HLSerieFolio.Text = ObjVentas.SerieVenta HLSerieFolio.NavigateUrl = $"/Ventas/Ventas.aspx?CveVenta={CveVenta}" LblSubTotal.Text = "$" + ObjVentas.SubTotalVenta.ToString("N2") LbSubTotalDolares.Text = "$" + ObjVentas.SubTotalVentaDolares.ToString("N2") HLCostoFolio.NavigateUrl = $"/Inventarios/EntradasSalidas.aspx?CveMovimiento={CveMovimiento}" LblUtilidad.Text = "$" + (ObjVentas.Utilidad - ObjVentas.Perdida).ToString("N2") LblPorUtilidad.Text = ((ObjVentas.Utilidad - ObjVentas.Perdida) / ObjVentas.SubTotalVenta * 100).ToString("N2") LblPerdida.Text = "$" + (ObjVentas.Perdida - ObjVentas.Utilidad).ToString("N2") LblPorPerdida.Text = ((ObjVentas.Perdida - ObjVentas.Utilidad) / ObjVentas.SubTotalVenta * 100).ToString("N2") If ObjVentas.GetVentasAntNC(CveVenta, -1) Then GvBonificacion.DataSource = ObjVentas.DtResultados End If ObjVentas.Dispose() GvBonificacion.DataBind() If ObjVentas.SubTotalVenta <> ObjVentas.SubTotalVentaDolares Then LbSubTotalDolares.Visible = True TdSubTotalDolares.Visible = True Else LbSubTotalDolares.Visible = False TdSubTotalDolares.Visible = False End If If (ObjVentas.Utilidad - ObjVentas.Perdida) > 0 Then DivUtilidad.Visible = True DivPerdidas.Visible = False Else DivUtilidad.Visible = False DivPerdidas.Visible = True End If UpIndicador.Update() End If End If End Sub 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 e.Row.DBCampo("CveVentaDetalle") = "" AndAlso e.Row.DBCampo("CveVenta") = "" Then e.Row.CssClass = "Totales" Else 'e.Row.Cells(0).BackColor = ColorTranslator.FromHtml("#e9e9e9") 'e.Row.Cells(1).BackColor = ColorTranslator.FromHtml("#e9e9e9") 'e.Row.Cells(2).BackColor = ColorTranslator.FromHtml("#e9e9e9") 'e.Row.Cells(3).BackColor = ColorTranslator.FromHtml("#e9e9e9") 'e.Row.Cells(4).BackColor = ColorTranslator.FromHtml("#f1f1f1") 'e.Row.Cells(5).BackColor = ColorTranslator.FromHtml("#f1f1f1") 'e.Row.Cells(6).BackColor = ColorTranslator.FromHtml("#f1f1f1") 'e.Row.Cells(7).BackColor = ColorTranslator.FromHtml("#f1f1f1") 'e.Row.Cells(4).BackColor = ColorTranslator.FromHtml("#f1f1f1") End If If e.Row.DBCampo("Perdida").ToDouble > 0 Then e.Row.FCLabel("LbPerdida").ForeColor = Color.DarkRed e.Row.FCLabel("LbPorPerdida").ForeColor = Color.DarkRed End If End If End Sub Protected Sub ImgExcel_Click(sender As Object, e As System.EventArgs) Handles ImgExcel.Click If CveVenta <> -1 Then GenerarPDFCrystal("EXCEL") Else GenerarPDFCrystalGeneral("EXCEL") End If End Sub Private Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click If CveVenta <> -1 Then ' GenerarPDF() GenerarPDFCrystal() Else ' GenerarPDFGeneral() GenerarPDFCrystalGeneral() End If End Sub Private Sub ImgCosto_Click(sender As Object, e As EventArgs) Handles ImgCosto.Click GenerarPDFCrystalCosto() End Sub Private Sub GenerarPDF(Optional Formato As String = "PDF") Dim ObjVentas As New ClsVentas() Dim FechaI As Date = txtFechaI.Text.ToDate Dim FechaF As Date = txtFechaF.Text.ToDate If txtFechaI.Text = "" Then FechaI = MinFecha If txtFechaF.Text = "" Then FechaF = MaxFecha Dim Cliente = If(DdlClientes.SelectedValue = "-1", "", $" Cliente: {DdlClientes.SelectedItem.Text}") Dim Sucursal = If(DdlSubProyecto.GetSelectedText = "", "", $" Sucursal: {DdlSubProyecto.GetSelectedText}") Dim Vendedor = If(DdlVendedor.GetSelectedText = "", "", $" Vendedor: {DdlVendedor.GetSelectedText}") Dim PS = If(DdlPS.SelectedValue = "-1", "", $" P.S.: {DdlPS.SelectedText}") Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $" Clasificacion: {DdlClasificacion.SelectedItem.Text}") Dim Marcas = If(DdlMarcas.SelectedValue = "-1", "", $" Marcas: {DdlMarcas.SelectedItem.Text}") Dim FechaIn As String = $" Fecha Inicio: {txtFechaI.Text}" Dim FechaFn As String = $" Fecha Fin: {txtFechaF.Text}" If txtFechaI.Text = "" Then FechaIn = "" If txtFechaF.Text = "" Then FechaFn = "" Dim Sucursales As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString If ObjVentas.GetReporteVentasUtilidadDetalle(Vendedores, CveVenta, DdlClientes.SelectedValue.ToEntero, Sucursales, FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, -1, DdlClasificacion.SelectedValue.ToEntero, DdlMarcas.SelectedValue.ToEntero, -1) Then Dim FechaInicio As String = txtFechaI.Text Dim FechaFin As String = txtFechaF.Text If txtFechaI.Text = "" Then FechaInicio = "-1" If txtFechaF.Text = "" Then FechaFin = "-1" Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim dt As DataTable = ObjVentas.DtResultados Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("FechaInicio", FechaInicio)) params.Add(New ReportParameter("FechaFin", FechaFin)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) params.Add(New ReportParameter("AgrupadoPor", $"{Cliente}{Sucursal}{Vendedor}{PS}{Clasificacion}{FechaIn}{FechaFn}")) params.Add(New ReportParameter("SerieFolioVta", HLSerieFolio.Text)) params.Add(New ReportParameter("FechaVta", LblFechaVenta.Text)) params.Add(New ReportParameter("SubTotalVta", LblSubTotal.Text)) params.Add(New ReportParameter("FolioInv", HLCostoFolio.Text)) params.Add(New ReportParameter("CostoInv", LblCostoFecha.Text)) params.Add(New ReportParameter("FechaSalida", LblFechaSalid.Text)) params.Add(New ReportParameter("Ganancia", LblUtilidad.Text)) params.Add(New ReportParameter("PorGanancia", LblPorUtilidad.Text)) params.Add(New ReportParameter("Perdida", LblPerdida.Text)) params.Add(New ReportParameter("PorPerdida", LblPorPerdida.Text)) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF("Empresas/Grales/Formatos/RepVentasUtilidadDetalle.rdlc", dt, params, "RepVentasUtilidadDetalle", Formato) Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If End Sub Private Sub GenerarPDFGeneral(Optional Formato As String = "PDF") Dim ObjVentas As New ClsVentas() Dim FechaI As Date = txtFechaI.Text.ToDate Dim FechaF As Date = txtFechaF.Text.ToDate If txtFechaI.Text = "" Then FechaI = MinFecha If txtFechaF.Text = "" Then FechaF = MaxFecha Dim Cliente = If(DdlClientes.SelectedValue = "-1", "", $" Cliente: {DdlClientes.SelectedItem.Text}") Dim Sucursal = If(DdlSubProyecto.GetSelectedText = "", "", $" Sucursal: {DdlSubProyecto.GetSelectedText}") Dim Vendedor = If(DdlVendedor.GetSelectedText = "", "", $" Vendedor: {DdlVendedor.GetSelectedText}") Dim PS = If(DdlPS.SelectedValue = "-1", "", $" P.S.: {DdlPS.SelectedText}") Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $" Clasificacion: {DdlClasificacion.SelectedItem.Text}") Dim FechaIn As String = $" Fecha Inicio: {txtFechaI.Text}" Dim FechaFn As String = $" Fecha Fin: {txtFechaF.Text}" If txtFechaI.Text = "" Then FechaIn = "" If txtFechaF.Text = "" Then FechaFn = "" Dim Sucursales As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString If ObjVentas.GetReporteVentasUtilidadDetalle(Vendedores, CveVenta, DdlClientes.SelectedValue.ToEntero, Sucursales, FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, -1, DdlClasificacion.SelectedValue.ToEntero, DdlMarcas.SelectedValue.ToEntero, -1) Then Dim FechaInicio As String = txtFechaI.Text Dim FechaFin As String = txtFechaF.Text If txtFechaI.Text = "" Then FechaInicio = "-1" If txtFechaF.Text = "" Then FechaFin = "-1" Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim dt As DataTable = ObjVentas.DtResultados Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("FechaInicio", FechaInicio)) params.Add(New ReportParameter("FechaFin", FechaFin)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) params.Add(New ReportParameter("AgrupadoPor", $"{Cliente}{Sucursal}{Vendedor}{PS}{Clasificacion}{FechaIn}{FechaFn}")) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF("Empresas/Grales/Formatos/RepVentasUtilidadDetalleGeneral.rdlc", dt, params, "RepVentasUtilidadDetalle", Formato) Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If End Sub Private Sub GenerarPDFCrystal(Optional Formato As String = "PDF") Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim FechaI As Date = txtFechaI.Text.ToDate Dim FechaF As Date = txtFechaF.Text.ToDate If txtFechaI.Text = "" Then FechaI = MinFecha If txtFechaF.Text = "" Then FechaF = MaxFecha Dim Cliente = If(DdlClientes.SelectedValue = "-1", "", $" Cliente: {DdlClientes.SelectedItem.Text}") Dim Sucursal = If(DdlSubProyecto.GetSelectedText = "", "", $" Sucursal: {DdlSubProyecto.GetSelectedText}") Dim Vendedor = If(DdlVendedor.GetSelectedText = "", "", $" Vendedor: {DdlVendedor.GetSelectedText}") Dim PS = If(DdlPS.SelectedValue = "-1", "", $" P.S.: {DdlPS.SelectedText}") Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $" Clasificacion: {DdlClasificacion.SelectedItem.Text}") Dim FechaIn As String = $" Fecha Inicio: {txtFechaI.Text}" Dim FechaFn As String = $" Fecha Fin: {txtFechaF.Text}" If txtFechaI.Text = "" Then FechaIn = "" If txtFechaF.Text = "" Then FechaFn = "" Dim lista = New List(Of CrystalParametro) lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa)) lista.Add(New CrystalParametro("AgrupadoPor", $"{Cliente}{Sucursal}{Vendedor}{PS}{Clasificacion}{FechaIn}{FechaFn}")) lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Usuario)) lista.Add(New CrystalParametro("SerieFolioVta", HLSerieFolio.Text)) lista.Add(New CrystalParametro("FechaVta", LblFechaVenta.Text.ToDate)) lista.Add(New CrystalParametro("SubTotalVta", LblSubTotal.Text.ToDecimal)) lista.Add(New CrystalParametro("FolioInv", HLCostoFolio.Text)) lista.Add(New CrystalParametro("CostoInv", LblCostoFecha.Text.ToDecimal)) lista.Add(New CrystalParametro("FechaSalida", LblFechaSalid.Text.ToDate)) lista.Add(New CrystalParametro("Ganancia", LblUtilidad.Text.ToDecimal)) lista.Add(New CrystalParametro("PorGanancia", LblPorUtilidad.Text.ToDecimal)) lista.Add(New CrystalParametro("Perdida", LblPerdida.Text.ToDecimal)) lista.Add(New CrystalParametro("PorPerdida", LblPorPerdida.Text.ToDecimal)) lista.Add(New CrystalParametro("PerdidaOGanancia", If(LblUtilidad.Text.ToDouble <= 0, "Pérdida", "Utilidad"))) If Imagen.Exists Then lista.Add(New CrystalParametro("ImagenPath", logouri)) Else lista.Add(New CrystalParametro("ImagenPath", "")) End If ImprimirbytesPDF(ImprimirPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/RepVentaUtilidadDetalle.rpt"), DtVentas, lista, "RepVentasUtilidadesDetalle", Formato), "RepVentasUtilidadesDetalle", Formato) End Sub Private Sub GenerarPDFCrystalGeneral(Optional Formato As String = "PDF") Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim FechaI As Date = txtFechaI.Text.ToDate Dim FechaF As Date = txtFechaF.Text.ToDate If txtFechaI.Text = "" Then FechaI = MinFecha If txtFechaF.Text = "" Then FechaF = MaxFecha Dim Cliente = If(DdlClientes.SelectedValue = "-1", "", $" Cliente: {DdlClientes.SelectedItem.Text}") Dim Sucursal = If(DdlSubProyecto.GetSelectedText = "", "", $" Sucursal: {DdlSubProyecto.GetSelectedText}") Dim Vendedor = If(DdlVendedor.GetSelectedText = "", "", $" Vendedor: {DdlVendedor.GetSelectedText}") Dim PS = If(DdlPS.SelectedValue = "-1", "", $" P.S.: {DdlPS.SelectedText}") Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $" Clasificacion: {DdlClasificacion.SelectedItem.Text}") Dim FechaIn As String = $" Fecha Inicio: {txtFechaI.Text}" Dim FechaFn As String = $" Fecha Fin: {txtFechaF.Text}" If txtFechaI.Text = "" Then FechaIn = "" If txtFechaF.Text = "" Then FechaFn = "" Dim lista = New List(Of CrystalParametro) lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa)) lista.Add(New CrystalParametro("AgrupadoPor", $"{Cliente}{Sucursal}{Vendedor}{PS}{Clasificacion}{FechaIn}{FechaFn}")) lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Usuario)) If Imagen.Exists Then lista.Add(New CrystalParametro("ImagenPath", logouri)) Else lista.Add(New CrystalParametro("ImagenPath", "")) End If ImprimirbytesPDF(ImprimirPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/RepVentaUtilidadDetalleGeneral.rpt"), DtVentas, lista, "RepVentasUtilidadesDetalle", Formato), "RepVentasUtilidadesDetalle", Formato) End Sub Private Sub GenerarPDFCrystalCosto(Optional Formato As String = "PDF") Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim FechaI As Date = txtFechaI.Text.ToDate Dim FechaF As Date = txtFechaF.Text.ToDate If txtFechaI.Text = "" Then FechaI = MinFecha If txtFechaF.Text = "" Then FechaF = MaxFecha Dim Cliente = If(DdlClientes.SelectedValue = "-1", "", $" Cliente: {DdlClientes.SelectedItem.Text}") Dim Sucursal = If(DdlSubProyecto.GetSelectedText = "", "", $" Sucursal: {DdlSubProyecto.GetSelectedText}") Dim Vendedor = If(DdlVendedor.GetSelectedText = "", "", $" Vendedor: {DdlVendedor.GetSelectedText}") Dim PS = If(DdlPS.SelectedValue = "-1", "", $" P.S.: {DdlPS.SelectedText}") Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $" Clasificacion: {DdlClasificacion.SelectedItem.Text}") Dim FechaIn As String = $" Fecha Inicio: {txtFechaI.Text}" Dim FechaFn As String = $" Fecha Fin: {txtFechaF.Text}" If txtFechaI.Text = "" Then FechaIn = "" If txtFechaF.Text = "" Then FechaFn = "" Dim lista = New List(Of CrystalParametro) lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa)) lista.Add(New CrystalParametro("AgrupadoPor", $"{Cliente}{Sucursal}{Vendedor}{PS}{Clasificacion}{FechaIn}{FechaFn}")) lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Usuario)) If Imagen.Exists Then lista.Add(New CrystalParametro("ImagenPath", logouri)) Else lista.Add(New CrystalParametro("ImagenPath", "")) End If ImprimirbytesPDF(ImprimirPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/RepVentaUtilidadDetalleGeneralCosto.rpt"), DtVentas, lista, "RepVentasUtilidadesCosto", Formato), "RepVentasUtilidadesDetalleCosto", Formato) 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 Class