Files
SIG/AF/RepAF.aspx.vb

345 lines
17 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class AF_RepAF
Inherits ClsPaginas
#Region " PROPIEDADES "
Private Property DtActivosFijos As DataTable
Get
Return CType(ViewState("DtActivosFijos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtActivosFijos") = value
End Set
End Property
Private ReadOnly Property CveActivoFijo As Integer
Get
Return ViewState("CveActivoFijo").ToString.ToEntero
End Get
End Property
Private Property DTAFCaracteristicas As DataTable
Get
Return CType(ViewState("DTAFCaracteristicas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTAFCaracteristicas") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
CargaFiltros()
'CargaDatos()
' If UsuarioActual.Empresa.GralSoloProyecto Then
DivProyecto.Visible = False
LblSubProyecto.Text = "Proyecto: "
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
' End If
End If
End Sub
#Region " CARGA COMBOS "
Protected Sub CargaFiltros()
DdlSubTipoActivo.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
DdlEstatus.DataSource = GlobalDTEstadoActivoFijo
DdlEstatus.DataBind()
DdlEstatus.Items.Insert(0, New ListItem("Todos", "-1"))
DdlProyecto.DataSource = GlobalDTProyectos(UsuarioActual.CveEmpresa)
DdlProyecto.DataBind()
DdlProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
DdlResponsable.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa).FiltraParametros("", "NombreCompleto")
DdlResponsable.DataBind()
DdlResponsable.Items.Insert(0, New ListItem("Todos", "-1"))
DdlTipoActivo.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("", "TipoActivoFijo")
DdlTipoActivo.DataBind()
DdlTipoActivo.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs)
DdlSubProyecto.Items.Clear()
DdlSubProyecto.DataSource = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
#End Region
#Region " CARGA DATOS "
Protected Sub BtnFiltrar_Click1(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Public Sub CargaDatos()
Dim ObjAF As New ClsAF()
Dim Codigo As String = "-1"
Dim Descripcion As String = "-1"
Dim CveMarcaActivoFijo As Integer = -1
Dim NoSerie As String = "-1"
Dim Año As Integer = -1
Dim CvePersonaResponsable As Integer = -1
If TxtAño.Text.Trim <> String.Empty Then Año = TxtAño.Text.Trim.ToEntero
Dim strSQL1 As New StringBuilder
Dim booPrimerCampo As Boolean = False
Dim intContador As Integer = 0
For Each DR As GridViewRow In GvCaracteristicas.Rows
Dim CveCaracteristicaOpcion As Integer = -1
Dim CveValor As Integer = DR.FCHiddenField("HdnCveValor").Value.ToEntero
Dim Valor As String = DR.FCTextBox("TxtValor").Text.Trim
Dim CveCaracteristica As Integer = DR.FCHiddenField("HdnCveCaracteristica").Value.ToEntero
Select Case DR.FCHiddenField("HdnEsOpcion").Value
Case "0", "4"
If booPrimerCampo = True And Valor.Length <> 0 Then strSQL1.Append(" or ")
If Valor.Length <> 0 Then
If booPrimerCampo = False Then strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ")
strSQL1.AppendFormat(" (CveCaracteristica = {0} and Valor like '%{1}%') ", CveCaracteristica, Valor)
If booPrimerCampo = False Then booPrimerCampo = True
intContador += 1
End If
Case "1" 'Listado o DropDownList
CveCaracteristicaOpcion = DR.FCDropDownList("DdlRespuesta").SelectedValue.ToEntero
If booPrimerCampo = True And CveCaracteristicaOpcion <> 0 Then strSQL1 = strSQL1.Append(" or ")
If CveCaracteristicaOpcion <> 0 Then
If booPrimerCampo = False Then strSQL1 = strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ")
strSQL1.AppendFormat(" (CveCaracteristica = {0} and CveOpcion = {1} ) ", CveCaracteristica, CveCaracteristicaOpcion)
If booPrimerCampo = False Then booPrimerCampo = True
intContador += 1
End If
Case "2" 'Radio o RadioButtonList
CveCaracteristicaOpcion = DR.FCRadioButtonList("RbRespuesta").SelectedValue.ToEntero
If booPrimerCampo = True And CveCaracteristicaOpcion <> 0 Then strSQL1 = strSQL1.Append(" or ")
If CveCaracteristicaOpcion <> 0 Then
If booPrimerCampo = False Then strSQL1 = strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ")
strSQL1.AppendFormat(" (CveCaracteristica = {0} and CveOpcion = {1} ) ", CveCaracteristica, CveCaracteristicaOpcion)
If booPrimerCampo = False Then booPrimerCampo = True
intContador += 1
End If
Case "3"
If booPrimerCampo = True And Valor.Length <> 0 Then strSQL1.Append(" or ")
If Valor.Length <> 0 Then
If booPrimerCampo = False Then strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ")
strSQL1.AppendFormat(" (CveCaracteristica = {0} and Valor = '{1}') ", CveCaracteristica, Valor)
If booPrimerCampo = False Then booPrimerCampo = True
intContador += 1
End If
Case "5"
Valor = DR.FCCheckBox("ChbValor").Checked.ToString
If booPrimerCampo = True And Valor.Length <> 0 Then strSQL1.Append(" or ")
If Valor.Length <> 0 Then
If booPrimerCampo = False Then strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ")
strSQL1.AppendFormat(" (CveCaracteristica = {0} and Valor = '{1}') ", CveCaracteristica, Valor)
If booPrimerCampo = False Then booPrimerCampo = True
intContador += 1
End If
Case "6"
Valor = DR.FCTextBox("TxtValorNum").Text.Trim
If booPrimerCampo = True And Valor.Length <> 0 Then strSQL1.Append(" or ")
If Valor.Length <> 0 Then
If booPrimerCampo = False Then strSQL1.Append("Select CveActivoFijo from AF_ActivosFijosValores where ")
strSQL1.AppendFormat(" (CveCaracteristica = {0} and Valor like '{1}') ", CveCaracteristica, Valor)
If booPrimerCampo = False Then booPrimerCampo = True
intContador += 1
End If
End Select
Next
If intContador > 0 Then strSQL1.AppendFormat(" group by CveActivoFijo having count(*)={0}", intContador)
If ObjAF.GetRepActivosFijos(-1, UsuarioActual.CveEmpresa, Codigo, Descripcion, DdlTipoActivo.SelectedValue.ToEntero, DdlSubTipoActivo.SelectedValue.ToEntero, NoSerie, Año, DdlResponsable.SelectedValue.ToEntero, DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, strSQL1.ToString, -1, DdlAgrupador.SelectedValue.ToEntero) Then
If ObjAF.DtResultados.Rows.Count > 0 Then
DtActivosFijos = ObjAF.DtResultados
'If DdlAgrupador.SelectedValue = "6" Then
' CargaDdlResponsable()
'End If
Else
DtActivosFijos = Nothing
Alert("No se encontraron registros con los parámetros solicitados.", Extensiones.TipoMensaje.MsgAdvertencia)
End If
End If
ObjAF.Dispose()
CargaGV()
End Sub
Private Sub CargaGV()
GvDatos.DataSource = DtActivosFijos
GvDatos.DataBind()
UpGV.Update()
If (GvDatos.Rows.Count > 0) Then
GvDatos.UseAccessibleHeader = True
GvDatos.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGV();")
End If
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.FCHyperLink("Hpl").NavigateUrl = $"/AF/CatAF.aspx?GPO={DdlAgrupador.SelectedValue}&CveTipoActivoFijo={e.Row.DBCampo("CveTipoActivoFijo")}&CveSubTipoActivoFijo={e.Row.DBCampo("CveSubTipoActivoFijo")}&CvePersonaResponsable={e.Row.DBCampo("CvePersonaResponsable")}&CveSubProyecto={e.Row.DBCampo("CveSubProyecto")}&CveEstadoActivoFijo={e.Row.DBCampo("CveEstadoActivoFijo")}&Anio={e.Row.DBCampo("Anio")}"
End If
End Sub
#End Region
#Region " CARACTERISTICAS "
Protected Sub DdlTipoActivo_SelectedIndexChanged(sender As Object, e As EventArgs)
DdlSubTipoActivo.Items.Clear()
DdlSubTipoActivo.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveTipoActivoFijo = {0}", DdlTipoActivo.SelectedValue), "SubTipoActivoFijo")
DdlSubTipoActivo.DataBind()
DdlSubTipoActivo.Items.Insert(0, New ListItem("Todos", "-1"))
CargaCaracteristicas()
End Sub
Protected Sub DdlSubTipoActivo_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaCaracteristicas()
End Sub
Private Sub CargaCaracteristicas()
Dim ObjAFCaracteristicas As New ClsAF
If ObjAFCaracteristicas.GetActivosFijosValores(-1, UsuarioActual.CveEmpresa) Then
If DdlSubTipoActivo.SelectedIndex <> 0 Then
GvCaracteristicas.DataSource = ObjAFCaracteristicas.DtResultados.FiltraParametros("CveSubTipoActivoFijo = '" + DdlSubTipoActivo.SelectedValue + "'")
Else
GvCaracteristicas.DataSource = Nothing
End If
If ObjAFCaracteristicas.GetCaracteristicasOpcionesSubTipo(-1, DdlSubTipoActivo.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
DTAFCaracteristicas = ObjAFCaracteristicas.DtResultados '.FiltraParametros("SubtipoActivoFijo = '" + DdlSubTipoActivoFijo.SelectedValue + "'") 'FiltraParametros("EstatusOpcion = 'True'")
End If
End If
ObjAFCaracteristicas.Dispose()
GvCaracteristicas.DataBind()
UpFiltro.Update()
End Sub
Protected Sub GvCaracteristicas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvCaracteristicas.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim TipoCampo As Integer = e.Row.DBCampo("TipoCampo").ToEntero
Dim CveCaracteristica As Integer = e.Row.DBCampo("CveCaracteristica").ToEntero
Select Case TipoCampo
Case 0, 4 'Texto, Multiline
With e.Row.FCTextBox("TxtValor")
.Visible = True
If TipoCampo = 4 Then
.Rows = 3
.TextMode = TextBoxMode.MultiLine
End If
.Text = e.Row.DBCampo("Valor")
If e.Row.DBCampo("Requerida") = "True" Then
e.Row.FCRequiredFieldValidator("RFVRbRespuesta").Enabled = True
e.Row.FCRequiredFieldValidator("RFVRbRespuesta").ControlToValidate = "TxtValor"
End If
End With
Case 1, 2 'DropDownList, Radios
Dim dt As DataTable = DTAFCaracteristicas.FiltraParametros(String.Format("CveCaracteristica = {0} AND EstatusOpcion ='True' AND CveCaracteristicaOpcion > 0 ", CveCaracteristica))
If TipoCampo = 1 Then
With e.Row.FCDropDownList("DdlRespuesta")
.Visible = True
.DataTextField = "CaracteristicaOpcion"
.DataValueField = "CveCaracteristicaOpcion"
.DataSource = dt
.DataBind()
.Items.Insert(0, New ListItem("Seleccione", ""))
.SelectedValue = e.Row.DBCampo("CveOpcion")
If e.Row.DBCampo("Requerida") = "True" Then
e.Row.FCRequiredFieldValidator("RFVRbRespuesta").Enabled = True
e.Row.FCRequiredFieldValidator("RFVRbRespuesta").ControlToValidate = "DdlRespuesta"
End If
End With
ElseIf TipoCampo = 2 Then
With e.Row.FCRadioButtonList("RbRespuesta")
.Visible = True
.DataSource = dt
.DataBind()
End With
e.Row.FCRequiredFieldValidator("RFVRbRespuesta").ErrorMessage = String.Format("ERROR: Falta contestar la pregunta: <b>{0}</b>", e.Row.DBCampo("Caracteristica"))
End If
Case 3 'Fecha
With e.Row.FCTextBox("TxtValor")
.Visible = True
.Width = New Unit(80)
End With
e.Row.FCImageButton("ImgTxtValor").Visible = True
e.Row.FCMaskedEditExtender("MEETxtValor").Enabled = True
e.Row.FCCalendarExtender("CETxtValor").Enabled = True
e.Row.FCCompareValidator("CVTxtValor").Enabled = True
e.Row.FCCompareValidator("CVTxtValor").Type = ValidationDataType.Date
Case 5 'Checkbox
With e.Row.FCCheckBox("ChbValor")
.Visible = True
.Text = e.Row.DBCampo("Caracteristica")
.Checked = CBool(e.Row.DBCampo("Valor").ToEntero)
End With
Case 6 ' Numerico
With e.Row.FCTextBox("TxtValorNum")
.Visible = True
.Text = e.Row.DBCampo("Valor")
e.Row.FCCompareValidator("CVTxtValor").Enabled = True
e.Row.FCCompareValidator("CVTxtValor").Type = ValidationDataType.Integer
If e.Row.DBCampo("Requerida") = "True" Then
e.Row.FCRequiredFieldValidator("RFVRbRespuesta").Enabled = True
e.Row.FCRequiredFieldValidator("RFVRbRespuesta").ControlToValidate = "TxtValorNum"
End If
End With
End Select
End If
'End If
End Sub
#End Region
#Region "I M P R I M I R P D F/Excel"
Private Sub LinkPDF_Click(sender As Object, e As EventArgs) Handles LinkPDF.Click
GenerarPDF()
End Sub
Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
GenerarPDF("EXCEL")
End Sub
Private Sub GenerarPDF(Optional Formato As String = "PDF")
If DtActivosFijos.Rows.Count > 0 Then
Dim params As New List(Of ReportParameter)
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
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("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
ImprimirPDF(String.Format("{0}Formatos\RepAF.rdlc", UsuarioActual.Empresa.Ruta), DtActivosFijos, params, "ReporteActivosFijos", Formato:=Formato)
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
End Class