58 lines
1.6 KiB
C++
58 lines
1.6 KiB
C++
|
|
#include "refunds_model.h"
|
||
|
|
|
||
|
|
#include <QSqlError>
|
||
|
|
|
||
|
|
RefundsModel::RefundsModel(QObject *parent, const QSqlDatabase &database)
|
||
|
|
: BaseSqlTableModel(parent, database) {}
|
||
|
|
|
||
|
|
void RefundsModel::initialize() {
|
||
|
|
setTable("refunds");
|
||
|
|
|
||
|
|
setEditStrategy(QSqlTableModel::OnFieldChange);
|
||
|
|
|
||
|
|
bool success = select();
|
||
|
|
if (!success) {
|
||
|
|
qWarning() << "Error:" << lastError().text();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
QVariant RefundsModel::headerData(int section, Qt::Orientation orientation,
|
||
|
|
int role) const {
|
||
|
|
if (role == Qt::DisplayRole && orientation == Qt::Horizontal) {
|
||
|
|
switch (section) {
|
||
|
|
case RefundsColumns::Id:
|
||
|
|
return tr("ID");
|
||
|
|
case RefundsColumns::TicketId:
|
||
|
|
return tr("Ticket ID");
|
||
|
|
case RefundsColumns::RefundAt:
|
||
|
|
return tr("Refund At");
|
||
|
|
case RefundsColumns::RefundAmount:
|
||
|
|
return tr("Refund Amount");
|
||
|
|
default:
|
||
|
|
return QVariant();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return QSqlTableModel::headerData(section, orientation, role);
|
||
|
|
}
|
||
|
|
|
||
|
|
QString RefundsModel::createMultiColumnFilter(const QString &filter) const {
|
||
|
|
QStringList conditions;
|
||
|
|
|
||
|
|
// WARNING: Does not filter these models transmitted through the data method,
|
||
|
|
// such as QDatetime
|
||
|
|
|
||
|
|
using Columns = RefundsModel;
|
||
|
|
QStringList columns = {columnName(Columns::Id), columnName(Columns::TicketId),
|
||
|
|
columnName(Columns::RefundAmount)};
|
||
|
|
|
||
|
|
#ifndef NO_DATE_TIME_SEARCH
|
||
|
|
columns.append(columnName(Columns::RefundAt));
|
||
|
|
#endif
|
||
|
|
|
||
|
|
for (const QString &column : columns) {
|
||
|
|
conditions.append(QString("%1 LIKE '%%2%'").arg(column).arg(filter));
|
||
|
|
}
|
||
|
|
|
||
|
|
return conditions.join(" OR ");
|
||
|
|
}
|