/**
   * Procede con el proceso de pago con otros una vez que se localizaron los pagos con disponible
   *
   * @param c
   * @param pagos
   * @param ventas
   */
  private void procedePagoConOtros(
      final Cliente c, final List<PagoM> pagos, final List<Venta> ventas) {
    CXCFiltros.filtrarVentasConSaldo(ventas);
    final PagoM origen = Selectores.seleccionarPagoM(c, pagos);
    if (origen != null) {

      final PagoConOtros pago = getPagosFactory().crearPago(origen, ventas);
      if (pago != null) {
        pago.setOrigen(origen);
        pago.setCliente(origen.getCliente());
        final PagoConOtrosModelImpl model = new PagoConOtrosModelImpl(true, pago);
        final PagoConOtrosForm form = new PagoConOtrosForm(model);
        form.open();
        if (!form.hasBeenCanceled()) {
          getPagosManager().salvarGrupoDePagos(pago);
          final List<Venta> ventasResultantes = PagosUtils.extraerVentas(pago);
          for (Venta vv : ventasResultantes) {
            getVentasManager().refresh(vv);
          }
          completar(pago);
        }
      } else {
        MessageUtils.showMessage("La selección de ventas no califica para el pago", "Pagos");
      }
    }
  }
Example #2
0
  /*
   * (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;
  }
 /**
  * Completa el proceso de pago genrando descuentos y realizando pagos automaticos cuando estos
  * apliquen
  *
  * @param ventas
  */
 public List<Venta> completar(final PagoM pago) {
   final List<Venta> ventasResultantes = PagosUtils.extraerVentas(pago);
   if (!ventasResultantes.isEmpty() && procedeDescuento(pago)) {
     List<NotaDeCredito> descuentos =
         aplicarNotaDeDescuento(pago.getCliente(), ventasResultantes, pago.getFecha());
     /**
      * if(!descuentos.isEmpty()){ List<NotaDeCredito>
      * resNotas=Browsers.seleccionarNotasParaSuImpresion(descuentos); for(NotaDeCredito
      * nota:resNotas){ getNotasManager().imprimirNotaDeDescuento(nota); } }
      */
   }
   if (!ventasResultantes.isEmpty() && (!pago.getTipoDeDocumento().equals("X"))) {
     registrarPagoAutomatico(ventasResultantes);
   }
   return ventasResultantes;
 }
Example #4
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;
 }
Example #5
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;
 }