1
0
forked from BRT/arc
arc/database/dao/BankDAO.cpp
slava afbf3a3afb Add Ozon pay_to_new_number and pay_to_old_number XML assets
Included XML files for the "pay to new number" and "pay to old number" features in the Ozon platform.
2026-03-01 09:30:59 +07:00

56 lines
1.4 KiB
C++

#include "BankDAO.h"
#include <QSqlQuery>
#include <QSqlError>
#include <QVariant>
#include "DatabaseManager.h"
QList<BankInfo> BankDAO::getAll() {
QList<BankInfo> list;
QSqlQuery query(DatabaseManager::instance().database());
query.prepare("SELECT * FROM banks ORDER BY alias");
if (!query.exec()) {
qWarning() << "Ошибка при получении banks:" << query.lastError().text();
return list;
}
while (query.next()) {
BankInfo bank;
bank.id = query.value("id").toInt();
bank.alias = query.value("alias").toString();
bank.name = query.value("name").toString();
bank.nspkName = query.value("nspk_name").toString();
list.append(bank);
}
return list;
}
void BankDAO::replaceAll(const QList<BankInfo> &banks) {
QSqlDatabase db = DatabaseManager::instance().database();
QSqlQuery query(db);
db.transaction();
query.exec("DELETE FROM banks");
query.prepare(R"(
INSERT INTO banks (alias, name, nspk_name)
VALUES (:alias, :name, :nspk_name)
)");
for (const BankInfo &bank : banks) {
query.bindValue(":alias", bank.alias);
query.bindValue(":name", bank.name);
query.bindValue(":nspk_name", bank.nspkName);
if (!query.exec()) {
qWarning() << "Ошибка при вставке bank:" << query.lastError().text();
}
}
db.commit();
}