/**
  * Verifica si para este pago proceden notas de credito de descuento
  *
  * @param pago
  * @return
  */
 public boolean procedeDescuento(PagoM pago) {
   boolean val = (pago.getTipoDeDocumento().equals("E") || pago.getTipoDeDocumento().equals("S"));
   if (!val) return val;
   for (Pago p : pago.getPagos()) {
     if (p.getVenta().getDescuento1() == 0 && p.getVenta().getBonificaciones() == 0) {
       return true;
     }
   }
   return false;
 }
 /**
  * Intenta eliminar un pago unitario
  *
  * @param pago
  * @return
  */
 public boolean eliminarPago(final Pago pago) {
   final String pattern = "Elminar Pago aplicado: {0}\n ({1} tiene descuento aplicado)";
   String ok = pago.getVenta().getDescuentos() != 0 ? "Ya" : "No";
   boolean res =
       MessageUtils.showConfirmationMessage(
           MessageFormat.format(pattern, pago.getId(), ok), "Eliminación de pagos");
   if (res) {
     try {
       getPagosManager().eliminarPago(pago);
       return true;
     } catch (Exception e) {
       MessageUtils.showError("Error al elimiar pago", e);
       return false;
     }
   }
   return false;
 }
Beispiel #3
0
 public PagoConOtros crearPagoDeCargo(PagoM origen, List<NotaDeCredito> cargos) {
   Assert.notEmpty(cargos, "La collecion de cargos debe tener elementos");
   Assert.isTrue(origen.getDisponible().doubleValue() > 0, "El pago origen debe tener disponible");
   CXCFiltros.filtrarCargosConSaldo(cargos);
   if (cargos.isEmpty()) return null;
   final PagoConOtros pago = new PagoConOtros();
   pago.setOrigen(origen);
   pago.setReferencia(origen.getId().toString());
   pago.setCliente(origen.getCliente());
   pago.setFormaDePago(FormaDePago.S);
   pago.setTipoDeDocumento(cargos.get(0).getTipo());
   pago.setCliente(cargos.get(0).getCliente());
   for (NotaDeCredito c : cargos) {
     Pago pp = pago.aplicarPago(c, CantidadMonetaria.pesos(0));
     pp.setSucursal(1);
   }
   return pago;
 }
 /**
  * Intenta eliminar un pago tipo PagoM aplicado
  *
  * @param pago
  * @return
  */
 public boolean eliminarPagoM(final PagoM pago) {
   final String pattern =
       "Elminar Pago aplicado: {0}\n (Tiene {1} pagos de facturas con descuentos aplicados)";
   int aplicados = 0;
   getPagosManager().refresh(pago);
   for (Pago p : pago.getPagos()) {
     if (p.getVenta() != null && p.getVenta().getDescuentos() != 0) aplicados++;
   }
   boolean res =
       MessageUtils.showConfirmationMessage(
           MessageFormat.format(pattern, pago.getId(), aplicados), "Eliminación de pagos");
   if (res) {
     try {
       getPagosManager().eliminarPagoM(pago);
       return true;
     } catch (Exception e) {
       MessageUtils.showError("Error al elimiar pago", e);
       return false;
     }
   }
   return false;
 }
Beispiel #5
0
 /**
  * Genera un {@link PagoConNota} para un grupo de ventas
  *
  * @param nota
  * @param ventas
  * @return
  */
 public PagoConNota crearPagoConNota(NotaDeCredito nota, List<Venta> ventas) {
   Assert.notEmpty(ventas, "La collecion de ventas debe tener elementos");
   Assert.isTrue(nota.getSaldo() < 0, "La nota origen debe tener disponible");
   CXCFiltros.filtrarVentasConSaldo(ventas);
   if (ventas.isEmpty()) return null;
   final String tipo = ventas.get(0).getTipo();
   if (ventas.isEmpty()) return null;
   CXCFiltros.filtrarVentasParaUnTipo(ventas, tipo);
   final PagoConNota pago = new PagoConNota();
   pago.setNota(nota);
   pago.setReferencia(nota.getTipo() + " " + nota.getNumero());
   pago.setCliente(nota.getCliente());
   pago.setFormaDePago(FormaDePago.T);
   pago.setTipoDeDocumento(tipo);
   pago.setCliente(ventas.get(0).getCliente());
   for (Venta v : ventas) {
     Pago pp = pago.aplicarPago(v, CantidadMonetaria.pesos(0));
     pp.setNotaDelPago(nota);
     pp.setFormaDePago2(pago.getFormaDePago());
     pp.setDescFormaDePago(pago.getFormaDePago().getDesc());
     pp.setReferencia(nota.getTipo() + " " + nota.getNumero());
   }
   return pago;
 }