Files
SIG/RH/Asistencias.aspx.vb

264 lines
12 KiB
VB.net

Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class RH_Asistencias
Inherits ClsPaginas
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
'CargaClientes()
'DdlCliente.Attributes.Add("onclick", "CargaClientes();")
CargaSuperioresOrganigrama()
CargaProyecto()
CargaTurnos()
If UsuarioActual.Empresa.Funcionalidad(267) = "1" Then ' emp citricola
divCliente.Visible = False
LblCliente.Visible = False
GV.Columns(2).Visible = False
GV.Columns(3).Visible = True
End If
txtFechaAsistencia.Text = Now.ToShortDateString
If UsuarioActual.CveRol = 1 OrElse UsuarioActual.CveUsuario = 2343 Then
PnlMasivo.Visible = True
End If
CargaTiposPeriodo()
End If
End Sub
#Region "CargaCombos"
#Region " ORGANIGRAMA "
Private Sub CargaSuperioresOrganigrama()
Using objbase As New ClsRH()
If (objbase.SupervisorOrganigramaGet(UsuarioActual.CveEmpresa)) Then
DdlSupervisorOrganigrama.DataSource = objbase.DtResultados
DdlSupervisorOrganigrama.DataBind()
End If
End Using
End Sub
#End Region
Private Sub CargaProyecto()
CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyectoAsignado, LblSubProyectoAsignado, divProyecto:=DivProyectosAsignado1)
End Sub
Private Sub CargaSubProyecto()
DdlSubProyecto.Items.Clear()
DdlSubProyecto.DataSource = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub CargaTurnos()
DdlTurno.DataSource = GlobalDTTurno(UsuarioActual.CveEmpresa)
DdlTurno.DataBind()
DdlPuesto.DataSource = GlobalDTRHPuestos(UsuarioActual.CveEmpresa)
DdlPuesto.databind
End Sub
#End Region
Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProyecto.SelectedIndexChanged
CargaSubProyecto()
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click
If TxtFechaAsistencia.Text.Trim.ToDate.Year.Contiene(Now.Year - 1, Now.Year, Now.Year + 1) Then
Dim objpersonal As New ClsRH
If objpersonal.GetAsistencias(-1, DdlCliente.SelectedValue.ToEntero, DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlTurno.SelectedValue.ToEntero, 1, DdlTipoPeriodo.SelectedValue.ToEntero, txtFechaAsistencia.Text.Trim.ToDate, txtFechaAsistencia.Text.Trim.ToDate, UsuarioActual.CveEmpresa, DdlPuesto.SelectedValue.ToEntero) Then
Dim dt As DataTable = objpersonal.DtResultados
If DdlSupervisorOrganigrama.SelectedValue.ToEntero() > 0 Then
dt = dt.FiltraParametros(String.Format("CvePersonalPadre = {0}", DdlSupervisorOrganigrama.SelectedValue.ToEntero()))
ElseIf DdlSupervisorOrganigrama.SelectedValue.ToEntero() = -2 Then
dt = dt.FiltraParametros("CvePersonalPadre IS NULL")
End If
GV.DataSource = dt
Else
GV.DataSource = Nothing
End If
objpersonal.Dispose()
GV.DataBind()
BtnGuardar.Visible = (GV.Rows.Count > 0)
UpDatos.Update()
Else
Alert("La Fecha está fuera de los parámetros establecidos, por favor revise. Fecha: " & TxtFechaAsistencia.Text, TipoMensaje.MsgAdvertencia)
End If
End Sub
Protected Sub LnkImprimir_Click(sender As Object, e As EventArgs)
Dim Fecha As String = TxtFechaAsistencia.Text
Dim tablaReporte As New DataTable
Dim objpersonal As New ClsRH
If objpersonal.GetAsistencias(-1, DdlCliente.SelectedValue.ToEntero, DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlTurno.SelectedValue.ToEntero, 1, DdlTipoPeriodo.SelectedValue.ToEntero, txtFechaAsistencia.Text.Trim.ToDate, txtFechaAsistencia.Text.Trim.ToDate, UsuarioActual.CveEmpresa) Then
tablaReporte = objpersonal.DtResultados
If DdlSupervisorOrganigrama.SelectedValue.ToEntero() > 0 Then
tablaReporte = tablaReporte.FiltraParametros(String.Format("CvePersonalPadre = {0}", DdlSupervisorOrganigrama.SelectedValue.ToEntero()))
ElseIf DdlSupervisorOrganigrama.SelectedValue.ToEntero() = -2 Then
tablaReporte = tablaReporte.FiltraParametros("CvePersonalPadre IS NULL")
Else
End If
Else
End If
objpersonal.Dispose()
Dim Filtros As String = ""
If Not IsNothing(DdlCliente.SelectedValue) AndAlso DdlCliente.SelectedValue.ToEntero() > 0 Then
Filtros = String.Format("{0}{2}Cliente :{1}", Filtros, DdlCliente.SelectedText, vbNewLine)
End If
If DdlSubProyecto.SelectedValue.ToEntero() > 0 Then
Filtros = String.Format("{0}{2}{3} :{1}", Filtros, DdlSubProyecto.SelectedItem.Text, vbNewLine, LblSubProyectoAsignado.Text)
End If
If DdlTurno.SelectedValue.ToEntero() > 0 Then
Filtros = String.Format("{0}{2}Turno :{1}", Filtros, DdlTurno.SelectedItem.Text, vbNewLine)
End If
If DdlSupervisorOrganigrama.SelectedValue.ToEntero() > 0 Then
Filtros = String.Format("{0}{2}Supervisor :{1}", Filtros, DdlSupervisorOrganigrama.SelectedItem.Text, vbNewLine)
End If
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("Fecha", Fecha))
params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy HH:mm")))
params.Add(New ReportParameter("Filtros", Filtros))
Dim lrds As New List(Of ReportDataSource)
Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = tablaReporte}
lrds.Add(rds)
ImprimirPDF(RutaFormatoReporte("Asistencia.rdlc"), lrds, params, "Lista de asistencia")
End Sub
Protected Sub GV_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GV.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
'If e.Row.RowIndex = 0 Then
' e.Row.Cells(0).Width = Unit.Pixel(60)
' e.Row.Cells(1).Width = Unit.Pixel(300)
' e.Row.Cells(2).Width = Unit.Pixel(100)
' e.Row.Cells(3).Width = Unit.Pixel(80)
' e.Row.Cells(4).Width = Unit.Pixel(85)
' e.Row.Cells(5).Width = Unit.Pixel(85)
' e.Row.Cells(6).Width = Unit.Pixel(150)
' e.Row.Cells(7).Width = Unit.Pixel(90)
'End If
e.Row.FCLiteral("LtlCodigo").Text = "<a class=""Texto"" href=""/RH/Personal.aspx?CvePersonal=" & e.Row.DBCampo("CvePersonal") & "&Opt=4"">" & e.Row.DBCampo("Codigo") & "</a>"
e.Row.FCLiteral("LtlPersonal").Text = "<a class=""Texto"" href=""/RH/Personal.aspx?CvePersonal=" & e.Row.DBCampo("CvePersonal") & "&Opt=4"">" & e.Row.DBCampo("Nombre") & "</a>"
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Left
e.Row.FCTextBox("TxtPorPago").Text = e.Row.DBCampo("PorcentajePago")
e.Row.FCTextBox("TxtHorasDobles").Text = e.Row.DBCampo("HorasDobles")
e.Row.FCTextBox("TxtHorasTriples").Text = e.Row.DBCampo("HorasTriples")
'Carga Tipos de Asistencia
e.Row.FCDropDownList("DdlTipoAsistencias").DataSource = GlobalDTAsistenciasInasistencias(UsuarioActual.CveEmpresa)
e.Row.FCDropDownList("DdlTipoAsistencias").DataBind()
If e.Row.DBCampo("CveAsistenciasInasistencias") <> "-1" Then e.Row.FCDropDownList("DdlTipoAsistencias").SelectedValue = e.Row.DBCampo("CveAsistenciasInasistencias")
'Carga Motivos Horas Extras
e.Row.FCDropDownList("DdlMotivoHoraExtra").DataSource = GlobalDTMotivosHorasExtras(UsuarioActual.CveEmpresa)
e.Row.FCDropDownList("DdlMotivoHoraExtra").DataBind()
If e.Row.DBCampo("CveMotivoHoraExtra") <> "-1" Then e.Row.FCDropDownList("DdlMotivoHoraExtra").SelectedValue = e.Row.DBCampo("CveMotivoHoraExtra")
e.Row.FCTextBox("TxtObservaciones").Text = e.Row.DBCampo("Observacion")
If e.Row.DBCampo("SeModifico") = "0" Then
e.Row.Cells(0).BackColor = Drawing.Color.LightBlue
e.Row.Cells(1).BackColor = Drawing.Color.LightBlue
ElseIf e.Row.DBCampo("SeModifico") = "1" Then
e.Row.Cells(0).BackColor = Drawing.Color.FromArgb(242, 222, 222) '"#f2dede" 'Drawing.Color.Red
e.Row.Cells(1).BackColor = Drawing.Color.FromArgb(242, 222, 222) 'Drawing.Color.Red
End If
End If
End Sub
Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click
Dim ObjPersonal As New ClsRH()
ObjPersonal.IniciaTransacSQL()
Dim OcurrioError As Boolean = False
For Each Row As GridViewRow In GV.Rows
Dim CveCliente As Integer = Row.DataKey("CveCliente").ToEntero
If Not ObjPersonal.AddAsistencia(Row.DataKey("CvePersonal").ToEntero, CveCliente, DdlSubProyecto.SelectedValue.ToEntero, txtFechaAsistencia.Text.Trim.ToDate,
Row.FCDropDownList("DdlTipoAsistencias").SelectedValue.ToEntero, Row.FCTextBox("TxtPorPago").Text.Trim.ToDouble, Row.FCTextBox("TxtHorasDobles").Text.Trim.ToDouble,
Row.FCTextBox("TxtHorasTriples").Text.Trim.ToDouble, Row.FCDropDownList("DdlMotivoHoraExtra").SelectedValue.ToEntero, Row.FCTextBox("TxtObservaciones").Text.Trim,
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
OcurrioError = True
Exit For
End If
Next
If OcurrioError Then
ObjPersonal.RollBack()
Alert("Ocurrió un error al guardar las Asistencias.", TipoMensaje.MsgError)
Else
ObjPersonal.Commit()
Alert("Las Asistencias se guardaron correctamente.", TipoMensaje.MsgInformacion)
End If
ObjPersonal.Dispose()
BtnConsultar_Click(sender, e)
End Sub
Protected Sub BtnCargaMasiva_Click(sender As Object, e As EventArgs)
Dim ObjPersonal As New ClsRH()
ObjPersonal.IniciaTransacSQL()
Dim OcurrioError As Boolean = False
If Not ObjPersonal.AddAsistenciaMasiva(DdlPeriodo.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
OcurrioError = True
End If
If OcurrioError Then
ObjPersonal.RollBack()
Alert("Ocurrió un error al guardar las Asistencias.", TipoMensaje.MsgError)
Else
ObjPersonal.Commit()
Alert("Las Asistencias se guardaron correctamente.", TipoMensaje.MsgInformacion)
End If
ObjPersonal.Dispose()
End Sub
Protected Sub DdlTipoPeriodo_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlTipoPeriodoCarga.SelectedIndexChanged
CargaPeriodos()
End Sub
Private Sub CargaTiposPeriodo()
DdlTipoPeriodoCarga.DataSource = GlobalDTTipoPeriodo
DdlTipoPeriodoCarga.DataBind()
DdlTipoPeriodo.DataSource = GlobalDTTipoPeriodo
DdlTipoPeriodo.DataBind()
End Sub
Private Sub CargaPeriodos()
Dim ObjPeriodos As New ClsNominas
If ObjPeriodos.GetPeriodos(DdlTipoPeriodoCarga.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1, -1, -1) Then
DdlPeriodo.DataSource = ObjPeriodos.DtResultados
Else
DdlPeriodo.DataSource = Nothing
End If
ObjPeriodos.Dispose()
DdlPeriodo.DataBind()
DdlPeriodo.Items.Clear()
DdlPeriodo.DataBind()
DdlPeriodo.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
End Class