Esempio n. 1
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;
 }