Files
cinema-ticket-management-sy…/ui/models/refunds_model.cpp
T
2026-07-12 14:34:52 +04:00

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 ");
}