private void SetIncidencias(DateTime FechaIncidencia, DateTime FechaFinIncidencia, string TipoIncidencia, int IdIncidencia, bool pagarDia, bool isIncapaciodad = false) { bool incrementar = false; if (FechaIncidencia < Periodo.Fecha_Inicio) { FechaIncidencia = Periodo.Fecha_Inicio; } if (FechaFinIncidencia > Periodo.Fecha_Fin) { FechaFinIncidencia = Periodo.Fecha_Fin; } while (FechaIncidencia <= FechaFinIncidencia) { var incidencia = IncXEmpleado.FirstOrDefault(x => x.Fecha == FechaIncidencia); if (incidencia == null) { continue; } incidencia.TipoIncidencia = TipoIncidencia; incidencia.IdIncidencia = IdIncidencia; incidencia.IsIncapacidad = isIncapaciodad; incidencia.SePaga = pagarDia; FechaIncidencia = FechaIncidencia.AddDays(1); } }
private void GetNuevoIngreso2(List <Empleado_Contrato> listaC, int idEmpleado) { var contrato = listaC.Where(x => x.IdEmpleado == idEmpleado).OrderByDescending(s => s.IdContrato).FirstOrDefault(); if (contrato.FechaAlta >= Periodo.Fecha_Inicio && contrato.FechaAlta <= Periodo.Fecha_Fin) { var fechaTemporal = Periodo.Fecha_Inicio; while (fechaTemporal < contrato.FechaAlta) { var inc = IncXEmpleado.FirstOrDefault(x => x.Fecha == fechaTemporal); if (inc == null) { continue; } inc.TipoIncidencia = "NI"; if (inc.SePaga == true) { inc.SePaga = false; NumDias--; } fechaTemporal = fechaTemporal.AddDays(1); } } }
//Usado los para saber si en asistencia tiene que incrementar o no los dias de pago private bool SetIncidenciasInasistencia(DateTime FechaIncidencia, DateTime FechaFinIncidencia, string TipoIncidencia, int IdIncidencia, bool derechoPago, bool isIncapaciodad = false) { bool incrementar = false; if (FechaIncidencia < Periodo.Fecha_Inicio) { FechaIncidencia = Periodo.Fecha_Inicio; } if (FechaFinIncidencia > Periodo.Fecha_Fin) { FechaFinIncidencia = Periodo.Fecha_Fin; } while (FechaIncidencia <= FechaFinIncidencia) { var incidencia = IncXEmpleado.FirstOrDefault(x => x.Fecha == FechaIncidencia); if (!derechoPago) {//si antes tenia una de estas incidencias en entonces al pasarlo como asistencia se debe incrementar el dia if (incidencia.TipoIncidencia == "X" || incidencia.TipoIncidencia == "V" || incidencia.TipoIncidencia == "IR" || incidencia.TipoIncidencia == "IE" || incidencia.TipoIncidencia == "IM" || incidencia.TipoIncidencia == "NI" || incidencia.TipoIncidencia == "PC" || incidencia.TipoIncidencia == "DF" || incidencia.TipoIncidencia == "HE" || incidencia.TipoIncidencia == "H3" || incidencia.TipoIncidencia == "D") { incrementar = true;//INCREMENTAR LAS FALTAS } } else { //si antes tenia una de estas incidencias en entonces al pasarlo como asistencia se debe incrementar el dia if (incidencia.TipoIncidencia == "B" || incidencia.TipoIncidencia == "FI" || incidencia.TipoIncidencia == "FA" || incidencia.TipoIncidencia == "PS" || incidencia.TipoIncidencia == "FJ") { incrementar = true;//INCREMENTAR LAS ASISTENCIAS } } incidencia.TipoIncidencia = TipoIncidencia; incidencia.IdIncidencia = IdIncidencia; incidencia.IsIncapacidad = isIncapaciodad; incidencia.SePaga = derechoPago; FechaIncidencia = FechaIncidencia.AddDays(1); } return(incrementar); }
private void GetBajas2(List <Empleado_Contrato> listaC, int idEmpleado) { var contrato = listaC.Where(x => x.IdEmpleado == idEmpleado).OrderByDescending(s => s.IdContrato).FirstOrDefault(); if (contrato.FechaBaja >= Periodo.Fecha_Inicio && contrato.FechaBaja <= Periodo.Fecha_Fin) { while (contrato.FechaBaja <= Periodo.Fecha_Fin) { var inc = IncXEmpleado.FirstOrDefault(x => x.Fecha == contrato.FechaBaja); inc.TipoIncidencia = "B"; if (inc.SePaga == true) { inc.SePaga = false; NumDias--; } contrato.FechaBaja = contrato.FechaBaja.Value.AddDays(1); } } }
private void GetDiasDeBajaDelEmpleado(List <Empleado_Contrato> listaContrato, int idEmpleado) { var contrato = listaContrato.Where(x => x.IdEmpleado == idEmpleado).OrderByDescending(s => s.IdContrato).FirstOrDefault(); if (contrato != null) { if (contrato.FechaBaja != null) { if (contrato.FechaBaja <= Periodo.Fecha_Inicio) { //Se marca todo como baja B foreach (var item in IncXEmpleado) { item.TipoIncidencia = "B"; item.SePaga = false; } NumDias = 0; } else { var fechaDeBaja = contrato.FechaBaja; while (fechaDeBaja <= Periodo.Fecha_Fin) { var incidencia = IncXEmpleado.FirstOrDefault(x => x.Fecha == fechaDeBaja); if (incidencia == null) { continue; } incidencia.TipoIncidencia = "B"; if (incidencia.SePaga == true) { incidencia.SePaga = false; NumDias--; } fechaDeBaja = fechaDeBaja.Value.AddDays(1); } } } } if (contrato.FechaAlta >= Periodo.Fecha_Inicio && contrato.FechaAlta <= Periodo.Fecha_Fin) { var fechaTemporal = Periodo.Fecha_Inicio; while (fechaTemporal < contrato.FechaAlta) { var inc = IncXEmpleado.FirstOrDefault(x => x.Fecha == fechaTemporal); if (inc == null) { continue; } inc.TipoIncidencia = "NI"; if (inc.SePaga == true) { inc.SePaga = false; NumDias--; } fechaTemporal = fechaTemporal.AddDays(1); } } }