gestionale/argento/RenewalTab.cpp

44 lines
1.2 KiB
C++

#include "RenewalTab.h"
#include "ui_RenewalTab.h"
RenewalTab::RenewalTab(QWidget *parent) :
QWidget(parent),
ui(new Ui::RenewalTab)
{
ui->setupUi(this);
ui->table->setModel(&model);
QSqlQuery query;
QSqlRecord record;
{
query.prepare("SELECT DISTINCT(YEAR(anno)) AS anno FROM iscrizione UNION SELECT YEAR(CURRENT_DATE()) AS anno UNION SELECT YEAR(CURRENT_DATE()) + 1 AS anno;");
if (! query.exec()) status(Ui::ERROR, query.lastError().text());
record = query.record();
while (query.next()) {
const int anno = query.value(record.indexOf("anno")).toInt();
ui->renewalYear->addItem(QString::number(anno), anno);
}
}
}
void RenewalTab::refresh() {
const int anno = ui->renewalYear->currentData().toInt();
query.prepare("SELECT YEAR(i.anno) AS anno, s.cognome, s.nome FROM iscrizione AS i INNER JOIN socio AS s ON s.id = i.socio WHERE YEAR(i.anno) = :anno ORDER BY s.cognome");
query.bindValue(":anno", anno);
if (! query.exec()) {
status(Ui::ERROR, model.lastError().text());
}
model.setQuery(query);
}
void RenewalTab::on_buttonRefresh_clicked() {
refresh();
}