diff --git a/Nomina/Finiquito.aspx.cs b/Nomina/Finiquito.aspx.cs index 9c54bca1d..7e940ecd9 100644 --- a/Nomina/Finiquito.aspx.cs +++ b/Nomina/Finiquito.aspx.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Collections.Specialized; using System.Data; using System.Linq; +using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; @@ -1105,18 +1106,32 @@ public partial class Nomina_Finiquito : ClsPaginas } else { - bool continuar = false; + bool continuar = true; using (ClsRH ObjPersonal = new ClsRH()) using (ClsNominas onom = new ClsNominas(ObjPersonal.IniciaTransacSQL())) { - if (continuar = ObjPersonal.UpPersonalAltas(CvePersonal, UsuarioActual.CveUsuario, "", TxtFechaBaja.Text.ToDateTime().ToString("yyyy/MM/dd"), DdlTipoPeriodo.SelectedValue.ToEntero(), DdlMotivoBaja.SelectedValue.ToEntero(), ChkesLiquidacion.Checked, chkIndemnizacion.Checked, chkSeparacionUnica.Checked, chkPrimaantiguedad.Checked, TxtObservaciones.Text) && ObjPersonal.GetPersonalAltas(CvePersonal) && ObjPersonal.DtResultados.Rows.Count > 0) + onom.ValidaFechaFinPersonal(CvePersonal, UsuarioActual.CveEmpresa, TxtFechaBaja.Text.ToDateTime().ToString("yyyy/MM/dd")); + if (onom.DtResultados.Rows.Count > 0) + { + continuar = false; + StringBuilder strbuild = new StringBuilder(); + strbuild.Append("No es posible guardar el finiquito ya que existen asistencias posteriores a la fecha fin con nominas autorizadas, es necesario desautorizar la siguientes nominas para reintentar el proceso."); + foreach (DataRow drow in onom.DtResultados.Rows) + { + strbuild.AppendFormat("
{0}", drow["PeriodoTexto"]); + } + Alert(strbuild.ToString(), TipoMensaje.MsgAdvertencia); + } + + if (continuar && ObjPersonal.UpPersonalAltas(CvePersonal, UsuarioActual.CveUsuario, "", TxtFechaBaja.Text.ToDateTime().ToString("yyyy/MM/dd"), DdlTipoPeriodo.SelectedValue.ToEntero(), DdlMotivoBaja.SelectedValue.ToEntero(), ChkesLiquidacion.Checked, chkIndemnizacion.Checked, chkSeparacionUnica.Checked, chkPrimaantiguedad.Checked, TxtObservaciones.Text) && ObjPersonal.GetPersonalAltas(CvePersonal) && ObjPersonal.DtResultados.Rows.Count > 0) { DataRow da = ObjPersonal.DtResultados.Rows[0]; CvePeriodoIndemnizacion = da["CvePeriodoIndemnizacion"].ToString().ToEntero(); CvePeriodoFiniquito = da["CvePeriodoFiniquito"].ToString().ToEntero(); // Alert(string.Format("{0}: {1}", CvePeriodoIndemnizacion, CvePeriodoFiniquito)); } + else { continuar = false; } if (continuar) { continuar = onom.GetFiniquitosPersonal(CvePersonal, UsuarioActual.CveEmpresa, diasindemnizacion: Txtdiasindemnizacion.Text.ToEntero()); @@ -1160,7 +1175,7 @@ public partial class Nomina_Finiquito : ClsPaginas dtempleadosConceptos = null; dtempleados = null; LnkAutorizar.Visible = true; - if (objnom.GetNominaEmpleado(-1, -1, -1, CvePeriodoFiniquito, UsuarioActual.CveEmpresa, 1, 3, CvePersonal,Neto:1) && objnom.DTSetResultados.Tables.Count > 1) + if (objnom.GetNominaEmpleado(-1, -1, -1, CvePeriodoFiniquito, UsuarioActual.CveEmpresa, 1, 3, CvePersonal, Neto: 1) && objnom.DTSetResultados.Tables.Count > 1) { dtempleados = objnom.DTSetResultados.Tables[3]; LnkAutorizar.Visible = (dtempleados.COUNT("CvePersonal", "NomAutorizado =0") > 0); diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index 5e406b45c..e42e70e54 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -5783,7 +5783,7 @@ Partial Class RH_Personal ViewState("FilesMoveimgNew") = filemove End If End If - ViewState("Archivo") = String.Format("{0}.{1}", CvePersonal.ToString(), FileExtension) + ViewState("Archivo") = String.Format("{0}.{1}", CvePersonal.ToString(), FileExtension) Next If File.Exists(UsuarioActual.Empresa.Ruta & "RH\Personal\" & CvePersonal & "." & FileExtension) Then Dim LogoRutaFisica As String = String.Format("Empresas\{0}\RH\Personal\{1}.{2}", UsuarioActual.CveEmpresa, CvePersonal, FileExtension) @@ -7480,9 +7480,28 @@ Partial Class RH_Personal End If End If + If continuar Then + + Using onom As ClsNominas = New ClsNominas() + onom.ValidaFechaFinPersonal(CvePersonal, UsuarioActual.CveEmpresa, fecha.ToString("yyyy/MM/dd")) + + If onom.DtResultados.Rows.Count > 0 Then + + continuar = False + Dim strbuild As StringBuilder = New StringBuilder() + strbuild.Append("No es posible desactivar con esta fecha ya que existen asistencias posteriores a la fecha fin con nominas autorizadas, es necesario desautorizar la siguientes nominas para reintentar el proceso.") + + For Each drow As DataRow In onom.DtResultados.Rows + strbuild.AppendFormat("
{0}", drow("PeriodoTexto")) + Next + Alert(strbuild.ToString(), TipoMensaje.MsgAdvertencia) + End If + + End Using + End If If continuar Then Using objrh As New ClsRH - continuar = objrh.estatusPersonalUp(fecha, CvePersonal, estatus, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, DdlMotivoBaja.SelectedValue.ToEntero(),) + continuar = objrh.estatusPersonalUp(fecha, CvePersonal, estatus, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, DdlMotivoBaja.SelectedValue.ToEntero(), Txobservacionesbaja.Text) End Using End If