Option Explicit On Option Strict On Imports Microsoft.Reporting.WebForms Imports Extensiones Imports System.Data Partial Class Compras_RepProductosServiciosDetalle Inherits ClsPaginas #Region "PROPIEDADES" Private Property DtDatos As DataTable Get Return CType(ViewState("DtDatos"), DataTable) End Get Set(value As DataTable) ViewState("DtDatos") = value End Set End Property Private Property CveMoneda As Integer Get Return ViewState("CveMoneda").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMoneda") = 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") CargaCombos() CargaTipoCentroCosto() Dim Grupo, Proyecto, SubProyecto, Categoria, Clasificacion, PS, Proveedor, Estatus, Usuario, Familia, SubFamilia, TipoActivoFijo, SubTipoActivoFijo, ActivoFijo, TipoGasto As String Dim Anio, Mes, AnioMes, Fecha, FechaI, FechaF As String Grupo = If(Request("GPO") IsNot Nothing AndAlso Request("GPO").ToEntero() > 0, Request("GPO").ToEntero(), -1).ToString Proyecto = If(Request("CveProyecto") IsNot Nothing AndAlso Request("CveProyecto").ToEntero() > 0, Request("CveProyecto").ToEntero(), -1).ToString SubProyecto = If(Request("CveSubProyecto") IsNot Nothing AndAlso Request("CveSubProyecto").ToEntero() > 0, Request("CveSubProyecto").ToEntero(), -1).ToString SubProyecto = If(Request("CveSubProyecto") IsNot Nothing AndAlso Request("CveSubProyecto").ToEntero() = -2, "-2", SubProyecto) Categoria = If(Request("CveCategoria") IsNot Nothing AndAlso Request("CveCategoria").ToEntero() > 0, Request("CveCategoria").ToEntero(), -1).ToString Clasificacion = If(Request("CveClasificacion") IsNot Nothing AndAlso Request("CveClasificacion").ToEntero() > 0, Request("CveClasificacion").ToEntero(), -1).ToString PS = If(Request("CvePS") IsNot Nothing AndAlso Request("CvePS").ToEntero() > 0, Request("CvePS").ToEntero(), -1).ToString Proveedor = If(Request("CveProveedor") IsNot Nothing AndAlso Request("CveProveedor").ToEntero() > 0, Request("CveProveedor").ToEntero(), -1).ToString Estatus = If(Request("CveEstatusFactura") IsNot Nothing AndAlso Request("CveEstatusFactura").ToEntero() > 0, Request("CveEstatusFactura").ToEntero(), -1).ToString Usuario = If(Request("CveUsuario") IsNot Nothing AndAlso Request("CveUsuario").ToEntero() > 0, Request("CveUsuario").ToEntero(), -1).ToString Familia = If(Request("CveFamilia") IsNot Nothing AndAlso Request("CveFamilia").ToEntero() > -3, Request("CveFamilia").ToEntero(), -1).ToString SubFamilia = If(Request("CveSubFamilia") IsNot Nothing AndAlso Request("CveSubFamilia").ToEntero() > -3, Request("CveSubFamilia").ToEntero(), -1).ToString TipoActivoFijo = If(Request("CveTipoAF") IsNot Nothing AndAlso Request("CveTipoAF").ToEntero() > 0, Request("CveTipoAF").ToEntero(), -1).ToString SubTipoActivoFijo = If(Request("CveSubTipoAF") IsNot Nothing AndAlso Request("CveSubTipoAF").ToEntero() > 0, Request("CveSubTipoAF").ToEntero(), -1).ToString ActivoFijo = If(Request("CveAF") IsNot Nothing AndAlso Request("CveAF").ToEntero() > 0, Request("CveAF").ToEntero(), -1).ToString CveMoneda = If(Request("CveMoneda") IsNot Nothing AndAlso Request("CveMoneda").ToEntero() > 0, Request("CveMoneda").ToEntero(), -1).ToString.ToEntero TipoGasto = If(Request("CveTipoGasto") IsNot Nothing AndAlso Request("CveTipoGasto").ToEntero > 0, Request("CveTipoGasto").ToEntero(), -1).ToString 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 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) txtFechaI.Text = If(AnioMes <> "-1", String.Format("01/{0}/{1}", AnioMes.Substring(5, 1).PadLeft(2, "0"c), AnioMes.Substring(0, 4)), txtFechaI.Text) If Fecha <> "-1" Then txtFechaI.Text = Fecha txtFechaF.Text = Fecha Else If FechaI <> "-1" Then txtFechaI.Text = FechaI End If If FechaF <> "-1" Then txtFechaF.Text = FechaF End If End If DdlCategoria.SelectedValue = Categoria If Clasificacion.ToEntero > 0 Then CargaClasificaciones(DdlCategoria.SelectedValue.ToEntero) DdlClasificacion.SelectedValueExist(Clasificacion) End If DdlPS.SelectedValue = PS DdlProyecto.SelectedValue = Proyecto DdlSubProyecto.SelectedValue = SubProyecto DdlFamilia.SelectedValue = Familia DdlSubFamilia.SelectedValue = SubFamilia DdlProveedor.SelectedValue = Proveedor DdlEstatus.SelectedValue = Estatus DdlUsuario.SelectedValue = Usuario DdlTipoAF.SelectedValue = TipoActivoFijo DdlTipoGasto.SelectedValueExist(TipoGasto) DdlSubTipoAF.SelectedValue = SubTipoActivoFijo DdlAF.SelectedValue = ActivoFijo CargaDatos(Proyecto.ToEntero, SubProyecto.ToEntero, Categoria.ToEntero, Clasificacion.ToEntero, PS.ToEntero, Proveedor.ToEntero, Usuario.ToEntero, Estatus.ToEntero, Grupo.ToEntero, Familia.ToEntero, SubFamilia.ToEntero, TipoActivoFijo.ToEntero, SubTipoActivoFijo.ToEntero, ActivoFijo.ToEntero, TipoGasto.ToEntero) End If End Sub Private Sub CargaTipoCentroCosto() If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then DdlSubProyecto.Items.Clear() TdProyecto.Visible = False TdProyecto2.Visible = False LtSubProyecto.Text = "Sucursal:" DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyecto.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then DdlSubProyecto.Items.Clear() TdProyecto.Visible = False TdProyecto2.Visible = False LtSubProyecto.Text = "Proyecto:" DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyecto.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then TdProyecto.InnerText = "Sucursal:" LtSubProyecto.Text = "Proyecto:" ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then TdProyecto.InnerText = "Proyecto:" LtSubProyecto.Text = "Sucursal:" End If End Sub Private Sub CargaCombos() 'Cargo Proyectos DdlProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa) DdlProyecto.DataBind() 'Cargo Categorias DdlCategoria.DataSource = GlobalDTGralCategorias(UsuarioActual.CveEmpresa) DdlCategoria.DataBind() DdlTipoGasto.DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa) DdlTipoGasto.DataBind() 'CargaProveedor DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlProveedor.DataBind() 'CargaUsuarios DdlUsuario.DataSource = GlobalDTUsuarios.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) DdlUsuario.DataBind() 'CargaEstatus DdlEstatus.DataSource = GlobalDTCompEstatusFactura DdlEstatus.DataBind() 'CARGA COSTOS If UsuarioActual.CveEmpresa = 66 Then 'COSTOS PROYECTO RowCostos.Visible = True 'Carga Familias DdlFamilia.DataSource = GlobalDTFamilias(66) DdlFamilia.DataBind() 'Carga SubFamilias DdlSubFamilia.DataSource = GlobalDTSubFamilias(66) DdlSubFamilia.DataBind() 'COSTOS AF RowActivoFijo.Visible = True 'Carga Tipos AF DdlTipoAF.DataSource = GlobalDTTipoActivoFijo(66) DdlTipoAF.DataBind() 'Carga SubTipos AF DdlSubTipoAF.DataSource = GlobalDTSubTipoActivoFijo(66) DdlSubTipoAF.DataBind() 'Carga AF 'DdlAF.DataSource = GlobalDTActivoFijos().FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)) 'DdlAF.DataBind() End If If UsuarioActual.Empresa.GralSoloProyecto Then TdProyecto.Visible = False TdProyecto2.Visible = False LtSubProyecto.Text = "Proyecto" DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa) DdlSubProyecto.DataBind() End If End Sub Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() 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) Dim TCEspecifico = If(TxtEspecifico.Text.Trim = "", -1, TxtEspecifico.Text.ToEntero) If ObjCompras.GetRepProductosServiciosDetalle(DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlCategoria.SelectedValue.ToEntero, 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, DdlTipoAF.SelectedValue.ToEntero, DdlSubTipoAF.SelectedValue.ToEntero, DdlAF.SelectedValue.ToEntero, CveMoneda, RblTipoCambio.SelectedValue.ToEntero, TCEspecifico:=TCEspecifico, TipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then DtDatos = ObjCompras.DtResultados Else DtDatos = Nothing End If ObjCompras.Dispose() CargaGrid("") End Sub Private Sub CargaDatos(Proyecto As Integer, SubProyecto As Integer, Categoria As Integer, Clasificacion As Integer, PS As Integer, Proveedor As Integer, Usuario As Integer, Estatus As Integer, Grupo As Integer, Familia As Integer, SubFamilia As Integer, TipoActivoFijo As Integer, SubTipoActivoFijo As Integer, ActivoFijo As Integer, TipoGasto As Integer) 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) Dim TCEspecifico = If(TxtEspecifico.Text.Trim = "", -1, TxtEspecifico.Text.ToEntero) If ObjCompras.GetRepProductosServiciosDetalle(Proyecto, SubProyecto, Categoria, Clasificacion, PS, FechaI, FechaF, Proveedor, Usuario, Estatus, UsuarioActual.CveEmpresa, Grupo, Familia, SubFamilia, TipoActivoFijo, SubTipoActivoFijo, ActivoFijo, CveMoneda, RblTipoCambio.SelectedValue.ToEntero, TCEspecifico:=TCEspecifico, TipoGasto:=TipoGasto, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then DtDatos = ObjCompras.DtResultados Else DtDatos = Nothing End If ObjCompras.Dispose() CargaGrid("") End Sub #Region " D R O P - D O W N S | SELECT INDEX CHANGED" Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged DdlSubProyecto.Items.Clear() If DdlProyecto.SelectedValue <> "-1" Then DdlSubProyecto.DataSource = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero) DdlSubProyecto.DataBind() End If DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Protected Sub DdlCategoria_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCategoria.SelectedIndexChanged CargaClasificaciones(DdlCategoria.SelectedValue.ToEntero) End Sub Private Sub CargaClasificaciones(CveCategoria As Integer) DdlClasificacion.Items.Clear() If DdlCategoria.SelectedValue <> "-1" Then DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, CveCategoria:=CveCategoria) DdlClasificacion.DataBind() 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 DdlPS.Items.Clear() If DdlClasificacion.SelectedValue <> "-1" Then DdlPS.DataSource = GlobalDTProductosServicios(UsuarioActual.CveEmpresa) DdlPS.DataBind() End If DdlSubFamilia.Items.Insert(0, New ListItem("Sin Asignar", "-2")) DdlPS.Items.Insert(0, New ListItem("Todos", "-1")) 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("Todas", "-1")) End Sub Protected Sub DdlTipoAF_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoAF.SelectedIndexChanged DdlSubTipoAF.Items.Clear() If DdlTipoAF.SelectedValue <> "-1" Then DdlSubTipoAF.DataSource = GlobalDTSubTipoActivoFijo(66).FiltraParametros(String.Format("CveTipoActivoFijo = {0}", DdlTipoAF.SelectedValue.ToEntero)) DdlSubTipoAF.DataBind() Else DdlSubTipoAF.DataSource = GlobalDTSubTipoActivoFijo(66) 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.SelectedValue <> "-1" Then DdlAF.DataSource = GlobalDTActivoFijos(UsuarioActual.CveEmpresa, DdlSubTipoAF.SelectedValue.ToEntero) DdlAF.DataBind() 'Else ' DdlAF.DataSource = GlobalDTSubTipoActivoFijo(66) ' DdlAF.DataBind() End If DdlAF.Items.Insert(0, New ListItem("Todas", "-1")) End Sub #End Region 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("Orden") = "" AndAlso e.Row.DBCampo("RazonSocial") = "" Then e.Row.CssClass = "Totales" End If e.Row.Cells(6).Width = Unit.Pixel(100) e.Row.Cells(3).Width = Unit.Pixel(80) End If End Sub #Region "tipo Cambio" Private Sub RblTipoCambio_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoCambio.SelectedIndexChanged If RblTipoCambio.SelectedValue.ToEntero = 3 Then Dim TipoCambio As Double LiEspecifico.Visible = True TipoCambio = GlobalTipoCambio(Now) TxtEspecifico.Text = TipoCambio.ToString Else LiEspecifico.Visible = False End If UpBodyTipoCambio.Update() End Sub 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 "O R D E N A M I E N T O" Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) Dim Orden As String = "" Dim Campo As String = "" Dim Literal As Literal = Nothing Const OrdenInicial As String = "" Dim Arg(2) As String Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c) Campo = Arg(0) Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal) If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo) Literal.Text = String.Format("") Else ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo) Literal.Text = String.Format("") End If Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString ViewState("Orden") = Orden CargaGrid(Orden) End Sub Protected Sub CargaGrid(Orden As String) Dim DV As DataView = Nothing DV = New DataView(DtDatos, "", Orden, DataViewRowState.CurrentRows) If Orden <> String.Empty Then GvDatos.DataSource = DV.ToTable() Else GvDatos.DataSource = DtDatos End If GvDatos.DataBind() UPDatos.Update() DV.Dispose() End Sub #End Region #Region " IMPRESION - NUEVO " Protected Sub ImgExcel_Click(sender As Object, e As System.EventArgs) Handles ImgExcel.Click GenerarPDF("EXCEL") End Sub Private Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click GenerarPDF() End Sub Private Sub GenerarPDF(Optional Formato As String = "PDF") 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 txtFechaI.Text = "" Then FechaI = "-1".ToDate If txtFechaF.Text = "" Then FechaF = "-1".ToDate Dim Grupo = If(DdlGrupo.SelectedValue = "-1", "", $" Grupo: {DdlGrupo.SelectedItem.Text}") Dim Proyecto = If(DdlProyecto.SelectedValue = "-1", "", $" Proyecto: {DdlProyecto.SelectedItem.Text}") Dim SubProyecto = If(DdlSubProyecto.SelectedValue = "-1", "", $" SubProyecto: {DdlSubProyecto.SelectedItem.Text}") Dim Categoria = If(DdlCategoria.SelectedValue = "-1", "", $" Categoria: {DdlCategoria.SelectedItem.Text}") Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $" Clasificación: {DdlClasificacion.SelectedItem.Text}") Dim PS = If(DdlPS.SelectedValue = "-1", "", $" P.S: {DdlPS.SelectedItem.Text}") Dim Proveedor = If(DdlProveedor.SelectedValue = "-1", "", $" Proveedor: {DdlProveedor.SelectedItem.Text}") Dim Estatus = If(DdlEstatus.SelectedValue = "-1", "", $" Estatus: {DdlEstatus.SelectedItem.Text}") Dim TipoAF = If(DdlTipoAF.SelectedValue = "-1", "", $" Tipo AF: {DdlTipoAF.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 TCEspecifico = If(TxtEspecifico.Text.Trim = "", -1, TxtEspecifico.Text.ToEntero) If DtDatos.Rows.Count > 0 Then 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("FechaInicio", FechaI)) 'params.Add(New ReportParameter("FechaFin", FechaF)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) params.Add(New ReportParameter("AgrupoPor", $"{Grupo}{Proyecto}{SubProyecto}{Categoria}{Clasificacion}{PS}{Proveedor}{Estatus}{TipoAF}{FechaIn}{FechaFn}")) If Imagen.Exists Then params.Add(New ReportParameter("LogoPath", logouri)) Else params.Add(New ReportParameter("LogoPath", "")) End If ImprimirPDF("Empresas/Grales/Formatos/RepProductosServiciosDetalleCompra.rdlc", DtDatos, params, "ReportePSDetalle", Formato) Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If End Sub #End Region End Class