Files
beerlog/models/summarymodel.cpp
2023-03-28 11:14:09 +02:00

40 lines
794 B
C++

#include "summarymodel.h"
QVariantList SummaryModel::items() const
{
return m_items.values();
}
float SummaryModel::sum() const
{
float res = 0.0;
for (auto it = m_items.constBegin(); it != m_items.constEnd(); ++it) {
QVariantMap item = it.value().toMap();
int count = item.value("count", 0).toInt();
float price = item.value("cost", 0.0).toFloat();
res += count * price;
}
return res;
}
void SummaryModel::setItemCount(QVariantMap item, int count)
{
QString id = item.value("id", QString()).toString();
if (count) {
item["count"] = count;
m_items[id] = item;
} else {
m_items.remove(id);
}
emit itemsChanged();
}
void SummaryModel::clear()
{
m_items.clear();
emit itemsChanged();
}