Ejemplo n.º 1
0
 public String convertirLetras(final CantidadMonetaria importe) {
   double val1 = importe.amount().abs().doubleValue();
   int entero = importe.amount().intValue();
   double cent = val1 - (double) entero;
   long valor = Math.round(cent * 100);
   final String svalor = String.valueOf(valor);
   final String ok = StringUtils.leftPad(svalor, 2, '0');
   num_letras = decmillon(importe.amount().intValue());
   num_letras += " PESOS {0}/100 M.N.";
   return MessageFormat.format(num_letras, ok);
 }
Ejemplo n.º 2
0
  /*
   * (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;
  }
Ejemplo n.º 3
0
 /*
  * (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;
 }
Ejemplo n.º 4
0
 /**
  * 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;
 }
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 6
0
 /**
  * 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;
 }
Ejemplo n.º 7
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;
 }
Ejemplo n.º 8
0
 public static void main(String[] args) {
   ImporteALetra i = new ImporteALetra();
   String res = i.convertirLetras(CantidadMonetaria.pesos(254922.99));
   System.out.println(res);
 }
Ejemplo n.º 9
0
/**
 * 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;
  }
}