public void actionPerformed(ActionEvent e) {
        if (e.getSource() == pagoFacturaGui.getAceptar()) {
            if (pagoFacturaGui.getMonto().getText().equals("")) {
                JOptionPane.showMessageDialog(pagoFacturaGui, "Por favor ingrese el monto", "Error!", JOptionPane.ERROR_MESSAGE);
            } else {
                abrirBase();
                String clienteId = cli.getString("id");
                int idCliente = cli.getInteger("id");
                BigDecimal entrega = new BigDecimal(pagoFacturaGui.getMonto().getText());
                Pago pago = new Pago();
                pago.set("fecha", pagoFacturaGui.getCalendarioText().getText());
                pago.set("monto", entrega);
                pago.set("cliente_id", idCliente);
                pago.saveIt();
                String pagoId = Pago.findFirst("fecha = ? and monto = ? and cliente_id = ?", pagoFacturaGui.getCalendarioText().getText(), entrega, idCliente).getString("id");
                BigDecimal cuentaCliente = new BigDecimal(cli.getString("cuenta"));
                entrega = entrega.add(cuentaCliente);
                Iterator<Venta> itrVenta = cargarDeuda(clienteId).iterator();
                Venta ventaAPagar = null;
                boolean sePuedePagar = true;
                BigDecimal montoVentaAPagar = new BigDecimal(0);
                BigDecimal aux;
                ABMVenta ambV = new ABMVenta();
                while (sePuedePagar) {
                    sePuedePagar = false;
                    while (itrVenta.hasNext()) {
                        String ventaId = itrVenta.next().getString("id");
                        aux = montoVentaNoAbonada(ventaId);
                        if (entrega.compareTo(aux) >= 0) {
                            sePuedePagar = true;
                            if (montoVentaAPagar.compareTo(aux) <= 0) {
                                ventaAPagar = Venta.findById(ventaId);
                                montoVentaAPagar = new BigDecimal(aux.toString());
                            }
                        }
                    }
                    if (sePuedePagar) {
                        abrirBase();
                        entrega = entrega.subtract(montoVentaAPagar);
                        ambV.pagar(ventaAPagar, montoVentaAPagar);
                        ventaAPagar.set("pago_id", pagoId);
                        ventaAPagar.saveIt();
                        itrVenta = cargarDeuda(clienteId).iterator();
                        montoVentaAPagar = new BigDecimal(0);
                        aux = null;
                        ventaAPagar = null;
                    }
                }
                cli.set("cuenta", entrega);
                cli.saveIt();
                JOptionPane.showMessageDialog(apgui, "¡Cobro registrado exitosamente!");
                cerrarBase();
            }
        }
        pagoFacturaGui.dispose();
        try {
            this.finalize();
        } catch (Throwable ex) {
            Logger.getLogger(RealizarPagoVentaControlador.class.getName()).log(Level.SEVERE, null, ex);
        }
    }