public IHttpActionResult PostRecepcion(int id, ReposicionBasicaDTO recepcion) { if (!ModelState.IsValid || id != recepcion.reposicion_id) return BadRequest(ModelState); OrdenReposicion orden = db.OrdenesReposicion.Include(x => x.PuntoVenta).Where(x => x.Id == id).FirstOrDefault(); if (orden == null) return NotFound(); if (orden.Estado != OrdenReposicionEstado.en_transito) return BadRequest("La orden de reposición se encuentra en el estado incorrecto"); Camion camion = db.Camiones.Where(x => x.Id == orden.CamionId).FirstOrDefault(); if (camion == null) return NotFound(); orden.FechaEntrega = DateTime.UtcNow; orden.Estado = OrdenReposicionEstado.entregada; camion.Estado = CamionEstado.disponible; var ev = new OrdenReposicionEventoRecepcion(orden, orden.FechaEntrega, recepcion.usuario, recepcion.comentario); db.OrdenesReposicionEventos.Add(new OrdenReposicionEvento(ev.GetEvento(), orden)); db.SaveChanges(); return Ok(new ReposicionResumenDTO(orden, orden.PuntoVenta)); }
public IHttpActionResult PostComentario(int id, ReposicionBasicaDTO comentario) { if (!ModelState.IsValid || id != comentario.reposicion_id) return BadRequest(ModelState); OrdenReposicion orden = db.OrdenesReposicion.Where(x => x.Id == id).FirstOrDefault(); if (orden == null) return NotFound(); var ev = new OrdenReposicionEventoComentario(orden, comentario.usuario, comentario.comentario); db.OrdenesReposicionEventos.Add(new OrdenReposicionEvento(ev.GetEvento(), orden)); db.SaveChanges(); return Ok(new EventoDTO(ev)); }