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; }