1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
/* abstractproduct.h */
#ifndef ABSTRACTPRODUCT_H
#define ABSTRACTPRODUCT_H
#include <QtCore/QString>
#include <QtCore/QDate>
#include <QtCore/QSharedPointer>
#include "abstractproductfamily.h"
#include "abstractproductform.h"
class AbstractProduct
{
QX_REGISTER_FRIEND_CLASS(AbstractProduct)
public:
AbstractProduct() { }
AbstractProduct(QString cip)
: m_cip(cip)
{
}
AbstractProduct(QString cip, QString name, double price, QDate expireDate, bool taxable)
: m_cip(cip), m_name(name), m_price(price), m_expireDate(expireDate), m_taxable(taxable)
{
}
virtual ~AbstractProduct() { }
QString cip() const { return m_cip; }
QString name() const { return m_name; }
double price() const { return m_price; }
QDate expireDate() const { return m_expireDate; }
bool isTaxable() const { return m_taxable; }
QSharedPointer<AbstractProductFamily> family() const { return m_family; }
QSharedPointer<AbstractProductForm> form() const { return m_form; }
void setCip(QString cip) { m_cip = cip; }
void setName(QString name) { m_name = name; }
void setPrice(double price) { m_price = price; }
void setExpireDate(QDate expireDate) { m_expireDate = expireDate; }
void setTaxable(bool taxable) { m_taxable = taxable; }
void setFamily(QSharedPointer<AbstractProductFamily> family) { m_family = family; }
void setForm(QSharedPointer<AbstractProductForm> form) { m_form = form; }
protected:
QString m_cip;
QString m_name;
double m_price;
QDate m_expireDate;
bool m_taxable;
QSharedPointer<AbstractProductFamily> m_family;
QSharedPointer<AbstractProductForm> m_form;
};
QX_REGISTER_PRIMARY_KEY(AbstractProduct, QString)
QX_REGISTER_ABSTRACT_CLASS(AbstractProduct)
REGISTER_HPP_PRODUCT(AbstractProduct, qx::trait::no_base_class_defined, 0)
#endif // ABSTRACTPRODUCT_H
/* abstractproduct.cpp */
#include "precompiled.h"
#include "abstractproduct.h"
#include <QxMemLeak.h>
REGISTER_CPP_PRODUCT(AbstractProduct)
namespace qx
{
template <> void register_class(QxClass<AbstractProduct> &t)
{
t.id(&AbstractProduct::m_cip, "cip");
t.data(&AbstractProduct::m_name, "name");
t.data(&AbstractProduct::m_price, "price");
t.data(&AbstractProduct::m_expireDate, "expireDate");
t.data(&AbstractProduct::m_taxable, "taxable");
t.relationManyToOne(&AbstractProduct::m_family, "family_id");
t.relationManyToOne(&AbstractProduct::m_form, "form_id");
}
} |