public async Task <IHttpActionResult> GetConsultaCompendio(ProductoGI p) { try { var entities = await _repo.GetConsultaCompendio(p); return(Ok(entities)); } catch (Exception e) { return(InternalServerError(e)); } }
public async Task <IHttpActionResult> Update([FromBody] ProductoGI model) { try { var clavePersona = SimpleSessionPersister.PersonaId; var nombrePersona = SimpleSessionPersister.nombreUsuario; if (String.IsNullOrEmpty(clavePersona) || String.IsNullOrEmpty(nombrePersona)) { throw new Exception("No se identifica al usuario"); } await _repo.Update(model, clavePersona, nombrePersona); return(Ok("Registro actualizado exitosamente!")); } catch (Exception e) { return(InternalServerError(e)); } }
public async Task <IHttpActionResult> RegistrarMovimiento([FromBody] ProductoGI model) { try { var clavePersona = SimpleSessionPersister.PersonaId; var nombrePersona = SimpleSessionPersister.nombreUsuario; if (String.IsNullOrEmpty(clavePersona) || String.IsNullOrEmpty(nombrePersona)) { throw new Exception("No se identifica al usuario"); } if (String.IsNullOrEmpty(model.Movimiento)) { throw new Exception("No se especificó el movimiento"); } await _repo.RegistrarMovimiento(model, clavePersona, nombrePersona); return(Ok("Factor de innovación actualizado exitosamente!")); } catch (Exception e) { return(InternalServerError(e)); } }
public async Task <IEnumerable <Object> > GetConsultaCompendio(ProductoGI parametros) { try { var fechaActual = DateTime.Now; var entities = dbGI.DbSetProductoGI .Where(e => e.EstadoFlujoComite == 18) .Where(e => e.VoBoDuenio == true) .AsNoTracking() .Include(x => x.FactorInnovacion) .Include(x => x.Proyecto); if (entities != null) { if (!String.IsNullOrEmpty(parametros.JefeProyecto)) //busqueda por jefe de proyecto { PersonasRepository persona = new PersonasRepository(); var fkspersonas = await persona.GetAllClavesByLikeNombreLatin1(parametros.JefeProyecto); entities = entities.Where(e => fkspersonas.Contains(e.Proyecto.NumjefeProyecto)); ////<====== Revisar } if (!String.IsNullOrEmpty(parametros.ProyectoId)) //busqueda por numero de proyecto { entities = entities.Where(e => e.ProyectoId == parametros.ProyectoId); } if (!String.IsNullOrEmpty(parametros.UnidadOrganizacionalId)) //busqueda por gerencia { entities = entities.Where(e => e.UnidadOrganizacionalId == parametros.UnidadOrganizacionalId); } if (!String.IsNullOrEmpty(parametros.ClaveFactorInnovacion)) //busqueda por clave de factor de innovacion { var id = Convert.ToInt32(parametros.ClaveFactorInnovacion); entities = entities.Where(e => e.FactorInnovacionId == id); } if (parametros.Periodo != 0) //busqueda por periodo { var fechaMinComparacion = new DateTime(parametros.Periodo, 1, 1); var fechaMaxComparacion = new DateTime(parametros.Periodo, 12, 31); var fksproductos = await dbGI.DbSetProductoGISolicitud.Where(e => DbFunctions.TruncateTime(e.FechaRegistro) >= DbFunctions.TruncateTime(fechaMinComparacion) && DbFunctions.TruncateTime(e.FechaRegistro) <= DbFunctions.TruncateTime(fechaMaxComparacion)) .AsNoTracking().Select(x => x.ProductoId).ToListAsync(); entities = entities.Where(e => fksproductos.Contains(e.ProductoId)); } var datos = entities.Select(x => new { ProductoId = x.ProductoId, ClavePersona = x.ClavePersona, FactorInnovacion = x.FactorInnovacion.Descripcion, FechaRegistro = dbGI.DbSetProductoGISolicitud.Where(ps => ps.ProductoId == x.ProductoId).Select(ps => ps.FechaRegistro).FirstOrDefault(), NombreTecnico = x.NombreTecnico, ProyectoId = x.ProyectoId, Proyecto = x.Proyecto.Nombre, JefeProyecto = x.Proyecto.NombreJefeProyecto, CveJefeProyecto = x.Proyecto.NumjefeProyecto, UnidadOrganizacional = (from unidad in dbGI.DbSetUnidadOrganizacional where x.UnidadOrganizacionalId.Equals(unidad.ClaveUnidad) && unidad.FechaEfectiva == dbGI.DbSetUnidadOrganizacional.Where( p => p.FechaEfectiva <= fechaActual && p.ClaveUnidad == unidad.ClaveUnidad ).Max(e => e.FechaEfectiva) select unidad.NombreUnidad).FirstOrDefault() }) .ToList(); return(datos); } return(entities); } catch (Exception e) { throw new Exception(e.Message, e); } }