#include "refunds_model.h" #include 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 "); }