public string AltaIncidencia(int usuId, DateTime fechahora, string guid) { int tieId = (from gui in _context.AsisGuid join caj in _context.TiendaCajas on gui.CajId equals caj.CajId join tie in _context.Tiendas on caj.TieId equals tie.TieId where gui.GuiValor == guid select tie.TieId).FirstOrDefault(); if (tieId == 0) { return("QR Inválido, intenta de nuevo!"); } AsisHorario hor = (from Rol in _context.AsisRoles join Hor in _context.AsisHorario on Rol.HorId equals Hor.HorId join Usu in _context.Usuarios on Rol.UsuId equals Usu.UsuId where Rol.RolActual && Rol.UsuId == usuId select Rol.Hor).FirstOrDefault(); if (hor == null) { return("No tienes un horario asignado"); } if (hor.TieId != tieId) { return("No checas en ésta tienda, verifica!"); } if (!ChecaEntrada(hor, 1)) { return("El día de hoy no asistes a laborar"); } var asis = _context.AsisAsistencia.Where(asi => asi.AsiIncidencia.Date == fechahora.Date && asi.UsuId == usuId).OrderBy(asi => asi.AsiNumero); AsisAsistencia checada = new AsisAsistencia(); checada.UsuId = usuId; if (asis.Count() == 0 || asis == null) { checada.AsiIncidencia = fechahora; checada.AsiNumero = 0; checada.AsiRetardo = hor.HorRetardo; checada.AsiEnSistema = Entrada(hor, 1); respuesta = "1a Entrada"; _context.AsisAsistencia.Add(checada); } else { if (asis.Count() == 1) { checada.AsiIncidencia = fechahora; checada.AsiEnSistema = Salida(hor, 1); checada.AsiRetardo = hor.HorRetardo; checada.AsiNumero = 1; _context.AsisAsistencia.Add(checada); respuesta = "1a Salida"; } if (asis.Count() == 2) { if (ChecaEntrada(hor, 2)) { checada.AsiIncidencia = fechahora; checada.AsiEnSistema = Entrada(hor, 2); checada.AsiRetardo = hor.HorRetardo; checada.AsiNumero = 2; _context.AsisAsistencia.Add(checada); respuesta = "2a Entrada"; } else { return("No hay mas checadas hoy"); } } if (asis.Count() == 3) { checada.AsiIncidencia = fechahora; checada.AsiEnSistema = Salida(hor, 2); checada.AsiRetardo = hor.HorRetardo; checada.AsiNumero = 3; _context.AsisAsistencia.Add(checada); respuesta = "2a Salida"; } if (asis.Count() == 4) { if (ChecaEntrada(hor, 3)) { checada.AsiIncidencia = fechahora; checada.AsiEnSistema = Entrada(hor, 3); checada.AsiRetardo = hor.HorRetardo; checada.AsiNumero = 4; _context.AsisAsistencia.Add(checada); respuesta = "3a Entrada"; } else { return("No hay mas checadas hoy"); } } if (asis.Count() == 5) { checada.AsiIncidencia = fechahora; checada.AsiEnSistema = Salida(hor, 3); checada.AsiRetardo = hor.HorRetardo; checada.AsiNumero = 5; _context.AsisAsistencia.Add(checada); respuesta = "3a Salida"; } } try { _context.SaveChanges(); } catch (Exception ex) { return(ex.Message); } return(respuesta + " (" + fechahora.ToString("hh:mm:ss tt") + ")"); }
public DateTime Entrada(AsisHorario hor, int reg) { switch (reg) { case 1: switch ((int)DateTime.Now.DayOfWeek) { case 0: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorDUnoEntrada.Value.Hours, hor.HorDUnoEntrada.Value.Minutes, hor.HorDUnoEntrada.Value.Seconds)); case 1: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorLUnoEntrada.Value.Hours, hor.HorLUnoEntrada.Value.Minutes, hor.HorLUnoEntrada.Value.Seconds)); case 2: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorMUnoEntrada.Value.Hours, hor.HorMUnoEntrada.Value.Minutes, hor.HorMUnoEntrada.Value.Seconds)); case 3: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorEUnoEntrada.Value.Hours, hor.HorEUnoEntrada.Value.Minutes, hor.HorEUnoEntrada.Value.Seconds)); case 4: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorJUnoEntrada.Value.Hours, hor.HorJUnoEntrada.Value.Minutes, hor.HorJUnoEntrada.Value.Seconds)); case 5: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorVUnoEntrada.Value.Hours, hor.HorVUnoEntrada.Value.Minutes, hor.HorVUnoEntrada.Value.Seconds)); case 6: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorSUnoEntrada.Value.Hours, hor.HorSUnoEntrada.Value.Minutes, hor.HorSUnoEntrada.Value.Seconds)); } break; case 2: switch ((int)DateTime.Now.DayOfWeek) { case 0: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorDDosEntrada.Value.Hours, hor.HorDDosEntrada.Value.Minutes, hor.HorDDosEntrada.Value.Seconds)); case 1: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorLDosEntrada.Value.Hours, hor.HorLDosEntrada.Value.Minutes, hor.HorLDosEntrada.Value.Seconds)); case 2: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorMDosEntrada.Value.Hours, hor.HorMDosEntrada.Value.Minutes, hor.HorMDosEntrada.Value.Seconds)); case 3: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorEDosEntrada.Value.Hours, hor.HorEDosEntrada.Value.Minutes, hor.HorEDosEntrada.Value.Seconds)); case 4: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorJDosEntrada.Value.Hours, hor.HorJDosEntrada.Value.Minutes, hor.HorJDosEntrada.Value.Seconds)); case 5: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorVDosEntrada.Value.Hours, hor.HorVDosEntrada.Value.Minutes, hor.HorVDosEntrada.Value.Seconds)); case 6: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorSDosEntrada.Value.Hours, hor.HorSDosEntrada.Value.Minutes, hor.HorSDosEntrada.Value.Seconds)); } break; case 3: switch ((int)DateTime.Now.DayOfWeek) { case 0: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorDTresEntrada.Value.Hours, hor.HorDTresEntrada.Value.Minutes, hor.HorDTresEntrada.Value.Seconds)); case 1: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorLTresEntrada.Value.Hours, hor.HorLTresEntrada.Value.Minutes, hor.HorLTresEntrada.Value.Seconds)); case 2: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorMTresEntrada.Value.Hours, hor.HorMTresEntrada.Value.Minutes, hor.HorMTresEntrada.Value.Seconds)); case 3: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorETresEntrada.Value.Hours, hor.HorETresEntrada.Value.Minutes, hor.HorETresEntrada.Value.Seconds)); case 4: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorJTresEntrada.Value.Hours, hor.HorJTresEntrada.Value.Minutes, hor.HorJTresEntrada.Value.Seconds)); case 5: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorVTresEntrada.Value.Hours, hor.HorVTresEntrada.Value.Minutes, hor.HorVTresEntrada.Value.Seconds)); case 6: return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hor.HorSTresEntrada.Value.Hours, hor.HorSTresEntrada.Value.Minutes, hor.HorSTresEntrada.Value.Seconds)); } break; } return(new DateTime(2000, 1, 1, 0, 0, 0, 0)); }
public DateTime Salida(AsisHorario hor, int cad) { TimeSpan hora = new TimeSpan(); switch (cad) { case 1: switch ((int)DateTime.Now.DayOfWeek) { case 0: hora = hor.HorDUnoEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorDUnoHoras)); break; case 1: hora = hor.HorLUnoEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorLUnoHoras)); break; case 2: hora = hor.HorMUnoEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorMUnoHoras)); break; case 3: hora = hor.HorEUnoEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorEUnoHoras)); break; case 4: hora = hor.HorJUnoEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorJUnoHoras)); break; case 5: hora = hor.HorVUnoEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorVUnoHoras)); break; case 6: hora = hor.HorSUnoEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorSUnoHoras)); break; } break; case 2: switch ((int)DateTime.Now.DayOfWeek) { case 0: hora = hor.HorDDosEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorDDosHoras)); break; case 1: hora = hor.HorLDosEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorLDosHoras)); break; case 2: hora = hor.HorMDosEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorMDosHoras)); break; case 3: hora = hor.HorEDosEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorEDosHoras)); break; case 4: hora = hor.HorJDosEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorJDosHoras)); break; case 5: hora = hor.HorVDosEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorVDosHoras)); break; case 6: hora = hor.HorSDosEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorSDosHoras)); break; } break; case 3: switch ((int)DateTime.Now.DayOfWeek) { case 0: hora = hor.HorDTresEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorDTresHoras)); break; case 1: hora = hor.HorLTresEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorLTresHoras)); break; case 2: hora = hor.HorMTresEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorMTresHoras)); break; case 3: hora = hor.HorETresEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorETresHoras)); break; case 4: hora = hor.HorJTresEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorJTresHoras)); break; case 5: hora = hor.HorVTresEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorVTresHoras)); break; case 6: hora = hor.HorSTresEntrada.Value.Add(TimeSpan.FromHours((double)hor.HorSTresHoras)); break; } break; } return(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hora.Hours, hora.Minutes, hora.Seconds)); }
public bool ChecaEntrada(AsisHorario horario, int num) { if (num == 1) { switch ((int)DateTime.Now.DayOfWeek) { case 0: return(horario.HorDUnoEntrada == null ? false : true); case 1: return(horario.HorLUnoEntrada == null ? false : true); case 2: return(horario.HorMUnoEntrada == null ? false : true); case 3: return(horario.HorEUnoEntrada == null ? false : true); case 4: return(horario.HorJUnoEntrada == null ? false : true); case 5: return(horario.HorVUnoEntrada == null ? false : true); case 6: return(horario.HorSUnoEntrada == null ? false : true); } } if (num == 2) { switch ((int)DateTime.Now.DayOfWeek) { case 0: return(horario.HorDDosEntrada == null ? false : true); case 1: return(horario.HorLDosEntrada == null ? false : true); case 2: return(horario.HorMDosEntrada == null ? false : true); case 3: return(horario.HorEDosEntrada == null ? false : true); case 4: return(horario.HorJDosEntrada == null ? false : true); case 5: return(horario.HorVDosEntrada == null ? false : true); case 6: return(horario.HorSDosEntrada == null ? false : true); } } switch ((int)DateTime.Now.DayOfWeek) { case 0: return(horario.HorDTresEntrada == null ? false : true); case 1: return(horario.HorLTresEntrada == null ? false : true); case 2: return(horario.HorMTresEntrada == null ? false : true); case 3: return(horario.HorETresEntrada == null ? false : true); case 4: return(horario.HorJTresEntrada == null ? false : true); case 5: return(horario.HorVTresEntrada == null ? false : true); case 6: return(horario.HorSTresEntrada == null ? false : true); } return(false); }