Merge branch 'master' of https://git.bukova.info/repos/git/prodejna
commit
6e2ee642ce
@ -0,0 +1,19 @@
|
|||||||
|
#include "camp.h"
|
||||||
|
|
||||||
|
#include "campgrid.h"
|
||||||
|
#include "campform.h"
|
||||||
|
|
||||||
|
Camp::Camp()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void Camp::initServiceUi()
|
||||||
|
{
|
||||||
|
m_ui = new CampGrid();
|
||||||
|
((CampGrid*)m_ui)->setForm(new CampForm());
|
||||||
|
}
|
||||||
|
|
||||||
|
QIcon Camp::pluginIcon()
|
||||||
|
{
|
||||||
|
return QIcon(":/icons/campPlugin.svg");
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
#ifndef CAMP_H
|
||||||
|
#define CAMP_H
|
||||||
|
|
||||||
|
#include "camp_global.h"
|
||||||
|
#include <core.h>
|
||||||
|
#include <QObject>
|
||||||
|
#include <QtPlugin>
|
||||||
|
|
||||||
|
class CAMPSHARED_EXPORT Camp : public QObject, IMetaDataPlugin
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
Q_PLUGIN_METADATA(IID PluginInterface_iid FILE "camp.json")
|
||||||
|
Q_INTERFACES(IPlugin)
|
||||||
|
|
||||||
|
public:
|
||||||
|
Camp();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void initServiceUi() Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
|
// IPlugin interface
|
||||||
|
public:
|
||||||
|
virtual QIcon pluginIcon();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CAMP_H
|
@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
"id" : "CAMP",
|
||||||
|
"name" : {
|
||||||
|
"default" : "Camp",
|
||||||
|
"CZ" : "Kemp"
|
||||||
|
},
|
||||||
|
"descriptoin" : {
|
||||||
|
"default" : "",
|
||||||
|
"CZ" : ""
|
||||||
|
},
|
||||||
|
"schemaVersion" : 1,
|
||||||
|
"sql" : [
|
||||||
|
"CREATE TABLE \"CampData\" (
|
||||||
|
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
\"start\" TEXT NULL,
|
||||||
|
\"end\" TEXT NULL,
|
||||||
|
\"ownerFirstame\" TEXT NULL,
|
||||||
|
\"ownerLastname\" TEXT NULL,
|
||||||
|
\"ownerAddress\" TEXT NULL,
|
||||||
|
\"totalPrice\" INTEGER NOT NULL,
|
||||||
|
\"season\" INTEGER NULL,
|
||||||
|
CONSTRAINT \"season_fk\"
|
||||||
|
FOREIGN KEY (\"season\")
|
||||||
|
REFERENCES \"Season\" (\"id\")
|
||||||
|
DEFERRABLE INITIALLY DEFERRED);
|
||||||
|
|
||||||
|
CREATE TABLE \"AddressItem\" (
|
||||||
|
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
\"firstName\" TEXT NULL,
|
||||||
|
\"lastName\" TEXT NULL,
|
||||||
|
\"address\" TEXT NULL,
|
||||||
|
\"price\" INTEGER NOT NULL,
|
||||||
|
\"campData\" INTEGER NOT NULL,
|
||||||
|
CONSTRAINT \"campData_fk\"
|
||||||
|
FOREIGN KEY (\"campData\")
|
||||||
|
REFERENCES \"CampData\" (\"id\")
|
||||||
|
DEFERRABLE INITIALLY DEFERRED);
|
||||||
|
|
||||||
|
CREATE TABLE \"ServiceItem\" (
|
||||||
|
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
\"name\" TEXT NULL,
|
||||||
|
\"code\" TEXT NULL,
|
||||||
|
\"price\" INTEGER NOT NULL,
|
||||||
|
\"salePossible\" INTEGER NOT NULL,
|
||||||
|
\"type\" INTEGER NOT NULL,
|
||||||
|
\"campData\" INTEGER NOT NULL,
|
||||||
|
CONSTRAINT \"campData_fk\"
|
||||||
|
FOREIGN KEY (\"campData\")
|
||||||
|
REFERENCES \"CampData\" (\"id\")
|
||||||
|
DEFERRABLE INITIALLY DEFERRED);
|
||||||
|
"
|
||||||
|
],
|
||||||
|
"dependencies" : [ "ADDRESSBOOK", "SHOP", "SERVICES" ],
|
||||||
|
"translations" : {
|
||||||
|
"CZ" : {
|
||||||
|
"name" : "Název",
|
||||||
|
"shortName" : "Zobrazit na účtence",
|
||||||
|
"code" : "Kód",
|
||||||
|
"type" : "Druh",
|
||||||
|
"price" : "Cena",
|
||||||
|
"vat" : "DPH",
|
||||||
|
"count" : "Počet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
#-------------------------------------------------
|
||||||
|
#
|
||||||
|
# Project created by QtCreator 2017-04-19T09:20:32
|
||||||
|
#
|
||||||
|
#-------------------------------------------------
|
||||||
|
|
||||||
|
QT += widgets sql
|
||||||
|
|
||||||
|
TARGET = camp
|
||||||
|
TEMPLATE = lib
|
||||||
|
|
||||||
|
DEFINES += CAMP_LIBRARY
|
||||||
|
|
||||||
|
# The following define makes your compiler emit warnings if you use
|
||||||
|
# any feature of Qt which as been marked as deprecated (the exact warnings
|
||||||
|
# depend on your compiler). Please consult the documentation of the
|
||||||
|
# deprecated API in order to know how to port your code away from it.
|
||||||
|
DEFINES += QT_DEPRECATED_WARNINGS
|
||||||
|
|
||||||
|
# You can also make your code fail to compile if you use deprecated APIs.
|
||||||
|
# In order to do so, uncomment the following line.
|
||||||
|
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||||
|
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
|
||||||
|
SOURCES += camp.cpp \
|
||||||
|
data/campdata.cpp \
|
||||||
|
data/addressitem.cpp \
|
||||||
|
data/serviceitem.cpp \
|
||||||
|
campgrid.cpp \
|
||||||
|
campform.cpp
|
||||||
|
|
||||||
|
HEADERS += camp.h\
|
||||||
|
camp_global.h \
|
||||||
|
data/campdata.h \
|
||||||
|
data/addressitem.h \
|
||||||
|
data/serviceitem.h \
|
||||||
|
data/camp-data.h \
|
||||||
|
campgrid.h \
|
||||||
|
campform.h
|
||||||
|
|
||||||
|
include(../config_plugin.pri)
|
||||||
|
|
||||||
|
ODB_FILES = camp/data/camp-data.h
|
||||||
|
H_DIR = $$PWD/data/*.h
|
||||||
|
ODB_OTHER_INCLUDES = -I $$PWD/../shop -I $$PWD/../addressbook/data -I $$PWD/../services/data
|
||||||
|
include(../odb.pri)
|
||||||
|
|
||||||
|
unix {
|
||||||
|
target.path = /usr/lib
|
||||||
|
INSTALLS += target
|
||||||
|
}
|
||||||
|
|
||||||
|
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lshop
|
||||||
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lshop
|
||||||
|
else:unix: LIBS += -L$$OUT_PWD/../plugins/ -lshop
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/../shop
|
||||||
|
DEPENDPATH += $$PWD/../shop
|
||||||
|
|
||||||
|
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
|
||||||
|
DEPENDPATH += $$PWD/../addressbook
|
||||||
|
|
||||||
|
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lservices
|
||||||
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lservices
|
||||||
|
else:unix: LIBS += -L$$OUT_PWD/../plugins/ -lservices
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/../services
|
||||||
|
INCLUDEPATH += $$PWD/../services/data
|
||||||
|
DEPENDPATH += $$PWD/../services
|
||||||
|
|
||||||
|
DISTFILES += \
|
||||||
|
camp.json
|
||||||
|
|
||||||
|
RESOURCES += \
|
||||||
|
camprc.qrc
|
||||||
|
|
||||||
|
FORMS += \
|
||||||
|
campform.ui
|
@ -0,0 +1,12 @@
|
|||||||
|
#ifndef CAMP_GLOBAL_H
|
||||||
|
#define CAMP_GLOBAL_H
|
||||||
|
|
||||||
|
#include <QtCore/qglobal.h>
|
||||||
|
|
||||||
|
#if defined(CAMP_LIBRARY)
|
||||||
|
# define CAMPSHARED_EXPORT Q_DECL_EXPORT
|
||||||
|
#else
|
||||||
|
# define CAMPSHARED_EXPORT Q_DECL_IMPORT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // CAMP_GLOBAL_H
|
@ -0,0 +1,14 @@
|
|||||||
|
#include "campform.h"
|
||||||
|
#include "ui_campform.h"
|
||||||
|
|
||||||
|
CampForm::CampForm(QWidget *parent) :
|
||||||
|
AutoForm<CampData>(parent),
|
||||||
|
ui(new Ui::CampForm)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
CampForm::~CampForm()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
#ifndef CAMPFORM_H
|
||||||
|
#define CAMPFORM_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <core.h>
|
||||||
|
#include "data/camp-data.h"
|
||||||
|
#include "camp-odb.hxx"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class CampForm;
|
||||||
|
}
|
||||||
|
|
||||||
|
class CampForm : public AutoForm<CampData>
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit CampForm(QWidget *parent = 0);
|
||||||
|
~CampForm();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::CampForm *ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CAMPFORM_H
|
@ -0,0 +1,21 @@
|
|||||||
|
<ui version="4.0">
|
||||||
|
<author/>
|
||||||
|
<comment/>
|
||||||
|
<exportmacro/>
|
||||||
|
<class>CampForm</class>
|
||||||
|
<widget class="QWidget" name="CampForm">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>400</width>
|
||||||
|
<height>300</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<pixmapfunction/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
@ -0,0 +1,6 @@
|
|||||||
|
#include "campgrid.h"
|
||||||
|
|
||||||
|
CampGrid::CampGrid(QWidget *parent) : GridForm<CampData>(parent)
|
||||||
|
{
|
||||||
|
setTableModel(new AutoTableModel<CampData>);
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
#ifndef CAMPGRID_H
|
||||||
|
#define CAMPGRID_H
|
||||||
|
|
||||||
|
#include <core.h>
|
||||||
|
#include "data/camp-data.h"
|
||||||
|
#include "camp-odb.hxx"
|
||||||
|
|
||||||
|
class CampGrid : public GridForm<CampData>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CampGrid(QWidget *parent = NULL);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CAMPGRID_H
|
@ -0,0 +1,5 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="/">
|
||||||
|
<file>icons/campPlugin.svg</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
@ -0,0 +1,67 @@
|
|||||||
|
#include "addressitem.h"
|
||||||
|
#include <define.h>
|
||||||
|
|
||||||
|
AddressItem::AddressItem(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int AddressItem::id() const
|
||||||
|
{
|
||||||
|
return m_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddressItem::setId(int id)
|
||||||
|
{
|
||||||
|
m_id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString AddressItem::firstName() const
|
||||||
|
{
|
||||||
|
return m_firstName;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddressItem::setFirstName(const QString &firstName)
|
||||||
|
{
|
||||||
|
m_firstName = firstName;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString AddressItem::lastName() const
|
||||||
|
{
|
||||||
|
return m_lastName;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddressItem::setLastName(const QString &lastName)
|
||||||
|
{
|
||||||
|
m_lastName = lastName;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString AddressItem::address() const
|
||||||
|
{
|
||||||
|
return m_address;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddressItem::setAddress(const QString &address)
|
||||||
|
{
|
||||||
|
m_address = address;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDecDouble AddressItem::price() const
|
||||||
|
{
|
||||||
|
return TO_DEC(m_price);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddressItem::setPrice(QDecDouble price)
|
||||||
|
{
|
||||||
|
m_price = FROM_DEC(price);
|
||||||
|
}
|
||||||
|
|
||||||
|
QWeakPointer<CampData> AddressItem::campData() const
|
||||||
|
{
|
||||||
|
return m_campData;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddressItem::setCampData(const QWeakPointer<CampData> &campData)
|
||||||
|
{
|
||||||
|
m_campData = campData;
|
||||||
|
}
|
@ -0,0 +1,55 @@
|
|||||||
|
#ifndef ADDRESSITEM_H
|
||||||
|
#define ADDRESSITEM_H
|
||||||
|
|
||||||
|
#include "camp-data.h"
|
||||||
|
#include <QObject>
|
||||||
|
#include <QSharedPointer>
|
||||||
|
#include <QWeakPointer>
|
||||||
|
#include <QDecDouble.hh>
|
||||||
|
#include <odb/core.hxx>
|
||||||
|
|
||||||
|
class CampData;
|
||||||
|
|
||||||
|
#pragma db object
|
||||||
|
class AddressItem : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(QString firstName READ firstName WRITE setFirstName)
|
||||||
|
Q_PROPERTY(QString lastName READ lastName WRITE setLastName)
|
||||||
|
Q_PROPERTY(QString address READ address WRITE setAddress)
|
||||||
|
Q_PROPERTY(QDecDouble price READ price WRITE setPrice)
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit AddressItem(QObject *parent = 0);
|
||||||
|
|
||||||
|
int id() const;
|
||||||
|
void setId(int id);
|
||||||
|
|
||||||
|
QString firstName() const;
|
||||||
|
void setFirstName(const QString &firstName);
|
||||||
|
|
||||||
|
QString lastName() const;
|
||||||
|
void setLastName(const QString &lastName);
|
||||||
|
|
||||||
|
QString address() const;
|
||||||
|
void setAddress(const QString &address);
|
||||||
|
|
||||||
|
QDecDouble price() const;
|
||||||
|
void setPrice(QDecDouble price);
|
||||||
|
|
||||||
|
QWeakPointer<CampData> campData() const;
|
||||||
|
void setCampData(const QWeakPointer<CampData> &campData);
|
||||||
|
|
||||||
|
private:
|
||||||
|
friend class odb::access;
|
||||||
|
#pragma db id auto
|
||||||
|
int m_id;
|
||||||
|
QString m_firstName;
|
||||||
|
QString m_lastName;
|
||||||
|
QString m_address;
|
||||||
|
int m_price;
|
||||||
|
#pragma db not_null
|
||||||
|
QWeakPointer<CampData> m_campData;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ADDRESSITEM_H
|
@ -0,0 +1,18 @@
|
|||||||
|
#ifndef CAMP_DATA_H
|
||||||
|
#define CAMP_DATA_H
|
||||||
|
|
||||||
|
#include <QSharedPointer>
|
||||||
|
|
||||||
|
class CampData;
|
||||||
|
class AddressItem;
|
||||||
|
class ServiceItem;
|
||||||
|
|
||||||
|
typedef QSharedPointer<CampData> CampDataPtr;
|
||||||
|
typedef QSharedPointer<ServiceItem> ServiceItemPtr;
|
||||||
|
typedef QSharedPointer<AddressItem> AddressItemPtr;
|
||||||
|
|
||||||
|
#include "campdata.h"
|
||||||
|
#include "addressitem.h"
|
||||||
|
#include "serviceitem.h"
|
||||||
|
|
||||||
|
#endif // CAMP_DATA_H
|
@ -0,0 +1,117 @@
|
|||||||
|
#include "campdata.h"
|
||||||
|
#include <define.h>
|
||||||
|
|
||||||
|
CampData::CampData(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int CampData::id() const
|
||||||
|
{
|
||||||
|
return m_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setId(int id)
|
||||||
|
{
|
||||||
|
m_id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDate CampData::start() const
|
||||||
|
{
|
||||||
|
return m_start;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setStart(const QDate &start)
|
||||||
|
{
|
||||||
|
m_start = start;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDate CampData::end() const
|
||||||
|
{
|
||||||
|
return m_end;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setEnd(const QDate &end)
|
||||||
|
{
|
||||||
|
m_end = end;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CampData::ownerFirstame() const
|
||||||
|
{
|
||||||
|
return m_ownerFirstame;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setOwnerFirstame(const QString &ownerFirstame)
|
||||||
|
{
|
||||||
|
m_ownerFirstame = ownerFirstame;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CampData::ownerLastname() const
|
||||||
|
{
|
||||||
|
return m_ownerLastname;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setOwnerLastname(const QString &ownerLastname)
|
||||||
|
{
|
||||||
|
m_ownerLastname = ownerLastname;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CampData::ownerAddress() const
|
||||||
|
{
|
||||||
|
return m_ownerAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setOwnerAddress(const QString &ownerAddress)
|
||||||
|
{
|
||||||
|
m_ownerAddress = ownerAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
QOdbList<ServiceItemPtr> CampData::services() const
|
||||||
|
{
|
||||||
|
return m_services;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setServices(const QOdbList<QSharedPointer<ServiceItem> > &services)
|
||||||
|
{
|
||||||
|
m_services = services;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::addServiceItem(ServiceItemPtr serviceItem)
|
||||||
|
{
|
||||||
|
m_services.append(serviceItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
QOdbList<AddressItemPtr> CampData::people() const
|
||||||
|
{
|
||||||
|
return m_people;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setPeople(const QOdbList<AddressItemPtr> &people)
|
||||||
|
{
|
||||||
|
m_people = people;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::addPerson(AddressItemPtr person)
|
||||||
|
{
|
||||||
|
m_people.append(person);
|
||||||
|
}
|
||||||
|
|
||||||
|
QDecDouble CampData::totalPrice() const
|
||||||
|
{
|
||||||
|
return TO_DEC(m_totalPrice);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setTotalPrice(QDecDouble totalPrice)
|
||||||
|
{
|
||||||
|
m_totalPrice = FROM_DEC(totalPrice);
|
||||||
|
}
|
||||||
|
|
||||||
|
SeasonPtr CampData::season() const
|
||||||
|
{
|
||||||
|
return m_season;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setSeason(const SeasonPtr &season)
|
||||||
|
{
|
||||||
|
m_season = season;
|
||||||
|
}
|
@ -0,0 +1,76 @@
|
|||||||
|
#ifndef CAMPDATA_H
|
||||||
|
#define CAMPDATA_H
|
||||||
|
|
||||||
|
#include "camp-data.h"
|
||||||
|
#include <QObject>
|
||||||
|
#include <QDate>
|
||||||
|
#include <QDecDouble.hh>
|
||||||
|
#include <odb/core.hxx>
|
||||||
|
#include <odb/qt/list.hxx>
|
||||||
|
|
||||||
|
#include <data/season.h>
|
||||||
|
|
||||||
|
#pragma db object
|
||||||
|
class CampData : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(QDate start READ start WRITE setStart)
|
||||||
|
Q_PROPERTY(QDate end READ end WRITE setEnd)
|
||||||
|
Q_PROPERTY(QString ownerFirstame READ ownerFirstame WRITE setOwnerFirstame)
|
||||||
|
Q_PROPERTY(QString ownerLastname READ ownerLastname WRITE setOwnerLastname)
|
||||||
|
Q_PROPERTY(QString ownerAddress READ ownerAddress WRITE setOwnerAddress)
|
||||||
|
Q_PROPERTY(QDecDouble totalPrice READ totalPrice WRITE setTotalPrice)
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit CampData(QObject *parent = 0);
|
||||||
|
|
||||||
|
int id() const;
|
||||||
|
void setId(int id);
|
||||||
|
|
||||||
|
QDate start() const;
|
||||||
|
void setStart(const QDate &start);
|
||||||
|
|
||||||
|
QDate end() const;
|
||||||
|
void setEnd(const QDate &end);
|
||||||
|
|
||||||
|
QString ownerFirstame() const;
|
||||||
|
void setOwnerFirstame(const QString &ownerFirstame);
|
||||||
|
|
||||||
|
QString ownerLastname() const;
|
||||||
|
void setOwnerLastname(const QString &ownerLastname);
|
||||||
|
|
||||||
|
QString ownerAddress() const;
|
||||||
|
void setOwnerAddress(const QString &ownerAddress);
|
||||||
|
|
||||||
|
QOdbList<QSharedPointer<ServiceItem> > services() const;
|
||||||
|
void setServices(const QOdbList<QSharedPointer<ServiceItem> > &services);
|
||||||
|
void addServiceItem(ServiceItemPtr serviceItem);
|
||||||
|
|
||||||
|
QOdbList<AddressItemPtr> people() const;
|
||||||
|
void setPeople(const QOdbList<AddressItemPtr> &people);
|
||||||
|
void addPerson(AddressItemPtr person);
|
||||||
|
|
||||||
|
QDecDouble totalPrice() const;
|
||||||
|
void setTotalPrice(QDecDouble totalPrice);
|
||||||
|
|
||||||
|
SeasonPtr season() const;
|
||||||
|
void setSeason(const SeasonPtr &season);
|
||||||
|
|
||||||
|
private:
|
||||||
|
friend class odb::access;
|
||||||
|
#pragma db id auto
|
||||||
|
int m_id;
|
||||||
|
QDate m_start;
|
||||||
|
QDate m_end;
|
||||||
|
QString m_ownerFirstame;
|
||||||
|
QString m_ownerLastname;
|
||||||
|
QString m_ownerAddress;
|
||||||
|
#pragma db value_not_null inverse(m_campData)
|
||||||
|
QOdbList<ServiceItemPtr> m_services;
|
||||||
|
#pragma db value_not_null inverse(m_campData)
|
||||||
|
QOdbList<AddressItemPtr> m_people;
|
||||||
|
int m_totalPrice;
|
||||||
|
SeasonPtr m_season;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CAMPDATA_H
|
@ -0,0 +1,77 @@
|
|||||||
|
#include "serviceitem.h"
|
||||||
|
#include <define.h>
|
||||||
|
|
||||||
|
ServiceItem::ServiceItem(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int ServiceItem::id() const
|
||||||
|
{
|
||||||
|
return m_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ServiceItem::setId(int id)
|
||||||
|
{
|
||||||
|
m_id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString ServiceItem::name() const
|
||||||
|
{
|
||||||
|
return m_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ServiceItem::setName(const QString &name)
|
||||||
|
{
|
||||||
|
m_name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString ServiceItem::code() const
|
||||||
|
{
|
||||||
|
return m_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ServiceItem::setCode(const QString &code)
|
||||||
|
{
|
||||||
|
m_code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDecDouble ServiceItem::price() const
|
||||||
|
{
|
||||||
|
return TO_DEC(m_price);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ServiceItem::setPrice(QDecDouble price)
|
||||||
|
{
|
||||||
|
m_price = FROM_DEC(price);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ServiceItem::salePossible() const
|
||||||
|
{
|
||||||
|
return m_salePossible;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ServiceItem::setSalePossible(bool salePossible)
|
||||||
|
{
|
||||||
|
m_salePossible = salePossible;
|
||||||
|
}
|
||||||
|
|
||||||
|
AccService::ServiceType ServiceItem::type() const
|
||||||
|
{
|
||||||
|
return m_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ServiceItem::setType(const AccService::ServiceType &type)
|
||||||
|
{
|
||||||
|
m_type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
QWeakPointer<CampData> ServiceItem::campData() const
|
||||||
|
{
|
||||||
|
return m_campData;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ServiceItem::setCampData(const QWeakPointer<CampData> &campData)
|
||||||
|
{
|
||||||
|
m_campData = campData;
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
#ifndef SREVICEITEM_H
|
||||||
|
#define SREVICEITEM_H
|
||||||
|
|
||||||
|
#include "camp-data.h"
|
||||||
|
#include <QObject>
|
||||||
|
#include <QSharedPointer>
|
||||||
|
#include <QWeakPointer>
|
||||||
|
#include <QDecDouble.hh>
|
||||||
|
|
||||||
|
#include <odb/core.hxx>
|
||||||
|
#include <accservice.h>
|
||||||
|
|
||||||
|
class CampData;
|
||||||
|
|
||||||
|
#pragma db object
|
||||||
|
class ServiceItem : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(QString name READ name WRITE setName)
|
||||||
|
Q_PROPERTY(QString code READ code WRITE setCode)
|
||||||
|
Q_PROPERTY(QDecDouble price READ price WRITE setPrice)
|
||||||
|
Q_PROPERTY(bool salePossible READ salePossible WRITE setSalePossible)
|
||||||
|
Q_PROPERTY(AccService::ServiceType type READ type WRITE setType)
|
||||||
|
Q_ENUMS(AccService::ServiceType)
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit ServiceItem(QObject *parent = 0);
|
||||||
|
|
||||||
|
int id() const;
|
||||||
|
void setId(int id);
|
||||||
|
|
||||||
|
QString name() const;
|
||||||
|
void setName(const QString &name);
|
||||||
|
|
||||||
|
QString code() const;
|
||||||
|
void setCode(const QString &code);
|
||||||
|
|
||||||
|
QDecDouble price() const;
|
||||||
|
void setPrice(QDecDouble price);
|
||||||
|
|
||||||
|
bool salePossible() const;
|
||||||
|
void setSalePossible(bool salePossible);
|
||||||
|
|
||||||
|
AccService::ServiceType type() const;
|
||||||
|
void setType(const AccService::ServiceType &type);
|
||||||
|
|
||||||
|
QWeakPointer<CampData> campData() const;
|
||||||
|
void setCampData(const QWeakPointer<CampData> &campData);
|
||||||
|
|
||||||
|
private:
|
||||||
|
friend class odb::access;
|
||||||
|
#pragma db id auto
|
||||||
|
int m_id;
|
||||||
|
QString m_name;
|
||||||
|
QString m_code;
|
||||||
|
int m_price;
|
||||||
|
bool m_salePossible;
|
||||||
|
AccService::ServiceType m_type;
|
||||||
|
#pragma db not_null
|
||||||
|
QWeakPointer<CampData> m_campData;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SREVICEITEM_H
|
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" ?><svg clip-rule="evenodd" fill-rule="evenodd" image-rendering="optimizeQuality" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" viewBox="0 0 5000 5000" xmlns="http://www.w3.org/2000/svg"><defs><style type="text/css"><![CDATA[
|
||||||
|
.str1 {stroke:#434242;stroke-width:100}
|
||||||
|
.str0 {stroke:#434242;stroke-width:300;stroke-linecap:round}
|
||||||
|
.fil0 {fill:none}
|
||||||
|
.fil1 {fill:#434242}
|
||||||
|
.fil2 {fill:url(#id0)}
|
||||||
|
]]></style><linearGradient gradientUnits="userSpaceOnUse" id="id0" x1="2500.01" x2="2500.01" y1="4260.19" y2="1474.81"><stop offset="0" stop-color="#008BFF"/><stop offset="1" stop-color="#0af"/></linearGradient></defs><g id="Layer_x0020_1"><path class="fil0 str0" d="M300 2000l2050-1600c100-50 200-50 300 0l2050 1500"/><path class="fil1" d="M3500 1022l600 439v-861c0-55-45-100-100-100h-400c-55 0-100 45-100 100v422z"/><path class="fil2 str1" d="M899 4700h901v-1500c0-110 90-200 200-200h900c110 0 200 90 200 200v1500h1001c165 0 300-135 300-300l-1-2000-1776-1328c-33-26-79-37-124-36s-92 14-127 40l-1773 1324-1 2000c0 165 135 300 300 300z"/></g></svg>
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,93 @@
|
|||||||
|
#include "csvimporter.h"
|
||||||
|
#include <QFile>
|
||||||
|
#include <QVariant>
|
||||||
|
|
||||||
|
CsvImporter::CsvImporter(const QMetaObject *metaObject, QObject *parent)
|
||||||
|
:QObject(parent),
|
||||||
|
IImporter(metaObject)
|
||||||
|
{
|
||||||
|
m_parsed = false;
|
||||||
|
m_currentRec = 1;
|
||||||
|
m_error = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsvImporter::setImportFile(const QString &fileName)
|
||||||
|
{
|
||||||
|
m_fileName = fileName;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CsvImporter::recordCount()
|
||||||
|
{
|
||||||
|
if (!m_parsed)
|
||||||
|
{
|
||||||
|
parseFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_lines.count() - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSharedPointer<QObject> CsvImporter::nextRecord()
|
||||||
|
{
|
||||||
|
if (!m_parsed)
|
||||||
|
{
|
||||||
|
parseFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
QObject *entity = m_metaObject->newInstance();
|
||||||
|
|
||||||
|
if (entity == NULL || m_currentRec > recordCount())
|
||||||
|
{
|
||||||
|
++m_currentRec;
|
||||||
|
return QSharedPointer<QObject>();
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList props = m_header.split(m_separator);
|
||||||
|
QString line = m_lines[m_currentRec];
|
||||||
|
QStringList values = line.split(m_separator);
|
||||||
|
|
||||||
|
for (int i = 0; i < props.size(); i++) {
|
||||||
|
QString property = props[i];
|
||||||
|
QString value = values[i];
|
||||||
|
if (!entity->setProperty(property.toStdString().c_str(), QVariant(value)))
|
||||||
|
{
|
||||||
|
m_error = true;
|
||||||
|
emit noSuchProperty(property);
|
||||||
|
|
||||||
|
++m_currentRec;
|
||||||
|
return QSharedPointer<QObject>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
++m_currentRec;
|
||||||
|
|
||||||
|
return QSharedPointer<QObject>(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CsvImporter::isError()
|
||||||
|
{
|
||||||
|
return m_error;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsvImporter::parseFile()
|
||||||
|
{
|
||||||
|
QFile file(m_fileName);
|
||||||
|
|
||||||
|
if (!file.open(QFile::ReadOnly | QFile::Text))
|
||||||
|
{
|
||||||
|
m_error = true;
|
||||||
|
emit parseError();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray data = file.readAll();
|
||||||
|
QString strData(data);
|
||||||
|
|
||||||
|
m_lines = strData.split("\n");
|
||||||
|
m_header = m_lines[0];
|
||||||
|
m_parsed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CsvImporter::setSeparator(const QString &separator)
|
||||||
|
{
|
||||||
|
m_separator = separator;
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
#ifndef CSVIMPORTER_H
|
||||||
|
#define CSVIMPORTER_H
|
||||||
|
|
||||||
|
#include "iimporter.h"
|
||||||
|
#include <QStringList>
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
|
class CsvImporter : public QObject, public IImporter
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit CsvImporter(const QMetaObject *metaObject, QObject *parent = NULL);
|
||||||
|
|
||||||
|
// IImporter interface
|
||||||
|
public:
|
||||||
|
void setImportFile(const QString &fileName);
|
||||||
|
int recordCount();
|
||||||
|
QSharedPointer<QObject> nextRecord();
|
||||||
|
bool isError();
|
||||||
|
|
||||||
|
void setSeparator(const QString &separator);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void parseError();
|
||||||
|
void noSuchProperty(QString propName);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void parseFile();
|
||||||
|
|
||||||
|
QString m_header;
|
||||||
|
QString m_separator;
|
||||||
|
QString m_fileName;
|
||||||
|
QStringList m_lines;
|
||||||
|
bool m_parsed;
|
||||||
|
bool m_error;
|
||||||
|
int m_currentRec;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CSVIMPORTER_H
|
@ -0,0 +1,22 @@
|
|||||||
|
#ifndef IIMPORTER_H
|
||||||
|
#define IIMPORTER_H
|
||||||
|
|
||||||
|
#include <QMetaObject>
|
||||||
|
#include <QObject>
|
||||||
|
#include <QSharedPointer>
|
||||||
|
|
||||||
|
class IImporter
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit IImporter(const QMetaObject *metaObject) { m_metaObject = metaObject; }
|
||||||
|
|
||||||
|
virtual void setImportFile(const QString &fileName) = 0;
|
||||||
|
virtual int recordCount() = 0;
|
||||||
|
virtual QSharedPointer<QObject> nextRecord() = 0;
|
||||||
|
virtual bool isError() = 0;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
const QMetaObject *m_metaObject;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // IIMPORTER_H
|
Loading…
Reference in New Issue