Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class Contratos_RepPresupuestosDetalle Inherits ClsPaginas #Region "P R O P I E D A D E S" Public Property Gpo() As Integer Get Return DirectCast(ViewState("Gpo"), Integer) End Get Set(ByVal value As Integer) ViewState("Gpo") = value End Set End Property Public Property DtPresupuestos() As DataTable Get Return DirectCast(ViewState("DtPresupuestos"), DataTable) End Get Set(ByVal value As DataTable) ViewState("DtPresupuestos") = 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 InicializaValores() CargaUrlParametros() CargaDatos() End If End Sub #Region " INICIALIZA VALORES " Private Sub InicializaValores() TxtFiltrosFechaInicio.Text = $"01/09/{Now.Year - 1}" TxtFiltrosFechaFin.Text = $"31/08/{Now.Year}" DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) DdlClasificacion.Items.Insert(0, New ListItem("Todas", "-1")) DdlClasificacion.DataBind() DdlTipoGasto.DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa) DdlTipoGasto.DataBind() DdlProyecto.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1).FiltraParametros("", "", {"CveProyecto", "Proyecto"}), GlobalDTProyectos(UsuarioActual.CveEmpresa, -1).FiltraParametros("", "", {"CveProyecto", "Proyecto"})) DdlProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlProyecto.DataBind() CargaSubProyecto() UpFiltros.Update() End Sub Private Sub CargaSubProyecto() DdlSubProyecto.Items.Clear() If DdlProyecto.SelectedValue.ToEntero > 0 Or UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then DdlSubProyecto.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa, 1)) End If DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyecto.DataBind() End Sub Private Sub CargaUrlParametros() Dim CveClasificacion = IfNull(Request("CveClasificacion"), -1).ToString.ToEntero Dim FechaInicio = IfNull(Request("FechaInicio"), $"01/09/{Now.Year}").ToString Dim FechaFin = IfNull(Request("FechaFin"), $"31/08/{Now.Year + 1}").ToString Dim CveProyecto = IfNull(Request("CveProyecto"), -1).ToString.ToEntero Dim CveSubProyecto = IfNull(Request("CveSubProyecto"), -1).ToString.ToEntero Dim CveTipoGasto = IfNull(Request("CveTipoGasto"), -1).ToString.ToEntero Dim Agrupador = IfNull(Request("Agrupador"), -1).ToString.ToEntero Gpo = IfNull(Request("CveAgrupador"), -1).ToString.ToEntero Dim Mensual = CBool(IfNull(Request("Mensual"), False)) Dim EsProyecto = CBool(IfNull(Request("EsProyecto"), False)) If Agrupador = 1 Then Agrupador = 2 Else Agrupador = 1 DdlAgrupador.SelectedValueExist(Agrupador) DdlClasificacion.SelectedValueExist(CveClasificacion) If DdlAgrupador.SelectedValue.ToEntero = 2 Then DdlClasificacion.SelectedValueExist(Gpo) DdlProyecto.SelectedValueExist(CveProyecto) DdlSubProyecto.SelectedValueExist(CveSubProyecto) ElseIf DdlAgrupador.SelectedValue.ToEntero = 1 Then If Not EsProyecto Then Dim Dr As DataRow = GlobalDTSubProyectos(-1, Gpo)(0) DdlProyecto.SelectedValueExist(Dr("CveProyecto")) CargaSubProyecto() DdlSubProyecto.SelectedValueExist(Gpo) Else DdlProyecto.SelectedValueExist(Gpo) DdlSubProyecto.SelectedValueExist(CveSubProyecto) End If End If DdlTipoGasto.SelectedValueExist(CveTipoGasto) TxtFiltrosFechaInicio.Text = FechaInicio TxtFiltrosFechaFin.Text = FechaFin ChkMensual.Checked = Mensual End Sub #End Region #Region " CARGA DATOS " Protected Sub BtnConsultarFiltros_Click(sender As Object, e As EventArgs) CargaDatos() End Sub Private Sub CargaDatos() If ChkMensual.Checked Then Dim ObjPresupuestos As New ClsContratos If ObjPresupuestos.GetPresupuestosMensualRep(-1, DdlTipoGasto.SelectedValue.ToEntero, DdlAgrupador.SelectedValue.ToEntero, TxtFiltrosFechaInicio.Text.ToDate, TxtFiltrosFechaFin.Text.ToDate, UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, DdlClasificacion.SelectedValue.ToEntero) Then GvDatosMensual.DataSource = ObjPresupuestos.DtResultados DtPresupuestos = ObjPresupuestos.DtResultados End If ObjPresupuestos.Dispose() DivDatosMensual.Visible = True DivRepDatos.Visible = False GvDatosMensual.DataBind() Else Dim ObjPresupuestos As New ClsContratos If ObjPresupuestos.GetPresupuestosRep(-1, DdlTipoGasto.SelectedValue.ToEntero, DdlAgrupador.SelectedValue.ToEntero, TxtFiltrosFechaInicio.Text.ToDate, TxtFiltrosFechaFin.Text.ToDate, UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, DdlClasificacion.SelectedValue.ToEntero) Then GvDatos.DataSource = ObjPresupuestos.DtResultados DtPresupuestos = ObjPresupuestos.DtResultados End If ObjPresupuestos.Dispose() DivDatosMensual.Visible = False DivRepDatos.Visible = True GvDatos.DataBind() End If UpDatos.Update() UpDatosMensual.Update() End Sub #End Region Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Select Case e.Row.DBCampo("Tipo").ToEntero Case 0 e.Row.CssClass = "Totales" Case 1 e.Row.CssClass = "SubTotales" End Select If e.Row.DBCampo("Autorizado").ToDecimal = 0 Then e.Row.Cells(1).Text = "-" End If If e.Row.DBCampo("Ejercido").ToDecimal = 0 Then e.Row.Cells(2).Text = "-" End If If e.Row.DBCampo("EjercidoPorcentaje").ToDecimal = 0 Then e.Row.Cells(3).Text = "-" End If If e.Row.DBCampo("PorEjercer").ToDecimal = 0 Then e.Row.Cells(4).Text = "-" End If If e.Row.DBCampo("PorEjercerPorcentaje").ToDecimal = 0 Then e.Row.Cells(5).Text = "-" End If If e.Row.DBCampo("Pagado").ToDecimal = 0 Then e.Row.Cells(6).Text = "-" End If If e.Row.RowIndex > 0 Then Dim CveAgrupador = e.Row.DBCampo("CveAgrupador").ToEntero Dim EsProyecto = False Dim FechaFin = e.Row.DBCampo("FechaFFiltro").ToDate.ToShortDateString Dim FechaInicio = e.Row.DBCampo("FechaIFiltro").ToDate.ToShortDateString If Not CveAgrupador > 0 Then If DdlAgrupador.SelectedValue.ToEntero = 2 Then CveAgrupador = e.Row.DBCampo("CveProyecto").ToEntero Else CveAgrupador = e.Row.DBCampo("CveClasificacion").ToEntero End If EsProyecto = True End If Dim Css = "Texto" Dim Liga = $"/Contratos/RepPresupuestosDetalleCompras.aspx?&CveAgrupador={CveAgrupador}&CveClasificacion={e.Row.DBCampo("CveClasificacionFiltro")}&CveProyecto={e.Row.DBCampo("CveProyectoFiltro")}&CveSubProyecto={e.Row.DBCampo("CveSubProyectoFiltro")}&CveTipoGasto={e.Row.DBCampo("CveTipoGastoFiltro")}&Agrupador={e.Row.DBCampo("AgrupadorFiltro")}&Mensual={False}&EsProyecto={EsProyecto}&FechaFin={FechaFin}&FechaInicio={FechaInicio}" e.Row.Cells(0).Text = "" + e.Row.Cells(0).Text + "" End If End If End Sub Protected Sub GvDatosMensual_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then Select Case e.Row.DBCampo("Tipo").ToEntero Case 0 e.Row.CssClass = "Totales" Case 1 e.Row.CssClass = "SubTotales" End Select If e.Row.DBCampo("EneroEjercido").ToDecimal = 0 Then e.Row.Cells(3).Text = "-" End If If e.Row.DBCampo("EneroPagado").ToDecimal = 0 Then e.Row.Cells(5).Text = "-" End If If e.Row.DBCampo("FebreroEjercido").ToDecimal = 0 Then e.Row.Cells(7).Text = "-" End If If e.Row.DBCampo("FebreroPagado").ToDecimal = 0 Then e.Row.Cells(9).Text = "-" End If If e.Row.DBCampo("MarzoEjercido").ToDecimal = 0 Then e.Row.Cells(11).Text = "-" End If If e.Row.DBCampo("MarzoPagado").ToDecimal = 0 Then e.Row.Cells(13).Text = "-" End If If e.Row.DBCampo("AbrilEjercido").ToDecimal = 0 Then e.Row.Cells(15).Text = "-" End If If e.Row.DBCampo("AbrilPagado").ToDecimal = 0 Then e.Row.Cells(17).Text = "-" End If If e.Row.DBCampo("MayoEjercido").ToDecimal = 0 Then e.Row.Cells(19).Text = "-" End If If e.Row.DBCampo("MayoPagado").ToDecimal = 0 Then e.Row.Cells(21).Text = "-" End If If e.Row.DBCampo("JunioEjercido").ToDecimal = 0 Then e.Row.Cells(23).Text = "-" End If If e.Row.DBCampo("JunioPagado").ToDecimal = 0 Then e.Row.Cells(25).Text = "-" End If If e.Row.DBCampo("JulioEjercido").ToDecimal = 0 Then e.Row.Cells(27).Text = "-" End If If e.Row.DBCampo("JulioPagado").ToDecimal = 0 Then e.Row.Cells(29).Text = "-" End If If e.Row.DBCampo("AgostoEjercido").ToDecimal = 0 Then e.Row.Cells(31).Text = "-" End If If e.Row.DBCampo("AgostoPagado").ToDecimal = 0 Then e.Row.Cells(33).Text = "-" End If If e.Row.DBCampo("SeptiembreEjercido").ToDecimal = 0 Then e.Row.Cells(35).Text = "-" End If If e.Row.DBCampo("SeptiembrePagado").ToDecimal = 0 Then e.Row.Cells(37).Text = "-" End If If e.Row.DBCampo("OctubreEjercido").ToDecimal = 0 Then e.Row.Cells(39).Text = "-" End If If e.Row.DBCampo("OctubrePagado").ToDecimal = 0 Then e.Row.Cells(41).Text = "-" End If If e.Row.DBCampo("NoviembreEjercido").ToDecimal = 0 Then e.Row.Cells(43).Text = "-" End If If e.Row.DBCampo("NoviembrePagado").ToDecimal = 0 Then e.Row.Cells(45).Text = "-" End If If e.Row.DBCampo("DiciembreEjercido").ToDecimal = 0 Then e.Row.Cells(47).Text = "-" End If If e.Row.DBCampo("DiciembrePagado").ToDecimal = 0 Then e.Row.Cells(49).Text = "-" End If If e.Row.DBCampo("TotalEjercido").ToDecimal = 0 Then e.Row.Cells(50).Text = "-" End If If e.Row.DBCampo("TotalPagado").ToDecimal = 0 Then e.Row.Cells(52).Text = "-" End If If e.Row.RowIndex > 0 Then Dim CveAgrupador = e.Row.DBCampo("CveAgrupador").ToEntero Dim EsProyecto = False Dim FechaFin = e.Row.DBCampo("FechaFFiltro").ToDate.ToShortDateString Dim FechaInicio = e.Row.DBCampo("FechaIFiltro").ToDate.ToShortDateString If Not CveAgrupador > 0 Then If DdlAgrupador.SelectedValue.ToEntero = 2 Then CveAgrupador = e.Row.DBCampo("CveProyecto").ToEntero Else CveAgrupador = e.Row.DBCampo("CveClasificacion").ToEntero End If EsProyecto = True End If Dim Css = "Texto" Dim Liga = $"/Contratos/RepPresupuestosDetalleCompras.aspx?&CveAgrupador={CveAgrupador}&CveClasificacion={e.Row.DBCampo("CveClasificacionFiltro")}&CveProyecto={e.Row.DBCampo("CveProyectoFiltro")}&CveSubProyecto={e.Row.DBCampo("CveSubProyectoFiltro")}&CveTipoGasto={e.Row.DBCampo("CveTipoGastoFiltro")}&Agrupador={e.Row.DBCampo("AgrupadorFiltro")}&Mensual={False}&EsProyecto={EsProyecto}&FechaFin={FechaFin}&FechaInicio={FechaInicio}" e.Row.Cells(0).Text = "" + e.Row.Cells(0).Text + "" End If End If End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) CargaSubProyecto() End Sub #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 Agrupador = If(DdlAgrupador.SelectedValue = "-1", "", $" Agrupador: {DdlAgrupador.SelectedItem.Text}") Dim Proyecto = If(DdlProyecto.SelectedValue = "-1", "", $" Proyecto: {DdlProyecto.SelectedItem.Text}") Dim SubProyecto = If(DdlSubProyecto.SelectedValue = "-1", "", $" SubProyecto: {DdlSubProyecto.SelectedItem.Text}") Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $" Clasificación: {DdlClasificacion.SelectedItem.Text}") Dim TipoGasto = If(DdlTipoGasto.SelectedValue = "-1", "", $" Tipo Gasto: {DdlTipoGasto.SelectedItem.Text}") Dim FechaIn As String = $" Fecha Inicio: {TxtFiltrosFechaInicio.Text}" Dim FechaFn As String = $" Fecha Fin: {TxtFiltrosFechaFin.Text}" If TxtFiltrosFechaInicio.Text = "" Then FechaIn = "" If TxtFiltrosFechaFin.Text = "" Then FechaFn = "" If DtPresupuestos.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("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) params.Add(New ReportParameter("AgrupadoPor", $"{FechaIn}{FechaFn}{Agrupador}{Proyecto}{SubProyecto}{Clasificacion}{TipoGasto}")) params.Add(New ReportParameter("Autorizado", DtPresupuestos.Rows(0)("Autorizado").ToString.FormatoNumero())) params.Add(New ReportParameter("Ejercido", DtPresupuestos.Rows(0)("Ejercido").ToString.FormatoNumero())) params.Add(New ReportParameter("PorEjercer", DtPresupuestos.Rows(0)("PorEjercer").ToString.FormatoNumero())) If Imagen.Exists Then params.Add(New ReportParameter("LogoPath", logouri)) Else params.Add(New ReportParameter("LogoPath", "")) End If ImprimirPDF("Empresas/Grales/Formatos/RepPresupuestoAnual.rdlc", DtPresupuestos, params, "Reporte de Presupuestos Anual", Formato) Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If End Sub #End Region End Class