Added data entities for shop plugin.
This commit is contained in:
@@ -10,6 +10,8 @@
|
||||
#define PERM_DELETE "DELETE"
|
||||
|
||||
#define DEC_MULTIPLE 100
|
||||
#define TO_DEC(num) QDecDouble((double)num / DEC_MULTIPLE)
|
||||
#define FROM_DEC(num) num.toDouble() * DEC_MULTIPLE
|
||||
|
||||
#endif // DEFINE_H
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ unix {
|
||||
LIBS += -lodb -lodb-sqlite -lodb-qt
|
||||
}
|
||||
|
||||
ODB_FLAGS = --database sqlite --profile qt --generate-schema --generate-query --generate-session --at-once --input-name $$TARGET --schema-format sql
|
||||
ODB_FLAGS += --database sqlite --profile qt --generate-schema --generate-query --generate-session --at-once --input-name $$TARGET --schema-format sql
|
||||
|
||||
win32 {
|
||||
ODB_PATH = d:\prac\odb\odb-2.4.0-i686-windows\bin\odb
|
||||
@@ -45,6 +45,7 @@ ODB_FLAGS += -I $$[QT_INSTALL_HEADERS]/QtCore
|
||||
ODB_FLAGS += -I $$PWD/core
|
||||
ODB_FLAGS += -I $$PWD/qdecimal/src
|
||||
ODB_FLAGS += -I $$PWD/qdecimal/decnumber
|
||||
ODB_FLAGS += $$ODB_OTHER_INCLUDES
|
||||
ODB_FLAGS += -D __PIC__
|
||||
|
||||
win32 {
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
#ifndef SHOPDATA_H
|
||||
#define SHOPDATA_H
|
||||
|
||||
#include "voucher.h"
|
||||
#include "voucheritem.h"
|
||||
|
||||
#endif // SHOPDATA_H
|
||||
@@ -1,6 +1,90 @@
|
||||
#include "voucher.h"
|
||||
#include <define.h>
|
||||
|
||||
Voucher::Voucher(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QString Voucher::name() const
|
||||
{
|
||||
return m_name;
|
||||
}
|
||||
|
||||
void Voucher::setName(const QString &name)
|
||||
{
|
||||
m_name = name;
|
||||
}
|
||||
|
||||
QString Voucher::description() const
|
||||
{
|
||||
return m_description;
|
||||
}
|
||||
|
||||
void Voucher::setDescription(const QString &description)
|
||||
{
|
||||
m_description = description;
|
||||
}
|
||||
|
||||
QSharedPointer<QObject> Voucher::contact() const
|
||||
{
|
||||
return m_contact;
|
||||
}
|
||||
|
||||
void Voucher::setContact(const QSharedPointer<QObject> &contact)
|
||||
{
|
||||
if (qobject_cast<AddressbookData*>(contact.data()) != NULL)
|
||||
{
|
||||
m_contact = qSharedPointerDynamicCast<AddressbookData, QObject>(contact);
|
||||
}
|
||||
}
|
||||
|
||||
Voucher::VoucherStatus Voucher::status() const
|
||||
{
|
||||
return m_status;
|
||||
}
|
||||
|
||||
void Voucher::setStatus(const Voucher::VoucherStatus &status)
|
||||
{
|
||||
m_status = status;
|
||||
}
|
||||
|
||||
QDecDouble Voucher::totalPrice() const
|
||||
{
|
||||
return TO_DEC(m_totalPrice);
|
||||
}
|
||||
|
||||
void Voucher::setTotalPrice(QDecDouble totalPrice)
|
||||
{
|
||||
m_totalPrice = FROM_DEC(totalPrice);
|
||||
}
|
||||
|
||||
QList<QSharedPointer<VoucherItem> > Voucher::items() const
|
||||
{
|
||||
return m_items;
|
||||
}
|
||||
|
||||
void Voucher::setItems(const QList<QSharedPointer<VoucherItem> > &items)
|
||||
{
|
||||
m_items = items;
|
||||
}
|
||||
|
||||
void Voucher::addItem(QSharedPointer<VoucherItem> item)
|
||||
{
|
||||
m_items.append(item);
|
||||
}
|
||||
|
||||
void Voucher::clearItems()
|
||||
{
|
||||
m_items.clear();
|
||||
}
|
||||
|
||||
int Voucher::id() const
|
||||
{
|
||||
return m_id;
|
||||
}
|
||||
|
||||
void Voucher::setId(int id)
|
||||
{
|
||||
m_id = id;
|
||||
}
|
||||
|
||||
+59
-3
@@ -2,16 +2,72 @@
|
||||
#define VOUCHER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QDecDouble.hh>
|
||||
#include <QString>
|
||||
#include <QSharedPointer>
|
||||
#include <addressbookdata.h>
|
||||
#include <odb/core.hxx>
|
||||
#include <odb/qt/list.hxx>
|
||||
|
||||
#include "voucheritem.h"
|
||||
|
||||
#pragma db object
|
||||
class Voucher : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QString name READ name WRITE setName)
|
||||
Q_PROPERTY(QString description READ description WRITE setDescription)
|
||||
Q_PROPERTY(QSharedPointer<QObject> contact READ contact WRITE setContact)
|
||||
Q_PROPERTY(QDecDouble totalPrice READ totalPrice WRITE setTotalPrice)
|
||||
Q_ENUMS(VoucherStatus)
|
||||
Q_PROPERTY(VoucherStatus status READ status WRITE setStatus)
|
||||
|
||||
public:
|
||||
explicit Voucher(QObject *parent = 0);
|
||||
|
||||
signals:
|
||||
enum VoucherStatus
|
||||
{
|
||||
NEW,
|
||||
TEMPORARY,
|
||||
NOT_PAID,
|
||||
PAID
|
||||
};
|
||||
|
||||
public slots:
|
||||
int id() const;
|
||||
void setId(int id);
|
||||
|
||||
QString name() const;
|
||||
void setName(const QString &name);
|
||||
|
||||
QString description() const;
|
||||
void setDescription(const QString &description);
|
||||
|
||||
QSharedPointer<QObject> contact() const;
|
||||
void setContact(const QSharedPointer<QObject> &contact);
|
||||
|
||||
VoucherStatus status() const;
|
||||
void setStatus(const VoucherStatus &status);
|
||||
|
||||
QDecDouble totalPrice() const;
|
||||
void setTotalPrice(QDecDouble totalPrice);
|
||||
|
||||
QList<QSharedPointer<VoucherItem> > items() const;
|
||||
void setItems(const QList<QSharedPointer<VoucherItem> > &items);
|
||||
|
||||
void addItem(QSharedPointer<VoucherItem> item);
|
||||
void clearItems();
|
||||
|
||||
private:
|
||||
friend class odb::access;
|
||||
#pragma db id auto
|
||||
int m_id;
|
||||
QString m_name;
|
||||
QString m_description;
|
||||
QSharedPointer<AddressbookData> m_contact;
|
||||
int m_totalPrice;
|
||||
QOdbList<QSharedPointer<VoucherItem> > m_items;
|
||||
VoucherStatus m_status;
|
||||
};
|
||||
|
||||
#endif // VOUCHER_H
|
||||
#endif // VOUCHER_H
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
#include "voucheritem.h"
|
||||
#include <define.h>
|
||||
|
||||
VoucherItem::VoucherItem(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int VoucherItem::id() const
|
||||
{
|
||||
return m_id;
|
||||
}
|
||||
|
||||
void VoucherItem::setId(int id)
|
||||
{
|
||||
m_id = id;
|
||||
}
|
||||
|
||||
QString VoucherItem::name() const
|
||||
{
|
||||
return m_name;
|
||||
}
|
||||
|
||||
void VoucherItem::setName(const QString &name)
|
||||
{
|
||||
m_name = name;
|
||||
}
|
||||
|
||||
int VoucherItem::count() const
|
||||
{
|
||||
return m_count;
|
||||
}
|
||||
|
||||
void VoucherItem::setCount(int count)
|
||||
{
|
||||
m_count = count;
|
||||
}
|
||||
|
||||
QDecDouble VoucherItem::unitPrice() const
|
||||
{
|
||||
return TO_DEC(m_unitPrice);
|
||||
}
|
||||
|
||||
void VoucherItem::setUnitPrice(QDecDouble unitPrice)
|
||||
{
|
||||
m_unitPrice = FROM_DEC(unitPrice);
|
||||
}
|
||||
|
||||
QDecDouble VoucherItem::price() const
|
||||
{
|
||||
return TO_DEC(m_price);
|
||||
}
|
||||
|
||||
void VoucherItem::setPrice(QDecDouble price)
|
||||
{
|
||||
m_price = FROM_DEC(price);
|
||||
}
|
||||
|
||||
int VoucherItem::refId() const
|
||||
{
|
||||
return m_refId;
|
||||
}
|
||||
|
||||
void VoucherItem::setRefId(int refId)
|
||||
{
|
||||
m_refId = refId;
|
||||
}
|
||||
|
||||
QString VoucherItem::itemPlugin() const
|
||||
{
|
||||
return m_itemPlugin;
|
||||
}
|
||||
|
||||
void VoucherItem::setItemPlugin(const QString &itemPlugin)
|
||||
{
|
||||
m_itemPlugin = itemPlugin;
|
||||
}
|
||||
|
||||
Enums::VatType VoucherItem::vatType() const
|
||||
{
|
||||
return m_vatType;
|
||||
}
|
||||
|
||||
void VoucherItem::setVatType(const Enums::VatType &vatType)
|
||||
{
|
||||
m_vatType = vatType;
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
#ifndef VOUCHERITEM_H
|
||||
#define VOUCHERITEM_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include <QDecDouble.hh>
|
||||
#include <odb/core.hxx>
|
||||
|
||||
#include <enums.h>
|
||||
|
||||
#pragma db object
|
||||
class VoucherItem : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QString name READ name WRITE setName)
|
||||
Q_PROPERTY(int count READ count WRITE setCount)
|
||||
Q_PROPERTY(QDecDouble unitPrice READ unitPrice WRITE setUnitPrice)
|
||||
Q_PROPERTY(QDecDouble price READ price WRITE setPrice)
|
||||
Q_PROPERTY(int refId READ refId WRITE setRefId)
|
||||
Q_PROPERTY(QString itemPlugin READ itemPlugin WRITE setItemPlugin)
|
||||
Q_PROPERTY(Enums::VatType vatType READ vatType WRITE setVatType)
|
||||
|
||||
public:
|
||||
explicit VoucherItem(QObject *parent = 0);
|
||||
|
||||
int id() const;
|
||||
void setId(int id);
|
||||
|
||||
QString name() const;
|
||||
void setName(const QString &name);
|
||||
|
||||
int count() const;
|
||||
void setCount(int count);
|
||||
|
||||
QDecDouble unitPrice() const;
|
||||
void setUnitPrice(QDecDouble unitPrice);
|
||||
|
||||
QDecDouble price() const;
|
||||
void setPrice(QDecDouble price);
|
||||
|
||||
int refId() const;
|
||||
void setRefId(int refId);
|
||||
|
||||
QString itemPlugin() const;
|
||||
void setItemPlugin(const QString &itemPlugin);
|
||||
|
||||
Enums::VatType vatType() const;
|
||||
void setVatType(const Enums::VatType &vatType);
|
||||
|
||||
private:
|
||||
friend class odb::access;
|
||||
#pragma db id auto
|
||||
int m_id;
|
||||
QString m_name;
|
||||
int m_count;
|
||||
int m_unitPrice;
|
||||
int m_price;
|
||||
int m_refId;
|
||||
QString m_itemPlugin;
|
||||
Enums::VatType m_vatType;
|
||||
};
|
||||
|
||||
#endif // VOUCHERITEM_H
|
||||
@@ -0,0 +1,15 @@
|
||||
#ifndef ISELLABLESERVICE_H
|
||||
#define ISELLABLESERVICE_H
|
||||
|
||||
#include "shop_global.h"
|
||||
#include "ishopitem.h"
|
||||
#include <QList>
|
||||
#include <QSharedPointer>
|
||||
|
||||
class SHOPSHARED_EXPORT ISellableService
|
||||
{
|
||||
public:
|
||||
QList<QSharedPointer<IShopItem> > shopItems() = 0;
|
||||
};
|
||||
|
||||
#endif // ISELLABLESERVICE_H
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef ISHOPITEM_H
|
||||
#define ISHOPITEM_H
|
||||
|
||||
#include "shop_global.h"
|
||||
#include <QDecDouble.hh>
|
||||
#include <QString>
|
||||
|
||||
class SHOPSHARED_EXPORT IShopItem
|
||||
{
|
||||
|
||||
public:
|
||||
QString name() = 0;
|
||||
QDecDouble unitPrice() = 0;
|
||||
};
|
||||
|
||||
#endif // ISHOPITEM_H
|
||||
+39
-1
@@ -10,8 +10,46 @@
|
||||
},
|
||||
"schemaVersion" : 1,
|
||||
"sql" : [
|
||||
"CREATE TABLE \"VoucherItem\" (
|
||||
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
\"name\" TEXT NULL,
|
||||
\"count\" INTEGER NOT NULL,
|
||||
\"unitPrice\" INTEGER NOT NULL,
|
||||
\"price\" INTEGER NOT NULL,
|
||||
\"refId\" INTEGER NOT NULL,
|
||||
\"itemPlugin\" TEXT NULL,
|
||||
\"vatType\" INTEGER NOT NULL);
|
||||
|
||||
CREATE TABLE \"Voucher\" (
|
||||
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
\"name\" TEXT NULL,
|
||||
\"description\" TEXT NULL,
|
||||
\"contact\" INTEGER NULL,
|
||||
\"totalPrice\" INTEGER NOT NULL,
|
||||
\"status\" INTEGER NOT NULL,
|
||||
CONSTRAINT \"contact_fk\"
|
||||
FOREIGN KEY (\"contact\")
|
||||
REFERENCES \"AddressbookData\" (\"id\")
|
||||
DEFERRABLE INITIALLY DEFERRED);
|
||||
|
||||
CREATE TABLE \"Voucher_items\" (
|
||||
\"object_id\" INTEGER NOT NULL,
|
||||
\"index\" INTEGER NOT NULL,
|
||||
\"value\" INTEGER NULL,
|
||||
CONSTRAINT \"object_id_fk\"
|
||||
FOREIGN KEY (\"object_id\")
|
||||
REFERENCES \"Voucher\" (\"id\")
|
||||
ON DELETE CASCADE,
|
||||
CONSTRAINT \"value_fk\"
|
||||
FOREIGN KEY (\"value\")
|
||||
REFERENCES \"VoucherItem\" (\"id\")
|
||||
DEFERRABLE INITIALLY DEFERRED);
|
||||
|
||||
CREATE INDEX \"Voucher_items_object_id_i\"
|
||||
ON \"Voucher_items\" (\"object_id\");
|
||||
|
||||
CREATE INDEX \"Voucher_items_index_i\"
|
||||
ON \"Voucher_items\" (\"index\");"
|
||||
],
|
||||
"dependencies" : []
|
||||
"dependencies" : [ "ADDRESSBOOK" ]
|
||||
}
|
||||
|
||||
+16
-3
@@ -13,11 +13,16 @@ DEFINES += SHOP_LIBRARY\
|
||||
_GLIBCXX_USE_CXX11_ABI=1
|
||||
|
||||
SOURCES += shop.cpp \
|
||||
data/voucher.cpp
|
||||
data/voucher.cpp \
|
||||
data/voucheritem.cpp
|
||||
|
||||
HEADERS += shop.h\
|
||||
shop_global.h \
|
||||
data/voucher.h
|
||||
data/voucher.h \
|
||||
ishopitem.h \
|
||||
data/voucheritem.h \
|
||||
data/shop-data.h \
|
||||
isellableservice.h
|
||||
|
||||
unix {
|
||||
target.path = /usr/lib
|
||||
@@ -37,12 +42,20 @@ else:unix: LIBS += -L$$OUT_PWD/../core/ -lcore
|
||||
INCLUDEPATH += $$PWD/../core
|
||||
DEPENDPATH += $$PWD/../core
|
||||
|
||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -laddressbook
|
||||
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -laddressbook
|
||||
else:unix: LIBS += -L$$OUT_PWD/../plugins/ -laddressbook
|
||||
|
||||
INCLUDEPATH += $$PWD/../addressbook/data
|
||||
DEPENDPATH += $$PWD/../addressbook
|
||||
|
||||
DESTDIR = ../plugins
|
||||
|
||||
OTHER_FILES += shop.json
|
||||
|
||||
#ODB_FILES = shop/data/....h
|
||||
ODB_FILES = shop/data/shop-data.h
|
||||
H_DIR = $$PWD/data/*.h
|
||||
ODB_OTHER_INCLUDES = -I $$PWD/../addressbook/data
|
||||
include(../odb.pri)
|
||||
|
||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal -ldecnumber
|
||||
|
||||
Reference in New Issue
Block a user