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."));
        }
Exemplo n.º 2
0
        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)));
        }
Exemplo n.º 3
0
        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);
        }