83 lines
2.6 KiB
C++
83 lines
2.6 KiB
C++
#include "Pin.h"
|
|
#include "ui_Pin.h"
|
|
#include "EditWindow.h"
|
|
|
|
Pin::Pin(QWidget *parent) : QDialog(parent), ui(new Ui::Pin) {
|
|
ui->setupUi(this);
|
|
|
|
// Imposta la dialog come non ingrandibile/riducibile
|
|
this->setFixedSize(this->size());
|
|
|
|
if (!QSqlDatabase::drivers().contains("QMYSQL")) {
|
|
QMessageBox::critical(this, "Nicolodi", "L'applicazione necessita del driver MYSQL");
|
|
}
|
|
|
|
ui->lineEditPin->setFocus();
|
|
}
|
|
|
|
Pin::~Pin()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void Pin::on_pushButtonOk_clicked()
|
|
{
|
|
QSqlQuery query;
|
|
int idSocio = 0;
|
|
bool questionarioAbilitato;
|
|
QString pin = ui->lineEditPin->text();
|
|
|
|
if (db.open()) {
|
|
query = QSqlQuery(db);
|
|
query.prepare("SELECT id, abilitaQuestionario FROM socio WHERE pin = :pin");
|
|
query.bindValue(":pin", QString("%1").arg(pin));
|
|
if (!query.exec()) {
|
|
QMessageBox::critical(this, "Nicolodi", "Errore nella verifica del pin, verificare query.");
|
|
} else {
|
|
if (query.size() == 0) {
|
|
QMessageBox::warning(this, "Nicolodi", "Pin errato!");
|
|
} else if (query.size() > 1) {
|
|
QMessageBox::warning(this, "Nicolodi", "Pin non univoco!");
|
|
} else {
|
|
query.first();
|
|
questionarioAbilitato = query.value(1).toBool();
|
|
if (!questionarioAbilitato) {
|
|
QMessageBox::information(this, "Nicolodi", QString("Questionario non abilitato per PIN %1").arg(pin));
|
|
} else {
|
|
idSocio = query.value(0).toInt();
|
|
// QMessageBox::information(this, "Nicolodi", QString("Il socio ha id %1").arg(idSocio));
|
|
}
|
|
}
|
|
}
|
|
// Pulizia oggetti db
|
|
// Per rilasciare le risorse
|
|
// Qui come funziona? Di solito le risorse tipo le connessioni
|
|
// sono risorse preziose che si devono aprire, usare per il minor
|
|
// tempo possibile e quindi chiudere
|
|
query.clear();
|
|
//db.close();
|
|
} else {
|
|
QMessageBox::critical(this, "Nicolodi", "Impossibile connettersi al database, verificare impostazioni.");
|
|
}
|
|
|
|
ui->lineEditPin->setText("");
|
|
ui->lineEditPin->setFocus();
|
|
|
|
// Se ho scelto un socio valido proseguo con l'apertura
|
|
// delle editwindow
|
|
// Un socio e' valido se ha idSocio maggiore di zero
|
|
if (idSocio > 0) {
|
|
EditWindow *ew = new EditWindow(idSocio, this);
|
|
ew->setAttribute(Qt::WA_DeleteOnClose);
|
|
ew->setWindowModality(Qt::ApplicationModal);
|
|
if (!ew->doNotShow) {
|
|
ew->show();
|
|
}
|
|
}
|
|
}
|
|
|
|
void Pin::on_pushButtonEsci_clicked()
|
|
{
|
|
QApplication::exit();
|
|
}
|