/* * (non-Javadoc) * @see com.luxsoft.siipap.cxc.model.PagosFactory#crearPagoAutomaticoParaNotaDeCargo(java.util.List) */ public PagoM crearPagoAutomaticoParaNotaDeCargo(List<NotaDeCredito> cargos) { Assert.notEmpty(cargos, "La collecion de cargos debe tener elementos"); final PagoM pago = crearPago(cargos.get(0).getCliente(), cargos); pago.setFormaDePago(FormaDePago.D); CantidadMonetaria total = CantidadMonetaria.pesos(0); for (NotaDeCredito c : cargos) { final CantidadMonetaria importe = c.getSaldoDelCargoEnMoneda(); pago.aplicarPago(c, importe); total = total.add(importe); } pago.setImporte(total); 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; }
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; }
/** * 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; }
/** * 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; }
/** * 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; }
public static void main(String[] args) { ImporteALetra i = new ImporteALetra(); String res = i.convertirLetras(CantidadMonetaria.pesos(254922.99)); System.out.println(res); }
/** * Requisición de Cheque para pago de facturas por pagar * * @author Ruben Cancino */ public class Requisicion extends PersistentObject { private Proveedor proveedor; private Date fecha = Calendar.getInstance().getTime(); private String tipoDePago = "CHEQUE"; private Currency moneda = CantidadMonetaria.PESOS; private BigDecimal tipoDeCambio = BigDecimal.ONE; private CantidadMonetaria importe = CantidadMonetaria.pesos(0); private String elaboro; private Date creado = Calendar.getInstance().getTime(); private Date modificado; private boolean descuentoAplicable = true; private boolean aplicada = false; private boolean ncaplicada = false; private String observaciones; private Long numero; // Compatibilidad con old siipapw private List<RequisicionDetalle> partidas = new ArrayList<RequisicionDetalle>(); public boolean isAplicada() { return aplicada; } public void setAplicada(boolean aplicada) { this.aplicada = aplicada; } public boolean isDescuentoAplicable() { return descuentoAplicable; } public void setDescuentoAplicable(boolean descuentoAplicable) { this.descuentoAplicable = descuentoAplicable; } public Date getCreado() { return creado; } public void setCreado(Date creado) { this.creado = creado; } public String getElaboro() { return elaboro; } public void setElaboro(String elaboro) { this.elaboro = elaboro; } public Date getFecha() { return fecha; } public void setFecha(Date fecha) { this.fecha = fecha; } public CantidadMonetaria getImporte() { return importe; } public void setImporte(CantidadMonetaria importe) { Object old = this.importe; this.importe = importe; getPropertyChangeSupport().firePropertyChange("importe", old, importe); } public Date getModificado() { return modificado; } public void setModificado(Date modificado) { this.modificado = modificado; } public Currency getMoneda() { return moneda; } public void setMoneda(Currency moneda) { this.moneda = moneda; } public Proveedor getProveedor() { return proveedor; } public void setProveedor(Proveedor proveedor) { this.proveedor = proveedor; } public BigDecimal getTipoDeCambio() { return tipoDeCambio; } public void setTipoDeCambio(BigDecimal tipoDeCambio) { this.tipoDeCambio = tipoDeCambio; } public String getTipoDePago() { return tipoDePago; } public void setTipoDePago(String tipoDePago) { this.tipoDePago = tipoDePago; } public Long getNumero() { return numero; } public void setNumero(Long numero) { this.numero = numero; } public List<RequisicionDetalle> getPartidas() { return partidas; } public void setPartidas(List<RequisicionDetalle> partidas) { this.partidas = partidas; } public boolean addPartida(final RequisicionDetalle detalle) { detalle.setRequisicion(this); detalle.setProveedor(getProveedor()); return getPartidas().add(detalle); } @Override public boolean equals(Object obj) { if (obj == null) return false; if (obj == this) return true; Requisicion p = (Requisicion) obj; return new EqualsBuilder() .append(getProveedor(), p.getProveedor()) .append(getCreado(), p.getCreado()) .isEquals(); } @Override public int hashCode() { return new HashCodeBuilder(17, 35).append(getProveedor()).append(getCreado()).toHashCode(); } public String toString() { return new ToStringBuilder(this, ToStringStyle.SIMPLE_STYLE) .append("Req:", getId()) .append("Prov:" + getProveedor()) .append("Fecha:", getFecha()) .append("Importe:", getImporte()) .toString(); } public String getObservaciones() { return observaciones; } public void setObservaciones(String observaciones) { this.observaciones = observaciones; } public boolean isNcaplicada() { return ncaplicada; } public void setNcaplicada(boolean ncaplicada) { this.ncaplicada = ncaplicada; } }