Пример #1
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;
  }
Пример #2
0
  /**
   * Genera un {@link PagoConNota} para un grupo de cargos
   *
   * @param nota
   * @param ventas
   * @return
   */
  public PagoConNota crearPagoDeCargoConNota(
      final NotaDeCredito disponible, List<NotaDeCredito> cargos) {
    Assert.notEmpty(cargos, "La collecion de cargos debe tener elementos");
    Assert.isTrue(
        disponible.getSaldo() < 0,
        "La nota origen debe tener disponible el disponible es: " + disponible.getSaldo());

    final PagoConNota pago = new PagoConNota();
    pago.setNota(disponible);
    pago.setReferencia(disponible.getId().toString());
    pago.setCliente(disponible.getCliente());
    pago.setFormaDePago(FormaDePago.T);
    pago.setTipoDeDocumento("M");
    pago.setCliente(cargos.get(0).getCliente());

    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);
            p.setNotaDelPago(disponible);
            pago.getPagos().add(p);
            p.setOrigen(cargo.getOrigen());
            p.setTipoDocto(cargo.getTipo());
            p.setNumero(cargo.getNumero());
            p.setFormaDePago2(pago.getFormaDePago());
            p.setDescFormaDePago(pago.getFormaDePago().getDesc());
            p.setReferencia(disponible.getTipo() + " " + disponible.getNumero());
            p.setSucursal(1);
          }
        });

    return pago;
  }
Пример #3
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;
 }