summarymodel.cpp 794 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "summarymodel.h"
  2. QVariantList SummaryModel::items() const
  3. {
  4. return m_items.values();
  5. }
  6. float SummaryModel::sum() const
  7. {
  8. float res = 0.0;
  9. for (auto it = m_items.constBegin(); it != m_items.constEnd(); ++it) {
  10. QVariantMap item = it.value().toMap();
  11. int count = item.value("count", 0).toInt();
  12. float price = item.value("cost", 0.0).toFloat();
  13. res += count * price;
  14. }
  15. return res;
  16. }
  17. void SummaryModel::setItemCount(QVariantMap item, int count)
  18. {
  19. QString id = item.value("id", QString()).toString();
  20. if (count) {
  21. item["count"] = count;
  22. m_items[id] = item;
  23. } else {
  24. m_items.remove(id);
  25. }
  26. emit itemsChanged();
  27. }
  28. void SummaryModel::clear()
  29. {
  30. m_items.clear();
  31. emit itemsChanged();
  32. }