public bool checkPuntualidad(HorasLaborales horas, bool incluirAnticipo) // 0 Solo extra 1 Extra y anticipo { //TimeSpan span = TimeSpan.Parse("0"); /* * foreach (TiemposDia t in this.Dias) * { * if (t.entrada1.status == "RETARDO") * { * span += t.entrada1.Hora.Subtract(horas.entrada1); * } * * if (t.entrada2.status == "RETARDO") * { * span += t.entrada2.Hora.Subtract(horas.entrada2); * } * } */ if (!incluirAnticipo) { if (getRetardoTotal(horas).TotalMinutes >= horas.limiteRetardo.TotalMinutes) { return(false); } } else { if ((getRetardoTotal(horas).TotalMinutes + getAnticipoTotal(horas).TotalMinutes) >= horas.limiteRetardo.TotalMinutes) { return(false); } } return(true); }
// No es necesario contructor // Metodos Publicos ------------------------------------ public List <Empleado> getEmpleados(string texto, HorasLaborales horarioLaboral) { // Busca fecha de inicio string toBeSearched = "Desde:"; string sFechaIni = texto.Substring(texto.IndexOf(toBeSearched) + toBeSearched.Length + 1, 10); toBeSearched = "Hasta:"; string sFechaFin = texto.Substring(texto.IndexOf(toBeSearched) + toBeSearched.Length + 1, 10); // Asigna fechas a objeto this.fechaInicio = DateTime.Parse(sFechaIni); this.fechaFin = DateTime.Parse(sFechaFin); // Busca la cantidad de personas, crea los objetos y asigna su información. toBeSearched = ")"; string[] tokens = texto.Split(new[] { ")" }, StringSplitOptions.None); Empleado[] empleados = new Empleado[tokens.Length - 1]; for (int i = 1; i < tokens.Length; i++) { empleados[i - 1] = new Empleado(tokens[i], i - 1, horarioLaboral); // Analiza el status de cada dia foreach (TiemposDia t in empleados[i - 1].Dias) { t.checkStatus(); } } return(empleados.ToList()); }
public TimeSpan getRetardoDia(HorasLaborales horas, int index) { TimeSpan span = TimeSpan.Parse("0"); if (this.Dias[index].entrada1.Hora.TimeOfDay > horas.entrada1.TimeOfDay) { span += this.Dias[index].entrada1.Hora.Subtract(horas.entrada1); } if (this.Dias[index].entrada2.Hora.TimeOfDay > horas.entrada2.TimeOfDay) { span += this.Dias[index].entrada2.Hora.Subtract(horas.entrada2); } return(span); }
public TimeSpan getRetardoTotal(HorasLaborales horas) { TimeSpan span = TimeSpan.Parse("0"); foreach (TiemposDia t in this.Dias) { if (t.entrada1.Hora.TimeOfDay > horas.entrada1.TimeOfDay) { span += t.entrada1.Hora.Subtract(horas.entrada1); } if (t.entrada2.Hora.TimeOfDay > horas.entrada2.TimeOfDay) { span += t.entrada2.Hora.Subtract(horas.entrada2); } } return(span); }
// Constructor ----------------------------------- public Empleado(string atributos, int identifier, HorasLaborales horarioLaboral) { this.listaAtributos = atributos; string[] tokens = atributos.Split(new[] { "\n" }, StringSplitOptions.None); // ID para facilitar modificación de los objetos this.ID = identifier; // Extrae el nombre del empleado this.Nombre = tokens[0]; // Elimina informacion no util y agrupa los días por fila tokens = groupDias(tokens); // Extrae los dias Dias = extraerDiasDeTokens(tokens); Dias = borrarDiasDuplicados(Dias); // Obtiene si fue puntual Puntualidad = this.checkPuntualidad(horarioLaboral, false); // Obtiene asistencia Asistencia = this.checkAsistencia(); }
public TimeSpan getAnticipoTotal(HorasLaborales horas) { TimeSpan span = TimeSpan.Parse("0"); foreach (TiemposDia t in this.Dias) { if ((t.salida1.Hora.TimeOfDay < horas.salida1.TimeOfDay) && (t.salida1.Hora.TimeOfDay != TimeSpan.Parse("00:00:00"))) // NOREGISTRO para no tomar en cuenta dias donde no se registró { span += horas.salida1.Subtract(t.salida1.Hora); } if ((t.salida2.Hora.TimeOfDay < horas.salida2.TimeOfDay) && (t.salida2.Hora.TimeOfDay != TimeSpan.Parse("00:00:00"))) { span += horas.salida2.Subtract(t.salida2.Hora); } } return(span); }
public TimeSpan getExtraTotal(HorasLaborales horas) { TimeSpan span = TimeSpan.Parse("0"); foreach (TiemposDia t in this.Dias) { if (t.salida1.Hora > horas.salida1) { span += t.salida1.Hora.Subtract(horas.salida1); } if (t.salida2.Hora > horas.salida2) { span += t.salida2.Hora.Subtract(horas.salida2); } } return(span); }