@RequestMapping(value = "/productos", params = "term", produces = "application/json") public @ResponseBody List<LabelValueBean> productos( HttpServletRequest request, @RequestParam("term") String filtro) { for (String nombre : request.getParameterMap().keySet()) { log.debug("Param: {} : {}", nombre, request.getParameterMap().get(nombre)); } Map<String, Object> params = new HashMap<>(); params.put("almacen", request.getSession().getAttribute("almacenId")); params.put("filtro", filtro); params = productoDao.lista(params); List<LabelValueBean> valores = new ArrayList<>(); List<Producto> productos = (List<Producto>) params.get("productos"); for (Producto producto : productos) { StringBuilder sb = new StringBuilder(); sb.append(producto.getSku()); sb.append(" | "); sb.append(producto.getNombre()); sb.append(" | "); sb.append(producto.getDescripcion()); sb.append(" | "); sb.append(producto.getExistencia()).append(" ").append(producto.getUnidadMedida()); sb.append(" | "); sb.append(producto.getPrecioUnitario()); valores.add(new LabelValueBean(producto.getId(), sb.toString())); } return valores; }
@RequestMapping(value = "/lote/crea", method = RequestMethod.POST) public String creaLote( HttpServletRequest request, @Valid LoteEntrada lote, BindingResult bindingResult, Errors errors, Model modelo, RedirectAttributes redirectAttributes) { if (bindingResult.hasErrors()) { log.error("Hubo algun error en la forma, regresando"); return "inventario/entrada/lote/" + request.getParameter("entrada.id"); } try { if (request.getParameter("producto.id") == null) { log.warn("No se puede crear la entrada si no ha seleccionado un proveedor"); errors.rejectValue("producto", "lote.sin.producto.message"); return "inventario/entrada/lote/" + request.getParameter("entrada.id"); } Producto producto = productoDao.obtiene(new Long(request.getParameter("producto.id"))); Entrada entrada = entradaDao.obtiene(new Long(request.getParameter("entrada.id"))); lote.setProducto(producto); lote.setEntrada(entrada); lote.setFechaCreacion(new Date()); lote = entradaDao.creaLote(lote); } catch (NoEstaAbiertaException e) { log.error("No se pudo cerrar la entrada", e); redirectAttributes.addFlashAttribute("message", "entrada.intento.modificar.cerrada.message"); redirectAttributes.addFlashAttribute("messageStyle", "alert-error"); redirectAttributes.addFlashAttribute("messageAttrs", new String[] {""}); } catch (ProductoNoSoportaFraccionException e) { log.error("No se pudo crear la entrada porque no se encontro el producto", e); return "inventario/entrada/lote/" + request.getParameter("entrada.id"); } redirectAttributes.addFlashAttribute("message", "lote.creado.message"); redirectAttributes.addFlashAttribute( "messageAttrs", new String[] { lote.getProducto().getNombre(), lote.getCantidad().toString(), lote.getPrecioUnitario().toString(), lote.getProducto().getUnidadMedida(), lote.getIva().add(lote.getPrecioUnitario().multiply(lote.getCantidad())).toString() }); return "redirect:/inventario/entrada/ver/" + lote.getEntrada().getId(); }