@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 = "/proveedores", params = "term", produces = "application/json") public @ResponseBody List<LabelValueBean> proveedores( 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("empresa", request.getSession().getAttribute("empresaId")); params.put("filtro", filtro); params = proveedorDao.lista(params); List<LabelValueBean> valores = new ArrayList<>(); List<Proveedor> proveedores = (List<Proveedor>) params.get("proveedores"); for (Proveedor proveedor : proveedores) { StringBuilder sb = new StringBuilder(); sb.append(proveedor.getNombre()); sb.append(" | "); sb.append(proveedor.getRfc()); sb.append(" | "); sb.append(proveedor.getNombreCompleto()); valores.add(new LabelValueBean(proveedor.getId(), sb.toString(), proveedor.getNombre())); } return valores; }
@RequestMapping public String lista( HttpServletRequest request, HttpServletResponse response, @RequestParam(required = false) String filtro, @RequestParam(required = false) Long pagina, @RequestParam(required = false) String tipo, @RequestParam(required = false) String correo, @RequestParam(required = false) String order, @RequestParam(required = false) String sort, Usuario usuario, Errors errors, Model modelo) { log.debug("Mostrando lista de tipos de entradas"); Map<String, Object> params = new HashMap<>(); params.put("almacen", request.getSession().getAttribute("almacenId")); if (StringUtils.isNotBlank(filtro)) { params.put("filtro", filtro); } if (pagina != null) { params.put("pagina", pagina); modelo.addAttribute("pagina", pagina); } else { pagina = 1L; modelo.addAttribute("pagina", pagina); } if (StringUtils.isNotBlank(order)) { params.put("order", order); params.put("sort", sort); } if (StringUtils.isNotBlank(tipo)) { params.put("reporte", true); params = entradaDao.lista(params); try { generaReporte(tipo, (List<Entrada>) params.get("entradas"), response); return null; } catch (JRException | IOException e) { log.error("No se pudo generar el reporte", e); params.remove("reporte"); errors.reject("error.generar.reporte"); } } if (StringUtils.isNotBlank(correo)) { params.put("reporte", true); params = entradaDao.lista(params); params.remove("reporte"); try { enviaCorreo(correo, (List<Entrada>) params.get("entradas"), request); modelo.addAttribute("message", "lista.enviada.message"); modelo.addAttribute( "messageAttrs", new String[] { messageSource.getMessage("entrada.lista.label", null, request.getLocale()), ambiente.obtieneUsuario().getUsername() }); } catch (JRException | MessagingException e) { log.error("No se pudo enviar el reporte por correo", e); } } params = entradaDao.lista(params); modelo.addAttribute("entradas", params.get("entradas")); // inicia paginado Long cantidad = (Long) params.get("cantidad"); Integer max = (Integer) params.get("max"); Long cantidadDePaginas = cantidad / max; List<Long> paginas = new ArrayList<>(); long i = 1; do { paginas.add(i); } while (i++ < cantidadDePaginas); List<Entrada> entradas = (List<Entrada>) params.get("entradas"); Long primero = ((pagina - 1) * max) + 1; Long ultimo = primero + (entradas.size() - 1); String[] paginacion = new String[] {primero.toString(), ultimo.toString(), cantidad.toString()}; modelo.addAttribute("paginacion", paginacion); modelo.addAttribute("paginas", paginas); // termina paginado return "inventario/entrada/lista"; }