Added data entities for shop plugin.
This commit is contained in:
@@ -10,6 +10,8 @@
|
|||||||
#define PERM_DELETE "DELETE"
|
#define PERM_DELETE "DELETE"
|
||||||
|
|
||||||
#define DEC_MULTIPLE 100
|
#define DEC_MULTIPLE 100
|
||||||
|
#define TO_DEC(num) QDecDouble((double)num / DEC_MULTIPLE)
|
||||||
|
#define FROM_DEC(num) num.toDouble() * DEC_MULTIPLE
|
||||||
|
|
||||||
#endif // DEFINE_H
|
#endif // DEFINE_H
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ unix {
|
|||||||
LIBS += -lodb -lodb-sqlite -lodb-qt
|
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 {
|
win32 {
|
||||||
ODB_PATH = d:\prac\odb\odb-2.4.0-i686-windows\bin\odb
|
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/core
|
||||||
ODB_FLAGS += -I $$PWD/qdecimal/src
|
ODB_FLAGS += -I $$PWD/qdecimal/src
|
||||||
ODB_FLAGS += -I $$PWD/qdecimal/decnumber
|
ODB_FLAGS += -I $$PWD/qdecimal/decnumber
|
||||||
|
ODB_FLAGS += $$ODB_OTHER_INCLUDES
|
||||||
ODB_FLAGS += -D __PIC__
|
ODB_FLAGS += -D __PIC__
|
||||||
|
|
||||||
win32 {
|
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 "voucher.h"
|
||||||
|
#include <define.h>
|
||||||
|
|
||||||
Voucher::Voucher(QObject *parent) : QObject(parent)
|
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
|
#define VOUCHER_H
|
||||||
|
|
||||||
#include <QObject>
|
#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
|
class Voucher : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
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:
|
public:
|
||||||
explicit Voucher(QObject *parent = 0);
|
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,
|
"schemaVersion" : 1,
|
||||||
"sql" : [
|
"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
|
_GLIBCXX_USE_CXX11_ABI=1
|
||||||
|
|
||||||
SOURCES += shop.cpp \
|
SOURCES += shop.cpp \
|
||||||
data/voucher.cpp
|
data/voucher.cpp \
|
||||||
|
data/voucheritem.cpp
|
||||||
|
|
||||||
HEADERS += shop.h\
|
HEADERS += shop.h\
|
||||||
shop_global.h \
|
shop_global.h \
|
||||||
data/voucher.h
|
data/voucher.h \
|
||||||
|
ishopitem.h \
|
||||||
|
data/voucheritem.h \
|
||||||
|
data/shop-data.h \
|
||||||
|
isellableservice.h
|
||||||
|
|
||||||
unix {
|
unix {
|
||||||
target.path = /usr/lib
|
target.path = /usr/lib
|
||||||
@@ -37,12 +42,20 @@ else:unix: LIBS += -L$$OUT_PWD/../core/ -lcore
|
|||||||
INCLUDEPATH += $$PWD/../core
|
INCLUDEPATH += $$PWD/../core
|
||||||
DEPENDPATH += $$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
|
DESTDIR = ../plugins
|
||||||
|
|
||||||
OTHER_FILES += shop.json
|
OTHER_FILES += shop.json
|
||||||
|
|
||||||
#ODB_FILES = shop/data/....h
|
ODB_FILES = shop/data/shop-data.h
|
||||||
H_DIR = $$PWD/data/*.h
|
H_DIR = $$PWD/data/*.h
|
||||||
|
ODB_OTHER_INCLUDES = -I $$PWD/../addressbook/data
|
||||||
include(../odb.pri)
|
include(../odb.pri)
|
||||||
|
|
||||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal -ldecnumber
|
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal -ldecnumber
|
||||||
|
|||||||
Reference in New Issue
Block a user