productsviewmodel.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef PRODUCTSVIEWMODEL_H
  2. #define PRODUCTSVIEWMODEL_H
  3. #include <QObject>
  4. #include <QVariantMap>
  5. #include "models/restsmodel.h"
  6. #include "services/modelsregister.h"
  7. class SettingsService;
  8. class ProductsViewModel : public QObject
  9. {
  10. Q_OBJECT
  11. Q_PROPERTY(QVariantList products READ products NOTIFY productsChanged)
  12. Q_PROPERTY(QVariantList order READ order NOTIFY orderChanged)
  13. Q_PROPERTY(float orderSum READ orderSum NOTIFY orderChanged)
  14. public:
  15. explicit ProductsViewModel(QObject *parent = nullptr);
  16. QVariantList products() const;
  17. QVariantList order() const;
  18. float orderSum() const;
  19. Q_INVOKABLE void setOrderValue(const QString &productId, float value);
  20. Q_INVOKABLE void submitOrder();
  21. signals:
  22. void productsChanged();
  23. void orderChanged();
  24. private:
  25. SettingsService *settings() const;
  26. float productRest(const QString &productId) const;
  27. void updateRests() const;
  28. BaseModel *m_productsModel = ModelsRegister::model("products");
  29. BaseModel *m_ordersModel = ModelsRegister::model("orders");
  30. RestsModel *m_restsModel = ModelsRegister::get<RestsModel>("rests");
  31. QVariantMap m_order;
  32. };
  33. #endif // PRODUCTSVIEWMODEL_H