Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
                }
            }
        }
Beispiel #3
0
        //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);
        }
Beispiel #4
0
        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);
                }
            }
        }
Beispiel #5
0
        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);
                }
            }
        }