390 lines
17 KiB
VB.net
390 lines
17 KiB
VB.net
Option Strict On
|
|
Option Explicit On
|
|
|
|
Imports Extensiones
|
|
Imports System.Data
|
|
|
|
Partial Class RH_ActualizacionMasiva
|
|
Inherits ClsPaginas
|
|
|
|
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
|
If Not IsPostBack Then
|
|
SetPermisos()
|
|
|
|
'DdlCliente.Attributes.Add("onclick", "CargaClientes();")
|
|
CargaProyecto()
|
|
CargaTurnos()
|
|
CargaSupervisores()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub SetPermisos()
|
|
|
|
End Sub
|
|
|
|
#Region "Propiedades"
|
|
|
|
Private ReadOnly Property DTUsuarios As DataTable
|
|
Get
|
|
Return DirectCast(ViewState("DTUsuarios"), DataTable)
|
|
End Get
|
|
End Property
|
|
|
|
Private ReadOnly Property DTTurno As DataTable
|
|
Get
|
|
Return DirectCast(ViewState("DTTurno"), DataTable)
|
|
End Get
|
|
End Property
|
|
|
|
Private ReadOnly Property DTSubProyectos As DataTable
|
|
Get
|
|
Return DirectCast(ViewState("DTSubProyectos"), DataTable)
|
|
End Get
|
|
End Property
|
|
|
|
Private ReadOnly Property DTProyectos As DataTable
|
|
Get
|
|
Return DirectCast(ViewState("DTProyectos"), DataTable)
|
|
End Get
|
|
End Property
|
|
|
|
#End Region
|
|
|
|
#Region "CargaCombos"
|
|
|
|
Private Sub CargaClientes()
|
|
'Dim ObjClientes As New ClsClientes
|
|
'If ObjClientes.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then
|
|
' DdlCliente.DataSource = ObjClientes.DtResultados
|
|
'Else
|
|
' DdlCliente.DataSource = Nothing
|
|
'End If
|
|
'ObjClientes.Dispose()
|
|
''Application("GlobalDTResponsable")
|
|
|
|
'DdlCliente.DataBind()
|
|
End Sub
|
|
|
|
'Protected Sub BtnCargarClientes_Click(sender As Object, e As System.EventArgs) Handles BtnCargarClientes.Click
|
|
' CargaClientes()
|
|
' DdlCliente.Attributes.Remove("onclick")
|
|
'End Sub
|
|
|
|
Private Sub CargaProyecto()
|
|
ViewState("DTProyectos") = GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa)
|
|
|
|
Dim Row As DataRow = DirectCast(ViewState("DTProyectos"), DataTable).NewRow()
|
|
Row("CveProyecto") = -1 : Row("Proyecto") = "Sin Proyecto asignado"
|
|
DirectCast(ViewState("DTProyectos"), DataTable).Rows.InsertAt(Row, 0)
|
|
|
|
DdlProyecto.DataSource = GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, 1)
|
|
DdlProyecto.DataBind()
|
|
End Sub
|
|
|
|
Private Sub CargaSubProyecto()
|
|
ViewState("DTSubProyectos") = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero)
|
|
DdlSubProyecto.Items.Clear()
|
|
DdlSubProyecto.DataSource = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero)
|
|
DdlSubProyecto.DataBind()
|
|
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
|
|
End Sub
|
|
|
|
Private Sub CargaTurnos()
|
|
ViewState("DTTurno") = GlobalDTTurno.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
|
|
DdlTurno.DataSource = GlobalDTTurno.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
|
|
DdlTurno.DataBind()
|
|
End Sub
|
|
|
|
Private Sub CargaSupervisores()
|
|
ViewState("DTUsuarios") = GlobalDTUsuarios.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa & " AND EsSupervisorRH = 1 ")
|
|
|
|
Dim Row As DataRow = DirectCast(ViewState("DTUsuarios"), DataTable).NewRow()
|
|
Row("CveUsuario") = -1 : Row("Nombre") = "Sin Supervisor Asignado"
|
|
DirectCast(ViewState("DTUsuarios"), DataTable).Rows.InsertAt(Row, 0)
|
|
|
|
'DdlSupervisor.DataSource = GlobalDTUsuarios.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa & " AND EsSupervisorRH = 1 ")
|
|
'DdlSupervisor.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
|
|
|
|
Using ObjPersonal As New ClsRH
|
|
|
|
If ObjPersonal.GetPersonalMasivo(DdlTurno.SelectedValue.ToEntero, DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) Then
|
|
GvDatos.DataSource = ObjPersonal.DtResultados
|
|
Else
|
|
GvDatos.DataSource = Nothing
|
|
End If
|
|
End Using
|
|
|
|
|
|
GvDatos.DataBind()
|
|
UPDatos.Update()
|
|
End Sub
|
|
|
|
Protected Sub GvDatos_RowCreated(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowCreated
|
|
If e.Row.RowType = DataControlRowType.DataRow AndAlso (e.Row.RowState = DataControlRowState.Alternate OrElse e.Row.RowState = DataControlRowState.Normal) Then
|
|
|
|
'e.Row.FCDropDownList("DdlGVProyecto").DataSource = DTProyectos
|
|
'e.Row.FCDropDownList("DdlGVProyecto").DataBind()
|
|
''e.Row.FCDropDownList("DdlGVProyecto").Items.Insert(0, New ListItem("Sin Proyecto asignado", "-1"))
|
|
|
|
'e.Row.FCDropDownList("DdlGVSubProyecto").DataSource = DTSubProyectos
|
|
'e.Row.FCDropDownList("DdlGVSubProyecto").DataBind()
|
|
''e.Row.FCDropDownList("DdlGVSubProyecto").Items.Insert(0, New ListItem("Sin SubProyecto asignado", "-1"))
|
|
|
|
'e.Row.FCDropDownList("DdlTurno").DataSource = DTTurno
|
|
'e.Row.FCDropDownList("DdlTurno").DataBind()
|
|
|
|
'e.Row.FCDropDownList("DdlSupervisor").DataSource = DTUsuarios
|
|
'e.Row.FCDropDownList("DdlSupervisor").DataBind()
|
|
''e.Row.FCDropDownList("DdlSupervisor").Items.Insert(0, New ListItem("Sin Supervisor Asignado", "-1"))
|
|
|
|
|
|
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
|
|
|
|
If e.Row.DBCampo("Turno") = "" AndAlso e.Row.DBCampo("Nombre") = "" Then
|
|
e.Row.FCLiteral("LtlNombre").Text = "<b>Sub Proyecto:</b> " & If(e.Row.DBCampo("SubProyecto") = String.Empty, "Sin Proyecto Asignado", e.Row.DBCampo("SubProyecto"))
|
|
e.Row.Cells(0).ColumnSpan = 7
|
|
For i As Integer = 1 To 6
|
|
e.Row.Cells(i).Visible = False
|
|
Next
|
|
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
|
|
ElseIf e.Row.DBCampo("Turno") <> "" AndAlso e.Row.DBCampo("Nombre") = "" Then
|
|
e.Row.FCLiteral("LtlNombre").Text = "<b>Turno:</b> " & e.Row.DBCampo("Turno")
|
|
e.Row.Cells(0).ColumnSpan = 7
|
|
For i As Integer = 1 To 6
|
|
e.Row.Cells(i).Visible = False
|
|
Next
|
|
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
|
|
Else
|
|
'If e.Row.DBCampo("CveProyecto") <> String.Empty Then e.Row.FCDropDownList("DdlGVProyecto").SelectedValue = e.Row.DBCampo("CveProyecto")
|
|
'CargaSubProyectoGV(e.Row.FCDropDownList("DdlGVProyecto"), e.Row.FCDropDownList("DdlGVSubProyecto"))
|
|
'If e.Row.DBCampo("CveSubProyecto") <> String.Empty Then e.Row.FCDropDownList("DdlGVSubProyecto").SelectedValue = e.Row.DBCampo("CveSubProyecto")
|
|
'e.Row.FCDropDownList("DdlGVSubProyecto").Attributes.Add("onChange", "F(this, " & e.Row.FCDropDownList("DdlGVProyecto").ClientID & ")")
|
|
'If e.Row.DBCampo("CveTurno") <> String.Empty Then e.Row.FCDropDownList("DdlTurno").SelectedValue = e.Row.DBCampo("CveTurno")
|
|
'If e.Row.DBCampo("CveSupervisor") <> String.Empty Then e.Row.FCDropDownList("DdlSupervisor").SelectedValue = e.Row.DBCampo("CveSupervisor")
|
|
|
|
e.Row.FCTextBox("TxtSalarioCotizado").Text = e.Row.FCTextBox("TxtSalarioCotizado").Text.Replace(",", "")
|
|
|
|
''Deshabilita todo
|
|
'e.Row.Cells(1).Enabled = True : e.Row.Cells(2).Enabled = True : e.Row.Cells(3).Enabled = True : e.Row.Cells(4).Enabled = True
|
|
'e.Row.Cells(5).Enabled = True : e.Row.Cells(6).Enabled = True : e.Row.Cells(7).Enabled = True
|
|
|
|
'25: CargaMasiva-Proy,Sup,Tur
|
|
'If Not UsuarioActual.TienePermisoProceso(25) Then e.Row.Cells(1).Enabled = False : e.Row.Cells(2).Enabled = False : e.Row.Cells(3).Enabled = False : e.Row.Cells(4).Enabled = False
|
|
|
|
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
|
|
|
|
Using ObjPersonal As ClsRH = New ClsRH()
|
|
ObjPersonal.IniciaTransacSQL()
|
|
For Each Row As GridViewRow In GvDatos.Rows
|
|
If Row.DataKey("CvePersonal") <> "" Then
|
|
'If Not ObjPersonal.UpdatePersonalMasivo(Row.FCDropDownList("DdlTurno").SelectedValue.ToEntero, Row.FCDropDownList("DdlGVSubProyecto").SelectedValue.ToEntero, Row.FCDropDownList("DdlSupervisor").SelectedValue.ToEntero,
|
|
' Row.FCTextBox("TxtSalarioDiario").Text.ToDouble, Row.FCTextBox("TxtSDI").Text.ToDouble, Row.FCTextBox("TxtSalarioCotizado").Text.ToDouble,
|
|
' Row.DataKey("CvePersonal").ToEntero, UsuarioActual.CveEmpresa) Then
|
|
' OcurrioError = True
|
|
' ObjPersonal.RollBack()
|
|
' Exit For
|
|
'End If
|
|
If ObjPersonal.UpdateSalarios(Row.DataKey("CvePersonal").ToEntero(), DateTime.Now.ToString("yyyy/MM/dd"), UsuarioActual.CveEmpresa, Row.FCTextBox("TxtSalarioDiario").Text.ToDecimal(),
|
|
Row.FCTextBox("TxtSDI").Text.ToDecimal(), Row.FCTextBox("TxtSalarioCotizado").Text.ToDecimal(), Row.FCTextBox("TxtSalarioDiario").Text.ToDecimal(),
|
|
Row.FCCheckBox("ChkCalcularSDI").Checked) Then
|
|
|
|
Else
|
|
OcurrioError = True
|
|
ObjPersonal.RollBack()
|
|
Exit For
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
If Not OcurrioError Then
|
|
ObjPersonal.Commit()
|
|
Alert("La información se guardó correctamente.", TipoMensaje.MsgInformacion)
|
|
Else
|
|
Alert("Ocurrió un error al guardar la información.", TipoMensaje.MsgError)
|
|
End If
|
|
End Using
|
|
|
|
|
|
'ObjPersonal.Dispose()
|
|
End Sub
|
|
|
|
Private Sub CargaSubProyectoGV(DdlProyecto As DropDownList, DdlSubProyecto As DropDownList)
|
|
DdlSubProyecto.Items.Clear()
|
|
DdlSubProyecto.DataSource = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero)
|
|
DdlSubProyecto.DataBind()
|
|
DdlSubProyecto.Items.Insert(0, New ListItem("Sin SubProyecto asignado", "-1"))
|
|
End Sub
|
|
|
|
Protected Sub DdlGVProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs)
|
|
Dim Array() As String = Nothing
|
|
Dim DdlGVSubProyecto As DropDownList = Nothing
|
|
|
|
Array = DirectCast(sender, DropDownList).ClientID.Split("_"c)
|
|
If Array.Length > 0 Then
|
|
DdlGVSubProyecto = DirectCast(GvDatos.Rows(Array(3).ToEntero).Controls(2).Controls(1), DropDownList)
|
|
End If
|
|
|
|
If DdlGVSubProyecto IsNot Nothing Then CargaSubProyectoGV(DirectCast(sender, DropDownList), DdlGVSubProyecto)
|
|
End Sub
|
|
|
|
Protected Sub LnkFormato_Click(ByVal sender As Object, ByVal e As EventArgs)
|
|
Try
|
|
Dim wb As ClosedXML.Excel.XLWorkbook = New ClosedXML.Excel.XLWorkbook()
|
|
Dim libro = wb.AddWorksheet("Salario")
|
|
Dim column As Integer = 1
|
|
Dim Fila As Integer = 1
|
|
libro.Cell(Fila, column).Value = "Codigo"
|
|
column += 1
|
|
libro.Cell(Fila, column).Value = "Empleado"
|
|
column += 1
|
|
libro.Column(column).Width = 35
|
|
libro.Cell(Fila, column).Value = "SDD"
|
|
column += 1
|
|
libro.Cell(Fila, column).Value = "SDI"
|
|
column += 1
|
|
libro.Cell(Fila, column).Value = "SD IMSS"
|
|
column += 1
|
|
Dim DTEmpleados As New DataTable()
|
|
|
|
libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White
|
|
libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189))
|
|
Using ObjPersonal As New ClsRH
|
|
If ObjPersonal.GetPersonalMasivo(DdlTurno.SelectedValue.ToEntero, DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) Then
|
|
DTEmpleados = ObjPersonal.DtResultados
|
|
End If
|
|
End Using
|
|
For Each dro As DataRow In DTEmpleados.Select("CvePersonal > 0 AND LEN(Codigo)>0")
|
|
column = 1
|
|
Fila = Fila + 1
|
|
|
|
libro.Cell(Fila, column).Value = String.Format("'{0}", dro("Codigo"))
|
|
column += 1
|
|
libro.Cell(Fila, column).Value = String.Format("'{0}", dro("Nombre"))
|
|
column += 1
|
|
libro.Column(column).Width = 35
|
|
libro.Cell(Fila, column).Value = dro("SalarioDiario")
|
|
column += 1
|
|
libro.Cell(Fila, column).Value = dro("SDI")
|
|
column += 1
|
|
libro.Cell(Fila, column).Value = dro("SalarioDiarioSS")
|
|
column += 1
|
|
Next
|
|
|
|
|
|
Dim fs As System.IO.Stream = New System.IO.MemoryStream()
|
|
wb.SaveAs(fs)
|
|
fs.Position = 0
|
|
Dim memoryStream As System.IO.MemoryStream = New System.IO.MemoryStream()
|
|
|
|
Using input As System.IO.Stream = fs
|
|
input.CopyTo(memoryStream)
|
|
End Using
|
|
|
|
memoryStream.Position = 0
|
|
Response.Clear()
|
|
Response.Buffer = True
|
|
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.xlsx", "FormatoCargaSalario"))
|
|
Response.BinaryWrite(memoryStream.ToArray())
|
|
Response.[End]()
|
|
Catch ex As Exception
|
|
Alert("Ocurrio un error al generar el Formato de salario" & ex.ToString())
|
|
End Try
|
|
End Sub
|
|
Protected Sub LnkCargarSalarios_Click(sender As Object, e As EventArgs)
|
|
Dim Filesgral As List(Of Archivo) = TxtArchivoNomina.getfiles().Archivos
|
|
Dim continuar As Boolean = Filesgral.Count > 0
|
|
Dim stringError As String = ""
|
|
Dim fileItem As Archivo = If(continuar, Filesgral(0), Nothing)
|
|
Dim DTEmpleados As New DataTable()
|
|
Using ObjPersonal As New ClsRH
|
|
If ObjPersonal.GetPersonalMasivo(-1, -1, -1, -1, UsuarioActual.CveEmpresa) Then
|
|
DTEmpleados = ObjPersonal.DtResultados
|
|
Else
|
|
continuar = False
|
|
stringError = "Ocurrio un Error al procesar el excel "
|
|
End If
|
|
End Using
|
|
If continuar Then
|
|
Dim FileExtension As String = fileItem.Extencion.ToUpper()
|
|
|
|
If FileExtension = "XLS" Or FileExtension = "XLSX" Or FileExtension = "CSV" Then
|
|
Else
|
|
continuar = False
|
|
stringError = "No se inserto un archivo de tipo Excel"
|
|
End If
|
|
End If
|
|
|
|
Dim DTEXcel As DataTable = New DataTable()
|
|
|
|
If continuar Then
|
|
|
|
Try
|
|
DTEXcel = Extensiones.ModExtensiones.ReadExcelFile(fileItem.FileUrl, True).FiltraParametros(" LEN(Codigo)>0 ")
|
|
Catch ex As Exception
|
|
continuar = False
|
|
stringError = "Ocurrio un Error al procesar el excel "
|
|
String.Format("{0} " & vbCrLf & "{0}", stringError, ex.ToString()).GuardaLog()
|
|
End Try
|
|
End If
|
|
If continuar Then
|
|
|
|
Dim OcurrioError As Boolean = False
|
|
Dim contador As Integer = 0
|
|
Using ObjPersonal As ClsRH = New ClsRH()
|
|
ObjPersonal.IniciaTransacSQL()
|
|
|
|
For Each Row As DataRow In DTEXcel.Rows
|
|
If Row("Codigo").ToString() <> "" Then
|
|
Dim drow As DataRow = DTEmpleados.FiltroPrimero(String.Format("Codigo='{0}'", Row("Codigo")))
|
|
If Not IsNothing(drow) Then
|
|
|
|
Dim CvePersonal As Integer = drow("CvePersonal").ToString().ToEntero()
|
|
If ObjPersonal.UpdateSalarios(CvePersonal, DateTime.Now.ToString("yyyy/MM/dd"), UsuarioActual.CveEmpresa, Row("SDD").ToString().ToDecimal(), Row("SDI").ToString().ToDecimal(),
|
|
Row("SD IMSS").ToString().ToDecimal(), Row("SDD").ToString().ToDecimal(), ChkCalcularSDIXLS.Checked) Then
|
|
contador = contador + 1
|
|
Else
|
|
OcurrioError = True
|
|
Exit For
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
|
|
Next
|
|
If Not OcurrioError Then
|
|
ObjPersonal.Commit()
|
|
Alert(String.Format("La información se guardó correctamente.<br/> se registraron {0} empleados", contador), TipoMensaje.MsgInformacion)
|
|
Else
|
|
ObjPersonal.RollBack()
|
|
Alert("Ocurrió un error al guardar la información.", TipoMensaje.MsgError)
|
|
End If
|
|
End Using
|
|
Else
|
|
Alert(stringError, TipoMensaje.MsgError)
|
|
|
|
End If
|
|
End Sub
|
|
End Class
|