/** * Genera un pago para el grupo de cargos indicado * * @param c * @param cargos * @return */ public PagoM crearPago(final Cliente c, final List<NotaDeCredito> cargos) { Assert.notEmpty(cargos, "La collecion de cargos debe tener elementos"); final PagoM pago = new PagoM(); pago.setCliente(c); pago.setClave(c.getClave()); pago.setTipoDeDocumento("M"); CollectionUtils.forAllDo( cargos, new Closure() { public void execute(Object input) { NotaDeCredito cargo = (NotaDeCredito) input; Pago p = new Pago(); p.setCliente(pago.getCliente()); p.setClave(pago.getClave()); p.setPagoM(pago); p.setNota(cargo); pago.getPagos().add(p); p.setOrigen(cargo.getOrigen()); p.setTipoDocto(cargo.getTipo()); p.setNumero(cargo.getNumero()); p.setSucursal(1); } }); return pago; }
/* * (non-Javadoc) * @see com.luxsoft.siipap.cxc.model.PagosFactory#crearPagoParaDiferienciaCambiaria(java.util.List) */ public PagoM crearPagoParaDiferienciaCambiaria(final List<Venta> ventas) { Assert.notEmpty(ventas, "La collecion de ventas debe tener elementos"); if (ventas.isEmpty()) return null; final String tipo = ventas.get(0).getTipo(); final PagoM pago = new PagoM(); pago.setFormaDePago(FormaDePago.F); pago.setTipoDeDocumento(tipo); pago.setCliente(ventas.get(0).getCliente()); pago.setComentario("DIFERENCIA CAMBIARA DE MENOS"); CantidadMonetaria total = CantidadMonetaria.pesos(0); for (Venta v : ventas) { final CantidadMonetaria importe = v.getSaldoEnMonedaSinImportaroSigno(); pago.aplicarPago(v, importe); total = total.add(importe); } pago.setImporte(total); return pago; }
/** * Genera un PagoM para ventas con saldo menor o igual a 100 pesos * * @param ventas * @return */ public PagoM crearPagoAutomatico(List<Venta> ventas) { Assert.notEmpty(ventas, "La collecion de ventas debe tener elementos"); CXCFiltros.filtrarParaPagoAutomatico(ventas); if (ventas.isEmpty()) return null; final String tipo = ventas.get(0).getTipo(); if (ventas.isEmpty()) return null; CXCFiltros.filtrarVentasParaUnTipo(ventas, tipo); final PagoM pago = new PagoM(); pago.setFormaDePago(FormaDePago.D); pago.setTipoDeDocumento(tipo); pago.setCliente(ventas.get(0).getCliente()); CantidadMonetaria total = CantidadMonetaria.pesos(0); for (Venta v : ventas) { final CantidadMonetaria importe = v.getSaldoEnMoneda(); pago.aplicarPago(v, importe); total = total.add(importe); } pago.setImporte(total); // pago.calcularDisponible(); return pago; }