Models registry was added

This commit is contained in:
2023-04-11 09:42:27 +02:00
parent 4a52926be9
commit 4ed4ecd429
17 changed files with 183 additions and 91 deletions

View File

@@ -2,13 +2,15 @@
#include <QDateTime>
#include "models/basemodel.h"
OrdersViewModel::OrdersViewModel(QObject *parent)
: QAbstractListModel{parent}
{
connect(&m_ordersModel, &BaseModel::dataChanged, this, &OrdersViewModel::reload);
connect(&m_usersModel, &BaseModel::dataChanged, this, &OrdersViewModel::reload);
connect(&m_productsModel, &BaseModel::dataChanged, this, &OrdersViewModel::reload);
connect(&m_storesModel, &BaseModel::dataChanged, this, &OrdersViewModel::reload);
connect(m_ordersModel, &BaseModel::dataChanged, this, &OrdersViewModel::reload);
connect(m_usersModel, &BaseModel::dataChanged, this, &OrdersViewModel::reload);
connect(m_productsModel, &BaseModel::dataChanged, this, &OrdersViewModel::reload);
connect(m_storesModel, &BaseModel::dataChanged, this, &OrdersViewModel::reload);
reload();
}
@@ -45,18 +47,18 @@ void OrdersViewModel::reload()
m_model.clear();
for (const QVariant &vOrder : m_ordersModel.orders()) {
for (const QVariant &vOrder : m_ordersModel->items()) {
QVariantMap order = vOrder.toMap();
QDateTime orderTime = QDateTime::fromSecsSinceEpoch(order.value("ts", 0).toDouble());
order["date"] = orderTime.date();
order["time"] = orderTime.time();
order["userName"] = m_usersModel.itemProperty(order["userId"].toString(), "name").toString();
order["storeName"] = m_storesModel.itemProperty(order["storeId"].toString(), "name").toString();
order["userName"] = m_usersModel->itemProperty(order["userId"].toString(), "name").toString();
order["storeName"] = m_storesModel->itemProperty(order["storeId"].toString(), "name").toString();
QVariantList prodModel;
for (const QVariant &prod : order["products"].toList()) {
QVariantMap product = prod.toMap();
product["product"] = m_productsModel.itemProperty(product.value("productId").toString(), "name");
product["product"] = m_productsModel->itemProperty(product.value("productId").toString(), "name");
prodModel << product;
}
order["products"] = prodModel;
@@ -64,7 +66,7 @@ void OrdersViewModel::reload()
m_model << order;
}
std::sort(m_model.begin(), m_model.end(), [](const QVariant &l, const QVariant &r) {
std::sort(m_model.begin(), m_model.end(), [](const QVariant &l, const QVariant &r) -> bool {
return l.toMap().value("ts").toDouble() < r.toMap().value("ts").toDouble();
});