public String confirmarPedido() { logger.debug("========================================================>>"); logger.debug("-->>confirmarPedido():"); logger.debug("========================================================>>"); try { dataValidation(); try { pedidoVenta.setCliente(new Cliente(clienteId)); pedidoVenta.setFormaDePago(new FormaDePago(formaDePagoId)); pedidoVenta.setUsuario(sessionUserMB.getUsuarioAuthenticated()); pedidoVenta.setComentarios("PedidoNuevoMB.confirmarPedido @" + new Date()); pedidoVenta.setFactoriva(LogicaFinaciera.getImpuestoIVA()); Collection<PedidoVentaDetalle> pedidoVentaDetalleCollection = new ArrayList<PedidoVentaDetalle>(); for (PedidoVentaDetalleWrapper pvdw : pedidoVentaDetalleList) { pedidoVentaDetalleCollection.add(pvdw.getPedidoVentaDetalle()); } for (PedidoVentaDetalle pvd : pedidoVentaDetalleCollection) { logger.debug( "\t==>>pedidoVentaDetalleCollection:" + pvd.getCantidad() + " x " + pvd.getProducto()); } pedidoVenta.setPedidoVentaDetalleCollection(pedidoVentaDetalleCollection); pedidoVenta = pedidoVentaBusinessLogic.crearPedidoCapturado( pedidoVenta, sessionUserMB.getUsuarioAuthenticated()); logger.debug("<<===================== OK crearPedidoCapturado ======================="); // pedidoVenta = // pedidoVentaBusinessLogic.crearPedidoVentaDetalleCapturado(pedidoVenta,pedidoVentaDetalleCollection); // logger.debug("<<===================== OK crearPedidoVentaDetalleCapturado // ======================="); pedidoVentaBusinessLogic.sincronizarPedido( pedidoVenta, sessionUserMB.getUsuarioAuthenticated()); logger.debug("<<===================== OK sincronizarPedido ======================="); return "pedidoCreado"; } catch (Exception ex) { logger.debug("<<++++++++++++++++++++++++++++++++++++++++++++++++++"); ex.printStackTrace(System.err); logger.debug("Error in MB to create pedido:", ex); throw new ValidatorException( new FacesMessage(FacesMessage.SEVERITY_ERROR, ex.toString(), ex.toString())); } finally { reiniciarPedido(); } } catch (ValidatorException ve) { logger.debug("<<!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); FacesContext.getCurrentInstance().addMessage(null, ve.getFacesMessage()); return null; } }
public PedidoVentaDetalleFooter getPedidoFooter() { PedidoVentaDetalleFooter dvpf = new PedidoVentaDetalleFooter(); int totalPiezas = 0; dvpf.setCantTotal(totalPiezas); dvpf.setDescuento(0.0); double subtotal = 0.0; double descuento = 0.0; double importeDescuento = 0.0; double subTotalRegistro = 0.0; for (PedidoVentaDetalleWrapper dvp : pedidoVentaDetalleList) { totalPiezas += dvp.getCantidad(); subTotalRegistro = dvp.getCantidad() * dvp.getPrecioVenta(); subtotal += subTotalRegistro; } dvpf.setNumItems(totalPiezas); descuentoCalculado = 0; if (modoVenta == Constants.ALMACEN_LINEA) { if (subtotal >= 5000 && subtotal < 10000) { descuento = 0.05; descuentoCalculado = 5; } else if (subtotal >= 10000) { descuento = 0.1; descuentoCalculado = 10; } } descuento = descuento + (descuentoEspecial / 100.0); importeDescuento = subtotal * descuento; double subtotalDeplegar = subtotal / (1 + LogicaFinaciera.getImpuestoIVA()); double impuestoDesplegar = subtotal - subtotalDeplegar; dvpf.setSubtotal(subtotalDeplegar); dvpf.setImpuesto(impuestoDesplegar); dvpf.setDescuento(importeDescuento); dvpf.setTotal(subtotalDeplegar + impuestoDesplegar - importeDescuento); return dvpf; }
public PedidoVentaDetalleFooter getPedidoFooter() { PedidoVentaDetalleFooter dvpf = new PedidoVentaDetalleFooter(); int totalPiezas = 0; dvpf.setCantTotal(totalPiezas); dvpf.setDescuento(0.0); double subtotal = 0.0; double descuento = 0.0; double descuentoRegistro = 0.0; double impuesto = 0.0; double impuestoRegistro = 0.0; double subTotalRegistro = 0.0; for (PedidoVentaDetalleWrapper dvp : pedidoVentaDetalleList) { totalPiezas += dvp.getCantidad(); subTotalRegistro = dvp.getCantidad() * dvp.getPrecioVenta(); impuestoRegistro = subTotalRegistro * LogicaFinaciera.getImpuestoIVA(); if (dvp.getDescuentoAplicado() != 0.0) { descuentoRegistro = dvp.getDescuentoAplicado() * (subTotalRegistro + impuestoRegistro); } else { descuentoRegistro = 0; } impuesto += impuestoRegistro; descuento += descuentoRegistro; subtotal += subTotalRegistro; } dvpf.setNumItems(totalPiezas); dvpf.setSubtotal(subtotal); dvpf.setImpuesto(impuesto); dvpf.setDescuento(descuento); dvpf.setTotal(subtotal + impuesto - descuento); return dvpf; }
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()); } }