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