Merge branch 'master' of https://git.bukova.info/repos/git/prodejna
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
"default" : "",
|
"default" : "",
|
||||||
"CZ" : ""
|
"CZ" : ""
|
||||||
},
|
},
|
||||||
"schemaVersion" : 1,
|
"schemaVersion" : 2,
|
||||||
"sql" : [
|
"sql" : [
|
||||||
"CREATE TABLE \"AddressbookData\" (
|
"CREATE TABLE \"AddressbookData\" (
|
||||||
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
@@ -21,10 +21,14 @@
|
|||||||
\"addressCity\" TEXT NULL,
|
\"addressCity\" TEXT NULL,
|
||||||
\"addressStreet\" TEXT NULL,
|
\"addressStreet\" TEXT NULL,
|
||||||
\"addressHouseNumber\" TEXT NULL,
|
\"addressHouseNumber\" TEXT NULL,
|
||||||
\"addressZipCode\" TEXT NULL);"
|
\"addressZipCode\" TEXT NULL);
|
||||||
|
",
|
||||||
|
|
||||||
|
"ALTER TABLE AddressbookData ADD \"country\" INTEGER NULL;
|
||||||
|
"
|
||||||
|
|
||||||
],
|
],
|
||||||
"dependencies" : [],
|
"dependencies" : [ "COUNTRYREGISTER" ],
|
||||||
"translations" : {
|
"translations" : {
|
||||||
"CZ" : {
|
"CZ" : {
|
||||||
"title" : "Titul",
|
"title" : "Titul",
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ include(../config_plugin.pri)
|
|||||||
|
|
||||||
ODB_FILES = addressbook/data/addressbookdata.h
|
ODB_FILES = addressbook/data/addressbookdata.h
|
||||||
H_DIR = $$PWD/data/*.h
|
H_DIR = $$PWD/data/*.h
|
||||||
|
ODB_OTHER_INCLUDES = -I $$PWD/../countryregister/data
|
||||||
include(../odb.pri)
|
include(../odb.pri)
|
||||||
|
|
||||||
OTHER_FILES += \
|
OTHER_FILES += \
|
||||||
@@ -43,3 +44,11 @@ FORMS += \
|
|||||||
RESOURCES += \
|
RESOURCES += \
|
||||||
addressbookrc.qrc
|
addressbookrc.qrc
|
||||||
TRANSLATIONS = translations/addressbook_cs_CZ.ts
|
TRANSLATIONS = translations/addressbook_cs_CZ.ts
|
||||||
|
|
||||||
|
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lcountryregister
|
||||||
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lcountryregister
|
||||||
|
else:unix: LIBS += -L$$OUT_PWD/../plugins/ -lcountryregister
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/../countryregister/data
|
||||||
|
INCLUDEPATH += $$PWD/../countryregister
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#include "addressbookform.h"
|
#include "addressbookform.h"
|
||||||
#include "ui_addressbookform.h"
|
#include "ui_addressbookform.h"
|
||||||
|
#include <countrydata.h>
|
||||||
|
|
||||||
AddressbookForm::AddressbookForm(QWidget *parent) :
|
AddressbookForm::AddressbookForm(QWidget *parent) :
|
||||||
AutoForm<AddressbookData>(parent),
|
AutoForm<AddressbookData>(parent),
|
||||||
@@ -22,3 +23,9 @@ AddressbookForm::~AddressbookForm()
|
|||||||
{
|
{
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AddressbookForm::registerCombos()
|
||||||
|
{
|
||||||
|
Service<CountryData> srv;
|
||||||
|
registerBinding(ui->country, ComboData::createComboData(srv.all()));
|
||||||
|
}
|
||||||
|
|||||||
@@ -20,6 +20,10 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::AddressbookForm *ui;
|
Ui::AddressbookForm *ui;
|
||||||
|
|
||||||
|
// FormBinder interface
|
||||||
|
protected:
|
||||||
|
void registerCombos();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>400</width>
|
<width>610</width>
|
||||||
<height>300</height>
|
<height>407</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@@ -115,8 +115,35 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="10" column="0">
|
||||||
|
<widget class="QLabel" name="label_10">
|
||||||
|
<property name="text">
|
||||||
|
<string>Country</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="1">
|
||||||
|
<widget class="QComboBox" name="country">
|
||||||
|
<property name="editable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
<tabstops>
|
||||||
|
<tabstop>title</tabstop>
|
||||||
|
<tabstop>firstName</tabstop>
|
||||||
|
<tabstop>lastName</tabstop>
|
||||||
|
<tabstop>birthDate</tabstop>
|
||||||
|
<tabstop>idCardNumber</tabstop>
|
||||||
|
<tabstop>ztp</tabstop>
|
||||||
|
<tabstop>addressCity</tabstop>
|
||||||
|
<tabstop>addressStreet</tabstop>
|
||||||
|
<tabstop>addressHouseNumber</tabstop>
|
||||||
|
<tabstop>addressZipCode</tabstop>
|
||||||
|
<tabstop>country</tabstop>
|
||||||
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
AddressbookData::AddressbookData(QObject * parent)
|
AddressbookData::AddressbookData(QObject * parent)
|
||||||
:ComboItem(parent)
|
:ComboItem(parent)
|
||||||
{
|
{
|
||||||
|
m_ztp = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AddressbookData::title() const
|
QString AddressbookData::title() const
|
||||||
@@ -105,6 +106,19 @@ void AddressbookData::setId(int id)
|
|||||||
m_id = id;
|
m_id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSharedPointer<QObject> AddressbookData::country() const
|
||||||
|
{
|
||||||
|
return m_country;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddressbookData::setCountry(const QSharedPointer<QObject> &country)
|
||||||
|
{
|
||||||
|
if (qobject_cast<CountryData*>(country.data()) != NULL)
|
||||||
|
{
|
||||||
|
m_country = qSharedPointerDynamicCast<CountryData, QObject>(country);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool AddressbookData::eq(ComboItem *other)
|
bool AddressbookData::eq(ComboItem *other)
|
||||||
{
|
{
|
||||||
AddressbookData *adb = qobject_cast<AddressbookData*>(other);
|
AddressbookData *adb = qobject_cast<AddressbookData*>(other);
|
||||||
|
|||||||
@@ -6,8 +6,10 @@
|
|||||||
#include <QDate>
|
#include <QDate>
|
||||||
#include <odb/core.hxx>
|
#include <odb/core.hxx>
|
||||||
#include <QtCore/qglobal.h>
|
#include <QtCore/qglobal.h>
|
||||||
|
#include <QSharedPointer>
|
||||||
|
|
||||||
#include <data/comboitem.h>
|
#include <data/comboitem.h>
|
||||||
|
#include <countrydata.h>
|
||||||
|
|
||||||
#if defined(ADDRESSBOOK_LIBRARY)
|
#if defined(ADDRESSBOOK_LIBRARY)
|
||||||
# define ADDRESSBOOKSHARED_EXPORT Q_DECL_EXPORT
|
# define ADDRESSBOOKSHARED_EXPORT Q_DECL_EXPORT
|
||||||
@@ -29,6 +31,7 @@ class ADDRESSBOOKSHARED_EXPORT AddressbookData : public ComboItem
|
|||||||
Q_PROPERTY(QString addressStreet READ addressStreet WRITE setAddressStreet)
|
Q_PROPERTY(QString addressStreet READ addressStreet WRITE setAddressStreet)
|
||||||
Q_PROPERTY(QString addressHouseNumber READ addressHouseNumber WRITE setAddressHouseNumber)
|
Q_PROPERTY(QString addressHouseNumber READ addressHouseNumber WRITE setAddressHouseNumber)
|
||||||
Q_PROPERTY(QString addressZipCode READ addressZipCode WRITE setAddressZipCode)
|
Q_PROPERTY(QString addressZipCode READ addressZipCode WRITE setAddressZipCode)
|
||||||
|
Q_PROPERTY(QSharedPointer<QObject> country READ country WRITE setCountry)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
AddressbookData(QObject *parent = 0);
|
AddressbookData(QObject *parent = 0);
|
||||||
@@ -65,6 +68,9 @@ public:
|
|||||||
int id() const;
|
int id() const;
|
||||||
void setId(int id);
|
void setId(int id);
|
||||||
|
|
||||||
|
QSharedPointer<QObject> country() const;
|
||||||
|
void setCountry(const QSharedPointer<QObject> &country);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class odb::access;
|
friend class odb::access;
|
||||||
#pragma db id auto
|
#pragma db id auto
|
||||||
@@ -79,6 +85,7 @@ private:
|
|||||||
QString m_addressStreet;
|
QString m_addressStreet;
|
||||||
QString m_addressHouseNumber;
|
QString m_addressHouseNumber;
|
||||||
QString m_addressZipCode;
|
QString m_addressZipCode;
|
||||||
|
CountryDataPtr m_country;
|
||||||
|
|
||||||
// ComboItem interface
|
// ComboItem interface
|
||||||
public:
|
public:
|
||||||
@@ -86,4 +93,6 @@ public:
|
|||||||
virtual QString toString();
|
virtual QString toString();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef QSharedPointer<AddressbookData> AddressbookDataPtr;
|
||||||
|
|
||||||
#endif // ADDRESSBOOKDATA_H
|
#endif // ADDRESSBOOKDATA_H
|
||||||
|
|||||||
@@ -178,3 +178,13 @@ void MainWindow::on_actionCountry_register_triggered()
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::on_actionAbout_Qt_triggered()
|
||||||
|
{
|
||||||
|
QMessageBox::aboutQt(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::on_actionAbout_triggered()
|
||||||
|
{
|
||||||
|
QMessageBox::about(this, tr("About prodejna"), tr("Modular cash register software under GPL license.\n(C) 2015 - 2017 Josef Rokos, Zdenek Jonák"));
|
||||||
|
}
|
||||||
|
|||||||
@@ -39,6 +39,10 @@ private slots:
|
|||||||
|
|
||||||
void on_actionCountry_register_triggered();
|
void on_actionCountry_register_triggered();
|
||||||
|
|
||||||
|
void on_actionAbout_Qt_triggered();
|
||||||
|
|
||||||
|
void on_actionAbout_triggered();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow *ui;
|
Ui::MainWindow *ui;
|
||||||
LoginDialog *m_loginDialog;
|
LoginDialog *m_loginDialog;
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1000</width>
|
<width>1000</width>
|
||||||
<height>20</height>
|
<height>25</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menuFile">
|
<widget class="QMenu" name="menuFile">
|
||||||
@@ -79,8 +79,16 @@
|
|||||||
<addaction name="actionPost_register"/>
|
<addaction name="actionPost_register"/>
|
||||||
<addaction name="actionCountry_register"/>
|
<addaction name="actionCountry_register"/>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QMenu" name="menuHelp">
|
||||||
|
<property name="title">
|
||||||
|
<string>Help</string>
|
||||||
|
</property>
|
||||||
|
<addaction name="actionAbout"/>
|
||||||
|
<addaction name="actionAbout_Qt"/>
|
||||||
|
</widget>
|
||||||
<addaction name="menuFile"/>
|
<addaction name="menuFile"/>
|
||||||
<addaction name="menuRegisters"/>
|
<addaction name="menuRegisters"/>
|
||||||
|
<addaction name="menuHelp"/>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QToolBar" name="mainToolBar">
|
<widget class="QToolBar" name="mainToolBar">
|
||||||
<attribute name="toolBarArea">
|
<attribute name="toolBarArea">
|
||||||
@@ -126,12 +134,22 @@
|
|||||||
</action>
|
</action>
|
||||||
<action name="actionPost_register">
|
<action name="actionPost_register">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Post register</string>
|
<string>&Post register</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionCountry_register">
|
<action name="actionCountry_register">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Country register</string>
|
<string>&Country register</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionAbout">
|
||||||
|
<property name="text">
|
||||||
|
<string>About</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionAbout_Qt">
|
||||||
|
<property name="text">
|
||||||
|
<string>About Qt</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include "campgrid.h"
|
#include "campgrid.h"
|
||||||
#include "campform.h"
|
#include "campform.h"
|
||||||
|
#include "settings/campsettingsform.h"
|
||||||
|
|
||||||
Camp::Camp()
|
Camp::Camp()
|
||||||
{
|
{
|
||||||
@@ -9,8 +10,10 @@ Camp::Camp()
|
|||||||
|
|
||||||
void Camp::initServiceUi()
|
void Camp::initServiceUi()
|
||||||
{
|
{
|
||||||
|
m_service = new Service<CampData>();
|
||||||
m_ui = new CampGrid();
|
m_ui = new CampGrid();
|
||||||
((CampGrid*)m_ui)->setForm(new CampForm());
|
((CampGrid*)m_ui)->setForm(new CampForm());
|
||||||
|
m_settingsUi = new CampSettingsForm();
|
||||||
}
|
}
|
||||||
|
|
||||||
QIcon Camp::pluginIcon()
|
QIcon Camp::pluginIcon()
|
||||||
|
|||||||
+31
-1
@@ -8,16 +8,19 @@
|
|||||||
"default" : "",
|
"default" : "",
|
||||||
"CZ" : ""
|
"CZ" : ""
|
||||||
},
|
},
|
||||||
"schemaVersion" : 1,
|
"schemaVersion" : 2,
|
||||||
"sql" : [
|
"sql" : [
|
||||||
"CREATE TABLE \"CampData\" (
|
"CREATE TABLE \"CampData\" (
|
||||||
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
\"numSer\" TEXT NULL,
|
||||||
\"start\" TEXT NULL,
|
\"start\" TEXT NULL,
|
||||||
\"end\" TEXT NULL,
|
\"end\" TEXT NULL,
|
||||||
\"ownerFirstame\" TEXT NULL,
|
\"ownerFirstame\" TEXT NULL,
|
||||||
\"ownerLastname\" TEXT NULL,
|
\"ownerLastname\" TEXT NULL,
|
||||||
\"ownerAddress\" TEXT NULL,
|
\"ownerAddress\" TEXT NULL,
|
||||||
\"totalPrice\" INTEGER NOT NULL,
|
\"totalPrice\" INTEGER NOT NULL,
|
||||||
|
\"sale\" INTEGER NOT NULL,
|
||||||
|
\"fixedSale\" INTEGER NOT NULL,
|
||||||
\"season\" INTEGER NULL,
|
\"season\" INTEGER NULL,
|
||||||
CONSTRAINT \"season_fk\"
|
CONSTRAINT \"season_fk\"
|
||||||
FOREIGN KEY (\"season\")
|
FOREIGN KEY (\"season\")
|
||||||
@@ -29,11 +32,21 @@ CREATE TABLE \"AddressItem\" (
|
|||||||
\"firstName\" TEXT NULL,
|
\"firstName\" TEXT NULL,
|
||||||
\"lastName\" TEXT NULL,
|
\"lastName\" TEXT NULL,
|
||||||
\"address\" TEXT NULL,
|
\"address\" TEXT NULL,
|
||||||
|
\"adbItem\" INTEGER NULL,
|
||||||
\"price\" INTEGER NOT NULL,
|
\"price\" INTEGER NOT NULL,
|
||||||
\"campData\" INTEGER NOT NULL,
|
\"campData\" INTEGER NOT NULL,
|
||||||
|
\"personPrice\" INTEGER NULL,
|
||||||
|
CONSTRAINT \"adbItem_fk\"
|
||||||
|
FOREIGN KEY (\"adbItem\")
|
||||||
|
REFERENCES \"AddressbookData\" (\"id\")
|
||||||
|
DEFERRABLE INITIALLY DEFERRED,
|
||||||
CONSTRAINT \"campData_fk\"
|
CONSTRAINT \"campData_fk\"
|
||||||
FOREIGN KEY (\"campData\")
|
FOREIGN KEY (\"campData\")
|
||||||
REFERENCES \"CampData\" (\"id\")
|
REFERENCES \"CampData\" (\"id\")
|
||||||
|
DEFERRABLE INITIALLY DEFERRED,
|
||||||
|
CONSTRAINT \"personPrice_fk\"
|
||||||
|
FOREIGN KEY (\"personPrice\")
|
||||||
|
REFERENCES \"PersonPrice\" (\"id\")
|
||||||
DEFERRABLE INITIALLY DEFERRED);
|
DEFERRABLE INITIALLY DEFERRED);
|
||||||
|
|
||||||
CREATE TABLE \"ServiceItem\" (
|
CREATE TABLE \"ServiceItem\" (
|
||||||
@@ -48,7 +61,24 @@ CREATE TABLE \"ServiceItem\" (
|
|||||||
FOREIGN KEY (\"campData\")
|
FOREIGN KEY (\"campData\")
|
||||||
REFERENCES \"CampData\" (\"id\")
|
REFERENCES \"CampData\" (\"id\")
|
||||||
DEFERRABLE INITIALLY DEFERRED);
|
DEFERRABLE INITIALLY DEFERRED);
|
||||||
|
|
||||||
|
CREATE TABLE \"Sale\" (
|
||||||
|
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
\"sale\" INTEGER NOT NULL,
|
||||||
|
\"fixed\" INTEGER NOT NULL);
|
||||||
|
|
||||||
|
CREATE TABLE \"PersonPrice\" (
|
||||||
|
\"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
\"description\" TEXT NULL,
|
||||||
|
\"fromAge\" INTEGER NOT NULL,
|
||||||
|
\"toAge\" INTEGER NOT NULL,
|
||||||
|
\"price\" INTEGER NOT NULL,
|
||||||
|
\"active\" INTEGER NOT NULL);
|
||||||
|
",
|
||||||
|
|
||||||
|
"ALTER TABLE Sale ADD \"description\" TEXT NULL;
|
||||||
"
|
"
|
||||||
|
|
||||||
],
|
],
|
||||||
"dependencies" : [ "ADDRESSBOOK", "SHOP", "SERVICES" ],
|
"dependencies" : [ "ADDRESSBOOK", "SHOP", "SERVICES" ],
|
||||||
"translations" : {
|
"translations" : {
|
||||||
|
|||||||
+20
-4
@@ -27,7 +27,12 @@ SOURCES += camp.cpp \
|
|||||||
data/addressitem.cpp \
|
data/addressitem.cpp \
|
||||||
data/serviceitem.cpp \
|
data/serviceitem.cpp \
|
||||||
campgrid.cpp \
|
campgrid.cpp \
|
||||||
campform.cpp
|
campform.cpp \
|
||||||
|
data/sale.cpp \
|
||||||
|
settings/campsettingsform.cpp \
|
||||||
|
data/personprice.cpp \
|
||||||
|
settings/campsettings.cpp \
|
||||||
|
campwizard.cpp
|
||||||
|
|
||||||
HEADERS += camp.h\
|
HEADERS += camp.h\
|
||||||
camp_global.h \
|
camp_global.h \
|
||||||
@@ -36,13 +41,18 @@ HEADERS += camp.h\
|
|||||||
data/serviceitem.h \
|
data/serviceitem.h \
|
||||||
data/camp-data.h \
|
data/camp-data.h \
|
||||||
campgrid.h \
|
campgrid.h \
|
||||||
campform.h
|
campform.h \
|
||||||
|
data/sale.h \
|
||||||
|
settings/campsettingsform.h \
|
||||||
|
data/personprice.h \
|
||||||
|
settings/campsettings.h \
|
||||||
|
campwizard.h
|
||||||
|
|
||||||
include(../config_plugin.pri)
|
include(../config_plugin.pri)
|
||||||
|
|
||||||
ODB_FILES = camp/data/camp-data.h
|
ODB_FILES = camp/data/camp-data.h
|
||||||
H_DIR = $$PWD/data/*.h
|
H_DIR = $$PWD/data/*.h
|
||||||
ODB_OTHER_INCLUDES = -I $$PWD/../shop -I $$PWD/../addressbook/data -I $$PWD/../services/data
|
ODB_OTHER_INCLUDES = -I $$PWD/../shop -I $$PWD/../addressbook/data -I $$PWD/../countryregister/data -I $$PWD/../services/data
|
||||||
include(../odb.pri)
|
include(../odb.pri)
|
||||||
|
|
||||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lshop
|
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lshop
|
||||||
@@ -57,8 +67,12 @@ else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -laddre
|
|||||||
else:unix: LIBS += -L$$OUT_PWD/../plugins/ -laddressbook
|
else:unix: LIBS += -L$$OUT_PWD/../plugins/ -laddressbook
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/../addressbook
|
INCLUDEPATH += $$PWD/../addressbook
|
||||||
|
INCLUDEPATH += $$PWD/../addressbook/data
|
||||||
DEPENDPATH += $$PWD/../addressbook
|
DEPENDPATH += $$PWD/../addressbook
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/../countryregister/data
|
||||||
|
INCLUDEPATH += $$PWD/../countryregister
|
||||||
|
|
||||||
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lservices
|
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lservices
|
||||||
else:win32:CONFIG(debug, 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
|
else:unix: LIBS += -L$$OUT_PWD/../plugins/ -lservices
|
||||||
@@ -74,4 +88,6 @@ RESOURCES += \
|
|||||||
camprc.qrc
|
camprc.qrc
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
campform.ui
|
campform.ui \
|
||||||
|
settings/campsettingsform.ui \
|
||||||
|
campwizard.ui
|
||||||
|
|||||||
+4
-6
@@ -1,21 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<author/>
|
|
||||||
<comment/>
|
|
||||||
<exportmacro/>
|
|
||||||
<class>CampForm</class>
|
<class>CampForm</class>
|
||||||
<widget class="QWidget" name="CampForm">
|
<widget class="QWidget" name="CampForm">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>400</width>
|
<width>462</width>
|
||||||
<height>300</height>
|
<height>403</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<pixmapfunction/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|||||||
@@ -1,6 +1,20 @@
|
|||||||
#include "campgrid.h"
|
#include "campgrid.h"
|
||||||
|
#include "campwizard.h"
|
||||||
|
|
||||||
CampGrid::CampGrid(QWidget *parent) : GridForm<CampData>(parent)
|
CampGrid::CampGrid(QWidget *parent) : GridForm<CampData>(parent)
|
||||||
{
|
{
|
||||||
setTableModel(new AutoTableModel<CampData>);
|
setTableModel(new AutoTableModel<CampData>);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CampGrid::handleNewRecord()
|
||||||
|
{
|
||||||
|
CampWizard *wizard = new CampWizard();
|
||||||
|
wizard->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
|
||||||
|
wizard->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampGrid::handleEditRecord()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -9,6 +9,11 @@ class CampGrid : public GridForm<CampData>
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CampGrid(QWidget *parent = NULL);
|
CampGrid(QWidget *parent = NULL);
|
||||||
|
|
||||||
|
// IGridForm interface
|
||||||
|
protected:
|
||||||
|
void handleNewRecord();
|
||||||
|
void handleEditRecord();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CAMPGRID_H
|
#endif // CAMPGRID_H
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
#include "campwizard.h"
|
||||||
|
#include "ui_campwizard.h"
|
||||||
|
|
||||||
|
CampWizard::CampWizard(QWidget *parent) :
|
||||||
|
QWizard(parent),
|
||||||
|
ui(new Ui::CampWizard)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
m_dataBinder = new ObjectBinder(this);
|
||||||
|
m_dataBinder->registerBinding(ui->start);
|
||||||
|
m_dataBinder->registerBinding(ui->end);
|
||||||
|
}
|
||||||
|
|
||||||
|
CampWizard::~CampWizard()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampWizard::setData(const CampDataPtr &data)
|
||||||
|
{
|
||||||
|
m_data = data;
|
||||||
|
|
||||||
|
m_dataBinder->setData(data.data());
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampWizard::on_btnAdd_clicked()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#ifndef CAMPWIZARD_H
|
||||||
|
#define CAMPWIZARD_H
|
||||||
|
|
||||||
|
#include <QWizard>
|
||||||
|
#include "data/camp-data.h"
|
||||||
|
#include <objectbinder.h>
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class CampWizard;
|
||||||
|
}
|
||||||
|
|
||||||
|
class CampWizard : public QWizard
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit CampWizard(QWidget *parent = 0);
|
||||||
|
~CampWizard();
|
||||||
|
|
||||||
|
void setData(const CampDataPtr &data);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_btnAdd_clicked();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::CampWizard *ui;
|
||||||
|
CampDataPtr m_data;
|
||||||
|
ObjectBinder *m_dataBinder;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CAMPWIZARD_H
|
||||||
@@ -0,0 +1,721 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>CampWizard</class>
|
||||||
|
<widget class="QWizard" name="CampWizard">
|
||||||
|
<property name="windowModality">
|
||||||
|
<enum>Qt::ApplicationModal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>948</width>
|
||||||
|
<height>684</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Camp record</string>
|
||||||
|
</property>
|
||||||
|
<property name="windowIcon">
|
||||||
|
<iconset resource="camprc.qrc">
|
||||||
|
<normaloff>:/icons/campPlugin.svg</normaloff>:/icons/campPlugin.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="wizardStyle">
|
||||||
|
<enum>QWizard::ClassicStyle</enum>
|
||||||
|
</property>
|
||||||
|
<widget class="QWizardPage" name="peoplePage">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget" native="true">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>From</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDateEdit" name="start">
|
||||||
|
<property name="displayFormat">
|
||||||
|
<string>d. M. yyyy</string>
|
||||||
|
</property>
|
||||||
|
<property name="calendarPopup">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>To</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDateEdit" name="end">
|
||||||
|
<property name="displayFormat">
|
||||||
|
<string>d. M. yyyy</string>
|
||||||
|
</property>
|
||||||
|
<property name="calendarPopup">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
|
<property name="title">
|
||||||
|
<string>People</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_3" native="true">
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>Existing address</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="3">
|
||||||
|
<widget class="QPushButton" name="btnAdd">
|
||||||
|
<property name="text">
|
||||||
|
<string>Add</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../core/rc.qrc">
|
||||||
|
<normaloff>:/icons/new.svg</normaloff>:/icons/new.svg</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" colspan="4">
|
||||||
|
<widget class="QGroupBox" name="groupNew">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>450</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>New address</string>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<layout class="QFormLayout" name="formLayout_2">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>Title</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="title"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>First name</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="firstName"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>Last name</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLineEdit" name="lastName"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="text">
|
||||||
|
<string>Date of birth</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QDateEdit" name="birthDate">
|
||||||
|
<property name="displayFormat">
|
||||||
|
<string>d. MM. yyyy</string>
|
||||||
|
</property>
|
||||||
|
<property name="calendarPopup">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string>ID card</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QLineEdit" name="idCardNumber"/>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="1">
|
||||||
|
<widget class="QCheckBox" name="ztp">
|
||||||
|
<property name="text">
|
||||||
|
<string>ZTP</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QLabel" name="label_9">
|
||||||
|
<property name="text">
|
||||||
|
<string>Street</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QLineEdit" name="addressStreet"/>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="0">
|
||||||
|
<widget class="QLabel" name="label_10">
|
||||||
|
<property name="text">
|
||||||
|
<string>House number</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="1">
|
||||||
|
<widget class="QLineEdit" name="addressHouseNumber"/>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="0">
|
||||||
|
<widget class="QLabel" name="label_11">
|
||||||
|
<property name="text">
|
||||||
|
<string>ZIP code</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="1">
|
||||||
|
<widget class="QLineEdit" name="addressZipCode"/>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="0">
|
||||||
|
<widget class="QLabel" name="label_12">
|
||||||
|
<property name="text">
|
||||||
|
<string>City</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="9" column="1">
|
||||||
|
<widget class="QLineEdit" name="addressCity"/>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="0">
|
||||||
|
<widget class="QLabel" name="label_13">
|
||||||
|
<property name="text">
|
||||||
|
<string>Country</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="1">
|
||||||
|
<widget class="QComboBox" name="country">
|
||||||
|
<property name="editable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" colspan="3">
|
||||||
|
<widget class="QComboBox" name="address">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="editable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_8" native="true">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_9" native="true">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_6">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="btnRemove">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Remove</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../core/rc.qrc">
|
||||||
|
<normaloff>:/icons/remove.svg</normaloff>:/icons/remove.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>24</width>
|
||||||
|
<height>24</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="btnOwner">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Owner</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../core/rc.qrc">
|
||||||
|
<normaloff>:/icons/ok.svg</normaloff>:/icons/ok.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>24</width>
|
||||||
|
<height>24</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_5">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QTableView" name="tablePeople"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
<zorder>widget_9</zorder>
|
||||||
|
<zorder>tableView</zorder>
|
||||||
|
<zorder>tablePeople</zorder>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWizardPage" name="servicePage">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_3">
|
||||||
|
<property name="title">
|
||||||
|
<string>Services</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QTableView" name="tableView_2"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_2" native="true">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="toolButton">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="toolButton_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QTableView" name="tableView_3"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_4">
|
||||||
|
<property name="title">
|
||||||
|
<string>Sale</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QCheckBox" name="checkBox_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Apply sale</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QComboBox" name="sale"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWizardPage" name="finishPage">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_5">
|
||||||
|
<property name="title">
|
||||||
|
<string>Summary</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_4" native="true">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_16">
|
||||||
|
<property name="text">
|
||||||
|
<string>From:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_17">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_18">
|
||||||
|
<property name="text">
|
||||||
|
<string>To:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_19">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_4">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_5" native="true">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_20">
|
||||||
|
<property name="text">
|
||||||
|
<string>Days:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_21">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_14">
|
||||||
|
<property name="text">
|
||||||
|
<string>People:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QTableView" name="tableView_4"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_15">
|
||||||
|
<property name="text">
|
||||||
|
<string>Services:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QTableView" name="tableView_5"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_6" native="true">
|
||||||
|
<layout class="QFormLayout" name="formLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_22">
|
||||||
|
<property name="text">
|
||||||
|
<string>Sale:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLabel" name="label_23">
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_24">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Total:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLabel" name="label_25">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>TextLabel</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_7" native="true">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Print</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../core/rc.qrc">
|
||||||
|
<normaloff>:/icons/print.svg</normaloff>:/icons/print.svg</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<tabstops>
|
||||||
|
<tabstop>start</tabstop>
|
||||||
|
<tabstop>end</tabstop>
|
||||||
|
<tabstop>address</tabstop>
|
||||||
|
<tabstop>groupNew</tabstop>
|
||||||
|
<tabstop>title</tabstop>
|
||||||
|
<tabstop>firstName</tabstop>
|
||||||
|
<tabstop>lastName</tabstop>
|
||||||
|
<tabstop>birthDate</tabstop>
|
||||||
|
<tabstop>idCardNumber</tabstop>
|
||||||
|
<tabstop>ztp</tabstop>
|
||||||
|
<tabstop>addressStreet</tabstop>
|
||||||
|
<tabstop>addressHouseNumber</tabstop>
|
||||||
|
<tabstop>addressZipCode</tabstop>
|
||||||
|
<tabstop>addressCity</tabstop>
|
||||||
|
<tabstop>country</tabstop>
|
||||||
|
<tabstop>btnAdd</tabstop>
|
||||||
|
<tabstop>btnRemove</tabstop>
|
||||||
|
<tabstop>btnOwner</tabstop>
|
||||||
|
<tabstop>tablePeople</tabstop>
|
||||||
|
<tabstop>toolButton</tabstop>
|
||||||
|
<tabstop>toolButton_2</tabstop>
|
||||||
|
<tabstop>tableView_3</tabstop>
|
||||||
|
<tabstop>tableView_4</tabstop>
|
||||||
|
<tabstop>tableView_5</tabstop>
|
||||||
|
<tabstop>pushButton_2</tabstop>
|
||||||
|
<tabstop>checkBox_2</tabstop>
|
||||||
|
<tabstop>sale</tabstop>
|
||||||
|
<tabstop>tableView_2</tabstop>
|
||||||
|
</tabstops>
|
||||||
|
<resources>
|
||||||
|
<include location="../core/rc.qrc"/>
|
||||||
|
<include location="camprc.qrc"/>
|
||||||
|
</resources>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
@@ -3,7 +3,8 @@
|
|||||||
|
|
||||||
AddressItem::AddressItem(QObject *parent) : QObject(parent)
|
AddressItem::AddressItem(QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
|
m_id = 0;
|
||||||
|
m_price = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int AddressItem::id() const
|
int AddressItem::id() const
|
||||||
@@ -65,3 +66,23 @@ void AddressItem::setCampData(const QWeakPointer<CampData> &campData)
|
|||||||
{
|
{
|
||||||
m_campData = campData;
|
m_campData = campData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PersonPricePtr AddressItem::personPrice() const
|
||||||
|
{
|
||||||
|
return m_personPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddressItem::setPersonPrice(const PersonPricePtr &personPrice)
|
||||||
|
{
|
||||||
|
m_personPrice = personPrice;
|
||||||
|
}
|
||||||
|
|
||||||
|
AddressbookDataPtr AddressItem::adbItem() const
|
||||||
|
{
|
||||||
|
return m_adbItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddressItem::setAdbItem(const AddressbookDataPtr &adbItem)
|
||||||
|
{
|
||||||
|
m_adbItem = adbItem;
|
||||||
|
}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
#include <QDecDouble.hh>
|
#include <QDecDouble.hh>
|
||||||
#include <odb/core.hxx>
|
#include <odb/core.hxx>
|
||||||
|
|
||||||
|
#include <addressbookdata.h>
|
||||||
|
|
||||||
class CampData;
|
class CampData;
|
||||||
|
|
||||||
#pragma db object
|
#pragma db object
|
||||||
@@ -40,6 +42,12 @@ public:
|
|||||||
QWeakPointer<CampData> campData() const;
|
QWeakPointer<CampData> campData() const;
|
||||||
void setCampData(const QWeakPointer<CampData> &campData);
|
void setCampData(const QWeakPointer<CampData> &campData);
|
||||||
|
|
||||||
|
PersonPricePtr personPrice() const;
|
||||||
|
void setPersonPrice(const PersonPricePtr &personPrice);
|
||||||
|
|
||||||
|
AddressbookDataPtr adbItem() const;
|
||||||
|
void setAdbItem(const AddressbookDataPtr &adbItem);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class odb::access;
|
friend class odb::access;
|
||||||
#pragma db id auto
|
#pragma db id auto
|
||||||
@@ -47,9 +55,11 @@ private:
|
|||||||
QString m_firstName;
|
QString m_firstName;
|
||||||
QString m_lastName;
|
QString m_lastName;
|
||||||
QString m_address;
|
QString m_address;
|
||||||
|
AddressbookDataPtr m_adbItem;
|
||||||
int m_price;
|
int m_price;
|
||||||
#pragma db not_null
|
#pragma db not_null
|
||||||
QWeakPointer<CampData> m_campData;
|
QWeakPointer<CampData> m_campData;
|
||||||
|
PersonPricePtr m_personPrice;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // ADDRESSITEM_H
|
#endif // ADDRESSITEM_H
|
||||||
|
|||||||
@@ -6,13 +6,19 @@
|
|||||||
class CampData;
|
class CampData;
|
||||||
class AddressItem;
|
class AddressItem;
|
||||||
class ServiceItem;
|
class ServiceItem;
|
||||||
|
class Sale;
|
||||||
|
class PersonPrice;
|
||||||
|
|
||||||
typedef QSharedPointer<CampData> CampDataPtr;
|
typedef QSharedPointer<CampData> CampDataPtr;
|
||||||
typedef QSharedPointer<ServiceItem> ServiceItemPtr;
|
typedef QSharedPointer<ServiceItem> ServiceItemPtr;
|
||||||
typedef QSharedPointer<AddressItem> AddressItemPtr;
|
typedef QSharedPointer<AddressItem> AddressItemPtr;
|
||||||
|
typedef QSharedPointer<Sale> SalePtr;
|
||||||
|
typedef QSharedPointer<PersonPrice> PersonPricePtr;
|
||||||
|
|
||||||
#include "campdata.h"
|
#include "campdata.h"
|
||||||
#include "addressitem.h"
|
#include "addressitem.h"
|
||||||
#include "serviceitem.h"
|
#include "serviceitem.h"
|
||||||
|
#include "sale.h"
|
||||||
|
#include "personprice.h"
|
||||||
|
|
||||||
#endif // CAMP_DATA_H
|
#endif // CAMP_DATA_H
|
||||||
|
|||||||
+34
-1
@@ -3,7 +3,10 @@
|
|||||||
|
|
||||||
CampData::CampData(QObject *parent) : QObject(parent)
|
CampData::CampData(QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
|
m_id = 0;
|
||||||
|
m_totalPrice = 0;
|
||||||
|
m_sale = 0;
|
||||||
|
m_ownerFirstame = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CampData::id() const
|
int CampData::id() const
|
||||||
@@ -115,3 +118,33 @@ void CampData::setSeason(const SeasonPtr &season)
|
|||||||
{
|
{
|
||||||
m_season = season;
|
m_season = season;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDecDouble CampData::sale() const
|
||||||
|
{
|
||||||
|
return TO_DEC(m_sale);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setSale(QDecDouble sale)
|
||||||
|
{
|
||||||
|
m_sale = FROM_DEC(sale);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CampData::fixedSale() const
|
||||||
|
{
|
||||||
|
return m_fixedSale;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setFixedSale(bool fixedSale)
|
||||||
|
{
|
||||||
|
m_fixedSale = fixedSale;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CampData::numSer() const
|
||||||
|
{
|
||||||
|
return m_numSer;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampData::setNumSer(const QString &numSer)
|
||||||
|
{
|
||||||
|
m_numSer = numSer;
|
||||||
|
}
|
||||||
|
|||||||
@@ -14,12 +14,15 @@
|
|||||||
class CampData : public QObject
|
class CampData : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(QString numSer READ numSer WRITE setNumSer)
|
||||||
Q_PROPERTY(QDate start READ start WRITE setStart)
|
Q_PROPERTY(QDate start READ start WRITE setStart)
|
||||||
Q_PROPERTY(QDate end READ end WRITE setEnd)
|
Q_PROPERTY(QDate end READ end WRITE setEnd)
|
||||||
Q_PROPERTY(QString ownerFirstame READ ownerFirstame WRITE setOwnerFirstame)
|
Q_PROPERTY(QString ownerFirstame READ ownerFirstame WRITE setOwnerFirstame)
|
||||||
Q_PROPERTY(QString ownerLastname READ ownerLastname WRITE setOwnerLastname)
|
Q_PROPERTY(QString ownerLastname READ ownerLastname WRITE setOwnerLastname)
|
||||||
Q_PROPERTY(QString ownerAddress READ ownerAddress WRITE setOwnerAddress)
|
Q_PROPERTY(QString ownerAddress READ ownerAddress WRITE setOwnerAddress)
|
||||||
Q_PROPERTY(QDecDouble totalPrice READ totalPrice WRITE setTotalPrice)
|
Q_PROPERTY(QDecDouble totalPrice READ totalPrice WRITE setTotalPrice)
|
||||||
|
Q_PROPERTY(QDecDouble sale READ sale WRITE setSale)
|
||||||
|
Q_PROPERTY(bool fixedSale READ fixedSale WRITE setFixedSale)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit CampData(QObject *parent = 0);
|
explicit CampData(QObject *parent = 0);
|
||||||
@@ -56,10 +59,20 @@ public:
|
|||||||
SeasonPtr season() const;
|
SeasonPtr season() const;
|
||||||
void setSeason(const SeasonPtr &season);
|
void setSeason(const SeasonPtr &season);
|
||||||
|
|
||||||
|
QDecDouble sale() const;
|
||||||
|
void setSale(QDecDouble sale);
|
||||||
|
|
||||||
|
bool fixedSale() const;
|
||||||
|
void setFixedSale(bool fixedSale);
|
||||||
|
|
||||||
|
QString numSer() const;
|
||||||
|
void setNumSer(const QString &numSer);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class odb::access;
|
friend class odb::access;
|
||||||
#pragma db id auto
|
#pragma db id auto
|
||||||
int m_id;
|
int m_id;
|
||||||
|
QString m_numSer;
|
||||||
QDate m_start;
|
QDate m_start;
|
||||||
QDate m_end;
|
QDate m_end;
|
||||||
QString m_ownerFirstame;
|
QString m_ownerFirstame;
|
||||||
@@ -70,6 +83,8 @@ private:
|
|||||||
#pragma db value_not_null inverse(m_campData)
|
#pragma db value_not_null inverse(m_campData)
|
||||||
QOdbList<AddressItemPtr> m_people;
|
QOdbList<AddressItemPtr> m_people;
|
||||||
int m_totalPrice;
|
int m_totalPrice;
|
||||||
|
int m_sale;
|
||||||
|
bool m_fixedSale;
|
||||||
SeasonPtr m_season;
|
SeasonPtr m_season;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
#include "personprice.h"
|
||||||
|
#include <define.h>
|
||||||
|
|
||||||
|
PersonPrice::PersonPrice(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
m_id = 0;
|
||||||
|
m_fromAge = 0;
|
||||||
|
m_toAge = 0;
|
||||||
|
m_price = 0;
|
||||||
|
m_active = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int PersonPrice::id() const
|
||||||
|
{
|
||||||
|
return m_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PersonPrice::setId(int id)
|
||||||
|
{
|
||||||
|
m_id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString PersonPrice::description() const
|
||||||
|
{
|
||||||
|
return m_description;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PersonPrice::setDescription(const QString &description)
|
||||||
|
{
|
||||||
|
m_description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
int PersonPrice::fromAge() const
|
||||||
|
{
|
||||||
|
return m_fromAge;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PersonPrice::setFromAge(int fromAge)
|
||||||
|
{
|
||||||
|
m_fromAge = fromAge;
|
||||||
|
}
|
||||||
|
|
||||||
|
int PersonPrice::toAge() const
|
||||||
|
{
|
||||||
|
return m_toAge;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PersonPrice::setToAge(int toAge)
|
||||||
|
{
|
||||||
|
m_toAge = toAge;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDecDouble PersonPrice::price() const
|
||||||
|
{
|
||||||
|
return TO_DEC(m_price);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PersonPrice::setPrice(QDecDouble price)
|
||||||
|
{
|
||||||
|
m_price = FROM_DEC(price);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool PersonPrice::active() const
|
||||||
|
{
|
||||||
|
return m_active;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PersonPrice::setActive(bool active)
|
||||||
|
{
|
||||||
|
m_active = active;
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
#ifndef PERSONPRICE_H
|
||||||
|
#define PERSONPRICE_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QDecDouble.hh>
|
||||||
|
#include <odb/core.hxx>
|
||||||
|
|
||||||
|
#pragma db object
|
||||||
|
class PersonPrice : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(QString description READ description WRITE setDescription)
|
||||||
|
Q_PROPERTY(int fromAge READ fromAge WRITE setFromAge)
|
||||||
|
Q_PROPERTY(int toAge READ toAge WRITE setToAge)
|
||||||
|
Q_PROPERTY(QDecDouble price READ price WRITE setPrice)
|
||||||
|
Q_PROPERTY(bool active READ active WRITE setActive)
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit PersonPrice(QObject *parent = 0);
|
||||||
|
|
||||||
|
int id() const;
|
||||||
|
void setId(int id);
|
||||||
|
|
||||||
|
QString description() const;
|
||||||
|
void setDescription(const QString &description);
|
||||||
|
|
||||||
|
int fromAge() const;
|
||||||
|
void setFromAge(int fromAge);
|
||||||
|
|
||||||
|
int toAge() const;
|
||||||
|
void setToAge(int toAge);
|
||||||
|
|
||||||
|
QDecDouble price() const;
|
||||||
|
void setPrice(QDecDouble price);
|
||||||
|
|
||||||
|
bool active() const;
|
||||||
|
void setActive(bool active);
|
||||||
|
|
||||||
|
private:
|
||||||
|
friend class odb::access;
|
||||||
|
#pragma db id auto
|
||||||
|
int m_id;
|
||||||
|
QString m_description;
|
||||||
|
int m_fromAge;
|
||||||
|
int m_toAge;
|
||||||
|
int m_price;
|
||||||
|
bool m_active;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // PERSONPRICE_H
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
#include "sale.h"
|
||||||
|
#include <define.h>
|
||||||
|
|
||||||
|
Sale::Sale(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
m_id = 0;
|
||||||
|
m_sale = 0;
|
||||||
|
m_fixed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Sale::id() const
|
||||||
|
{
|
||||||
|
return m_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sale::setId(int id)
|
||||||
|
{
|
||||||
|
m_id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDecDouble Sale::sale() const
|
||||||
|
{
|
||||||
|
return TO_DEC(m_sale);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sale::setSale(QDecDouble sale)
|
||||||
|
{
|
||||||
|
m_sale = FROM_DEC(sale);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Sale::fixed() const
|
||||||
|
{
|
||||||
|
return m_fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sale::setFixed(bool fixed)
|
||||||
|
{
|
||||||
|
m_fixed = fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString Sale::description() const
|
||||||
|
{
|
||||||
|
return m_description;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sale::setDescription(const QString &description)
|
||||||
|
{
|
||||||
|
m_description = description;
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
#ifndef SALE_H
|
||||||
|
#define SALE_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <odb/core.hxx>
|
||||||
|
#include <QDecDouble.hh>
|
||||||
|
|
||||||
|
#pragma db object
|
||||||
|
class Sale : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(QString description READ description WRITE setDescription)
|
||||||
|
Q_PROPERTY(QDecDouble sale READ sale WRITE setSale)
|
||||||
|
Q_PROPERTY(bool fixed READ fixed WRITE setFixed)
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit Sale(QObject *parent = 0);
|
||||||
|
|
||||||
|
int id() const;
|
||||||
|
void setId(int id);
|
||||||
|
|
||||||
|
QDecDouble sale() const;
|
||||||
|
void setSale(QDecDouble sale);
|
||||||
|
|
||||||
|
bool fixed() const;
|
||||||
|
void setFixed(bool fixed);
|
||||||
|
|
||||||
|
QString description() const;
|
||||||
|
void setDescription(const QString &description);
|
||||||
|
|
||||||
|
private:
|
||||||
|
friend class odb::access;
|
||||||
|
#pragma db id auto
|
||||||
|
int m_id;
|
||||||
|
QString m_description;
|
||||||
|
int m_sale;
|
||||||
|
bool m_fixed;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SALE_H
|
||||||
@@ -3,7 +3,10 @@
|
|||||||
|
|
||||||
ServiceItem::ServiceItem(QObject *parent) : QObject(parent)
|
ServiceItem::ServiceItem(QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
|
m_id = 0;
|
||||||
|
m_salePossible = false;
|
||||||
|
m_price = 0;
|
||||||
|
m_type = AccService::OTHER;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ServiceItem::id() const
|
int ServiceItem::id() const
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
#include "campsettings.h"
|
||||||
|
#include <define.h>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
CampSettings::CampSettings(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
m_accFee = 0;
|
||||||
|
m_rounding = Enums::R_MATH;
|
||||||
|
m_decimalPlaces = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDecDouble CampSettings::accFee() const
|
||||||
|
{
|
||||||
|
return TO_DEC(m_accFee);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampSettings::setAccFee(QDecDouble accFee)
|
||||||
|
{
|
||||||
|
m_accFee = FROM_DEC(accFee);
|
||||||
|
}
|
||||||
|
|
||||||
|
Enums::Rounding CampSettings::rounding() const
|
||||||
|
{
|
||||||
|
return m_rounding;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampSettings::setRounding(const Enums::Rounding &rounding)
|
||||||
|
{
|
||||||
|
m_rounding = rounding;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CampSettings::decimalPlaces() const
|
||||||
|
{
|
||||||
|
return m_decimalPlaces;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampSettings::setDecimalPlaces(int decimalPlaces)
|
||||||
|
{
|
||||||
|
m_decimalPlaces = decimalPlaces;
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
#ifndef CAMPSETTINGS_H
|
||||||
|
#define CAMPSETTINGS_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <enums.h>
|
||||||
|
#include <QDecDouble.hh>
|
||||||
|
#include <QSharedPointer>
|
||||||
|
|
||||||
|
class CampSettings : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(QDecDouble accFee READ accFee WRITE setAccFee)
|
||||||
|
Q_PROPERTY(Enums::Rounding rounding READ rounding WRITE setRounding)
|
||||||
|
Q_PROPERTY(int decimalPlaces READ decimalPlaces WRITE setDecimalPlaces)
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit CampSettings(QObject *parent = 0);
|
||||||
|
|
||||||
|
QDecDouble accFee() const;
|
||||||
|
void setAccFee(QDecDouble accFee);
|
||||||
|
|
||||||
|
Enums::Rounding rounding() const;
|
||||||
|
void setRounding(const Enums::Rounding &rounding);
|
||||||
|
|
||||||
|
int decimalPlaces() const;
|
||||||
|
void setDecimalPlaces(int decimalPlaces);
|
||||||
|
|
||||||
|
private:
|
||||||
|
int m_accFee;
|
||||||
|
Enums::Rounding m_rounding;
|
||||||
|
int m_decimalPlaces;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef QSharedPointer<CampSettings> CampSettingsPtr;
|
||||||
|
|
||||||
|
#endif // CAMPSETTINGS_H
|
||||||
@@ -0,0 +1,172 @@
|
|||||||
|
#include "camp-odb.hxx"
|
||||||
|
#include "campsettingsform.h"
|
||||||
|
#include "ui_campsettingsform.h"
|
||||||
|
|
||||||
|
#include <settingsservice.h>
|
||||||
|
#include <QScroller>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
|
CampSettingsForm::CampSettingsForm(QWidget *parent) :
|
||||||
|
FormBinder<CampSettings>(parent),
|
||||||
|
ui(new Ui::CampSettingsForm)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
m_personPriceModel = new AutoTableModel<PersonPrice>();
|
||||||
|
m_personPriceModel->setEditableCols(QList<int>() << 0 << 1 << 2 << 3);
|
||||||
|
m_saleModel = new AutoTableModel<Sale>();
|
||||||
|
m_saleModel->setEditableCols(QList<int>() << 0 << 1 << 2);
|
||||||
|
|
||||||
|
ui->tablePersonPrices->setModel(m_personPriceModel);
|
||||||
|
ui->tableSales->setModel(m_saleModel);
|
||||||
|
|
||||||
|
ui->tablePersonPrices->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
|
||||||
|
ui->tableSales->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
|
||||||
|
|
||||||
|
QScroller::grabGesture(ui->tablePersonPrices, QScroller::LeftMouseButtonGesture);
|
||||||
|
QScroller::grabGesture(ui->tableSales, QScroller::LeftMouseButtonGesture);
|
||||||
|
|
||||||
|
connect(ui->tablePersonPrices->selectionModel(), &QItemSelectionModel::currentRowChanged, [this](){
|
||||||
|
ui->btnPriceDisable->setEnabled(ui->tablePersonPrices->currentIndex().isValid());
|
||||||
|
ui->btnPriceRemove->setEnabled(ui->tablePersonPrices->currentIndex().isValid());
|
||||||
|
ui->btnPriceDisable->setChecked(m_personPriceModel->itemFromIndex(ui->tablePersonPrices->currentIndex())->active());
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(ui->tableSales->selectionModel(), &QItemSelectionModel::currentRowChanged, [this](){
|
||||||
|
ui->btnSaleRemove->setEnabled(ui->tableSales->currentIndex().isValid());
|
||||||
|
});
|
||||||
|
|
||||||
|
registerBinding(ui->accFee);
|
||||||
|
registerBinding(ui->decimalPlaces);
|
||||||
|
QList<ComboData> roundings ;
|
||||||
|
roundings << ComboData(Enums::R_NONE, tr("None"))
|
||||||
|
<< ComboData(Enums::R_UP, tr("Up"))
|
||||||
|
<< ComboData(Enums::R_DOWN, tr("Down"))
|
||||||
|
<< ComboData(Enums::R_MATH, tr("Mathematic"));
|
||||||
|
registerBinding(ui->rounding, roundings);
|
||||||
|
}
|
||||||
|
|
||||||
|
CampSettingsForm::~CampSettingsForm()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CampSettingsForm::saveRecord()
|
||||||
|
{
|
||||||
|
bindToData();
|
||||||
|
SettingsService srv("CAMP");
|
||||||
|
srv.saveSettings(entity());
|
||||||
|
|
||||||
|
Service<PersonPrice> personSrv;
|
||||||
|
Service<Sale> saleSrv;
|
||||||
|
bool ret = true;
|
||||||
|
|
||||||
|
connect(&personSrv, &IService::dbErrorDelete, [&ret, this](QString){
|
||||||
|
QMessageBox::critical(this, tr("Cannot delete"), tr("Price already used"));
|
||||||
|
ret = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
foreach (PersonPricePtr p, personSrv.all()) {
|
||||||
|
bool found = false;
|
||||||
|
foreach (PersonPricePtr price, m_personPriceModel->list()) {
|
||||||
|
if (price->id() == p->id())
|
||||||
|
{
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
personSrv.erase(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (PersonPricePtr p, m_personPriceModel->list()) {
|
||||||
|
bool found = false;
|
||||||
|
foreach (PersonPricePtr price, personSrv.all()) {
|
||||||
|
if (price->id() == p->id())
|
||||||
|
{
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
personSrv.save(p);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
personSrv.update(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (SalePtr s, saleSrv.all()) {
|
||||||
|
saleSrv.erase(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (SalePtr s, m_saleModel->list()) {
|
||||||
|
saleSrv.save(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampSettingsForm::loadEntity()
|
||||||
|
{
|
||||||
|
SettingsService srv("CAMP");
|
||||||
|
CampSettingsPtr settings = srv.loadSettings<CampSettings>();
|
||||||
|
setEntity(settings);
|
||||||
|
|
||||||
|
Service<PersonPrice> personSrv;
|
||||||
|
Service<Sale> saleSrv;
|
||||||
|
|
||||||
|
m_personPriceModel->setData(personSrv.all());
|
||||||
|
m_saleModel->setData(saleSrv.all());
|
||||||
|
|
||||||
|
ui->btnPriceDisable->setEnabled(false);
|
||||||
|
ui->btnPriceRemove->setEnabled(false);
|
||||||
|
ui->btnSaleRemove->setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampSettingsForm::on_btnPriceAdd_clicked()
|
||||||
|
{
|
||||||
|
PersonPricePtr price(new PersonPrice());
|
||||||
|
m_personPriceModel->addRow(price);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampSettingsForm::on_btnSaleAdd_clicked()
|
||||||
|
{
|
||||||
|
SalePtr sale(new Sale());
|
||||||
|
m_saleModel->addRow(sale);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampSettingsForm::on_btnPriceRemove_clicked()
|
||||||
|
{
|
||||||
|
m_personPriceModel->removeRowAt(ui->tablePersonPrices->currentIndex());
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampSettingsForm::on_btnPriceDisable_clicked()
|
||||||
|
{
|
||||||
|
PersonPricePtr price = m_personPriceModel->itemFromIndex(ui->tablePersonPrices->currentIndex());
|
||||||
|
price->setActive(!price->active());
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampSettingsForm::on_btnPriceFilter_clicked()
|
||||||
|
{
|
||||||
|
Service<PersonPrice> srv;
|
||||||
|
if (ui->btnPriceFilter->isChecked())
|
||||||
|
{
|
||||||
|
m_personPriceModel->setData(srv.all("active = 1"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_personPriceModel->setData(srv.all());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CampSettingsForm::on_btnSaleRemove_clicked()
|
||||||
|
{
|
||||||
|
m_saleModel->removeRowAt(ui->tableSales->currentIndex());
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
#ifndef CAMPSETTINGSFORM_H
|
||||||
|
#define CAMPSETTINGSFORM_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QList>
|
||||||
|
|
||||||
|
#include "campsettings.h"
|
||||||
|
#include "data/camp-data.h"
|
||||||
|
#include <formbinder.h>
|
||||||
|
#include <autotablemodel.h>
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class CampSettingsForm;
|
||||||
|
}
|
||||||
|
|
||||||
|
class CampSettingsForm : public FormBinder<CampSettings>
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit CampSettingsForm(QWidget *parent = 0);
|
||||||
|
~CampSettingsForm();
|
||||||
|
|
||||||
|
// IForm interface
|
||||||
|
public slots:
|
||||||
|
bool saveRecord();
|
||||||
|
|
||||||
|
// IForm interface
|
||||||
|
public:
|
||||||
|
void loadEntity();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_btnPriceAdd_clicked();
|
||||||
|
|
||||||
|
void on_btnSaleAdd_clicked();
|
||||||
|
|
||||||
|
void on_btnPriceRemove_clicked();
|
||||||
|
|
||||||
|
void on_btnPriceDisable_clicked();
|
||||||
|
|
||||||
|
void on_btnPriceFilter_clicked();
|
||||||
|
|
||||||
|
void on_btnSaleRemove_clicked();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::CampSettingsForm *ui;
|
||||||
|
AutoTableModel<PersonPrice> *m_personPriceModel;
|
||||||
|
AutoTableModel<Sale> *m_saleModel;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CAMPSETTINGSFORM_H
|
||||||
@@ -0,0 +1,282 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>CampSettingsForm</class>
|
||||||
|
<widget class="QWidget" name="CampSettingsForm">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>696</width>
|
||||||
|
<height>489</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>Person prices</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget" native="true">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="btnPriceAdd">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Add</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../core/rc.qrc">
|
||||||
|
<normaloff>:/icons/new.svg</normaloff>:/icons/new.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="btnPriceRemove">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Remove</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../core/rc.qrc">
|
||||||
|
<normaloff>:/icons/remove.svg</normaloff>:/icons/remove.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="btnPriceDisable">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Deactivate</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../core/rc.qrc">
|
||||||
|
<normaloff>:/icons/ok.svg</normaloff>:/icons/ok.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="btnPriceFilter">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Filter active</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../core/rc.qrc">
|
||||||
|
<normaloff>:/icons/filter.svg</normaloff>:/icons/filter.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QTableView" name="tablePersonPrices"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
|
<property name="title">
|
||||||
|
<string>Sales</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget_2" native="true">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="btnSaleAdd">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Add</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../core/rc.qrc">
|
||||||
|
<normaloff>:/icons/new.svg</normaloff>:/icons/new.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="btnSaleRemove">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Remove</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../../core/rc.qrc">
|
||||||
|
<normaloff>:/icons/remove.svg</normaloff>:/icons/remove.svg</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QTableView" name="tableSales"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_3">
|
||||||
|
<property name="title">
|
||||||
|
<string>Other settings</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QFormLayout" name="formLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Accommodation fee</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Rounding</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QComboBox" name="rounding"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="decimalPlaceslab">
|
||||||
|
<property name="text">
|
||||||
|
<string>Decimal places</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QDoubleSpinBox" name="decimalPlaces">
|
||||||
|
<property name="buttonSymbols">
|
||||||
|
<enum>QAbstractSpinBox::NoButtons</enum>
|
||||||
|
</property>
|
||||||
|
<property name="decimals">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>100000.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QDoubleSpinBox" name="accFee">
|
||||||
|
<property name="buttonSymbols">
|
||||||
|
<enum>QAbstractSpinBox::NoButtons</enum>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>99999.990000000005239</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources>
|
||||||
|
<include location="../../core/rc.qrc"/>
|
||||||
|
</resources>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
#include <QMetaProperty>
|
#include <QMetaProperty>
|
||||||
#include <QModelIndex>
|
#include <QModelIndex>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QDecDouble.hh>
|
||||||
|
|
||||||
#include "../qdecimal/src/QDecDouble.hh"
|
#include "../qdecimal/src/QDecDouble.hh"
|
||||||
|
|
||||||
@@ -264,7 +265,14 @@ public:
|
|||||||
QSharedPointer<T> entity = m_list.at(index.row());
|
QSharedPointer<T> entity = m_list.at(index.row());
|
||||||
QObject *rawEntity = (QObject*)entity.data();
|
QObject *rawEntity = (QObject*)entity.data();
|
||||||
|
|
||||||
rawEntity->setProperty(rawEntity->metaObject()->property(index.column() + 1).name(), value);
|
QVariant val = value;
|
||||||
|
if (rawEntity->property(rawEntity->metaObject()->property(index.column() + 1).name()).canConvert<QDecDouble>())
|
||||||
|
{
|
||||||
|
QDecDouble dec(val.toDouble());
|
||||||
|
val = QVariant::fromValue(dec);
|
||||||
|
}
|
||||||
|
|
||||||
|
rawEntity->setProperty(rawEntity->metaObject()->property(index.column() + 1).name(), val);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (role == Qt::CheckStateRole)
|
if (role == Qt::CheckStateRole)
|
||||||
|
|||||||
+9
-3
@@ -63,7 +63,9 @@ SOURCES += \
|
|||||||
reporting/report.cpp \
|
reporting/report.cpp \
|
||||||
reporting/reportviewer.cpp \
|
reporting/reportviewer.cpp \
|
||||||
reporting/reportdialog.cpp \
|
reporting/reportdialog.cpp \
|
||||||
csvimporter.cpp
|
csvimporter.cpp \
|
||||||
|
importdialog.cpp \
|
||||||
|
importprogress.cpp
|
||||||
|
|
||||||
HEADERS += core.h\
|
HEADERS += core.h\
|
||||||
core_global.h \
|
core_global.h \
|
||||||
@@ -126,7 +128,9 @@ HEADERS += core.h\
|
|||||||
reporting/reportdialog.h \
|
reporting/reportdialog.h \
|
||||||
iimporter.h \
|
iimporter.h \
|
||||||
csvimporter.h \
|
csvimporter.h \
|
||||||
iimportprogress.h
|
iimportprogress.h \
|
||||||
|
importdialog.h \
|
||||||
|
importprogress.h
|
||||||
|
|
||||||
unix {
|
unix {
|
||||||
target.path = /usr/lib
|
target.path = /usr/lib
|
||||||
@@ -161,7 +165,9 @@ FORMS += \
|
|||||||
settings/globalsettingsform.ui \
|
settings/globalsettingsform.ui \
|
||||||
settings/seasonnamedialog.ui \
|
settings/seasonnamedialog.ui \
|
||||||
reporting/reportviewer.ui \
|
reporting/reportviewer.ui \
|
||||||
reporting/reportdialog.ui
|
reporting/reportdialog.ui \
|
||||||
|
importdialog.ui \
|
||||||
|
importprogress.ui
|
||||||
|
|
||||||
OTHER_FILES += \
|
OTHER_FILES += \
|
||||||
users/metaData.json \
|
users/metaData.json \
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ class CORESHARED_EXPORT Enums : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
Q_ENUMS(VatType)
|
Q_ENUMS(VatType)
|
||||||
|
Q_ENUMS(Rounding)
|
||||||
public:
|
public:
|
||||||
|
|
||||||
enum VatType
|
enum VatType
|
||||||
@@ -19,6 +20,14 @@ public:
|
|||||||
SECOND_LOWER
|
SECOND_LOWER
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum Rounding
|
||||||
|
{
|
||||||
|
R_NONE,
|
||||||
|
R_UP,
|
||||||
|
R_DOWN,
|
||||||
|
R_MATH
|
||||||
|
};
|
||||||
|
|
||||||
Enums()
|
Enums()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
+45
-2
@@ -5,6 +5,8 @@
|
|||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
#include <QLayout>
|
#include <QLayout>
|
||||||
|
#include <QToolButton>
|
||||||
|
#include <QDesktopWidget>
|
||||||
|
|
||||||
#include "autoform.h"
|
#include "autoform.h"
|
||||||
#include "autotablemodel.h"
|
#include "autotablemodel.h"
|
||||||
@@ -12,6 +14,9 @@
|
|||||||
#include "iplugin.h"
|
#include "iplugin.h"
|
||||||
#include "igridform.h"
|
#include "igridform.h"
|
||||||
#include "iservice.h"
|
#include "iservice.h"
|
||||||
|
#include "importdialog.h"
|
||||||
|
#include "csvimporter.h"
|
||||||
|
#include "importprogress.h"
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
class GridForm : public IGridForm
|
class GridForm : public IGridForm
|
||||||
@@ -164,9 +169,11 @@ private:
|
|||||||
bool m_serviceConnected;
|
bool m_serviceConnected;
|
||||||
bool m_permissionDenied;
|
bool m_permissionDenied;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
|
||||||
// IGridForm interface
|
// IGridForm interface
|
||||||
protected:
|
protected:
|
||||||
void handleNewRecord() override
|
virtual void handleNewRecord() override
|
||||||
{
|
{
|
||||||
if (m_form == NULL)
|
if (m_form == NULL)
|
||||||
{
|
{
|
||||||
@@ -179,7 +186,7 @@ protected:
|
|||||||
m_formHandler->showForm(m_form);
|
m_formHandler->showForm(m_form);
|
||||||
}
|
}
|
||||||
|
|
||||||
void handleEditRecord() override
|
virtual void handleEditRecord() override
|
||||||
{
|
{
|
||||||
if (m_form == NULL || m_tableModel == NULL || tableView()->currentIndex().row() < 0)
|
if (m_form == NULL || m_tableModel == NULL || tableView()->currentIndex().row() < 0)
|
||||||
{
|
{
|
||||||
@@ -216,6 +223,42 @@ protected:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void showImportButton()
|
||||||
|
{
|
||||||
|
QHBoxLayout *tbLayout = qobject_cast<QHBoxLayout*>(this->toolbar()->layout());
|
||||||
|
|
||||||
|
if (tbLayout != NULL)
|
||||||
|
{
|
||||||
|
QToolButton *btnImport = new QToolButton(this->toolbar());
|
||||||
|
btnImport->setIcon(QIcon(":/icons/import.svg"));
|
||||||
|
btnImport->setAutoRaise(true);
|
||||||
|
btnImport->setIconSize(QSize(24, 24));
|
||||||
|
btnImport->setToolTip(tr("Import"));
|
||||||
|
tbLayout->insertWidget(tbLayout->count() - 1, btnImport);
|
||||||
|
|
||||||
|
connect(btnImport, &QToolButton::clicked, [this](){
|
||||||
|
ImportDialog *dlg = new ImportDialog(this);
|
||||||
|
dlg->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
dlg->show();
|
||||||
|
|
||||||
|
connect(dlg, &QDialog::accepted, [this, dlg](){
|
||||||
|
T dataObj;
|
||||||
|
CsvImporter importer(dataObj.metaObject());
|
||||||
|
|
||||||
|
importer.setImportFile(dlg->fileName());
|
||||||
|
importer.setSeparator(dlg->separator());
|
||||||
|
|
||||||
|
ImportProgress *progress = new ImportProgress();
|
||||||
|
progress->move(QApplication::desktop()->screen()->rect().center() - progress->rect().center());
|
||||||
|
progress->setWindowModality(Qt::ApplicationModal);
|
||||||
|
progress->show();
|
||||||
|
|
||||||
|
service()->importData(&importer, progress);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GRIDFORM_H
|
#endif // GRIDFORM_H
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 820 B After Width: | Height: | Size: 820 B |
@@ -0,0 +1,36 @@
|
|||||||
|
#include "importdialog.h"
|
||||||
|
#include "ui_importdialog.h"
|
||||||
|
#include "importprogress.h"
|
||||||
|
#include "csvimporter.h"
|
||||||
|
|
||||||
|
#include <QFileDialog>
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QDesktopWidget>
|
||||||
|
|
||||||
|
ImportDialog::ImportDialog(QWidget *parent) :
|
||||||
|
QDialog(parent),
|
||||||
|
ui(new Ui::ImportDialog)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImportDialog::~ImportDialog()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString ImportDialog::fileName()
|
||||||
|
{
|
||||||
|
return ui->editFile->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString ImportDialog::separator()
|
||||||
|
{
|
||||||
|
return ui->editSeparator->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ImportDialog::on_btnFile_clicked()
|
||||||
|
{
|
||||||
|
QString file = QFileDialog::getOpenFileName(this, tr("Import file"), "", tr("All Files (*.*)"));
|
||||||
|
ui->editFile->setText(file);
|
||||||
|
}
|
||||||
@@ -2,6 +2,8 @@
|
|||||||
#define IMPORTDIALOG_H
|
#define IMPORTDIALOG_H
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
#include <QMetaObject>
|
||||||
|
#include "iservice.h"
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class ImportDialog;
|
class ImportDialog;
|
||||||
@@ -15,9 +17,10 @@ public:
|
|||||||
explicit ImportDialog(QWidget *parent = 0);
|
explicit ImportDialog(QWidget *parent = 0);
|
||||||
~ImportDialog();
|
~ImportDialog();
|
||||||
|
|
||||||
private slots:
|
QString fileName();
|
||||||
void on_buttonBox_accepted();
|
QString separator();
|
||||||
|
|
||||||
|
private slots:
|
||||||
void on_btnFile_clicked();
|
void on_btnFile_clicked();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -6,33 +6,44 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>518</width>
|
<width>454</width>
|
||||||
<height>152</height>
|
<height>115</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Dialog</string>
|
<string>Import data</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QFormLayout" name="formLayout">
|
<layout class="QFormLayout" name="formLayout">
|
||||||
<property name="horizontalSpacing">
|
<item row="0" column="0">
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="verticalSpacing">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>CSV file</string>
|
<string>File</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Separator</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="editSeparator"/>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0" colspan="2">
|
||||||
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="standardButtons">
|
||||||
|
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
<widget class="QWidget" name="widget" native="true">
|
<widget class="QWidget" name="widget" native="true">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<property name="spacing">
|
|
||||||
<number>3</number>
|
|
||||||
</property>
|
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
@@ -58,30 +69,6 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0" colspan="2">
|
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="standardButtons">
|
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="label_2">
|
|
||||||
<property name="text">
|
|
||||||
<string>Field separator</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLineEdit" name="editSparator">
|
|
||||||
<property name="text">
|
|
||||||
<string>;</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
#include "importprogress.h"
|
||||||
|
#include "ui_importprogress.h"
|
||||||
|
|
||||||
|
ImportProgress::ImportProgress(QWidget *parent) :
|
||||||
|
QWidget(parent),
|
||||||
|
ui(new Ui::ImportProgress)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
ui->progressBar->setRange(0, 100);
|
||||||
|
ui->progressBar->setValue(0);
|
||||||
|
|
||||||
|
m_terminate = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ImportProgress::~ImportProgress()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ImportProgress::on_btnCancel_clicked()
|
||||||
|
{
|
||||||
|
m_terminate = true;
|
||||||
|
this->close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ImportProgress::updateProgress(int currentPos)
|
||||||
|
{
|
||||||
|
ui->progressBar->setValue(currentPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ImportProgress::terminate()
|
||||||
|
{
|
||||||
|
return m_terminate;
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
#ifndef IMPORTPROGRESS_H
|
||||||
|
#define IMPORTPROGRESS_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include "iimportprogress.h"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class ImportProgress;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ImportProgress : public QWidget, public IImportProgress
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit ImportProgress(QWidget *parent = 0);
|
||||||
|
~ImportProgress();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_btnCancel_clicked();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::ImportProgress *ui;
|
||||||
|
bool m_terminate;
|
||||||
|
|
||||||
|
// IImportProgress interface
|
||||||
|
public:
|
||||||
|
void updateProgress(int currentPos);
|
||||||
|
bool terminate();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // IMPORTPROGRESS_H
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>ImportProgressForm</class>
|
<class>ImportProgress</class>
|
||||||
<widget class="QWidget" name="ImportProgressForm">
|
<widget class="QWidget" name="ImportProgress">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>369</width>
|
<width>400</width>
|
||||||
<height>134</height>
|
<height>165</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Form</string>
|
<string>Import progress</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
<item>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="btnCancel">
|
<widget class="QPushButton" name="btnCancel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Cancel</string>
|
<string>Cenacel</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -24,5 +24,6 @@
|
|||||||
<file>icons/zoomIn.svg</file>
|
<file>icons/zoomIn.svg</file>
|
||||||
<file>icons/zoomOut.svg</file>
|
<file>icons/zoomOut.svg</file>
|
||||||
<file>icons/report.svg</file>
|
<file>icons/report.svg</file>
|
||||||
|
<file>icons/import.svg</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|||||||
+13
-1
@@ -8,6 +8,7 @@
|
|||||||
#include <QMetaProperty>
|
#include <QMetaProperty>
|
||||||
|
|
||||||
#include <QDecDouble.hh>
|
#include <QDecDouble.hh>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
#include "data/system.h"
|
#include "data/system.h"
|
||||||
#include "service.h"
|
#include "service.h"
|
||||||
@@ -50,8 +51,19 @@ public:
|
|||||||
{
|
{
|
||||||
QDecDouble dec(TO_DEC(varVal.toInt()));
|
QDecDouble dec(TO_DEC(varVal.toInt()));
|
||||||
varVal = QVariant::fromValue(dec);
|
varVal = QVariant::fromValue(dec);
|
||||||
|
objSettings->setProperty(propName, varVal);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// all other numbers are int
|
||||||
|
if (varVal.toInt() > 0)
|
||||||
|
{
|
||||||
|
objSettings->setProperty(propName, varVal.toInt());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
objSettings->setProperty(propName, varVal);
|
||||||
}
|
}
|
||||||
objSettings->setProperty(propName, varVal);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return settingsObj;
|
return settingsObj;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
CountryRegisterGrid::CountryRegisterGrid(QWidget *parent) : GridForm<CountryData>(parent)
|
CountryRegisterGrid::CountryRegisterGrid(QWidget *parent) : GridForm<CountryData>(parent)
|
||||||
{
|
{
|
||||||
setTableModel(new AutoTableModel<CountryData>());
|
setTableModel(new AutoTableModel<CountryData>());
|
||||||
|
showImportButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CountryRegisterGrid::canAddRecord()
|
bool CountryRegisterGrid::canAddRecord()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "countrydata.h"
|
#include "countrydata.h"
|
||||||
|
|
||||||
CountryData::CountryData(QObject *parent) : QObject(parent)
|
CountryData::CountryData(QObject *parent) : ComboItem(parent)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -74,3 +74,20 @@ void CountryData::setEnglishName(const QString &englishName)
|
|||||||
{
|
{
|
||||||
m_englishName = englishName;
|
m_englishName = englishName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CountryData::eq(ComboItem *other)
|
||||||
|
{
|
||||||
|
CountryData *obj = qobject_cast<CountryData*>(other);
|
||||||
|
|
||||||
|
if (obj == NULL)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this == obj || (m_id == obj->m_id && m_code2 == obj->m_code2 && m_code3 == obj->m_code3);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CountryData::toString()
|
||||||
|
{
|
||||||
|
return m_code3 + " - " + m_czechFullName;
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,9 +4,11 @@
|
|||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <odb/core.hxx>
|
#include <odb/core.hxx>
|
||||||
|
#include <QSharedPointer>
|
||||||
|
#include <data/comboitem.h>
|
||||||
|
|
||||||
#pragma db object
|
#pragma db object
|
||||||
class CountryData : public QObject
|
class CountryData : public ComboItem
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(QString code2 READ code2 WRITE setCode2)
|
Q_PROPERTY(QString code2 READ code2 WRITE setCode2)
|
||||||
@@ -50,6 +52,13 @@ private:
|
|||||||
QString m_englishFullName;
|
QString m_englishFullName;
|
||||||
QString m_englishName;
|
QString m_englishName;
|
||||||
|
|
||||||
|
|
||||||
|
// ComboItem interface
|
||||||
|
public:
|
||||||
|
bool eq(ComboItem *other);
|
||||||
|
QString toString();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef QSharedPointer<CountryData> CountryDataPtr;
|
||||||
|
|
||||||
#endif // COUNTRYDATA_H
|
#endif // COUNTRYDATA_H
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
#include "importdialog.h"
|
|
||||||
#include "ui_importdialog.h"
|
|
||||||
|
|
||||||
#include <service.h>
|
|
||||||
#include <csvimporter.h>
|
|
||||||
#include <QDesktopWidget>
|
|
||||||
#include <QFileDialog>
|
|
||||||
|
|
||||||
#include "data/postdata.h"
|
|
||||||
#include "postregister-odb.hxx"
|
|
||||||
#include "importprogressform.h"
|
|
||||||
|
|
||||||
ImportDialog::ImportDialog(QWidget *parent) :
|
|
||||||
QDialog(parent),
|
|
||||||
ui(new Ui::ImportDialog)
|
|
||||||
{
|
|
||||||
ui->setupUi(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
ImportDialog::~ImportDialog()
|
|
||||||
{
|
|
||||||
delete ui;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImportDialog::on_buttonBox_accepted()
|
|
||||||
{
|
|
||||||
QString fileName = ui->editFile->text();
|
|
||||||
Service<PostData> service;
|
|
||||||
PostData pd;
|
|
||||||
CsvImporter importer(pd.metaObject());
|
|
||||||
|
|
||||||
importer.setImportFile(fileName);
|
|
||||||
importer.setSeparator(ui->editSparator->text());
|
|
||||||
|
|
||||||
ImportProgressForm *progress = new ImportProgressForm();
|
|
||||||
progress->move(QApplication::desktop()->screen()->rect().center() - progress->rect().center());
|
|
||||||
progress->setWindowModality(Qt::ApplicationModal);
|
|
||||||
progress->show();
|
|
||||||
service.importData(&importer, progress);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImportDialog::on_btnFile_clicked()
|
|
||||||
{
|
|
||||||
QString file = QFileDialog::getOpenFileName(this, tr("Import file"), "", tr("All Files (*.*)"));
|
|
||||||
ui->editFile->setText(file);
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
#include "importprogressform.h"
|
|
||||||
#include "ui_importprogressform.h"
|
|
||||||
|
|
||||||
ImportProgressForm::ImportProgressForm(QWidget *parent) :
|
|
||||||
QWidget(parent),
|
|
||||||
ui(new Ui::ImportProgressForm)
|
|
||||||
{
|
|
||||||
ui->setupUi(this);
|
|
||||||
ui->progressBar->setRange(0, 100);
|
|
||||||
ui->progressBar->setValue(0);
|
|
||||||
|
|
||||||
m_terminate = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
ImportProgressForm::~ImportProgressForm()
|
|
||||||
{
|
|
||||||
delete ui;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImportProgressForm::on_btnCancel_clicked()
|
|
||||||
{
|
|
||||||
m_terminate = true;
|
|
||||||
this->close();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImportProgressForm::updateProgress(int currentPos)
|
|
||||||
{
|
|
||||||
ui->progressBar->setValue(currentPos);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ImportProgressForm::terminate()
|
|
||||||
{
|
|
||||||
return m_terminate;
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
#ifndef IMPORTPROGRESSFORM_H
|
|
||||||
#define IMPORTPROGRESSFORM_H
|
|
||||||
|
|
||||||
#include <QWidget>
|
|
||||||
#include <iimportprogress.h>
|
|
||||||
|
|
||||||
namespace Ui {
|
|
||||||
class ImportProgressForm;
|
|
||||||
}
|
|
||||||
|
|
||||||
class ImportProgressForm : public QWidget, public IImportProgress
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit ImportProgressForm(QWidget *parent = 0);
|
|
||||||
~ImportProgressForm();
|
|
||||||
|
|
||||||
private slots:
|
|
||||||
void on_btnCancel_clicked();
|
|
||||||
|
|
||||||
private:
|
|
||||||
Ui::ImportProgressForm *ui;
|
|
||||||
bool m_terminate;
|
|
||||||
|
|
||||||
// IImportProgress interface
|
|
||||||
public:
|
|
||||||
void updateProgress(int currentPos);
|
|
||||||
bool terminate();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // IMPORTPROGRESSFORM_H
|
|
||||||
@@ -24,16 +24,12 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
|||||||
|
|
||||||
SOURCES += postregister.cpp \
|
SOURCES += postregister.cpp \
|
||||||
data/postdata.cpp \
|
data/postdata.cpp \
|
||||||
postregistergrid.cpp \
|
postregistergrid.cpp
|
||||||
importdialog.cpp \
|
|
||||||
importprogressform.cpp
|
|
||||||
|
|
||||||
HEADERS += postregister.h\
|
HEADERS += postregister.h\
|
||||||
postregister_global.h \
|
postregister_global.h \
|
||||||
data/postdata.h \
|
data/postdata.h \
|
||||||
postregistergrid.h \
|
postregistergrid.h
|
||||||
importdialog.h \
|
|
||||||
importprogressform.h
|
|
||||||
|
|
||||||
include(../config_plugin.pri)
|
include(../config_plugin.pri)
|
||||||
|
|
||||||
@@ -44,9 +40,6 @@ include(../odb.pri)
|
|||||||
DISTFILES += \
|
DISTFILES += \
|
||||||
postregister.json
|
postregister.json
|
||||||
|
|
||||||
FORMS += \
|
FORMS +=
|
||||||
importdialog.ui \
|
|
||||||
importprogressform.ui
|
|
||||||
|
|
||||||
RESOURCES += \
|
RESOURCES +=
|
||||||
postregisterrc.qrc
|
|
||||||
|
|||||||
@@ -3,30 +3,12 @@
|
|||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
|
|
||||||
#include "postregister-odb.hxx"
|
#include "postregister-odb.hxx"
|
||||||
#include "importdialog.h"
|
|
||||||
|
|
||||||
PostRegisterGrid::PostRegisterGrid(QWidget *parent)
|
PostRegisterGrid::PostRegisterGrid(QWidget *parent)
|
||||||
:GridForm<PostData>(parent)
|
:GridForm<PostData>(parent)
|
||||||
{
|
{
|
||||||
setTableModel(new AutoTableModel<PostData>());
|
setTableModel(new AutoTableModel<PostData>());
|
||||||
QHBoxLayout *tbLayout = qobject_cast<QHBoxLayout*>(this->toolbar()->layout());
|
showImportButton();
|
||||||
|
|
||||||
if (tbLayout != NULL)
|
|
||||||
{
|
|
||||||
QToolButton *btnImport = new QToolButton(this->toolbar());
|
|
||||||
btnImport->setIcon(QIcon(":/icons/import.svg"));
|
|
||||||
btnImport->setAutoRaise(true);
|
|
||||||
btnImport->setIconSize(QSize(24, 24));
|
|
||||||
btnImport->setToolTip(tr("Import"));
|
|
||||||
tbLayout->insertWidget(tbLayout->count() - 1, btnImport);
|
|
||||||
|
|
||||||
connect(btnImport, &QToolButton::clicked, [this](){
|
|
||||||
ImportDialog *dlg = new ImportDialog(this);
|
|
||||||
dlg->setAttribute(Qt::WA_DeleteOnClose);
|
|
||||||
|
|
||||||
dlg->show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PostRegisterGrid::canAddRecord()
|
bool PostRegisterGrid::canAddRecord()
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
<RCC>
|
|
||||||
<qresource prefix="/">
|
|
||||||
<file>icons/import.svg</file>
|
|
||||||
</qresource>
|
|
||||||
</RCC>
|
|
||||||
@@ -28,7 +28,10 @@ QDecDouble& QDecDouble::fromDouble(double d)
|
|||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
_snprintf(str, MaxStrSize, "%.*g", QDecNumDigits, d);
|
_snprintf(str, MaxStrSize, "%.*g", QDecNumDigits, d);
|
||||||
#else
|
#else
|
||||||
|
char *curLoc = setlocale(LC_NUMERIC, NULL);
|
||||||
|
setlocale(LC_NUMERIC, "C");
|
||||||
snprintf(str, MaxStrSize, "%.*g", QDecNumDigits, d);
|
snprintf(str, MaxStrSize, "%.*g", QDecNumDigits, d);
|
||||||
|
setlocale(LC_NUMERIC, curLoc);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return fromString(str);
|
return fromString(str);
|
||||||
|
|||||||
+4
-1
@@ -63,7 +63,7 @@ OTHER_FILES += shop.json
|
|||||||
|
|
||||||
ODB_FILES = shop/data/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 -I $$PWD/
|
ODB_OTHER_INCLUDES = -I $$PWD/../addressbook/data -I $$PWD/../countryregister/data -I $$PWD/
|
||||||
include(../odb.pri)
|
include(../odb.pri)
|
||||||
|
|
||||||
RESOURCES += \
|
RESOURCES += \
|
||||||
@@ -89,6 +89,9 @@ INCLUDEPATH += $$PWD/../addressbook
|
|||||||
INCLUDEPATH += $$PWD/
|
INCLUDEPATH += $$PWD/
|
||||||
DEPENDPATH += $$PWD/../addressbook
|
DEPENDPATH += $$PWD/../addressbook
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/../countryregister/data
|
||||||
|
INCLUDEPATH += $$PWD/../countryregister
|
||||||
|
|
||||||
TRANSLATIONS = translations/shop_cs_CZ.ts
|
TRANSLATIONS = translations/shop_cs_CZ.ts
|
||||||
|
|
||||||
win32 {
|
win32 {
|
||||||
|
|||||||
Reference in New Issue
Block a user