public async Task <IHttpActionResult> ProcesarEstadoAve(List <Gpr_Estado_Ave_EdicionDTO> gpr_Estado_Aves) { //if (!ModelState.IsValid) //{ // return BadRequest(ModelState); //} int CantidadAves = 0; foreach (Gpr_Estado_Ave_EdicionDTO estado in gpr_Estado_Aves) { CantidadAves = CantidadAves + (estado.CantidadAves ?? 0); } Gpr_Temporada temporada = await db.Gpr_Temporada.FindAsync(gpr_Estado_Aves[0].IdGprTemporada);//db.Gpr_Temporada.Where(X => X.IdGprTemporada == gpr_Estado_Aves[0].IdGprTemporada).FirstOrDefault(); if (temporada.CantidadAves != CantidadAves) { return(Content(HttpStatusCode.BadRequest, "El total de aves debe ser igual a la cantidad de aves de la temporada.")); } List <Gpr_Estado_Ave> estadoAves = db.Gpr_Estado_Ave.Where(X => X.IdGprTemporada == temporada.IdGprTemporada && X.Estado == true).ToList(); foreach (Gpr_Estado_Ave estado in estadoAves) { Gpr_Estado_Ave gpr_Estado_Ave = db.Gpr_Estado_Ave.Find(estado.IdGprEstadoAve); gpr_Estado_Ave.FechaModificacion = DateTime.Now; gpr_Estado_Ave.UsuarioModificador = gpr_Estado_Aves[0].UsuarioCreador; gpr_Estado_Ave.Estado = false; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { throw; } } foreach (Gpr_Estado_Ave_EdicionDTO estado in gpr_Estado_Aves) { Mapper.Initialize(cfg => cfg.CreateMap <Gpr_Estado_Ave_EdicionDTO, Gpr_Estado_Ave>()); Gpr_Estado_Ave gpr_Estado_Ave = Mapper.Map <Gpr_Estado_Ave>(estado); gpr_Estado_Ave.FechaCreacion = DateTime.Now; gpr_Estado_Ave.Estado = true; db.Gpr_Estado_Ave.Add(gpr_Estado_Ave); await db.SaveChangesAsync(); } return(Content(HttpStatusCode.Accepted, "Completado.")); }
public async Task <IHttpActionResult> ModificarTemporada(int id, Gpr_Temporada_ModificacionDTO gpr_TemporadaM) { //var errors = ModelState.Values.SelectMany(v => v.Errors); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != gpr_TemporadaM.IdGprTemporada) { return(BadRequest()); } Gpr_Temporada gpr_Temporada = await db.Gpr_Temporada.FindAsync(id); gpr_Temporada.Estado = gpr_TemporadaM.Estado; gpr_Temporada.FechaModificacion = DateTime.Now; gpr_Temporada.Descripcion = gpr_TemporadaM.Descripcion; gpr_Temporada.CantidadAves = gpr_TemporadaM.CantidadAves; gpr_Temporada.FechaInicio = gpr_TemporadaM.FechaInicio; gpr_Temporada.CostoInicial = gpr_TemporadaM.CostoInicial; gpr_Temporada.FechaFin = gpr_TemporadaM.FechaFin; gpr_Temporada.TotalVenta = gpr_TemporadaM.TotalVenta; gpr_Temporada.UsuarioModificador = gpr_TemporadaM.UsuarioModificador; if (gpr_Temporada.FechaFin < gpr_Temporada.FechaCreacion) { return(Content(HttpStatusCode.BadRequest, "La fecha de fin no debe ser inferior a la fecha de creación.")); } db.Entry(gpr_Temporada).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!VerificarTemporada(id)) { return(NotFound()); } else { throw; } } //return StatusCode(HttpStatusCode.NoContent); return(Ok(BuscarTemporadaXGalpon(gpr_Temporada.IdGprGalpon))); }
public async Task <IHttpActionResult> GuardarTemporada(Gpr_Temporada_InsercionDTO gpr_TemporadaI) { List <Gpr_Temporada> temporadasActivas = db.Gpr_Temporada.Where(X => X.IdGprGalpon == gpr_TemporadaI.IdGprGalpon && X.FechaFin == null).ToList(); Gpr_Galpon galpon = db.Gpr_Galpon.Where(X => X.IdGprGalpon == gpr_TemporadaI.IdGprGalpon).FirstOrDefault(); if (temporadasActivas.Count > 0) { return(Content(HttpStatusCode.BadRequest, "Sólo puede haber una temporada activa por galpón, ingrese una fecha de fin para la temporada actual.")); } if (galpon.CantidadAves < gpr_TemporadaI.CantidadAves) { return(Content(HttpStatusCode.BadRequest, "La cantidad de aves durante la temporada, no debe superar la capacidad del galpón.")); } Mapper.Initialize(cfg => cfg.CreateMap <Gpr_Temporada_InsercionDTO, Gpr_Temporada>()); Gpr_Temporada gpr_Temporada = Mapper.Map <Gpr_Temporada>(gpr_TemporadaI); gpr_Temporada.FechaCreacion = DateTime.Now; gpr_Temporada.Estado = true; gpr_Temporada.UsuarioCreador = gpr_TemporadaI.UsuarioCreador; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.Gpr_Temporada.Add(gpr_Temporada); await db.SaveChangesAsync(); Gpr_Estado_Ave estadoAve = new Gpr_Estado_Ave(); estadoAve.CantidadAves = gpr_TemporadaI.CantidadAves; estadoAve.Estado = true; estadoAve.FechaCreacion = DateTime.Now; estadoAve.IdGprTemporada = gpr_Temporada.IdGprTemporada; estadoAve.IdGprTipoEstadoAve = 1; db.Gpr_Estado_Ave.Add(estadoAve); await db.SaveChangesAsync(); return(CreatedAtRoute("DefaultApi", new { id = gpr_Temporada.IdGprTemporada }, gpr_Temporada)); //return Ok(GetGpr_Temporada(gpr_Temporada.IdGprTemporada)); }
//[ResponseType(typeof(Dom_Componente_ElectronicoConsultaDTO))] public IQueryable <Gpr_Medicion_Diaria_ConsultaDTO> BuscarMedicionDiariaXTemporada(int idTemporada) { Gpr_Temporada temporada = db.Gpr_Temporada.Where(T => T.IdGprTemporada == idTemporada).FirstOrDefault(); if (temporada.FechaFin == null) { temporada.FechaFin = DateTime.Now; } var consulta = from MD in db.Gpr_Medicion_Diaria.Where(MD => MD.IdGprGalpon == temporada.IdGprGalpon && (MD.Fecha >= temporada.FechaInicio && MD.Fecha <= temporada.FechaFin)) select new Gpr_Medicion_Diaria_ConsultaDTO { Fecha = MD.Fecha, IdGprMedicionDiaria = MD.IdGprMedicionDiaria, Medicion = MD.Medicion, IdGprServicio = MD.IdGprServicio, }; return(consulta); }