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));
        }