public String getDefaultImageName() { if (defaultImageName == null) { Collection<Multimedio> multimedioCollection = producto.getMultimedioCollection(); for (Multimedio m : multimedioCollection) { if (m.getMimeType().toLowerCase().startsWith("image/")) { defaultImageName = producto.getId() + "_0.jpg"; break; } } if (defaultImageName == null) { defaultImageName = "DEFAULT.jpg"; } } return defaultImageName; }
public void buscarProductoConNombreDescripcion(ActionEvent e) { logger.debug( "################################ >> productoConNombreDescripcion: nombreDescripcion=" + nombreDescripcion); productoConNombreDescripcion = new ArrayList<SelectItem>(); if (nombreDescripcion.trim().length() >= 3) { List<Producto> listResultOriginal = productoJpaController.findProductoEntities(); for (Producto productoOriginal : listResultOriginal) { String nombreDescripcionOriginal = productoOriginal.getNombre() + "/" + productoOriginal.getPresentacion(); if (nombreDescripcionOriginal.toLowerCase().contains(nombreDescripcion.toLowerCase())) { SelectItem productoSI = new SelectItem(productoOriginal.getId(), nombreDescripcionOriginal); productoConNombreDescripcion.add(productoSI); } } } }
public void nombreDescripcionChanged(ValueChangeEvent e) { String newValue = (String) e.getNewValue(); logger.debug( "################################ >> nombreDescripcionChanged: newValue=" + newValue); productoConNombreDescripcion = new ArrayList<SelectItem>(); if (newValue.trim().length() >= 3) { List<Producto> listResultOriginal = productoJpaController.findProductoEntities(); for (Producto productoOriginal : listResultOriginal) { String nombreDescripcionOriginal = productoOriginal.getNombre() + "/" + productoOriginal.getPresentacion(); if (nombreDescripcionOriginal.toLowerCase().contains(newValue.toLowerCase())) { SelectItem productoSI = new SelectItem(productoOriginal.getId(), nombreDescripcionOriginal); productoConNombreDescripcion.add(productoSI); } } } }
public void agregarNProductoBuscado(ActionEvent e) { logger.debug( "## >> agregarNProductoBuscado : productoSelected=" + productoCBSelected + ", cantidadAgregar=" + cantidadAgregar); FacesMessage fm = null; int cantidadPrevia = 0; try { productoEncontrado = productoJPAController.findEntityByReadableProperty(productoCBSelected); cantidadPrevia = agregarProductoADetallePrevia(productoEncontrado.getId(), cantidadAgregar); fm = new FacesMessage( FacesMessage.SEVERITY_INFO, "Agregar Producto : ", "Se actualizó cantidad = " + cantidadPrevia + " + " + cantidadAgregar + " = " + (cantidadPrevia + cantidadAgregar) + ", del producto [" + productoCBSelected + "]"); } catch (ValidatorException ex) { logger.error("## >> agregarNProductoBuscado : Exception", ex); fm = ex.getFacesMessage(); } catch (Exception ex) { logger.error("## >> agregarNProductoBuscado : Exception", ex); fm = new FacesMessage( FacesMessage.SEVERITY_INFO, "Agregar Producto : ", "Error al gregar cantidad = " + cantidadPrevia + " + " + cantidadAgregar + " = " + (cantidadPrevia + cantidadAgregar) + ", del producto [" + productoCBSelected + "] :" + ex.getMessage()); } finally { cantidadAgregar = 1; cantidadCBAgregar = 1; productoEncontrado = null; productoConNombreDescripcion = new ArrayList<SelectItem>(); nombreDescripcion = null; codigoBuscar = ""; FacesContext.getCurrentInstance().addMessage(null, fm); } }
public List<Producto> autocompletarProductoConNombreDescripcion(Object suggest) { List<Producto> listResult = null; nombreDescripcion = (String) suggest; logger.debug( "################################ >> autocompletarProductoConNombreDescripcion: nombreDescripcion=" + nombreDescripcion); if (nombreDescripcion.trim().length() >= 3) { listResult = new ArrayList<Producto>(); List<Producto> listResultOriginal = productoJpaController.findProductoEntities(); for (Producto productoOriginal : listResultOriginal) { String nombreDescripcionOriginal = productoOriginal.getNombre() + "/" + productoOriginal.getPresentacion(); if (nombreDescripcionOriginal.toLowerCase().contains(nombreDescripcion.toLowerCase())) { listResult.add(productoOriginal); } } } return listResult; }
public void codigoBuscarChangedAction(ActionEvent e) { logger.debug( "## >> codigoBuscarChangedAction: codigoBuscar=" + codigoBuscar + ", cantidadAgregar=" + cantidadCBAgregar); FacesMessage fm = null; int cantidadPrevia = 0; try { if (!codigoBuscar.matches(REG_EXP_NUMBER_PATTERN)) { throw new ValidatorException( new FacesMessage( FacesMessage.SEVERITY_WARN, "Agregar Producto : ", "No es un Codigo de barras valido :" + codigoBuscar)); } productoEncontrado = productoJPAController.findEntityByReadableProperty(codigoBuscar); cantidadPrevia = agregarProductoADetallePrevia(productoEncontrado.getId(), cantidadCBAgregar); fm = new FacesMessage( FacesMessage.SEVERITY_INFO, "Agregar Producto : ", "Se actualizó cantidad = " + cantidadPrevia + " + " + cantidadCBAgregar + " = " + (cantidadPrevia + cantidadCBAgregar) + ", del producto [" + codigoBuscar + "]"); } catch (ValidatorException ex) { logger.error("## >> agergarNProductoPorCodigo: Exception", ex); fm = ex.getFacesMessage(); } finally { cantidadAgregar = 1; cantidadCBAgregar = 1; productoEncontrado = null; productoConNombreDescripcion = new ArrayList<SelectItem>(); nombreDescripcion = null; codigoBuscar = ""; FacesContext.getCurrentInstance().addMessage(null, fm); } }
private synchronized int agregarProductoADetallePrevia(Integer productoIdAgregar, int cantidad) { int cantidadPrevia = 0; PedidoVentaDetalleWrapper detalleVentaPedidoAgregar = null; logger.debug( "-->> agregarProductoADetallePrevia: productoIdAgregar=" + productoIdAgregar + ", cantidad=" + cantidad); for (PedidoVentaDetalleWrapper dvp : pedidoVentaDetalleList) { if (dvp.getProducto().getId().intValue() == productoIdAgregar.intValue()) { detalleVentaPedidoAgregar = dvp; break; } } if (detalleVentaPedidoAgregar != null) { if (detalleVentaPedidoAgregar.getCantidad() + cantidad > detalleVentaPedidoAgregar.getCantMax()) { throw new ValidatorException( new FacesMessage( FacesMessage.SEVERITY_ERROR, "Agregar Producto : ", "Producto [" + detalleVentaPedidoAgregar.getProducto().getCodigoBarras() + "] ya agregado, pero con esta cantidad (+" + cantidad + ") excede la existencia en Almacén de " + detalleVentaPedidoAgregar.getCantMax() + " unidades.")); } else { cantidadPrevia = detalleVentaPedidoAgregar.getCantidad(); detalleVentaPedidoAgregar.setCantidad(cantidadPrevia + cantidad); logger.debug("-->> agregarProductoADetallePrevia: Ok, actualizada"); } } else { detalleVentaPedidoAgregar = new PedidoVentaDetalleWrapper(new PedidoVentaDetalle()); detalleVentaPedidoAgregar.setCantidad(cantidad); Producto producto = productoJPAController.findById(productoIdAgregar); Collection<AlmacenProducto> almacenProductoCollection = producto.getAlmacenProductoCollection(); int cantMaxAlmacen = 0; double precioObjetivo = 0.0; for (AlmacenProducto almacenProducto : almacenProductoCollection) { if (almacenProducto.getAlmacen().getId().intValue() == getAlmacenObjetivo().getId().intValue()) { precioObjetivo = almacenProducto.getPrecioVenta(); cantMaxAlmacen = almacenProducto.getCantidadActual(); } } if (cantidad > cantMaxAlmacen) { throw new ValidatorException( new FacesMessage( FacesMessage.SEVERITY_ERROR, "Agregar Producto : ", "Producto [" + producto.getCodigoBarras() + "] se hiba a agregar, pero con esta cantidad (+" + cantidad + ") excede la existencia en Almacén de " + cantMaxAlmacen + " unidades.")); } if (listAlmacenProductoBuscar == null) { getListAlmacenProductoBuscar(); } AlmacenProductoDemanda prodEnDemanda = productoDemandaHT.get(productoIdAgregar); if (prodEnDemanda != null) { detalleVentaPedidoAgregar.setCantDemanda(prodEnDemanda.getSumDemanda()); detalleVentaPedidoAgregar.setOtrosPedidos(prodEnDemanda.getOtrosPedidos()); } detalleVentaPedidoAgregar.setCantMax(cantMaxAlmacen); detalleVentaPedidoAgregar.setProducto(producto); detalleVentaPedidoAgregar.setDescuentoAplicado(0.0); detalleVentaPedidoAgregar.setPrecioVenta(precioObjetivo); pedidoVentaDetalleList.add(detalleVentaPedidoAgregar); // pedidoVentaDetalleList.add(0, detalleVentaPedidoAgregar); logger.debug("-->> agregarProductoADetallePrevia: Ok, Add new"); } return cantidadPrevia; }
private void agregarProductoADetalle(Integer productoIdAgregar) { PedidoVentaDetalleWrapper detalleVentaPedidoAgregar = null; logger.debug( "################################ >> agregarProductoADetalle: productoIdAgregar=" + productoIdAgregar); for (PedidoVentaDetalleWrapper dvp : pedidoVentaDetalleList) { if (dvp.getProducto().getId() == productoIdAgregar) { detalleVentaPedidoAgregar = dvp; break; } } try { if (detalleVentaPedidoAgregar != null) { if (detalleVentaPedidoAgregar.getCantidad() >= detalleVentaPedidoAgregar.getCantMax()) { logger.warn( "################################ >> agregarProductoADetalle: Cantidad Exedida, no se agregara"); throw new ValidatorException( new FacesMessage( FacesMessage.SEVERITY_ERROR, "Sobrepasa cantidad Maxima de existencia en Almacenes", "Sobrepasa cantidad Maxima de existencia en Almacenes")); } else { detalleVentaPedidoAgregar.setCantidad(detalleVentaPedidoAgregar.getCantidad() + 1); logger.debug("################################ >> agregarProductoADetalle: \t Ok, edit"); } } else { detalleVentaPedidoAgregar = new PedidoVentaDetalleWrapper(new PedidoVentaDetalle()); detalleVentaPedidoAgregar.setCantidad(1); Producto producto = productoJpaController.findProducto(productoIdAgregar); Collection<AlmacenProducto> almacenProductoCollection = producto.getAlmacenProductoCollection(); int cantMaxAlmacenes = 0; for (AlmacenProducto almacenProducto : almacenProductoCollection) { cantMaxAlmacenes += almacenProducto.getCantidadActual(); } if (cantMaxAlmacenes <= 0) { logger.warn( "################################ >> agregarProductoADetalle: Cantidad Exedida, No hay existencia en Almacenes"); throw new ValidatorException( new FacesMessage( FacesMessage.SEVERITY_ERROR, "No hay existencia en Almacenes", "No hay existencia en Almacenes")); } detalleVentaPedidoAgregar.setCantMax(cantMaxAlmacenes); detalleVentaPedidoAgregar.setProducto(producto); detalleVentaPedidoAgregar.setDescuentoAplicado(0.0); detalleVentaPedidoAgregar.setPrecioVenta( detalleVentaPedidoAgregar.getProducto().getPrecioBase() * (1.0 + LogicaFinaciera.getImpuestoIVA())); pedidoVentaDetalleList.add(detalleVentaPedidoAgregar); logger.debug("################################ >> agregarProductoADetalle: \t Ok, Add new"); } } catch (ValidatorException ve) { logger.debug("<<!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); FacesContext.getCurrentInstance().addMessage(null, ve.getFacesMessage()); } }