public HttpResponseMessage GetCalendarioAnual() { try { var lst = ACA_CalendarioAnualBO.SelecionaCalendarioAnual(__userLogged.Usuario.ent_id, ApplicationWEB.AppMinutosCacheLongo, __userLogged.Docente.doc_id, __userLogged.Usuario.usu_id, __userLogged.Grupo.gru_id); string selecionado = string.Empty; if (lst.Where(c => Convert.ToInt32(c.cal_ano) >= DateTime.Today.Year).Count() == 1) { selecionado = lst.Where(c => Convert.ToInt32(c.cal_ano) >= DateTime.Today.Year).First().cal_id; } Calendarios ret = new Calendarios { lista = lst.Select(p => new jsonObject { id = p.cal_id.ToString(), text = p.cal_ano_desc }), idSelecionado = selecionado }; return(Request.CreateResponse(HttpStatusCode.OK, ret)); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex)); } }
public PartialViewResult GetColaboradorById(string COD_Colaborador) { using (db) { var GetColaboradorById = db.Colaboradores.Find(COD_Colaborador); //Colaboradores GetColaboradorById = new Colaboradores(); //GetColaboradorById = db.Colaboradores.Find(COD_Colaborador); if (GetColaboradorById == null) { ViewBag.desconocido = "COLABORADOR NO REGISTRADO"; ViewBag.FechayHora = DateTime.Now; return(PartialView("GetColaboradorDesconocido", null)); } if (GetColaboradorById != null) { if (GetColaboradorById.Estado == true) { if (DateTime.Now >= GetColaboradorById.FechaIngresoReingreso && DateTime.Now <= GetColaboradorById.FechaCese) {//Hasta aqui el colaborador tiene permitido el ingreso y vigente su contrato var GetRegistroDiarioColaborador = dbx.RegistrosDiarios.Where(r => r.COD_Colaborador == COD_Colaborador && r.Fecha.Month == DateTime.Today.Month && r.Fecha.Year == DateTime.Today.Year && r.Fecha.Day == DateTime.Today.Day).FirstOrDefault(); if (GetRegistroDiarioColaborador == null)//el colaborador no registro el dia de hoy su ingreso o salida { //registramos su INGRESO al no existir registro alguno de su ingreso //REGISTRAR INGRESO RegistrosDiarios rd = new RegistrosDiarios(); rd.COD_Colaborador = COD_Colaborador; rd.Periodo = Convert.ToString(DateTime.Today.Year); rd.Fecha = DateTime.Now; rd.FechaYHoraIngreso = DateTime.Now; rd.FechaYHoraSalida = null; rd.UltimaActualizacion = DateTime.Now; // registramos su ingreso pero su salida lo ponemos en null db.RegistrosDiarios.Add(rd); db.SaveChanges(); ViewBag.estado = "ACCESO REGISTRADO"; ViewBag.ingresosalida = "INGRESO"; ViewBag.FechayHora = DateTime.Now; } else { //el colaborador registro solamente su ingreso o registro ambos(Ingreso salida) if (GetRegistroDiarioColaborador.FechaYHoraIngreso != null && GetRegistroDiarioColaborador.FechaYHoraSalida == null) //el colaborador ya registro suingreso quedaria pendiente registrar su salida { Calendarios GetCalendario = dbx.Calendarios.Where(r => r.Fecha == DateTime.Today).FirstOrDefault(); if (GetCalendario != null) { // T2 = Domingos feriados // T1= horas extra 25% y 35% // HN = horas Normales sin sobretiempo double T1 = 0, T2 = 0, HN = 0, HorasTrabajadas = 0, descanso; descanso = 1; RegistrosDiarios registrodiariosx = db.RegistrosDiarios.Find(GetRegistroDiarioColaborador.ID_RegistroDiario); DateTime endTime = DateTime.Now; DateTime startTime = registrodiariosx.FechaYHoraIngreso; TimeSpan span = endTime.Subtract(startTime); HorasTrabajadas = span.TotalHours; if (span.TotalHours >= 6) {//con descanso HorasTrabajadas = span.TotalHours - descanso; } else {//sin descanso HorasTrabajadas = span.TotalHours; } if (GetCalendario.ID_TipoDia == "T2") { T2 = HorasTrabajadas; T1 = 0; HN = 0; } else if (GetCalendario.ID_TipoDia == "T1") { if (HorasTrabajadas >= 0.5 && HorasTrabajadas <= 8) { T2 = 0; T1 = 0; HN = HorasTrabajadas; } else if (HorasTrabajadas > 8) { T2 = 0; T1 = HorasTrabajadas - 8; HN = 8; } } //REGISTRAR SALIDA registrodiariosx.FechaYHoraSalida = DateTime.Now; registrodiariosx.UltimaActualizacion = DateTime.Now; registrodiariosx.ID_TipoDia = GetCalendario.ID_TipoDia; registrodiariosx.HorasTrabajadas = Convert.ToDecimal(HorasTrabajadas); registrodiariosx.HN = Convert.ToDecimal(HN); registrodiariosx.T1 = Convert.ToDecimal(T1); registrodiariosx.T2 = Convert.ToDecimal(T2); db.Entry(registrodiariosx).State = EntityState.Modified; db.SaveChanges(); ViewBag.estado = "ACCESO REGISTRADO"; ViewBag.ingresosalida = "SALIDA"; ViewBag.FechayHora = DateTime.Now; } } else if (GetRegistroDiarioColaborador.FechaYHoraIngreso != null && GetRegistroDiarioColaborador.FechaYHoraSalida != null)// el colaborador ya registro su ingreso y salida { //MOSTRAR MENSAJE QUE YA NO PUEDE INGRESAR A LAS INSTALACIONES EL DIA DE HOY ViewBag.estado = "UD YA NO PUEDE INGRESAR A LAS INSTALACIONES EL DIA DE HOY"; ViewBag.FechayHora = DateTime.Now; } } } else { ViewBag.estado = "ACCESO DENEGADO"; } } else { ViewBag.estado = "ACCESO DENEGADO"; } } DateTime fechayhoraactual = new DateTime(); fechayhoraactual = DateTime.Parse(DateTime.Now.Date.ToString("dd/MM/yyyy")); ViewBag.FechaServidor = fechayhoraactual; return(PartialView("GetColaboradorById", GetColaboradorById)); } }