119 lines
3.8 KiB
VB.net
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
|
|
|