This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2020-07-23 18:48:41 -07:00
parent 101d25850d
commit 5935719e49
4 changed files with 396 additions and 193 deletions

View File

@@ -11,7 +11,7 @@ Partial Class RH_ActualizacionMasiva
If Not IsPostBack Then
SetPermisos()
DdlCliente.Attributes.Add("onclick", "CargaClientes();")
'DdlCliente.Attributes.Add("onclick", "CargaClientes();")
CargaProyecto()
CargaTurnos()
CargaSupervisores()
@@ -24,6 +24,14 @@ Partial Class RH_ActualizacionMasiva
#Region "Propiedades"
Private Property DTEmpleados As DataTable
Get
Return DirectCast(ViewState("DTEmpleados"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTEmpleados") = value
End Set
End Property
Private ReadOnly Property DTUsuarios As DataTable
Get
Return DirectCast(ViewState("DTUsuarios"), DataTable)
@@ -53,22 +61,22 @@ Partial Class RH_ActualizacionMasiva
#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")
'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()
'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
'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)
@@ -102,8 +110,8 @@ Partial Class RH_ActualizacionMasiva
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()
'DdlSupervisor.DataSource = GlobalDTUsuarios.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa & " AND EsSupervisorRH = 1 ")
'DdlSupervisor.DataBind()
End Sub
#End Region
@@ -113,15 +121,16 @@ Partial Class RH_ActualizacionMasiva
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click
Dim ObjPersonal As New ClsRH
If ObjPersonal.GetPersonalMasivo(DdlTurno.SelectedValue.ToEntero, DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlSupervisor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjPersonal.DtResultados
Else
GvDatos.DataSource = Nothing
End If
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
ObjPersonal.Dispose()
GvDatos.DataBind()
UPDatos.Update()
@@ -130,20 +139,20 @@ Partial Class RH_ActualizacionMasiva
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("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("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("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"))
'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
@@ -154,25 +163,25 @@ Partial Class RH_ActualizacionMasiva
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 = 8
For i As Integer = 1 To 7
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 = 8
For i As Integer = 1 To 7
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")
'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(",", "")
@@ -181,39 +190,48 @@ Partial Class RH_ActualizacionMasiva
'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
'26: CargaMasiva-Salarios
If Not UsuarioActual.TienePermisoProceso(26) Then e.Row.Cells(5).Enabled = False : e.Row.Cells(6).Enabled = False : e.Row.Cells(7).Enabled = False
'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 ObjPersonal As New ClsRH
'ObjPersonal.IniciaTransacSQL()
Dim OcurrioError As Boolean = False
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
Using ObjPersonal As ClsRH = New ClsRH()
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()) 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
Next
End Using
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
ObjPersonal.Dispose()
'ObjPersonal.Dispose()
End Sub
Private Sub CargaSubProyectoGV(DdlProyecto As DropDownList, DdlSubProyecto As DropDownList)
@@ -234,4 +252,129 @@ Partial Class RH_ActualizacionMasiva
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
DTEmpleados = 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 = dro("Codigo")
column += 1
libro.Cell(Fila, column).Value = 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)
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
Using ObjPersonal As ClsRH = New ClsRH()
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()) Then
Else
OcurrioError = True
ObjPersonal.RollBack()
Exit For
End If
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
End If
End Sub
End Class