40 lines
794 B
C++
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();
|
|
}
|