361 lines
17 KiB
VB.net
361 lines
17 KiB
VB.net
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 = "<a class=" + "" + Css + "" + " href=" + "" + Liga + "" + ">" + e.Row.Cells(0).Text + "</a>"
|
|
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 = "<a class=" + "" + Css + "" + " href=" + "" + Liga + "" + ">" + e.Row.Cells(0).Text + "</a>"
|
|
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", "", $" <b>Agrupador:</b> {DdlAgrupador.SelectedItem.Text}")
|
|
Dim Proyecto = If(DdlProyecto.SelectedValue = "-1", "", $" <b>Proyecto:</b> {DdlProyecto.SelectedItem.Text}")
|
|
Dim SubProyecto = If(DdlSubProyecto.SelectedValue = "-1", "", $" <b>SubProyecto:</b> {DdlSubProyecto.SelectedItem.Text}")
|
|
Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $" <b>Clasificación:</b> {DdlClasificacion.SelectedItem.Text}")
|
|
Dim TipoGasto = If(DdlTipoGasto.SelectedValue = "-1", "", $" <b>Tipo Gasto:</b> {DdlTipoGasto.SelectedItem.Text}")
|
|
Dim FechaIn As String = $" <b>Fecha Inicio:</b> {TxtFiltrosFechaInicio.Text}"
|
|
Dim FechaFn As String = $" <b>Fecha Fin:</b> {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
|