00001 #ifndef COSTUNITMODEL_H
00002 #define COSTUNITMODEL_H
00003
00004 #include <QAbstractTableModel>
00005 #include <QDomDocument>
00006 #include <QStringList>
00007 #include "../Calculations/costunitproduct.h"
00008 #include "abstractmodel.h"
00009
00010 class Settings;
00011
00012 class CostUnitModel : public QAbstractTableModel, public AbstractModel
00013 {
00014 Q_OBJECT
00015
00016 public:
00017 CostUnitModel(Settings &set, uint id, uint type, QString name, QObject *parent = 0);
00018
00019 void setModified(bool);
00020 bool isModified();
00021
00022 int rowCount(const QModelIndex &parent) const;
00023 int columnCount(const QModelIndex &parent) const;
00024 QVariant headerData(int section, Qt::Orientation orientation, int role) const;
00025 QVariant data(const QModelIndex &index, int role) const;
00026 Qt::ItemFlags flags(const QModelIndex &index) const;
00027 bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole);
00028 bool insertRows(int position, int rows, const QModelIndex &index=QModelIndex());
00029 bool removeRows(int position, int rows, const QModelIndex &index=QModelIndex());
00030 QList<QStringList> getList();
00031 void clear();
00032
00033 virtual QDomElement documentNode();
00034 virtual bool loadDocument(const QDomElement file);
00035
00036 void setProduct(QString textProductName, QString textDirectCosts, QString textMarkup, QString textCommission, QString textTradeDiscount, QString textDiscount, QString textSalesTax);
00037 void setAdditionalCharges(QList<int> costcentres);
00038
00039 void setCostUnitProduct(CostUnitProduct *product) { p_product = product; }
00040 CostUnitProduct* product() { return p_product; }
00041
00042 private:
00043 QList<QStringList> entries;
00044
00045 CostUnitProduct *p_product;
00046
00047 bool modified;
00048 Settings *settings;
00049
00050 void createPieChart();
00051 };
00052
00053 #endif