Files
SIG/RH/Organigrama.aspx.vb
JORGE LUIS CAUDILLO ESPARZA 0b3ddf845c
2020-07-24 18:43:42 -07:00

119 lines
3.8 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports System.Web.Services
Partial Class RH_Organigrama
Inherits ClsPaginas
#Region " PROPIEDADES "
Private employees As DataTable
Private Shared CveEmpresaAtribute As Integer
Public Shared Cabecera As Integer
Public Shared Empresa As Integer
Public Shared Nivel As Integer
Dim rgx As New Regex("^\d+$")
Public Shared Property CveCabecera() As Integer 'Guardamos el ID de registro para saber cual registro Editar
Get
Return Cabecera
End Get
Set
Cabecera = Value
End Set
End Property
Public Shared Property CveEmpresaFiltro() As Integer
Get
Return Empresa
End Get
Set
Empresa = Value
End Set
End Property
Public Shared Property NivelOrg() As Integer
Get
Return Nivel
End Get
Set
Nivel = Value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
'CveCabecera = UsuarioActual.CvePersonal
'CveEmpresaFiltro = UsuarioActual.CveEmpresa
If Not IsPostBack Then
txtNivel.Text = ""
DdlSupervisorOrganigrama.SelectedIndex = 0
Dim viewFlag As Integer = CveCabecera
CargaSuperioresOrganigrama()
End If
End Sub
#Region " CARGA DATOS "
Private Sub CargaSuperioresOrganigrama()
Dim ObjRH As New ClsRH
If ObjRH.GetPersonal(-1, UsuarioActual.CveEmpresa) Then
DdlSupervisorOrganigrama.AppendDataBoundItems = True
DdlSupervisorOrganigrama.Items.Add("Seleccione...")
DdlSupervisorOrganigrama.DataSource = ObjRH.DtResultados
Else
DdlSupervisorOrganigrama.DataSource = Nothing
Alert("Ocurrió un error al cargar el catálogo de Jefes Inmediatos")
End If
ObjRH.Dispose()
If DdlSupervisorOrganigrama.DataSource IsNot Nothing Then
DdlSupervisorOrganigrama.DataBind()
End If
End Sub
Protected Sub GenerarOrg(sender As Object, e As EventArgs) Handles btConsultar.Click 'este metodo es el que carga el organigrama al dispara la funcion en JS
CveCabecera = DdlSupervisorOrganigrama.SelectedValue.ToEntero
CveEmpresaFiltro = UsuarioActual.CveEmpresa
NivelOrg = If(rgx.IsMatch(txtNivel.Text), txtNivel.Text.ToEntero, NivelOrg)
txtNivel.Text = ""
DdlSupervisorOrganigrama.SelectedIndex = 0
ScriptManager.RegisterClientScriptBlock(Me, [GetType], "mykey", "drawChart()", True) 'ejecutamos la funcion de js para que haga la consulta de los registros
End Sub
#End Region
<WebMethod()>
Public Shared Function FetchData() As List(Of Object)
Dim ObjRH As New ClsRH
Dim DtTemporal As New DataTable
Dim chartData As New List(Of Object)()
If ObjRH.GetOrganigrama(CveEmpresaFiltro, CveCabecera, NivelOrg) Then
DtTemporal = ObjRH.DtResultados.Copy
For Each renglon As DataRow In DtTemporal.Rows
Dim nombreEmpleado As String = renglon("nombreEmpleado").ToString
Dim nombreSuperior As String = renglon("nombreSuperior").ToString
Dim puesto As String = renglon("puesto").ToString
Dim headerEmpleado As String = String.Format("{{{2}v{2}:{2}{0}{2},{2}f{2}:{2}{0}<div style='color:#32A1CF;font-size:10px;font-style:italic'>{1}</div>{2}}}", nombreEmpleado, puesto, ControlChars.Quote) 'este es el JSON que da formato a los subtitulos se hace en String y la funcion lo hace JSON
chartData.Add(New Object() {headerEmpleado, If(nombreEmpleado = nombreSuperior, "", nombreSuperior), puesto})
Next
End If
Return chartData
End Function
End Class