Files
SIG/RH/ListaAsistenciaRH.aspx.vb

166 lines
6.2 KiB
VB.net

Option Strict On
Imports Extensiones
Imports System.Data
Partial Class RH_ListaAsistenciaRH
Inherits ClsPaginas
Property CveSupervisor As Integer
Get
If ViewState("CveSupervisor") Is Nothing Then
Return -1
Else
Return DirectCast(ViewState("CveSupervisor"), Integer)
End If
End Get
Set(value As Integer)
ViewState("CveSupervisor") = value
End Set
End Property
Private Sub RH_ListaAsistencia_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
txtFecha.Text = Now.ToShortDateString
CveSupervisor = UsuarioActual.CvePersonal
CargaCombos()
CargaDatos()
End If
End Sub
Private Sub CargaCombos()
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa)
DdlClientes.DataBind()
DdlClientes.Items.Insert(0, New ListItem("Todos", "-1"))
DdlDepartamento.DataSource = GlobalDTDepartamentos(UsuarioActual.CveEmpresa)
DdlDepartamento.DataBind()
DdlDepartamento.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub CargaDatos()
Dim ObjRH As New ClsRH
If ObjRH.GetListaAsistencia(txtFecha.Text.ToDate, DdlSubProyecto.SelectedValue.ToEntero, DdlDepartamento.SelectedValue.ToEntero, CveSupervisor, DdlClientes.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjRH.DtResultados
Else
GvDatos.DataSource = Nothing
End If
ObjRH.Dispose()
GvDatos.DataBind()
UPDatos.Update()
End Sub
Private Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
'CvePersonal,CveAsistencia,CveAsistenciasInasistencias
'DdlAsistenciaInasistencia
Dim DTAsistenciasInasistencias As DataTable = GlobalDTAsistenciasInasistencias(UsuarioActual.CveEmpresa)
'If DTAsistenciasInasistencias.Rows.Count = 0 Then
' DTAsistenciasInasistencias = GlobalDTAsistenciasInasistencias().FiltraParametros($"CveEmpresa = 2 ")
'End If
e.Row.FCDropDownList("DdlAsistenciaInasistencia").DataSource = DTAsistenciasInasistencias
e.Row.FCDropDownList("DdlAsistenciaInasistencia").DataBind()
e.Row.FCDropDownList("DdlAsistenciaInasistencia").Items.Insert(0, New ListItem("Seleccione uno", "-1"))
e.Row.FCDropDownList("DdlAsistenciaInasistencia").SelectedValueExist(e.Row.DataKey("CveAsistenciasInasistencias").ToString)
End If
End Sub
Private Sub BtnProcesaLista_Click(sender As Object, e As EventArgs) Handles BtnProcesaLista.Click
Dim TieneError As Boolean = False
Dim DTAsistenciasInasistencias As DataTable = GlobalDTAsistenciasInasistencias(UsuarioActual.CveEmpresa)
If DTAsistenciasInasistencias.Rows.Count > 0 Then
Dim ObjRH As New ClsRH
ObjRH.IniciaTransacSQL()
For Each gvRow As GridViewRow In GvDatos.Rows
Dim DdlAsistenciaInasistencia As DropDownList = gvRow.FCDropDownList("DdlAsistenciaInasistencia")
If DdlAsistenciaInasistencia.SelectedIndex > 0 Then
Try
Dim dtTemp As DataTable = DTAsistenciasInasistencias
Dim Falta As Boolean = If(DTAsistenciasInasistencias.FiltraParametros($"CveAsistenciasInasistencias = {DdlAsistenciaInasistencia.SelectedValue.ToEntero }")(0)("AplicaAsistencia").ToString = "Aplica", False, True)
Dim Porcentaje As Decimal
Dim CveAsistencia As Integer = gvRow.DataKey("CveAsistencia").ToEntero
Dim CvePersonal As Integer = gvRow.DataKey("CvePersonal").ToEntero
Dim CveSubProyecto As Integer = gvRow.DataKey("CveSubProyecto").ToEntero
Dim CveTurno As Integer = gvRow.DataKey("CveTurno").ToEntero
Dim SalarioDiario As Decimal = gvRow.DataKey("SalarioDiario").ToDecimal
If Falta Then
Porcentaje = 0
Else
Porcentaje = 100
End If
If CveAsistencia > 0 Then
If Not ObjRH.UpdateListaAsistencia(CveAsistencia, CvePersonal, CveSubProyecto, CveTurno, txtFecha.Text.ToDate, DdlAsistenciaInasistencia.SelectedValue.ToEntero, Porcentaje, 0, 0, -1, "-1", SalarioDiario, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
TieneError = True
Exit For
End If
Else
If Not ObjRH.AddListaAsistencia(CvePersonal, CveSubProyecto, CveTurno, txtFecha.Text.ToDate, DdlAsistenciaInasistencia.SelectedValue.ToEntero, Porcentaje, 0, 0, -1, "-1", SalarioDiario, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
TieneError = True
Exit For
End If
End If
Catch ex As Exception
TieneError = True
Exit For
End Try
End If
Next
If TieneError = False Then
ObjRH.Commit()
Alert("Asistencias procesadas correctamente", TipoMensaje.MsgInformacion)
Else
ObjRH.RollBack()
Alert("Se preento un error al procesar la lista de asistencia", TipoMensaje.MsgAdvertencia)
End If
ObjRH.Dispose()
Else
Alert("No existen datos de asistencias inasistencias", TipoMensaje.MsgInformacion)
End If
End Sub
Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
CargaDatos()
End Sub
End Class