@Override
    public void actionPerformed(ActionEvent ae) {
        String comando = ae.getActionCommand();
        switch (comando) {
            case "Retirar":
                if (!Base.hasConnection()) {
                    Base.open("com.mysql.jdbc.Driver", "jdbc:mysql://localhost/quiniela", "tecpro", "tecpro");
                }
                List<Caja> cajas = Caja.findAll();
                int id_caja = cajas.get(cajas.size() - 1).getInteger("id");
                String motivo = retM.motivoRepMan.getText();
                BigDecimal monto = new BigDecimal((retM.montoRepMan.getText())).abs();
                if (retM.motivoRepMan.getText().trim().isEmpty()) {
                    JOptionPane.showMessageDialog(retM, "Error: Falta especificar motivo");
                } else {
                    if (Caja.findById(id_caja).getBigDecimal("saldo").subtract((new BigDecimal(retM.montoRepMan.getText()).abs())).compareTo(BigDecimal.ZERO) <0) {
                        JOptionPane.showMessageDialog(retM, "No hay fondos suficientes para realizar este retiro");
                    } else {
                       abmTrans.altaRetiro(motivo, "Ret. Man.", monto.negate(), 1, id_caja, Quiniela.id_usuario);
                        cc.cargarTransacciones();
                        retM.dispose();
                    }
                }
                
                if (Base.hasConnection()) {
                    Base.close();
                }
                break;
            case "Cancelar":
                retM.dispose();
                break;
        }
    }