/* * (non-Javadoc) * @see com.luxsoft.siipap.cxc.model.PagosFactory#crearPagoParaDiferienciaCambiaria(com.luxsoft.siipap.cxc.domain.PagoM) */ public PagoConOtros crearPagoParaDiferienciaCambiaria(final PagoM origen) { Assert.notNull(origen, "El pago no debe ser nulo"); Assert.isTrue(origen.getDisponible().doubleValue() > 0); final String tipo = origen.getTipoDeDocumento(); final CantidadMonetaria total = origen.getDisponibleAsMoneda(); final PagoConOtros pago = new PagoConOtros(); pago.setOrigen(origen); pago.setReferencia(origen.getId().toString()); pago.setCliente(origen.getCliente()); pago.setTipoDeDocumento(tipo); pago.setCliente(origen.getCliente()); pago.setFormaDePago(FormaDePago.F); pago.setComentario("DIFERENCIA CAMBIARA DE MAS"); pago.setImporte(total); return pago; }
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; }
/* * (non-Javadoc) * @see com.luxsoft.siipap.cxc.pagos.IControladorDePagos#diferenciaCambiaria(com.luxsoft.siipap.cxc.domain.PagoM) */ public boolean diferenciaCambiaria(final PagoM pago) { if (pago.getTipoDeDocumento().equals("X") || pago.getTipoDeDocumento().equals("M")) { if (pago.getDisponible().doubleValue() > 0) { if (MessageUtils.showConfirmationMessage( "Pago de facturas en dolares. Es el disponible diferencia cambiaria?", "Diferencia cambiaria")) { PagoConOtros pp = getPagosFactory().crearPagoParaDiferienciaCambiaria(pago); getPagosManager().salvarGrupoDePagos(pp); MessageUtils.showMessage( "Pago a diferencia cambiaria generado:\n" + pp.toString(), "Pago autmático"); return true; } } else { diferenciaCambiaria(pago.getVentasAplicadas()); } } return false; }
/** * Genera un {@link PagoConOtros} para un grupo de ventas * * @param origen * @param ventas * @return */ public PagoConOtros crearPago(final PagoM origen, final List<Venta> ventas) { Assert.notEmpty(ventas, "La collecion de ventas debe tener elementos"); Assert.isTrue(origen.getDisponible().doubleValue() > 0, "El pago 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 PagoConOtros pago = new PagoConOtros(); pago.setOrigen(origen); pago.setReferencia(origen.getId().toString()); pago.setCliente(origen.getCliente()); pago.setFormaDePago(FormaDePago.S); pago.setTipoDeDocumento(tipo); pago.setCliente(ventas.get(0).getCliente()); for (Venta v : ventas) { pago.aplicarPago(v, CantidadMonetaria.pesos(0)); } return pago; }