// User || admin @POST @Path("/create") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response addProducto(@QueryParam("mongo") Boolean mongo, DataProducto dp) { Producto p = new Producto(); p.setNombre(dp.getNombre()); p.setDescripcion(dp.getDescripcion()); Categoria cat = em.find(Categoria.class, dp.getCategoria()); if (cat == null) { DataResponse dr = new DataResponse(); dr.setMensaje("Categoria " + dp.getCategoria() + " no existe"); return Response.status(500).entity(dr).build(); } p.setCategoria(cat); p.setGenerico(dp.getIsgenerico()); try { em.persist(p); em.flush(); dp.setID(p.getId()); // MONGO if (mongo == null || mongo) new MongoController().upsertProduct(dp); return Response.status(201).entity(dp).build(); } catch (Exception e) { DataResponse dr = new DataResponse(); dr.setMensaje("Error inesperado."); dr.setDescripcion(e.getMessage()); return Response.status(409).build(); } }
// if producto generico admin // else user @PUT @Path("{id}") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response updateProducto(@PathParam(value = "id") Long id, DataProducto dp) { Producto p = em.find(Producto.class, id); p.setNombre(dp.getNombre()); p.setDescripcion(dp.getDescripcion()); p.setGenerico(dp.getIsgenerico()); Categoria cat = em.find(Categoria.class, dp.getCategoria()); if (cat == null) { DataResponse dr = new DataResponse(); dr.setMensaje("Categoria " + dp.getCategoria() + " no existe"); return Response.status(500).entity(dr).build(); } p.setCategoria(cat); em.merge(p); // mongo thread dp.setID(p.getId()); new MongoController().upsertProduct(dp); return Response.status(200).build(); }
@POST @Path("/unificar") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response doGenerico(DataUnificar du) { Producto nuevo = new Producto(); nuevo.setNombre(du.getNombre()); nuevo.setCategoria(em.find(Categoria.class, du.getCategoria())); nuevo.setDescripcion(du.getDescripcion()); nuevo.setGenerico(true); nuevo.setCarritoProductos(new ArrayList<CarritoProducto>()); for (Long productoid : du.getProductos()) { Producto p = em.find(Producto.class, productoid); nuevo.getCarritoProductos().addAll(p.getCarritoProductos()); nuevo.getReportesMovimientoStocks().addAll(p.getReportesMovimientoStocks()); nuevo.getStocks().addAll(p.getStocks()); } return Response.status(200).build(); }