Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class Inventarios_RepApartados Inherits ClsPaginas #Region " PROPIEDADES " Private Property DtApartados As DataTable Get Return DirectCast(ViewState("DtApartados"), DataTable) End Get Set(value As DataTable) ViewState("DtApartados") = 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 SetValues() InicializaParam() End If End Sub #Region " SET VALUES " Private Sub SetValues() DdlSubProyectos.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) DdlSubProyectos.DataBind() DdlSubProyectos.Items.Insert(0, New ListItem(" Todas ", "-1")) If UsuarioActual.CveEmpresa = 119 Then DdlClientesWS.setEsWebService(True) Else DdlClientesWS.setEsWebService(False) DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) DdlClientesWS.DataBind() DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End If Dim DTVendedores As New DataTable DTVendedores = GlobalDTVendedores(UsuarioActual.CveEmpresa, True) DTVendedores.Merge(GlobalDTVendedores(UsuarioActual.CveEmpresa, False)) DdlVendedor.DataSource = DTVendedores DdlVendedor.DataBind() DdlVendedor.Items.Insert(0, New ListItem(" Todos ", "-1")) 'FUNCIONALIDAD 105 If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then DdlPS.setEsWebService(True) Else DdlPS.setEsWebService(False) 'FUNCIONALIDAD DE COMPUESTO If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then DdlPS.ddl.DataTextField = "PSCodigoCompuesto" End If DdlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) DdlPS.DataBind() End If txtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString txtFechaF.Text = Now.ToShortDateString End Sub #End Region Private Sub InicializaParam() Dim Anio, Mes, AnioMes, Fecha, FechaI, FechaF As String Dim CveCliente, CveVendedor, CveSucursal, CvePS As String Anio = If(Request("Anio") IsNot Nothing, Request("Anio").ToString, "-1").ToString Mes = If(Request("Mes") IsNot Nothing, Request("Mes").ToString, "-1").ToString AnioMes = If(Request("AnioMes") IsNot Nothing, Request("AnioMes").ToString, "-1").ToString Fecha = If(Request("Fecha") IsNot Nothing, Request("Fecha").ToString, "-1").ToString FechaI = If(Request("FechaI") IsNot Nothing, Request("FechaI").ToString, "-1").ToString FechaF = If(Request("FechaF") IsNot Nothing, Request("FechaF").ToString, "-1").ToString CveCliente = If(Request("CveCliente") IsNot Nothing AndAlso Request("CveCliente").ToEntero() > 0, Request("CveCliente").ToEntero(), -1).ToString CveVendedor = If(Request("CveVendedor") IsNot Nothing AndAlso Request("CveVendedor").ToEntero() > 0, Request("CveVendedor").ToEntero(), -1).ToString CveSucursal = If(Request("CveSubProyecto") IsNot Nothing AndAlso Request("CveSubProyecto").ToEntero() > 0, Request("CveSubProyecto").ToEntero(), -1).ToString CvePS = If(Request("CvePS") IsNot Nothing AndAlso Request("CvePS").ToEntero() > 0, Request("CvePS").ToEntero(), -1).ToString If FechaF <> "-1" Then txtFechaF.Text = FechaF End If If FechaI <> "-1" Then txtFechaI.Text = FechaI End If txtFechaI.Text = If(Anio <> "-1", String.Format("01/01/{0}", Anio), txtFechaI.Text) txtFechaI.Text = If(Mes <> "-1", String.Format("01/{0}/0001", Mes), txtFechaI.Text) Dim sMes As String Dim sAnio As String = If(AnioMes <> "-1", AnioMes.Substring(0, 4), "") If AnioMes.Trim.Length = 7 Then sMes = AnioMes.Substring(5, 2).ToEntero.ToString("00") Else sMes = If(AnioMes <> "-1", AnioMes.Substring(5, 1).ToEntero.ToString("00"), "") End If txtFechaI.Text = If(AnioMes <> "-1", String.Format("01/{0}/{1}", sMes, sAnio), txtFechaI.Text) If Anio <> "-1" Then txtFechaF.Text = String.Format("31/12/{0}", Anio) ElseIf Mes <> "-1" Then txtFechaF.Text = String.Format("{0}/{1}/{2}", txtFechaI.Text.ToDate.LastDayOfMonth.Day, Mes, Now.Year) ElseIf AnioMes <> "-1" Then txtFechaF.Text = txtFechaI.Text.ToDate.LastDayOfMonth.ToShortDateString End If If Fecha <> "-1" Then txtFechaI.Text = Fecha txtFechaF.Text = Fecha End If If CveCliente <> "-1" Then DdlClientesWS.SelectedValue = CveCliente DdlClientesWS.SelectedText = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("NombreComercial", $"CveCliente ={CveCliente}") Else DdlClientesWS.SelectedValue = CveCliente DdlClientesWS.SelectedText = "Todos" End If DdlVendedor.SelectedValueExist(CveVendedor) DdlSubProyectos.SelectedValueExist(CveSucursal) 'DdlPS.ddl.SelectedValueExist(CvePS) DdlPS.SelectedValue = CvePS If CvePS <> "-1" Then DdlPS.SelectedValue = CvePS DdlPS.SelectedText = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS.ToEntero)(0)("PSCodigo").ToString Else DdlPS.SelectedValue = CvePS DdlPS.SelectedText = "Todos" End If If Anio <> "-1" Or Mes <> "-1" Or AnioMes <> "-1" Or Fecha <> "-1" Or FechaI <> "-1" Or FechaF <> "-1" Or CveCliente <> "-1" Or CveVendedor <> "-1" Or CveSucursal <> "-1" Or CvePS <> "-1" Then CargaDatos() End If End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) CargaDatos() End Sub Private Sub CargaDatos() Dim CveAlmacenApartado = -1 If DdlSubProyectos.SelectedValue.ToEntero > 0 Then CveAlmacenApartado = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen IN (9) And Estatus = 'Activo' And CveSubProyecto = {DdlSubProyectos.SelectedValue.ToEntero}").ToEntero If CveAlmacenApartado <= 0 Then Alert("No se encontro el almacen de Apartado de la sucursal seleccionada. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) Exit Sub End If End If Dim ObjInventarios As New ClsInventarios If ObjInventarios.ApartadosRep(CveAlmacenApartado, DdlClientesWS.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate) Then GvDatos.DataSource = ObjInventarios.DtResultados DtApartados = ObjInventarios.DtResultados GvDatos.DataBind() UpDatos.Update() End If ObjInventarios.Dispose() End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("IDGPO").ToString.ToEntero = 1 Then e.Row.CssClass = "Totales" End If If e.Row.DBCampo("IDGPO").ToString.ToEntero = 2 Then e.Row.CssClass = "SubTotales2" End If If e.Row.DBCampo("IDGPO").ToString.ToEntero = 3 Then End If End If End Sub #Region "PDF" Private Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click If DtApartados IsNot Nothing Then Dim StrFiltro As New StringBuilder If txtFechaI.Text <> "" Then StrFiltro.AppendFormat(" Fecha Inicio: {0}", txtFechaI.Text) If txtFechaF.Text <> "" Then StrFiltro.AppendFormat(" Fecha Fin: {0}", txtFechaF.Text) If DdlSubProyectos.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Sucursal: {0}", DdlSubProyectos.SelectedItem.Text) If DdlVendedor.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Vendedor: {0}", DdlVendedor.SelectedItem.Text) If DdlClientesWS.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Cliente: {0}", DdlClientesWS.SelectedText) If DdlPS.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Producto/Servicio: {0}", DdlPS.SelectedText) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim logouri = 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("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) params.Add(New ReportParameter("Filtros", StrFiltro.ToString)) If Imagen.Exists Then params.Add(New ReportParameter("LogoPath", logouri)) Else params.Add(New ReportParameter("LogoPath", "")) End If ImprimirPDF("Empresas/Grales/Formatos/RepApartados.rdlc", DtApartados, params, String.Format("ReporteApartados-{0}", Now.ToDateTime.ToShortDateString)) Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If End Sub Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click GvDatos.ExportToExcel("Reporte de Apartados" & Now.ToShortDateString) End Sub #End Region End Class