Merge branch 'master' of https://git.bukova.info/repos/git/prodejna
						commit
						27ec7282eb
					
				
											
												Binary file not shown.
											
										
									
								
											
												Binary file not shown.
											
										
									
								@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					#include "addservicedialog.h"
 | 
				
			||||||
 | 
					#include "ui_addservicedialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AddServiceDialog::AddServiceDialog(AccServicePtr service, QWidget *parent) :
 | 
				
			||||||
 | 
					    QDialog(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::AddServiceDialog)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ui->editName->setText(service->accServiceName());
 | 
				
			||||||
 | 
					    ui->editPrice->setValue(service->price().toDouble());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AddServiceDialog::~AddServiceDialog()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString AddServiceDialog::description()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return ui->editDescription->text();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDecDouble AddServiceDialog::price()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return QDecDouble(ui->editPrice->value());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					#ifndef ADDSERVICEDIALOG_H
 | 
				
			||||||
 | 
					#define ADDSERVICEDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					#include <QDecDouble.hh>
 | 
				
			||||||
 | 
					#include <data/accservice.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class AddServiceDialog;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class AddServiceDialog : public QDialog
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit AddServiceDialog(AccServicePtr service, QWidget *parent = 0);
 | 
				
			||||||
 | 
					    ~AddServiceDialog();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString description();
 | 
				
			||||||
 | 
					    QDecDouble price();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::AddServiceDialog *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // ADDSERVICEDIALOG_H
 | 
				
			||||||
@ -0,0 +1,105 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>AddServiceDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="AddServiceDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>143</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Dialog</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QFormLayout" name="formLayout">
 | 
				
			||||||
 | 
					   <item row="0" column="0">
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="label">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Service name</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="0" column="1">
 | 
				
			||||||
 | 
					    <widget class="QLineEdit" name="editName">
 | 
				
			||||||
 | 
					     <property name="readOnly">
 | 
				
			||||||
 | 
					      <bool>true</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="6" 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="1" column="1">
 | 
				
			||||||
 | 
					    <widget class="QLineEdit" name="editDescription"/>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="1" column="0">
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="label_2">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Description</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="2" column="1">
 | 
				
			||||||
 | 
					    <widget class="QDoubleSpinBox" name="editPrice">
 | 
				
			||||||
 | 
					     <property name="buttonSymbols">
 | 
				
			||||||
 | 
					      <enum>QAbstractSpinBox::NoButtons</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="maximum">
 | 
				
			||||||
 | 
					      <double>999999.989999999990687</double>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="2" column="0">
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="label_3">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Price</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>AddServiceDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>AddServiceDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					#include "camp.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "campgrid.h"
 | 
				
			||||||
 | 
					#include "campform.h"
 | 
				
			||||||
 | 
					#include "campservice.h"
 | 
				
			||||||
 | 
					#include "settings/campsettingsform.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Camp::Camp()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Camp::initServiceUi()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_service = new CampService();
 | 
				
			||||||
 | 
					    m_ui = new CampGrid();
 | 
				
			||||||
 | 
					    ((CampGrid*)m_ui)->setForm(new CampForm());
 | 
				
			||||||
 | 
					    m_settingsUi = new CampSettingsForm();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QIcon Camp::pluginIcon()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return QIcon(":/icons/campPlugin.svg");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QTranslator *Camp::translator()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return translatorFrom(":/translations/camp_");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool Camp::hasNumberSeries()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					#ifndef CAMP_H
 | 
				
			||||||
 | 
					#define CAMP_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "camp_global.h"
 | 
				
			||||||
 | 
					#include <core.h>
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <QtPlugin>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CAMPSHARED_EXPORT Camp : public QObject, IMetaDataPlugin
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Q_PLUGIN_METADATA(IID PluginInterface_iid FILE "camp.json")
 | 
				
			||||||
 | 
					    Q_INTERFACES(IPlugin)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    Camp();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					    void initServiceUi() Q_DECL_OVERRIDE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // IPlugin interface
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    virtual QIcon pluginIcon();
 | 
				
			||||||
 | 
					    QTranslator *translator();
 | 
				
			||||||
 | 
					    bool hasNumberSeries();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CAMP_H
 | 
				
			||||||
@ -0,0 +1,107 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "id" : "CAMP",
 | 
				
			||||||
 | 
					    "name" : {
 | 
				
			||||||
 | 
					        "default" : "Camp",
 | 
				
			||||||
 | 
					        "CZ" : "Kemp"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "descriptoin" : {
 | 
				
			||||||
 | 
					        "default" : "",
 | 
				
			||||||
 | 
					        "CZ" : ""
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "schemaVersion" : 5,
 | 
				
			||||||
 | 
					    "sql" : [
 | 
				
			||||||
 | 
					"CREATE TABLE \"CampData\" (
 | 
				
			||||||
 | 
					  \"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
 | 
				
			||||||
 | 
					  \"numSer\" TEXT NULL,
 | 
				
			||||||
 | 
					  \"start\" TEXT NULL,
 | 
				
			||||||
 | 
					  \"end\" TEXT NULL,
 | 
				
			||||||
 | 
					  \"ownerFirstame\" TEXT NULL,
 | 
				
			||||||
 | 
					  \"ownerLastname\" TEXT NULL,
 | 
				
			||||||
 | 
					  \"ownerAddress\" TEXT NULL,
 | 
				
			||||||
 | 
					  \"totalPrice\" INTEGER NOT NULL,
 | 
				
			||||||
 | 
					  \"sale\" INTEGER NOT NULL,
 | 
				
			||||||
 | 
					  \"fixedSale\" INTEGER NOT NULL,
 | 
				
			||||||
 | 
					  \"season\" INTEGER NULL,
 | 
				
			||||||
 | 
					  CONSTRAINT \"season_fk\"
 | 
				
			||||||
 | 
					    FOREIGN KEY (\"season\")
 | 
				
			||||||
 | 
					    REFERENCES \"Season\" (\"id\")
 | 
				
			||||||
 | 
					    DEFERRABLE INITIALLY DEFERRED);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE \"AddressItem\" (
 | 
				
			||||||
 | 
					  \"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
 | 
				
			||||||
 | 
					  \"firstName\" TEXT NULL,
 | 
				
			||||||
 | 
					  \"lastName\" TEXT NULL,
 | 
				
			||||||
 | 
					  \"address\" TEXT NULL,
 | 
				
			||||||
 | 
					  \"adbItem\" INTEGER NULL,
 | 
				
			||||||
 | 
					  \"price\" 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\"
 | 
				
			||||||
 | 
					    FOREIGN KEY (\"campData\")
 | 
				
			||||||
 | 
					    REFERENCES \"CampData\" (\"id\")
 | 
				
			||||||
 | 
					    DEFERRABLE INITIALLY DEFERRED,
 | 
				
			||||||
 | 
					  CONSTRAINT \"personPrice_fk\"
 | 
				
			||||||
 | 
					    FOREIGN KEY (\"personPrice\")
 | 
				
			||||||
 | 
					    REFERENCES \"PersonPrice\" (\"id\")
 | 
				
			||||||
 | 
					    DEFERRABLE INITIALLY DEFERRED);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE \"ServiceItem\" (
 | 
				
			||||||
 | 
					  \"id\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
 | 
				
			||||||
 | 
					  \"name\" TEXT NULL,
 | 
				
			||||||
 | 
					  \"code\" TEXT NULL,
 | 
				
			||||||
 | 
					  \"price\" INTEGER NOT NULL,
 | 
				
			||||||
 | 
					  \"salePossible\" INTEGER NOT NULL,
 | 
				
			||||||
 | 
					  \"type\" INTEGER NOT NULL,
 | 
				
			||||||
 | 
					  \"campData\" INTEGER NOT NULL,
 | 
				
			||||||
 | 
					  CONSTRAINT \"campData_fk\"
 | 
				
			||||||
 | 
					    FOREIGN KEY (\"campData\")
 | 
				
			||||||
 | 
					    REFERENCES \"CampData\" (\"id\")
 | 
				
			||||||
 | 
					    DEFERRABLE INITIALLY DEFERRED);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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;
 | 
				
			||||||
 | 
					",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"ALTER TABLE AddressItem ADD \"owner\" INTEGER NULL;
 | 
				
			||||||
 | 
					",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"ALTER TABLE ServiceItem ADD \"sale\" INTEGER NULL;
 | 
				
			||||||
 | 
					ALTER TABLE ServiceItem ADD \"description\" TEXT NULL;
 | 
				
			||||||
 | 
					",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"ALTER TABLE ServiceItem ADD \"totalPrice\" INTEGER NULL;
 | 
				
			||||||
 | 
					ALTER TABLE ServiceItem ADD \"fullPrice\" INTEGER NULL;
 | 
				
			||||||
 | 
					ALTER TABLE CampData ADD \"fullPrice\" INTEGER NULL;
 | 
				
			||||||
 | 
					ALTER TABLE CampData ADD \"totalSale\" INTEGER NULL;
 | 
				
			||||||
 | 
					"
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "dependencies" : [ "ADDRESSBOOK", "SHOP", "SERVICES" ],
 | 
				
			||||||
 | 
					    "translations" : {
 | 
				
			||||||
 | 
					        "CZ" : {
 | 
				
			||||||
 | 
					            "name" : "Název",
 | 
				
			||||||
 | 
					            "shortName" : "Zobrazit na účtence",
 | 
				
			||||||
 | 
					            "code" : "Kód",
 | 
				
			||||||
 | 
					            "type" : "Druh",
 | 
				
			||||||
 | 
					            "price" : "Cena",
 | 
				
			||||||
 | 
					            "vat" : "DPH",
 | 
				
			||||||
 | 
					            "count" : "Počet"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,104 @@
 | 
				
			|||||||
 | 
					#-------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Project created by QtCreator 2017-04-19T09:20:32
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QT       += widgets sql
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TARGET = camp
 | 
				
			||||||
 | 
					TEMPLATE = lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DEFINES += CAMP_LIBRARY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The following define makes your compiler emit warnings if you use
 | 
				
			||||||
 | 
					# any feature of Qt which as been marked as deprecated (the exact warnings
 | 
				
			||||||
 | 
					# depend on your compiler). Please consult the documentation of the
 | 
				
			||||||
 | 
					# deprecated API in order to know how to port your code away from it.
 | 
				
			||||||
 | 
					DEFINES += QT_DEPRECATED_WARNINGS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# You can also make your code fail to compile if you use deprecated APIs.
 | 
				
			||||||
 | 
					# In order to do so, uncomment the following line.
 | 
				
			||||||
 | 
					# You can also select to disable deprecated APIs only up to a certain version of Qt.
 | 
				
			||||||
 | 
					#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SOURCES += camp.cpp \
 | 
				
			||||||
 | 
					    data/campdata.cpp \
 | 
				
			||||||
 | 
					    data/addressitem.cpp \
 | 
				
			||||||
 | 
					    data/serviceitem.cpp \
 | 
				
			||||||
 | 
					    campgrid.cpp \
 | 
				
			||||||
 | 
					    campform.cpp \
 | 
				
			||||||
 | 
					    data/sale.cpp \
 | 
				
			||||||
 | 
					    settings/campsettingsform.cpp \
 | 
				
			||||||
 | 
					    data/personprice.cpp \
 | 
				
			||||||
 | 
					    settings/campsettings.cpp \
 | 
				
			||||||
 | 
					    campwizard.cpp \
 | 
				
			||||||
 | 
					    campservice.cpp \
 | 
				
			||||||
 | 
					    addservicedialog.cpp \
 | 
				
			||||||
 | 
					    campshopitem.cpp \
 | 
				
			||||||
 | 
					    campseller.cpp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HEADERS += camp.h\
 | 
				
			||||||
 | 
					        camp_global.h \
 | 
				
			||||||
 | 
					    data/campdata.h \
 | 
				
			||||||
 | 
					    data/addressitem.h \
 | 
				
			||||||
 | 
					    data/serviceitem.h \
 | 
				
			||||||
 | 
					    data/camp-data.h \
 | 
				
			||||||
 | 
					    campgrid.h \
 | 
				
			||||||
 | 
					    campform.h \
 | 
				
			||||||
 | 
					    data/sale.h \
 | 
				
			||||||
 | 
					    settings/campsettingsform.h \
 | 
				
			||||||
 | 
					    data/personprice.h \
 | 
				
			||||||
 | 
					    settings/campsettings.h \
 | 
				
			||||||
 | 
					    campwizard.h \
 | 
				
			||||||
 | 
					    campservice.h \
 | 
				
			||||||
 | 
					    addservicedialog.h \
 | 
				
			||||||
 | 
					    campshopitem.h \
 | 
				
			||||||
 | 
					    campseller.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					include(../config_plugin.pri)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ODB_FILES = camp/data/camp-data.h
 | 
				
			||||||
 | 
					H_DIR = $$PWD/data/*.h
 | 
				
			||||||
 | 
					ODB_OTHER_INCLUDES = -I $$PWD/../shop -I $$PWD/../addressbook/data -I $$PWD/../countryregister/data -I $$PWD/../services/data
 | 
				
			||||||
 | 
					include(../odb.pri)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lshop
 | 
				
			||||||
 | 
					else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lshop
 | 
				
			||||||
 | 
					else:unix: LIBS += -L$$OUT_PWD/../plugins/ -lshop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INCLUDEPATH += $$PWD/../shop
 | 
				
			||||||
 | 
					DEPENDPATH += $$PWD/../shop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -laddressbook
 | 
				
			||||||
 | 
					else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -laddressbook
 | 
				
			||||||
 | 
					else:unix: LIBS += -L$$OUT_PWD/../plugins/ -laddressbook
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INCLUDEPATH += $$PWD/../addressbook
 | 
				
			||||||
 | 
					INCLUDEPATH += $$PWD/../addressbook/data
 | 
				
			||||||
 | 
					DEPENDPATH += $$PWD/../addressbook
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INCLUDEPATH += $$PWD/../countryregister/data
 | 
				
			||||||
 | 
					INCLUDEPATH += $$PWD/../countryregister
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lservices
 | 
				
			||||||
 | 
					else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lservices
 | 
				
			||||||
 | 
					else:unix: LIBS += -L$$OUT_PWD/../plugins/ -lservices
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INCLUDEPATH += $$PWD/../services
 | 
				
			||||||
 | 
					INCLUDEPATH += $$PWD/../services/data
 | 
				
			||||||
 | 
					DEPENDPATH += $$PWD/../services
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TRANSLATIONS = translations/camp_cs_CZ.ts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DISTFILES += \
 | 
				
			||||||
 | 
					    camp.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RESOURCES += \
 | 
				
			||||||
 | 
					    camprc.qrc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FORMS += \
 | 
				
			||||||
 | 
					    campform.ui \
 | 
				
			||||||
 | 
					    settings/campsettingsform.ui \
 | 
				
			||||||
 | 
					    campwizard.ui \
 | 
				
			||||||
 | 
					    addservicedialog.ui
 | 
				
			||||||
@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					#ifndef CAMP_GLOBAL_H
 | 
				
			||||||
 | 
					#define CAMP_GLOBAL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QtCore/qglobal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(CAMP_LIBRARY)
 | 
				
			||||||
 | 
					#  define CAMPSHARED_EXPORT Q_DECL_EXPORT
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#  define CAMPSHARED_EXPORT Q_DECL_IMPORT
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CAMP_GLOBAL_H
 | 
				
			||||||
@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					#include "campform.h"
 | 
				
			||||||
 | 
					#include "ui_campform.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CampForm::CampForm(QWidget *parent) :
 | 
				
			||||||
 | 
					    AutoForm<CampData>(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::CampForm)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CampForm::~CampForm()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					#ifndef CAMPFORM_H
 | 
				
			||||||
 | 
					#define CAMPFORM_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QWidget>
 | 
				
			||||||
 | 
					#include <core.h>
 | 
				
			||||||
 | 
					#include "data/camp-data.h"
 | 
				
			||||||
 | 
					#include "camp-odb.hxx"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class CampForm;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CampForm : public AutoForm<CampData>
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit CampForm(QWidget *parent = 0);
 | 
				
			||||||
 | 
					    ~CampForm();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::CampForm *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CAMPFORM_H
 | 
				
			||||||
@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>CampForm</class>
 | 
				
			||||||
 | 
					 <widget class="QWidget" name="CampForm">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>462</width>
 | 
				
			||||||
 | 
					    <height>403</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Form</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					#include "campgrid.h"
 | 
				
			||||||
 | 
					#include "campwizard.h"
 | 
				
			||||||
 | 
					#include "campservice.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CampGrid::CampGrid(QWidget *parent) : GridForm<CampData>(parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    setTableModel(new AutoTableModel<CampData>);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampGrid::handleNewRecord()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    CampService srv;
 | 
				
			||||||
 | 
					    CampDataPtr data = srv.create();
 | 
				
			||||||
 | 
					    CampWizard *wizard = new CampWizard();
 | 
				
			||||||
 | 
					    wizard->setAttribute(Qt::WA_DeleteOnClose);
 | 
				
			||||||
 | 
					    wizard->setData(data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(wizard, &QDialog::accepted, [this, data](){
 | 
				
			||||||
 | 
					        addRow(data);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    wizard->show();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampGrid::handleEditRecord()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					#ifndef CAMPGRID_H
 | 
				
			||||||
 | 
					#define CAMPGRID_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <core.h>
 | 
				
			||||||
 | 
					#include "data/camp-data.h"
 | 
				
			||||||
 | 
					#include "camp-odb.hxx"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CampGrid : public GridForm<CampData>
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    CampGrid(QWidget *parent = NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // IGridForm interface
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					    void handleNewRecord();
 | 
				
			||||||
 | 
					    void handleEditRecord();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CAMPGRID_H
 | 
				
			||||||
@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					<RCC>
 | 
				
			||||||
 | 
					    <qresource prefix="/">
 | 
				
			||||||
 | 
					        <file>icons/campPlugin.svg</file>
 | 
				
			||||||
 | 
					        <file>translations/camp_cs_CZ.qm</file>
 | 
				
			||||||
 | 
					    </qresource>
 | 
				
			||||||
 | 
					</RCC>
 | 
				
			||||||
@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					#include "campseller.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "campwizard.h"
 | 
				
			||||||
 | 
					#include "campservice.h"
 | 
				
			||||||
 | 
					#include "data/camp-data.h"
 | 
				
			||||||
 | 
					#include "campshopitem.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CampSeller::CampSeller(QObject *parent)
 | 
				
			||||||
 | 
					    :ISeller(parent)
 | 
				
			||||||
 | 
					{  
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampSeller::prepareItem()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    CampWizard *wizard = new CampWizard();
 | 
				
			||||||
 | 
					    wizard->setAttribute(Qt::WA_DeleteOnClose);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    CampService srv;
 | 
				
			||||||
 | 
					    CampDataPtr data = srv.create();
 | 
				
			||||||
 | 
					    wizard->setData(data);
 | 
				
			||||||
 | 
					    wizard->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(wizard, &QDialog::accepted, [this, data](){
 | 
				
			||||||
 | 
					        CampShopItemPtr item(new CampShopItem);
 | 
				
			||||||
 | 
					        item->setUnitPrice(data->totalPrice());
 | 
				
			||||||
 | 
					        emit itemPrepared(item, 1);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					#ifndef CAMPSELLER_H
 | 
				
			||||||
 | 
					#define CAMPSELLER_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <iseller.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CampSeller : public ISeller
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit CampSeller(QObject *parent = 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // ISeller interface
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    void prepareItem();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CAMPSELLER_H
 | 
				
			||||||
@ -0,0 +1,315 @@
 | 
				
			|||||||
 | 
					#include "campservice.h"
 | 
				
			||||||
 | 
					#include <settingsservice.h>
 | 
				
			||||||
 | 
					#include <seasonservice.h>
 | 
				
			||||||
 | 
					#include <numberseriesservice.h>
 | 
				
			||||||
 | 
					#include "campshopitem.h"
 | 
				
			||||||
 | 
					#include "campseller.h"
 | 
				
			||||||
 | 
					#include <math.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CampService::CampService()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_pluginId = "CAMP";
 | 
				
			||||||
 | 
					    m_seller = new CampSeller(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampService::addPerson(CampDataPtr data, AddressbookDataPtr address)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    AddressItemPtr addrItem(new AddressItem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    addrItem->setAdbItem(address);
 | 
				
			||||||
 | 
					    addrItem->setAddress(address->toString());
 | 
				
			||||||
 | 
					    addrItem->setFirstName(address->firstName());
 | 
				
			||||||
 | 
					    addrItem->setLastName(address->lastName());
 | 
				
			||||||
 | 
					    addrItem->setCampData(data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (data->people().isEmpty())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        setOwner(data, addrItem);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    data->addPerson(addrItem);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampService::addService(CampDataPtr data, AccServicePtr service)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ServiceItemPtr serviceItem(new ServiceItem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    serviceItem->setName(service->accServiceName());
 | 
				
			||||||
 | 
					    serviceItem->setCode(service->accServiceCode());
 | 
				
			||||||
 | 
					    serviceItem->setPrice(service->price());
 | 
				
			||||||
 | 
					    serviceItem->setSalePossible(service->salePossible());
 | 
				
			||||||
 | 
					    serviceItem->setType(service->serviceType());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    data->addServiceItem(serviceItem);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampService::addService(CampDataPtr data, AccServicePtr service, QDecDouble price, QString description)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ServiceItemPtr item = addServiceInt(data, service);
 | 
				
			||||||
 | 
					    item->setPrice(price);
 | 
				
			||||||
 | 
					    item->setDescription(description);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampService::setOwner(CampDataPtr data, AddressItemPtr person)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    foreach (AddressItemPtr p, data->people()) {
 | 
				
			||||||
 | 
					        p->setOwner(false);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    person->setOwner(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    data->setOwnerFirstame(person->firstName());
 | 
				
			||||||
 | 
					    data->setOwnerLastname(person->lastName());
 | 
				
			||||||
 | 
					    data->setOwnerAddress(person->address());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CampDataPtr CampService::create()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    CampDataPtr data(new CampData);
 | 
				
			||||||
 | 
					    data->setStart(QDate::currentDate());
 | 
				
			||||||
 | 
					    data->setEnd(QDate::currentDate());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return data;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampService::calculate(CampDataPtr data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    SettingsService srv("CAMP");
 | 
				
			||||||
 | 
					    m_settings = srv.loadSettings<CampSettings>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    calcServices(data);
 | 
				
			||||||
 | 
					    calcPeople(data);
 | 
				
			||||||
 | 
					    calcPrice(data);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampService::saveCamp(CampDataPtr data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (!checkPermission(PERM_ADD))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SeasonService seasonSrv;
 | 
				
			||||||
 | 
					    SeasonPtr season = seasonSrv.active();
 | 
				
			||||||
 | 
					    data->setSeason(season);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Transaction tr;
 | 
				
			||||||
 | 
					    try
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        odb::database *db = Context::instance().db();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        NumberSeriesService numSrv;
 | 
				
			||||||
 | 
					        data->setNumSer(numSrv.nextStrForPlugin("CAMP"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        db->persist(data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        foreach (ServiceItemPtr item, data->services()) {
 | 
				
			||||||
 | 
					            item->setCampData(data.toWeakRef());
 | 
				
			||||||
 | 
					            db->persist(item);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        foreach (AddressItemPtr item, data->people()) {
 | 
				
			||||||
 | 
					            item->setCampData(data.toWeakRef());
 | 
				
			||||||
 | 
					            db->persist(item);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        tr.commit();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    catch (const odb::exception &ex)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        emit dbError(ex.what());
 | 
				
			||||||
 | 
					        emit dbErrorUpdate(ex.what());
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampService::calcPeople(CampDataPtr data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    foreach (ServiceItemPtr service, data->services()) {
 | 
				
			||||||
 | 
					        if (service->type() == AccService::ACCFEE)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            data->removeServiceItem(service);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Service<PersonPrice> srvPrices;
 | 
				
			||||||
 | 
					    QList<PersonPricePtr> prices = srvPrices.all("active = 1");
 | 
				
			||||||
 | 
					    int days = data->start().daysTo(data->end());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    foreach (AddressItemPtr item, data->people()) {
 | 
				
			||||||
 | 
					        QDate first(1,1,1);
 | 
				
			||||||
 | 
					        qint64 daysStart = item->adbItem()->birthDate().daysTo(data->start());
 | 
				
			||||||
 | 
					        first = first.addDays(daysStart);
 | 
				
			||||||
 | 
					        int startAge = first.year() - 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        first = QDate(1,1,1);
 | 
				
			||||||
 | 
					        qint64 daysEnd = item->adbItem()->birthDate().daysTo(data->end());
 | 
				
			||||||
 | 
					        first = first.addDays(daysEnd);
 | 
				
			||||||
 | 
					        int endAge = first.year() - 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!item->personPrice().isNull())
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            item->setPrice(item->personPrice()->price() * days);
 | 
				
			||||||
 | 
					            addAccFee(data, item, startAge, endAge, days);
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            item->setPrice(0);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        foreach (PersonPricePtr price, prices) {
 | 
				
			||||||
 | 
					            if (price->fromAge() <= endAge && price->toAge() >= endAge)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                item->setPersonPrice(price);
 | 
				
			||||||
 | 
					                item->setPrice(price->price() * days);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (item->adbItem()->ztp())
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        addAccFee(data, item, startAge, endAge, days);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampService::calcServices(CampDataPtr data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    QDecDouble sale = data->sale();
 | 
				
			||||||
 | 
					    bool fixedSale = data->fixedSale();
 | 
				
			||||||
 | 
					    int days = data->start().daysTo(data->end());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    foreach (ServiceItemPtr item, data->services()) {
 | 
				
			||||||
 | 
					        item->setFullPrice(item->price() * days);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (sale != QDecDouble(0) && !fixedSale && item->salePossible())
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            QDecDouble itemSale = (item->fullPrice() * sale) / 100;
 | 
				
			||||||
 | 
					            item->setSale(itemSale);
 | 
				
			||||||
 | 
					            item->setTotalPrice(item->fullPrice() - itemSale);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            item->setSale(0);
 | 
				
			||||||
 | 
					            item->setTotalPrice(item->fullPrice());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampService::calcPrice(CampDataPtr data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    QDecDouble totalPrice(0);
 | 
				
			||||||
 | 
					    QDecDouble sale(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    foreach (ServiceItemPtr service, data->services()) {
 | 
				
			||||||
 | 
					        totalPrice += service->totalPrice();
 | 
				
			||||||
 | 
					        sale += service->sale();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    foreach (AddressItemPtr addr, data->people()) {
 | 
				
			||||||
 | 
					        totalPrice += addr->price();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (data->fixedSale())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        totalPrice -= data->sale();
 | 
				
			||||||
 | 
					        sale = data->sale();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    switch (m_settings->rounding()) {
 | 
				
			||||||
 | 
					    case Enums::R_UP:
 | 
				
			||||||
 | 
					        totalPrice = QDecDouble(ceil(totalPrice.toDouble() * pow(10, m_settings->decimalPlaces())) / pow(10, m_settings->decimalPlaces()));
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case Enums::R_DOWN:
 | 
				
			||||||
 | 
					        totalPrice = QDecDouble(floor(totalPrice.toDouble() * pow(10, m_settings->decimalPlaces())) / pow(10, m_settings->decimalPlaces()));
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case Enums::R_MATH:
 | 
				
			||||||
 | 
					        totalPrice = QDecDouble(round(totalPrice.toDouble() * pow(10, m_settings->decimalPlaces())) / pow(10, m_settings->decimalPlaces()));
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case Enums::R_NONE:
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    data->setTotalPrice(totalPrice);
 | 
				
			||||||
 | 
					    data->setTotalSale(sale);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampService::addAccFee(CampDataPtr data, AddressItemPtr item, int startAge, int endAge, int days)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    auto addAccService = [this, item, data](int count){
 | 
				
			||||||
 | 
					        ServiceItemPtr srvItem(new ServiceItem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        srvItem->setName(item->firstName() + " " + item->lastName());
 | 
				
			||||||
 | 
					        srvItem->setDescription(m_settings->accFeeText());
 | 
				
			||||||
 | 
					        srvItem->setPrice(m_settings->accFee());
 | 
				
			||||||
 | 
					        srvItem->setTotalPrice(m_settings->accFee() * count);
 | 
				
			||||||
 | 
					        srvItem->setFullPrice(srvItem->totalPrice());
 | 
				
			||||||
 | 
					        srvItem->setType(AccService::ACCFEE);
 | 
				
			||||||
 | 
					        srvItem->setSalePossible(false);
 | 
				
			||||||
 | 
					        srvItem->setCampData(data);
 | 
				
			||||||
 | 
					        data->addServiceItem(srvItem);
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (startAge == endAge || (startAge >= m_settings->accFeeStartAge() && startAge <= m_settings->accFeeEndAge()))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (endAge >= m_settings->accFeeStartAge() && endAge <= m_settings->accFeeEndAge())
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            addAccService(days);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if (endAge >= m_settings->accFeeStartAge() && endAge <= m_settings->accFeeEndAge())
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            QDate tmp(data->end().year(), item->adbItem()->birthDate().month(), item->adbItem()->birthDate().day());
 | 
				
			||||||
 | 
					            int count = tmp.daysTo(data->end());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            addAccService(count);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QList<ShopItemPtr> CampService::shopItems()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    CampShopItemPtr item(new CampShopItem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QList<ShopItemPtr> items;
 | 
				
			||||||
 | 
					    items.append(item);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return items;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ShopItemPtr CampService::shopItem(int )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return CampShopItemPtr(new CampShopItem);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampService::addedToVoucher(int , int )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ISeller *CampService::seller()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_seller;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ServiceItemPtr CampService::addServiceInt(CampDataPtr data, AccServicePtr service)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ServiceItemPtr serviceItem(new ServiceItem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    serviceItem->setName(service->accServiceName());
 | 
				
			||||||
 | 
					    serviceItem->setCode(service->accServiceCode());
 | 
				
			||||||
 | 
					    serviceItem->setPrice(service->price());
 | 
				
			||||||
 | 
					    serviceItem->setSalePossible(service->salePossible());
 | 
				
			||||||
 | 
					    serviceItem->setType(service->serviceType());
 | 
				
			||||||
 | 
					    serviceItem->setCampData(data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    data->addServiceItem(serviceItem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return serviceItem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					#ifndef CAMPSERVICE_H
 | 
				
			||||||
 | 
					#define CAMPSERVICE_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <core.h>
 | 
				
			||||||
 | 
					#include <addressbookdata.h>
 | 
				
			||||||
 | 
					#include <accservice.h>
 | 
				
			||||||
 | 
					#include <isellableservice.h>
 | 
				
			||||||
 | 
					#include "data/camp-data.h"
 | 
				
			||||||
 | 
					#include "settings/campsettings.h"
 | 
				
			||||||
 | 
					#include "camp-odb.hxx"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CampService : public Service<CampData>, public ISellableService
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    CampService();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void addPerson(CampDataPtr data, AddressbookDataPtr address);
 | 
				
			||||||
 | 
					    void addService(CampDataPtr data, AccServicePtr service);
 | 
				
			||||||
 | 
					    void addService(CampDataPtr data, AccServicePtr service, QDecDouble price, QString description);
 | 
				
			||||||
 | 
					    void setOwner(CampDataPtr data, AddressItemPtr person);
 | 
				
			||||||
 | 
					    CampDataPtr create();
 | 
				
			||||||
 | 
					    void calculate(CampDataPtr data);
 | 
				
			||||||
 | 
					    void saveCamp(CampDataPtr data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    ServiceItemPtr addServiceInt(CampDataPtr data, AccServicePtr service);
 | 
				
			||||||
 | 
					    void calcPeople(CampDataPtr data);
 | 
				
			||||||
 | 
					    void calcServices(CampDataPtr data);
 | 
				
			||||||
 | 
					    void calcPrice(CampDataPtr data);
 | 
				
			||||||
 | 
					    void addAccFee(CampDataPtr data, AddressItemPtr item, int startAge, int endAge, int days);
 | 
				
			||||||
 | 
					    CampSettingsPtr m_settings;
 | 
				
			||||||
 | 
					    ISeller *m_seller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // ISellableService interface
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    QList<ShopItemPtr> shopItems();
 | 
				
			||||||
 | 
					    ShopItemPtr shopItem(int itemId);
 | 
				
			||||||
 | 
					    void addedToVoucher(int itemId, int countAdded);
 | 
				
			||||||
 | 
					    ISeller *seller();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CAMPSERVICE_H
 | 
				
			||||||
@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					#include "campshopitem.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CampShopItem::CampShopItem(QObject *parent)
 | 
				
			||||||
 | 
					    :ShopItem(parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_unitPrice = QDecDouble(0);
 | 
				
			||||||
 | 
					    m_vatType = Enums::NONE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString CampShopItem::name()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return "Camp";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString CampShopItem::shortName()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return "Camp";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDecDouble CampShopItem::unitPrice()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_unitPrice;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Enums::VatType CampShopItem::vatType()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_vatType;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString CampShopItem::pluginId()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return "CAMP";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString CampShopItem::code()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return "Camp";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampShopItem::setUnitPrice(const QDecDouble &unitPrice)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_unitPrice = unitPrice;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampShopItem::setVatType(const Enums::VatType &vatType)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_vatType = vatType;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					#ifndef CAMPSHOPITEM_H
 | 
				
			||||||
 | 
					#define CAMPSHOPITEM_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <shopitem.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CampShopItem : public ShopItem
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    CampShopItem(QObject *parent = 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // IShopItem interface
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    QString name();
 | 
				
			||||||
 | 
					    QString shortName();
 | 
				
			||||||
 | 
					    QDecDouble unitPrice();
 | 
				
			||||||
 | 
					    Enums::VatType vatType();
 | 
				
			||||||
 | 
					    QString pluginId();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // ShopItem interface
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    QString code();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void setUnitPrice(const QDecDouble &unitPrice);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void setVatType(const Enums::VatType &vatType);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    QDecDouble m_unitPrice;
 | 
				
			||||||
 | 
					    Enums::VatType m_vatType;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef QSharedPointer<CampShopItem> CampShopItemPtr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CAMPSHOPITEM_H
 | 
				
			||||||
@ -0,0 +1,405 @@
 | 
				
			|||||||
 | 
					#include "campwizard.h"
 | 
				
			||||||
 | 
					#include "ui_campwizard.h"
 | 
				
			||||||
 | 
					#include "campservice.h"
 | 
				
			||||||
 | 
					#include "addservicedialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <core.h>
 | 
				
			||||||
 | 
					#include <addressbookservice.h>
 | 
				
			||||||
 | 
					#include <accservice.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					////////////////////////////////////
 | 
				
			||||||
 | 
					/// \brief AddressHelper::AddressHelper
 | 
				
			||||||
 | 
					/// \param parent
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					AddressHelper::AddressHelper(QObject *parent)
 | 
				
			||||||
 | 
					    :QObject(parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_address = AddressbookDataPtr(new AddressbookData);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QSharedPointer<QObject> AddressHelper::address() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_address;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AddressHelper::setAddress(const QSharedPointer<QObject> &address)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (qobject_cast<AddressbookData*>(address.data()) != NULL)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        m_address = qSharedPointerDynamicCast<AddressbookData, QObject>(address);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AddressbookDataPtr AddressHelper::addr() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_address;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AddressHelper::setAddr(const AddressbookDataPtr &address)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_address = address;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AddressbookDataPtr AddressHelper::newAddress()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    AddressBookService adbSrv;
 | 
				
			||||||
 | 
					    m_copyAddress = adbSrv.copyAddress(m_address);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return m_copyAddress;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AddressbookDataPtr AddressHelper::copyAddress()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (m_copyAddress.isNull())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        m_copyAddress = AddressbookDataPtr(new AddressbookData);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return m_copyAddress;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					/// \brief SaleHelper::SaleHelper
 | 
				
			||||||
 | 
					/// \param parent
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					SaleHelper::SaleHelper(QObject *parent) :QObject(parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_sale = SalePtr(new Sale);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SalePtr SaleHelper::salePtr() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_sale;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SaleHelper::setSalePtr(const SalePtr &sale)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_sale = sale;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QSharedPointer<QObject> SaleHelper::sale() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_sale;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SaleHelper::setSale(const QSharedPointer<QObject> &sale)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (qobject_cast<Sale*>(sale.data()) != NULL)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        m_sale = qSharedPointerDynamicCast<Sale, QObject>(sale);
 | 
				
			||||||
 | 
					        emit saleChanged();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					/// \brief CampWizard::CampWizard
 | 
				
			||||||
 | 
					/// \param parent
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					CampWizard::CampWizard(QWidget *parent) :
 | 
				
			||||||
 | 
					    QWizard(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::CampWizard)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_peopleModel = new AutoTableModel<AddressItem>(this);
 | 
				
			||||||
 | 
					    ui->tablePeople->setModel(m_peopleModel);
 | 
				
			||||||
 | 
					    ui->tablePeople->hideColumn(2);
 | 
				
			||||||
 | 
					    ui->tablePeople->hideColumn(3);
 | 
				
			||||||
 | 
					    ui->tablePeople->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
 | 
				
			||||||
 | 
					    ui->tablePeople->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(ui->tablePeople->selectionModel(), &QItemSelectionModel::currentRowChanged, [this](QModelIndex, QModelIndex){
 | 
				
			||||||
 | 
					        ui->btnRemove->setEnabled(!m_data->people().isEmpty());
 | 
				
			||||||
 | 
					        ui->btnOwner->setEnabled(!m_data->people().isEmpty());
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_dataBinder = new ObjectBinder(this);
 | 
				
			||||||
 | 
					    m_dataBinder->registerBinding(ui->start);
 | 
				
			||||||
 | 
					    m_dataBinder->registerBinding(ui->end);
 | 
				
			||||||
 | 
					    m_dataBinder->registerBinding(ui->totalPrice);
 | 
				
			||||||
 | 
					    m_dataBinder->registerBinding(ui->totalSale);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_addrHelper = new AddressHelper(this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Service<AddressbookData> addrSrv;
 | 
				
			||||||
 | 
					    m_addrHelperBinder = new ObjectBinder(this);
 | 
				
			||||||
 | 
					    m_addrHelperBinder->registerBinding(ui->address, ComboData::createComboData(addrSrv.all()));
 | 
				
			||||||
 | 
					    m_addrHelperBinder->setData(m_addrHelper);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_addressBinder = new ObjectBinder(this);
 | 
				
			||||||
 | 
					    m_addressBinder->registerBinding(ui->title);
 | 
				
			||||||
 | 
					    m_addressBinder->registerBinding(ui->firstName);
 | 
				
			||||||
 | 
					    m_addressBinder->registerBinding(ui->lastName);
 | 
				
			||||||
 | 
					    m_addressBinder->registerBinding(ui->birthDate);
 | 
				
			||||||
 | 
					    m_addressBinder->registerBinding(ui->idCardNumber);
 | 
				
			||||||
 | 
					    m_addressBinder->registerBinding(ui->ztp);
 | 
				
			||||||
 | 
					    m_addressBinder->registerBinding(ui->addressStreet);
 | 
				
			||||||
 | 
					    m_addressBinder->registerBinding(ui->addressHouseNumber);
 | 
				
			||||||
 | 
					    m_addressBinder->registerBinding(ui->addressZipCode);
 | 
				
			||||||
 | 
					    m_addressBinder->registerBinding(ui->addressCity);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Service<CountryData> coutrySrv;
 | 
				
			||||||
 | 
					    m_addressBinder->registerBinding(ui->country, ComboData::createComboData(coutrySrv.all()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_addressBinder->setData(m_addrHelper->copyAddress().data());
 | 
				
			||||||
 | 
					    m_addressBinder->bindToUi();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_bindAddrCombo = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Service<AccService> serviceSrv;
 | 
				
			||||||
 | 
					    m_servicesModel = new AutoTableModel<AccService>(this);
 | 
				
			||||||
 | 
					    m_servicesModel->setData(serviceSrv.all());
 | 
				
			||||||
 | 
					    ui->tableServices->setModel(m_servicesModel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ui->tableServices->hideColumn(1);
 | 
				
			||||||
 | 
					    ui->tableServices->hideColumn(3);
 | 
				
			||||||
 | 
					    ui->tableServices->hideColumn(4);
 | 
				
			||||||
 | 
					    ui->tableServices->hideColumn(5);
 | 
				
			||||||
 | 
					    ui->tableServices->hideColumn(6);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ui->tableServices->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_itemsModel = new AutoTableModel<ServiceItem>();
 | 
				
			||||||
 | 
					    ui->tableItems->setModel(m_itemsModel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ui->tableItems->hideColumn(1);
 | 
				
			||||||
 | 
					    ui->tableItems->hideColumn(4);
 | 
				
			||||||
 | 
					    ui->tableItems->hideColumn(5);
 | 
				
			||||||
 | 
					    ui->tableItems->hideColumn(6);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ui->tableItems->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Stretch);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(ui->tableServices->selectionModel(), &QItemSelectionModel::currentRowChanged, [this](QModelIndex current, QModelIndex){
 | 
				
			||||||
 | 
					        ui->btnAddService->setEnabled(current.isValid());
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(ui->tableItems->selectionModel(), &QItemSelectionModel::currentRowChanged, [this](QModelIndex, QModelIndex){
 | 
				
			||||||
 | 
					        ui->btnRemoveService->setEnabled(!m_data->services().isEmpty());
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_saleHelper = new SaleHelper(this);
 | 
				
			||||||
 | 
					    m_saleBinder = new ObjectBinder(this);
 | 
				
			||||||
 | 
					    Service<Sale> saleSrv;
 | 
				
			||||||
 | 
					    m_saleBinder->registerBinding(ui->sale, ComboData::createComboData(saleSrv.all()));
 | 
				
			||||||
 | 
					    m_saleBinder->setData(m_saleHelper);
 | 
				
			||||||
 | 
					    m_saleBinder->bindToUi();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ui->tabPeople->setModel(m_peopleModel);
 | 
				
			||||||
 | 
					    ui->tabPeople->hideColumn(0);
 | 
				
			||||||
 | 
					    ui->tabPeople->hideColumn(1);
 | 
				
			||||||
 | 
					    ui->tabPeople->hideColumn(4);
 | 
				
			||||||
 | 
					    ui->tabPeople->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Stretch);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ui->tabServices->setModel(m_itemsModel);
 | 
				
			||||||
 | 
					    ui->tabServices->hideColumn(1);
 | 
				
			||||||
 | 
					    ui->tabServices->hideColumn(6);
 | 
				
			||||||
 | 
					    ui->tabServices->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
 | 
				
			||||||
 | 
					    ui->tabServices->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Stretch);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CampWizard::~CampWizard()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::setData(const CampDataPtr &data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_data = data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_dataBinder->setData(data.data());
 | 
				
			||||||
 | 
					    m_dataBinder->bindToUi();
 | 
				
			||||||
 | 
					    m_addrHelperBinder->bindToUi();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_peopleModel->setData(data->people());
 | 
				
			||||||
 | 
					    m_itemsModel->setData(data->services());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::on_btnAdd_clicked()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_addressBinder->bindToData();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    CampService srv;
 | 
				
			||||||
 | 
					    AddressBookService adbSrv;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ui->groupNew->isChecked())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        AddressbookDataPtr newAddr = adbSrv.copyAddress(m_addrHelper->copyAddress());
 | 
				
			||||||
 | 
					        adbSrv.save(newAddr);
 | 
				
			||||||
 | 
					        srv.addPerson(m_data, newAddr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        m_bindAddrCombo = false;
 | 
				
			||||||
 | 
					        m_addrHelperBinder->registerBinding(ui->address, ComboData::createComboData(adbSrv.all()));
 | 
				
			||||||
 | 
					        m_addrHelperBinder->bindToUi();
 | 
				
			||||||
 | 
					        m_bindAddrCombo = true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        srv.addPerson(m_data, m_addrHelper->addr());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_peopleModel->setData(m_data->people());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::on_address_currentIndexChanged(int)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (m_bindAddrCombo)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        AddressBookService adbSrv;
 | 
				
			||||||
 | 
					        m_addrHelperBinder->bindToData();
 | 
				
			||||||
 | 
					        m_addressBinder->setData(m_addrHelper->newAddress().data());
 | 
				
			||||||
 | 
					        m_addressBinder->bindToUi();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::on_btnRemove_clicked()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    AddressItemPtr selAddr = m_peopleModel->itemFromIndex(ui->tablePeople->currentIndex());
 | 
				
			||||||
 | 
					    m_data->removePerson(selAddr);
 | 
				
			||||||
 | 
					    m_peopleModel->setData(m_data->people());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ui->btnOwner->setEnabled(false);
 | 
				
			||||||
 | 
					    ui->btnRemove->setEnabled(false);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::on_btnOwner_clicked()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    CampService srv;
 | 
				
			||||||
 | 
					    AddressItemPtr selAddr = m_peopleModel->itemFromIndex(ui->tablePeople->currentIndex());
 | 
				
			||||||
 | 
					    srv.setOwner(m_data, selAddr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QModelIndex currIndex = ui->tablePeople->currentIndex();
 | 
				
			||||||
 | 
					    m_peopleModel->setData(m_data->people());
 | 
				
			||||||
 | 
					    ui->tablePeople->setCurrentIndex(currIndex);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::on_groupNew_clicked(bool checked)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (checked)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        ui->address->setEnabled(false);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        ui->address->setEnabled(true);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::on_CampWizard_currentIdChanged(int id)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (id == 2)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        CampService srv;
 | 
				
			||||||
 | 
					        srv.calculate(m_data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        m_dataBinder->bindToUi();
 | 
				
			||||||
 | 
					        m_itemsModel->setData(m_data->services());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ui->lFrom->setText(m_data->start().toString("d. M. yyyy"));
 | 
				
			||||||
 | 
					        ui->lTo->setText(m_data->end().toString("d. M. yyyy"));
 | 
				
			||||||
 | 
					        ui->lDays->setText(QString::number(m_data->start().daysTo(m_data->end())));
 | 
				
			||||||
 | 
					        ui->lOwner->setText(m_data->ownerAddress());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::on_btnAddService_clicked()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    AccServicePtr service = m_servicesModel->itemFromIndex(ui->tableServices->currentIndex());
 | 
				
			||||||
 | 
					    AddServiceDialog *dialog = new AddServiceDialog(service, this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dialog->setAttribute(Qt::WA_DeleteOnClose);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(dialog, &QDialog::accepted, [=](){
 | 
				
			||||||
 | 
					        CampService srv;
 | 
				
			||||||
 | 
					        srv.addService(m_data, service, dialog->price(), dialog->description());
 | 
				
			||||||
 | 
					        m_itemsModel->setData(m_data->services());
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dialog->show();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::on_btnRemoveService_clicked()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ServiceItemPtr item = m_itemsModel->itemFromIndex(ui->tableItems->currentIndex());
 | 
				
			||||||
 | 
					    m_data->removeServiceItem(item);
 | 
				
			||||||
 | 
					    m_itemsModel->setData(m_data->services());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ui->btnRemoveService->setEnabled(false);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::on_checkSale_clicked()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->sale->setEnabled(ui->checkSale->isChecked());
 | 
				
			||||||
 | 
					    applySale();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::applySale()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (m_data.isNull())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ui->checkSale->isChecked())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        m_saleBinder->bindToData();
 | 
				
			||||||
 | 
					        m_data->setSale(m_saleHelper->salePtr()->sale());
 | 
				
			||||||
 | 
					        m_data->setFixedSale(m_saleHelper->salePtr()->fixed());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        m_data->setSale(QDecDouble(0));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::on_sale_currentIndexChanged(int)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    applySale();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool CampWizard::validateCurrentPage()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_dataBinder->bindToData();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (currentPage() == ui->peoplePage && m_data->people().isEmpty())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        QMessageBox::critical(this, tr("Error"), tr("Add people."));
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (currentPage() == ui->peoplePage && m_data->start() >= m_data->end())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        QMessageBox::critical(this, tr("Error"), tr("Start date is after or equals end date."));
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (currentPage() == ui->servicePage && m_data->services().isEmpty())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        QMessageBox::critical(this, tr("Error"), tr("Add service."));
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampWizard::accept()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    CampService srv;
 | 
				
			||||||
 | 
					    srv.saveCamp(m_data);
 | 
				
			||||||
 | 
					    bool success = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(&srv, &IService::dbError, [this, &success](QString msg){
 | 
				
			||||||
 | 
					        QMessageBox::critical(this, tr("Database error"), tr(msg.toStdString().c_str()));
 | 
				
			||||||
 | 
					        success = false;
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(&srv, &IService::permissionDenied, [this, &success](QString msg){
 | 
				
			||||||
 | 
					        QMessageBox::critical(this, "Permission denied", msg.toStdString().c_str());
 | 
				
			||||||
 | 
					        success = false;
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (success)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        QDialog::accept();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,115 @@
 | 
				
			|||||||
 | 
					#ifndef CAMPWIZARD_H
 | 
				
			||||||
 | 
					#define CAMPWIZARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QWizard>
 | 
				
			||||||
 | 
					#include "data/camp-data.h"
 | 
				
			||||||
 | 
					#include <objectbinder.h>
 | 
				
			||||||
 | 
					#include <data/addressbookdata.h>
 | 
				
			||||||
 | 
					#include <data/accservice.h>
 | 
				
			||||||
 | 
					#include <core.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class AddressHelper : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					    Q_PROPERTY(QSharedPointer<QObject> address READ address WRITE setAddress)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    AddressHelper(QObject *parent = NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QSharedPointer<QObject> address() const;
 | 
				
			||||||
 | 
					    void setAddress(const QSharedPointer<QObject> &address);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    AddressbookDataPtr addr() const;
 | 
				
			||||||
 | 
					    void setAddr(const AddressbookDataPtr &address);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    AddressbookDataPtr newAddress();
 | 
				
			||||||
 | 
					    AddressbookDataPtr copyAddress();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    AddressbookDataPtr m_address;
 | 
				
			||||||
 | 
					    AddressbookDataPtr m_copyAddress;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class SaleHelper : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					    Q_PROPERTY(QSharedPointer<QObject> sale READ sale WRITE setSale NOTIFY saleChanged)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    SaleHelper(QObject *parent = NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SalePtr salePtr() const;
 | 
				
			||||||
 | 
					    void setSalePtr(const SalePtr &sale);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QSharedPointer<QObject> sale() const;
 | 
				
			||||||
 | 
					    void setSale(const QSharedPointer<QObject> &sale);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
					    void saleChanged();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    SalePtr m_sale;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void on_address_currentIndexChanged(int index);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void on_btnRemove_clicked();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void on_btnOwner_clicked();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void on_groupNew_clicked(bool checked);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void on_CampWizard_currentIdChanged(int id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void on_btnAddService_clicked();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void on_btnRemoveService_clicked();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void on_checkSale_clicked();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void applySale();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void on_sale_currentIndexChanged(int index);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::CampWizard *ui;
 | 
				
			||||||
 | 
					    CampDataPtr m_data;
 | 
				
			||||||
 | 
					    ObjectBinder *m_dataBinder;
 | 
				
			||||||
 | 
					    ObjectBinder *m_addrHelperBinder;
 | 
				
			||||||
 | 
					    ObjectBinder *m_addressBinder;
 | 
				
			||||||
 | 
					    AddressHelper *m_addrHelper;
 | 
				
			||||||
 | 
					    ObjectBinder *m_saleBinder;
 | 
				
			||||||
 | 
					    SaleHelper *m_saleHelper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    AutoTableModel<AddressItem> *m_peopleModel;
 | 
				
			||||||
 | 
					    AutoTableModel<AccService> *m_servicesModel;
 | 
				
			||||||
 | 
					    AutoTableModel<ServiceItem> *m_itemsModel;
 | 
				
			||||||
 | 
					    bool m_bindAddrCombo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // QWizard interface
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    bool validateCurrentPage();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // QDialog interface
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					    void accept();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CAMPWIZARD_H
 | 
				
			||||||
@ -0,0 +1,845 @@
 | 
				
			|||||||
 | 
					<?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">
 | 
				
			||||||
 | 
					         <property name="maximumSize">
 | 
				
			||||||
 | 
					          <size>
 | 
				
			||||||
 | 
					           <width>450</width>
 | 
				
			||||||
 | 
					           <height>16777215</height>
 | 
				
			||||||
 | 
					          </size>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					         <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>0</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="maximumSize">
 | 
				
			||||||
 | 
					                <size>
 | 
				
			||||||
 | 
					                 <width>450</width>
 | 
				
			||||||
 | 
					                 <height>16777215</height>
 | 
				
			||||||
 | 
					                </size>
 | 
				
			||||||
 | 
					               </property>
 | 
				
			||||||
 | 
					               <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="Fixed">
 | 
				
			||||||
 | 
					              <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>false</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">
 | 
				
			||||||
 | 
					            <property name="minimumSize">
 | 
				
			||||||
 | 
					             <size>
 | 
				
			||||||
 | 
					              <width>380</width>
 | 
				
			||||||
 | 
					              <height>0</height>
 | 
				
			||||||
 | 
					             </size>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="editTriggers">
 | 
				
			||||||
 | 
					             <set>QAbstractItemView::NoEditTriggers</set>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="selectionBehavior">
 | 
				
			||||||
 | 
					             <enum>QAbstractItemView::SelectRows</enum>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					           </widget>
 | 
				
			||||||
 | 
					          </item>
 | 
				
			||||||
 | 
					         </layout>
 | 
				
			||||||
 | 
					        </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="tableServices"/>
 | 
				
			||||||
 | 
					       </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="btnAddService">
 | 
				
			||||||
 | 
					            <property name="enabled">
 | 
				
			||||||
 | 
					             <bool>false</bool>
 | 
				
			||||||
 | 
					            </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="iconSize">
 | 
				
			||||||
 | 
					             <size>
 | 
				
			||||||
 | 
					              <width>32</width>
 | 
				
			||||||
 | 
					              <height>32</height>
 | 
				
			||||||
 | 
					             </size>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="autoRaise">
 | 
				
			||||||
 | 
					             <bool>true</bool>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					           </widget>
 | 
				
			||||||
 | 
					          </item>
 | 
				
			||||||
 | 
					          <item>
 | 
				
			||||||
 | 
					           <widget class="QToolButton" name="btnRemoveService">
 | 
				
			||||||
 | 
					            <property name="enabled">
 | 
				
			||||||
 | 
					             <bool>false</bool>
 | 
				
			||||||
 | 
					            </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>32</width>
 | 
				
			||||||
 | 
					              <height>32</height>
 | 
				
			||||||
 | 
					             </size>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="autoRaise">
 | 
				
			||||||
 | 
					             <bool>true</bool>
 | 
				
			||||||
 | 
					            </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="tableItems"/>
 | 
				
			||||||
 | 
					       </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="checkSale">
 | 
				
			||||||
 | 
					         <property name="text">
 | 
				
			||||||
 | 
					          <string>Apply sale</string>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					        </widget>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item row="1" column="0">
 | 
				
			||||||
 | 
					        <widget class="QComboBox" name="sale">
 | 
				
			||||||
 | 
					         <property name="enabled">
 | 
				
			||||||
 | 
					          <bool>false</bool>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					        </widget>
 | 
				
			||||||
 | 
					       </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="lFrom">
 | 
				
			||||||
 | 
					            <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="lTo">
 | 
				
			||||||
 | 
					            <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="lDays">
 | 
				
			||||||
 | 
					            <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="QWidget" name="widget_10" native="true">
 | 
				
			||||||
 | 
					         <layout class="QHBoxLayout" name="horizontalLayout_9">
 | 
				
			||||||
 | 
					          <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_23">
 | 
				
			||||||
 | 
					            <property name="text">
 | 
				
			||||||
 | 
					             <string>Owner:</string>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					           </widget>
 | 
				
			||||||
 | 
					          </item>
 | 
				
			||||||
 | 
					          <item>
 | 
				
			||||||
 | 
					           <widget class="QLabel" name="lOwner">
 | 
				
			||||||
 | 
					            <property name="text">
 | 
				
			||||||
 | 
					             <string>TextLabel</string>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					           </widget>
 | 
				
			||||||
 | 
					          </item>
 | 
				
			||||||
 | 
					          <item>
 | 
				
			||||||
 | 
					           <spacer name="horizontalSpacer_7">
 | 
				
			||||||
 | 
					            <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="tabPeople"/>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <widget class="QLabel" name="label_15">
 | 
				
			||||||
 | 
					         <property name="text">
 | 
				
			||||||
 | 
					          <string>Services:</string>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					        </widget>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <widget class="QTableView" name="tabServices"/>
 | 
				
			||||||
 | 
					       </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="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="0" column="1">
 | 
				
			||||||
 | 
					           <widget class="QDoubleSpinBox" name="totalSale">
 | 
				
			||||||
 | 
					            <property name="autoFillBackground">
 | 
				
			||||||
 | 
					             <bool>true</bool>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="frame">
 | 
				
			||||||
 | 
					             <bool>false</bool>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="readOnly">
 | 
				
			||||||
 | 
					             <bool>true</bool>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="buttonSymbols">
 | 
				
			||||||
 | 
					             <enum>QAbstractSpinBox::NoButtons</enum>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="maximum">
 | 
				
			||||||
 | 
					             <double>999999999.990000009536743</double>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					           </widget>
 | 
				
			||||||
 | 
					          </item>
 | 
				
			||||||
 | 
					          <item row="1" column="1">
 | 
				
			||||||
 | 
					           <widget class="QDoubleSpinBox" name="totalPrice">
 | 
				
			||||||
 | 
					            <property name="font">
 | 
				
			||||||
 | 
					             <font>
 | 
				
			||||||
 | 
					              <weight>75</weight>
 | 
				
			||||||
 | 
					              <bold>true</bold>
 | 
				
			||||||
 | 
					             </font>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="autoFillBackground">
 | 
				
			||||||
 | 
					             <bool>true</bool>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="frame">
 | 
				
			||||||
 | 
					             <bool>false</bool>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="readOnly">
 | 
				
			||||||
 | 
					             <bool>true</bool>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="buttonSymbols">
 | 
				
			||||||
 | 
					             <enum>QAbstractSpinBox::NoButtons</enum>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="maximum">
 | 
				
			||||||
 | 
					             <double>999999999.990000009536743</double>
 | 
				
			||||||
 | 
					            </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>btnAddService</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>btnRemoveService</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>tableItems</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>tabPeople</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>tabServices</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>pushButton_2</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>checkSale</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>sale</tabstop>
 | 
				
			||||||
 | 
					  <tabstop>tableServices</tabstop>
 | 
				
			||||||
 | 
					 </tabstops>
 | 
				
			||||||
 | 
					 <resources>
 | 
				
			||||||
 | 
					  <include location="camprc.qrc"/>
 | 
				
			||||||
 | 
					  <include location="../core/rc.qrc"/>
 | 
				
			||||||
 | 
					 </resources>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
@ -0,0 +1,99 @@
 | 
				
			|||||||
 | 
					#include "addressitem.h"
 | 
				
			||||||
 | 
					#include <define.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AddressItem::AddressItem(QObject *parent) : QObject(parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_id = 0;
 | 
				
			||||||
 | 
					    m_price = 0;
 | 
				
			||||||
 | 
					    m_owner = false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int AddressItem::id() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_id;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AddressItem::setId(int id)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_id = id;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString AddressItem::firstName() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_firstName;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AddressItem::setFirstName(const QString &firstName)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_firstName = firstName;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString AddressItem::lastName() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_lastName;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AddressItem::setLastName(const QString &lastName)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_lastName = lastName;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString AddressItem::address() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_address;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AddressItem::setAddress(const QString &address)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_address = address;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDecDouble AddressItem::price() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return TO_DEC(m_price);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AddressItem::setPrice(QDecDouble price)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_price = FROM_DEC(price);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QWeakPointer<CampData> AddressItem::campData() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_campData;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AddressItem::setCampData(const QWeakPointer<CampData> &campData)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_campData = campData;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool AddressItem::owner() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_owner;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AddressItem::setOwner(bool owner)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_owner = owner;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,70 @@
 | 
				
			|||||||
 | 
					#ifndef ADDRESSITEM_H
 | 
				
			||||||
 | 
					#define ADDRESSITEM_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "camp-data.h"
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <QSharedPointer>
 | 
				
			||||||
 | 
					#include <QWeakPointer>
 | 
				
			||||||
 | 
					#include <QDecDouble.hh>
 | 
				
			||||||
 | 
					#include <odb/core.hxx>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <addressbookdata.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CampData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#pragma db object
 | 
				
			||||||
 | 
					class AddressItem : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					    Q_PROPERTY(QString firstName READ firstName WRITE setFirstName)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QString lastName READ lastName WRITE setLastName)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QString address READ address WRITE setAddress)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QDecDouble price READ price WRITE setPrice)
 | 
				
			||||||
 | 
					    Q_PROPERTY(bool owner READ owner WRITE setOwner)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit AddressItem(QObject *parent = 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int id() const;
 | 
				
			||||||
 | 
					    void setId(int id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString firstName() const;
 | 
				
			||||||
 | 
					    void setFirstName(const QString &firstName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString lastName() const;
 | 
				
			||||||
 | 
					    void setLastName(const QString &lastName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString address() const;
 | 
				
			||||||
 | 
					    void setAddress(const QString &address);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDecDouble price() const;
 | 
				
			||||||
 | 
					    void setPrice(QDecDouble price);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QWeakPointer<CampData> campData() const;
 | 
				
			||||||
 | 
					    void setCampData(const QWeakPointer<CampData> &campData);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PersonPricePtr personPrice() const;
 | 
				
			||||||
 | 
					    void setPersonPrice(const PersonPricePtr &personPrice);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    AddressbookDataPtr adbItem() const;
 | 
				
			||||||
 | 
					    void setAdbItem(const AddressbookDataPtr &adbItem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bool owner() const;
 | 
				
			||||||
 | 
					    void setOwner(bool owner);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    friend class odb::access;
 | 
				
			||||||
 | 
					#pragma db id auto
 | 
				
			||||||
 | 
					    int m_id;
 | 
				
			||||||
 | 
					    QString m_firstName;
 | 
				
			||||||
 | 
					    QString m_lastName;
 | 
				
			||||||
 | 
					    QString m_address;
 | 
				
			||||||
 | 
					    AddressbookDataPtr m_adbItem;
 | 
				
			||||||
 | 
					    int m_price;
 | 
				
			||||||
 | 
					    #pragma db not_null
 | 
				
			||||||
 | 
					    QWeakPointer<CampData> m_campData;
 | 
				
			||||||
 | 
					    PersonPricePtr m_personPrice;
 | 
				
			||||||
 | 
					    bool m_owner;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // ADDRESSITEM_H
 | 
				
			||||||
@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					#ifndef CAMP_DATA_H
 | 
				
			||||||
 | 
					#define CAMP_DATA_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QSharedPointer>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CampData;
 | 
				
			||||||
 | 
					class AddressItem;
 | 
				
			||||||
 | 
					class ServiceItem;
 | 
				
			||||||
 | 
					class Sale;
 | 
				
			||||||
 | 
					class PersonPrice;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef QSharedPointer<CampData> CampDataPtr;
 | 
				
			||||||
 | 
					typedef QSharedPointer<ServiceItem> ServiceItemPtr;
 | 
				
			||||||
 | 
					typedef QSharedPointer<AddressItem> AddressItemPtr;
 | 
				
			||||||
 | 
					typedef QSharedPointer<Sale> SalePtr;
 | 
				
			||||||
 | 
					typedef QSharedPointer<PersonPrice> PersonPricePtr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "campdata.h"
 | 
				
			||||||
 | 
					#include "addressitem.h"
 | 
				
			||||||
 | 
					#include "serviceitem.h"
 | 
				
			||||||
 | 
					#include "sale.h"
 | 
				
			||||||
 | 
					#include "personprice.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CAMP_DATA_H
 | 
				
			||||||
@ -0,0 +1,181 @@
 | 
				
			|||||||
 | 
					#include "campdata.h"
 | 
				
			||||||
 | 
					#include <define.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CampData::CampData(QObject *parent) : QObject(parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_id = 0;
 | 
				
			||||||
 | 
					    m_totalPrice = 0;
 | 
				
			||||||
 | 
					    m_sale = 0;
 | 
				
			||||||
 | 
					    m_totalSale = 0;
 | 
				
			||||||
 | 
					    m_ownerFirstame = false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int CampData::id() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_id;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setId(int id)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_id = id;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDate CampData::start() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_start;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setStart(const QDate &start)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_start = start;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDate CampData::end() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_end;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setEnd(const QDate &end)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_end = end;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString CampData::ownerFirstame() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_ownerFirstame;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setOwnerFirstame(const QString &ownerFirstame)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_ownerFirstame = ownerFirstame;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString CampData::ownerLastname() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_ownerLastname;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setOwnerLastname(const QString &ownerLastname)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_ownerLastname = ownerLastname;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString CampData::ownerAddress() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_ownerAddress;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setOwnerAddress(const QString &ownerAddress)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_ownerAddress = ownerAddress;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QOdbList<ServiceItemPtr> CampData::services() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_services;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setServices(const QOdbList<QSharedPointer<ServiceItem> > &services)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_services = services;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::addServiceItem(ServiceItemPtr serviceItem)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_services.append(serviceItem);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::removeServiceItem(ServiceItemPtr serviceItem)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_services.removeOne(serviceItem);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QOdbList<AddressItemPtr> CampData::people() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_people;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setPeople(const QOdbList<AddressItemPtr> &people)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_people = people;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::addPerson(AddressItemPtr person)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_people.append(person);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::removePerson(AddressItemPtr person)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_people.removeOne(person);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDecDouble CampData::totalPrice() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return TO_DEC(m_totalPrice);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setTotalPrice(QDecDouble totalPrice)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_totalPrice = FROM_DEC(totalPrice);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SeasonPtr CampData::season() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_season;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setSeason(const SeasonPtr &season)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_season = season;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDecDouble CampData::totalSale() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return TO_DEC(m_totalSale);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setTotalSale(QDecDouble totalSale)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_totalSale = FROM_DEC(totalSale);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDecDouble CampData::fullPrice() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return TO_DEC(m_fullPrice);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampData::setFullPrice(QDecDouble fullPrice)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_fullPrice = FROM_DEC(fullPrice);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,102 @@
 | 
				
			|||||||
 | 
					#ifndef CAMPDATA_H
 | 
				
			||||||
 | 
					#define CAMPDATA_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "camp-data.h"
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <QDate>
 | 
				
			||||||
 | 
					#include <QDecDouble.hh>
 | 
				
			||||||
 | 
					#include <odb/core.hxx>
 | 
				
			||||||
 | 
					#include <odb/qt/list.hxx>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <data/season.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#pragma db object
 | 
				
			||||||
 | 
					class CampData : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					    Q_PROPERTY(QString numSer READ numSer WRITE setNumSer)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QDate start READ start WRITE setStart)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QDate end READ end WRITE setEnd)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QString ownerFirstame READ ownerFirstame WRITE setOwnerFirstame)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QString ownerLastname READ ownerLastname WRITE setOwnerLastname)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QString ownerAddress READ ownerAddress WRITE setOwnerAddress)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QDecDouble totalPrice READ totalPrice WRITE setTotalPrice)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QDecDouble sale READ sale WRITE setSale)
 | 
				
			||||||
 | 
					    Q_PROPERTY(bool fixedSale READ fixedSale WRITE setFixedSale)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QDecDouble totalSale READ totalSale WRITE setTotalSale)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit CampData(QObject *parent = 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int id() const;
 | 
				
			||||||
 | 
					    void setId(int id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDate start() const;
 | 
				
			||||||
 | 
					    void setStart(const QDate &start);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDate end() const;
 | 
				
			||||||
 | 
					    void setEnd(const QDate &end);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString ownerFirstame() const;
 | 
				
			||||||
 | 
					    void setOwnerFirstame(const QString &ownerFirstame);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString ownerLastname() const;
 | 
				
			||||||
 | 
					    void setOwnerLastname(const QString &ownerLastname);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString ownerAddress() const;
 | 
				
			||||||
 | 
					    void setOwnerAddress(const QString &ownerAddress);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QOdbList<QSharedPointer<ServiceItem> > services() const;
 | 
				
			||||||
 | 
					    void setServices(const QOdbList<QSharedPointer<ServiceItem> > &services);
 | 
				
			||||||
 | 
					    void addServiceItem(ServiceItemPtr serviceItem);
 | 
				
			||||||
 | 
					    void removeServiceItem(ServiceItemPtr serviceItem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QOdbList<AddressItemPtr> people() const;
 | 
				
			||||||
 | 
					    void setPeople(const QOdbList<AddressItemPtr> &people);
 | 
				
			||||||
 | 
					    void addPerson(AddressItemPtr person);
 | 
				
			||||||
 | 
					    void removePerson(AddressItemPtr person);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDecDouble totalPrice() const;
 | 
				
			||||||
 | 
					    void setTotalPrice(QDecDouble totalPrice);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SeasonPtr season() const;
 | 
				
			||||||
 | 
					    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);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDecDouble totalSale() const;
 | 
				
			||||||
 | 
					    void setTotalSale(QDecDouble totalSale);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDecDouble fullPrice() const;
 | 
				
			||||||
 | 
					    void setFullPrice(QDecDouble fullPrice);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    friend class odb::access;
 | 
				
			||||||
 | 
					#pragma db id auto
 | 
				
			||||||
 | 
					    int m_id;
 | 
				
			||||||
 | 
					    QString m_numSer;
 | 
				
			||||||
 | 
					    QDate m_start;
 | 
				
			||||||
 | 
					    QDate m_end;
 | 
				
			||||||
 | 
					    QString m_ownerFirstame;
 | 
				
			||||||
 | 
					    QString m_ownerLastname;
 | 
				
			||||||
 | 
					    QString m_ownerAddress;
 | 
				
			||||||
 | 
					    #pragma db value_not_null inverse(m_campData)
 | 
				
			||||||
 | 
					    QOdbList<ServiceItemPtr> m_services;
 | 
				
			||||||
 | 
					    #pragma db value_not_null inverse(m_campData)
 | 
				
			||||||
 | 
					    QOdbList<AddressItemPtr> m_people;
 | 
				
			||||||
 | 
					    int m_fullPrice;
 | 
				
			||||||
 | 
					    int m_totalPrice;
 | 
				
			||||||
 | 
					    int m_sale;
 | 
				
			||||||
 | 
					    int m_totalSale;
 | 
				
			||||||
 | 
					    bool m_fixedSale;
 | 
				
			||||||
 | 
					    SeasonPtr m_season;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CAMPDATA_H
 | 
				
			||||||
@ -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,66 @@
 | 
				
			|||||||
 | 
					#include "sale.h"
 | 
				
			||||||
 | 
					#include <define.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Sale::Sale(QObject *parent) : ComboItem(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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool Sale::eq(ComboItem *other)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Sale *sale = qobject_cast<Sale*>(other);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (sale == NULL)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return this->m_id == sale->m_id && this->m_sale == sale->m_sale && this->m_fixed == sale->m_fixed;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString Sale::toString()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_description;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					#ifndef SALE_H
 | 
				
			||||||
 | 
					#define SALE_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <odb/core.hxx>
 | 
				
			||||||
 | 
					#include <QDecDouble.hh>
 | 
				
			||||||
 | 
					#include <combodata.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#pragma db object
 | 
				
			||||||
 | 
					class Sale : public ComboItem
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // ComboItem interface
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    bool eq(ComboItem *other);
 | 
				
			||||||
 | 
					    QString toString();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // SALE_H
 | 
				
			||||||
@ -0,0 +1,122 @@
 | 
				
			|||||||
 | 
					#include "serviceitem.h"
 | 
				
			||||||
 | 
					#include <define.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ServiceItem::ServiceItem(QObject *parent) : QObject(parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_id = 0;
 | 
				
			||||||
 | 
					    m_salePossible = false;
 | 
				
			||||||
 | 
					    m_sale = 0;
 | 
				
			||||||
 | 
					    m_price = 0;
 | 
				
			||||||
 | 
					    m_totalPrice = 0;
 | 
				
			||||||
 | 
					    m_type = AccService::OTHER;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ServiceItem::id() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_id;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ServiceItem::setId(int id)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_id = id;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString ServiceItem::name() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_name;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ServiceItem::setName(const QString &name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_name = name;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString ServiceItem::code() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_code;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ServiceItem::setCode(const QString &code)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_code = code;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDecDouble ServiceItem::price() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return TO_DEC(m_price);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ServiceItem::setPrice(QDecDouble price)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_price = FROM_DEC(price);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool ServiceItem::salePossible() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_salePossible;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ServiceItem::setSalePossible(bool salePossible)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_salePossible = salePossible;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AccService::ServiceType ServiceItem::type() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_type;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ServiceItem::setType(const AccService::ServiceType &type)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_type = type;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QWeakPointer<CampData> ServiceItem::campData() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_campData;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ServiceItem::setCampData(const QWeakPointer<CampData> &campData)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_campData = campData;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString ServiceItem::description() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_description;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ServiceItem::setDescription(const QString &description)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_description = description;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDecDouble ServiceItem::sale() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return TO_DEC(m_sale);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ServiceItem::setSale(QDecDouble sale)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_sale = FROM_DEC(sale);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDecDouble ServiceItem::totalPrice() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return TO_DEC(m_totalPrice);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ServiceItem::setTotalPrice(QDecDouble totalPrice)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_totalPrice = FROM_DEC(totalPrice);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QDecDouble ServiceItem::fullPrice() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return TO_DEC(m_fullPrice);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ServiceItem::setFullPrice(QDecDouble fullPrice)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_fullPrice = FROM_DEC(fullPrice);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,81 @@
 | 
				
			|||||||
 | 
					#ifndef SREVICEITEM_H
 | 
				
			||||||
 | 
					#define SREVICEITEM_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "camp-data.h"
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <QSharedPointer>
 | 
				
			||||||
 | 
					#include <QWeakPointer>
 | 
				
			||||||
 | 
					#include <QDecDouble.hh>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <odb/core.hxx>
 | 
				
			||||||
 | 
					#include <accservice.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CampData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#pragma db object
 | 
				
			||||||
 | 
					class ServiceItem : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					    Q_PROPERTY(QString name READ name WRITE setName)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QString code READ code WRITE setCode)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QString description READ description WRITE setDescription)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QDecDouble price READ price WRITE setPrice)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QDecDouble sale READ sale WRITE setSale)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QDecDouble totalPrice READ totalPrice WRITE setTotalPrice)
 | 
				
			||||||
 | 
					    Q_PROPERTY(AccService::ServiceType type READ type WRITE setType)
 | 
				
			||||||
 | 
					    Q_ENUMS(AccService::ServiceType)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit ServiceItem(QObject *parent = 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int id() const;
 | 
				
			||||||
 | 
					    void setId(int id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString name() const;
 | 
				
			||||||
 | 
					    void setName(const QString &name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString code() const;
 | 
				
			||||||
 | 
					    void setCode(const QString &code);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDecDouble price() const;
 | 
				
			||||||
 | 
					    void setPrice(QDecDouble price);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bool salePossible() const;
 | 
				
			||||||
 | 
					    void setSalePossible(bool salePossible);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    AccService::ServiceType type() const;
 | 
				
			||||||
 | 
					    void setType(const AccService::ServiceType &type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QWeakPointer<CampData> campData() const;
 | 
				
			||||||
 | 
					    void setCampData(const QWeakPointer<CampData> &campData);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString description() const;
 | 
				
			||||||
 | 
					    void setDescription(const QString &description);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDecDouble sale() const;
 | 
				
			||||||
 | 
					    void setSale(QDecDouble sale);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDecDouble totalPrice() const;
 | 
				
			||||||
 | 
					    void setTotalPrice(QDecDouble totalPrice);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDecDouble fullPrice() const;
 | 
				
			||||||
 | 
					    void setFullPrice(QDecDouble fullPrice);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    friend class odb::access;
 | 
				
			||||||
 | 
					#pragma db id auto
 | 
				
			||||||
 | 
					    int m_id;
 | 
				
			||||||
 | 
					    QString m_name;
 | 
				
			||||||
 | 
					    QString m_code;
 | 
				
			||||||
 | 
					    QString m_description;
 | 
				
			||||||
 | 
					    int m_price;
 | 
				
			||||||
 | 
					    int m_fullPrice;
 | 
				
			||||||
 | 
					    int m_totalPrice;
 | 
				
			||||||
 | 
					    int m_sale;
 | 
				
			||||||
 | 
					    bool m_salePossible;
 | 
				
			||||||
 | 
					    AccService::ServiceType m_type;
 | 
				
			||||||
 | 
					    #pragma db not_null
 | 
				
			||||||
 | 
					    QWeakPointer<CampData> m_campData;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // SREVICEITEM_H
 | 
				
			||||||
@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" ?><svg clip-rule="evenodd" fill-rule="evenodd" image-rendering="optimizeQuality" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" viewBox="0 0 5000 5000" xmlns="http://www.w3.org/2000/svg"><defs><style type="text/css"><![CDATA[
 | 
				
			||||||
 | 
					    .str1 {stroke:#434242;stroke-width:100}
 | 
				
			||||||
 | 
					    .str0 {stroke:#434242;stroke-width:300;stroke-linecap:round}
 | 
				
			||||||
 | 
					    .fil0 {fill:none}
 | 
				
			||||||
 | 
					    .fil1 {fill:#434242}
 | 
				
			||||||
 | 
					    .fil2 {fill:url(#id0)}
 | 
				
			||||||
 | 
					   ]]></style><linearGradient gradientUnits="userSpaceOnUse" id="id0" x1="2500.01" x2="2500.01" y1="4260.19" y2="1474.81"><stop offset="0" stop-color="#008BFF"/><stop offset="1" stop-color="#0af"/></linearGradient></defs><g id="Layer_x0020_1"><path class="fil0 str0" d="M300 2000l2050-1600c100-50 200-50 300 0l2050 1500"/><path class="fil1" d="M3500 1022l600 439v-861c0-55-45-100-100-100h-400c-55 0-100 45-100 100v422z"/><path class="fil2 str1" d="M899 4700h901v-1500c0-110 90-200 200-200h900c110 0 200 90 200 200v1500h1001c165 0 300-135 300-300l-1-2000-1776-1328c-33-26-79-37-124-36s-92 14-127 40l-1773 1324-1 2000c0 165 135 300 300 300z"/></g></svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
@ -0,0 +1,70 @@
 | 
				
			|||||||
 | 
					#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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int CampSettings::accFeeStartAge() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_accFeeStartAge;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampSettings::setAccFeeStartAge(int accFeeStartAge)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_accFeeStartAge = accFeeStartAge;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int CampSettings::accFeeEndAge() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_accFeeEndAge;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampSettings::setAccFeeEndAge(int accFeeEndAge)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_accFeeEndAge = accFeeEndAge;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString CampSettings::accFeeText() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_accFeeText;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CampSettings::setAccFeeText(const QString &accFeeText)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_accFeeText = accFeeText;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					#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(int accFeeStartAge READ accFeeStartAge WRITE setAccFeeStartAge)
 | 
				
			||||||
 | 
					    Q_PROPERTY(int accFeeEndAge READ accFeeEndAge WRITE setAccFeeEndAge)
 | 
				
			||||||
 | 
					    Q_PROPERTY(Enums::Rounding rounding READ rounding WRITE setRounding)
 | 
				
			||||||
 | 
					    Q_PROPERTY(int decimalPlaces READ decimalPlaces WRITE setDecimalPlaces)
 | 
				
			||||||
 | 
					    Q_PROPERTY(QString accFeeText READ accFeeText WRITE setAccFeeText)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int accFeeStartAge() const;
 | 
				
			||||||
 | 
					    void setAccFeeStartAge(int accFeeStartAge);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int accFeeEndAge() const;
 | 
				
			||||||
 | 
					    void setAccFeeEndAge(int accFeeEndAge);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString accFeeText() const;
 | 
				
			||||||
 | 
					    void setAccFeeText(const QString &accFeeText);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    int m_accFee;
 | 
				
			||||||
 | 
					    int m_accFeeStartAge;
 | 
				
			||||||
 | 
					    int m_accFeeEndAge;
 | 
				
			||||||
 | 
					    QString m_accFeeText;
 | 
				
			||||||
 | 
					    Enums::Rounding m_rounding;
 | 
				
			||||||
 | 
					    int m_decimalPlaces;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef QSharedPointer<CampSettings> CampSettingsPtr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CAMPSETTINGS_H
 | 
				
			||||||
@ -0,0 +1,175 @@
 | 
				
			|||||||
 | 
					#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->accFeeStartAge);
 | 
				
			||||||
 | 
					    registerBinding(ui->accFeeEndAge);
 | 
				
			||||||
 | 
					    registerBinding(ui->decimalPlaces);
 | 
				
			||||||
 | 
					    registerBinding(ui->accFeeText);
 | 
				
			||||||
 | 
					    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,333 @@
 | 
				
			|||||||
 | 
					<?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>995</width>
 | 
				
			||||||
 | 
					    <height>641</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Form</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QHBoxLayout" name="horizontalLayout_3">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QWidget" name="widget_3" native="true">
 | 
				
			||||||
 | 
					     <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">
 | 
				
			||||||
 | 
					           <property name="minimumSize">
 | 
				
			||||||
 | 
					            <size>
 | 
				
			||||||
 | 
					             <width>550</width>
 | 
				
			||||||
 | 
					             <height>0</height>
 | 
				
			||||||
 | 
					            </size>
 | 
				
			||||||
 | 
					           </property>
 | 
				
			||||||
 | 
					          </widget>
 | 
				
			||||||
 | 
					         </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>
 | 
				
			||||||
 | 
					     </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="2" column="0">
 | 
				
			||||||
 | 
					       <widget class="QLabel" name="label">
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Accommodation fee</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item row="6" column="0">
 | 
				
			||||||
 | 
					       <widget class="QLabel" name="label_2">
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Rounding</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item row="6" column="1">
 | 
				
			||||||
 | 
					       <widget class="QComboBox" name="rounding"/>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item row="7" column="0">
 | 
				
			||||||
 | 
					       <widget class="QLabel" name="decimalPlaceslab">
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Decimal places</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item row="7" 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="3" column="0">
 | 
				
			||||||
 | 
					       <widget class="QLabel" name="label_3">
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Fee start age</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item row="3" column="1">
 | 
				
			||||||
 | 
					       <widget class="QSpinBox" name="accFeeStartAge">
 | 
				
			||||||
 | 
					        <property name="buttonSymbols">
 | 
				
			||||||
 | 
					         <enum>QAbstractSpinBox::NoButtons</enum>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item row="2" 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>
 | 
				
			||||||
 | 
					      <item row="4" column="0">
 | 
				
			||||||
 | 
					       <widget class="QLabel" name="label_4">
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Fee end age</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item row="4" column="1">
 | 
				
			||||||
 | 
					       <widget class="QSpinBox" name="accFeeEndAge">
 | 
				
			||||||
 | 
					        <property name="buttonSymbols">
 | 
				
			||||||
 | 
					         <enum>QAbstractSpinBox::NoButtons</enum>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item row="5" column="0">
 | 
				
			||||||
 | 
					       <widget class="QLabel" name="label_5">
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Fee description</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item row="5" column="1">
 | 
				
			||||||
 | 
					       <widget class="QLineEdit" name="accFeeText"/>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					     </layout>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources>
 | 
				
			||||||
 | 
					  <include location="../../core/rc.qrc"/>
 | 
				
			||||||
 | 
					 </resources>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
											
												Binary file not shown.
											
										
									
								@ -0,0 +1,376 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<!DOCTYPE TS>
 | 
				
			||||||
 | 
					<TS version="2.1" language="cs_CZ">
 | 
				
			||||||
 | 
					<context>
 | 
				
			||||||
 | 
					    <name>AddServiceDialog</name>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../addservicedialog.ui" line="14"/>
 | 
				
			||||||
 | 
					        <source>Dialog</source>
 | 
				
			||||||
 | 
					        <translation>Služba</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../addservicedialog.ui" line="20"/>
 | 
				
			||||||
 | 
					        <source>Service name</source>
 | 
				
			||||||
 | 
					        <translation>Jméno služby</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../addservicedialog.ui" line="47"/>
 | 
				
			||||||
 | 
					        <source>Description</source>
 | 
				
			||||||
 | 
					        <translation>Popis</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../addservicedialog.ui" line="64"/>
 | 
				
			||||||
 | 
					        <source>Price</source>
 | 
				
			||||||
 | 
					        <translation>Cena</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					</context>
 | 
				
			||||||
 | 
					<context>
 | 
				
			||||||
 | 
					    <name>CampForm</name>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campform.ui" line="14"/>
 | 
				
			||||||
 | 
					        <source>Form</source>
 | 
				
			||||||
 | 
					        <translation>Ubytování</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					</context>
 | 
				
			||||||
 | 
					<context>
 | 
				
			||||||
 | 
					    <name>CampSettingsForm</name>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="14"/>
 | 
				
			||||||
 | 
					        <source>Form</source>
 | 
				
			||||||
 | 
					        <translation>Nastavení ubytování</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="23"/>
 | 
				
			||||||
 | 
					        <source>Person prices</source>
 | 
				
			||||||
 | 
					        <translation>Ubytování lidí</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="44"/>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="174"/>
 | 
				
			||||||
 | 
					        <source>Add</source>
 | 
				
			||||||
 | 
					        <translation>Nový</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="47"/>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="67"/>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="87"/>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="107"/>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="177"/>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="197"/>
 | 
				
			||||||
 | 
					        <source>...</source>
 | 
				
			||||||
 | 
					        <translation>...</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="64"/>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="194"/>
 | 
				
			||||||
 | 
					        <source>Remove</source>
 | 
				
			||||||
 | 
					        <translation>Odebrat</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="84"/>
 | 
				
			||||||
 | 
					        <source>Deactivate</source>
 | 
				
			||||||
 | 
					        <translation>Odstranit</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="104"/>
 | 
				
			||||||
 | 
					        <source>Filter active</source>
 | 
				
			||||||
 | 
					        <translation>Filtr</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="153"/>
 | 
				
			||||||
 | 
					        <source>Sales</source>
 | 
				
			||||||
 | 
					        <translation>Slevy</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="236"/>
 | 
				
			||||||
 | 
					        <source>Other settings</source>
 | 
				
			||||||
 | 
					        <translation>Ostatní nastavení</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="242"/>
 | 
				
			||||||
 | 
					        <source>Accommodation fee</source>
 | 
				
			||||||
 | 
					        <translation>Rekreační poplatek</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="249"/>
 | 
				
			||||||
 | 
					        <source>Rounding</source>
 | 
				
			||||||
 | 
					        <translation>Zaokrouhlování</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="259"/>
 | 
				
			||||||
 | 
					        <source>Decimal places</source>
 | 
				
			||||||
 | 
					        <translation>Desetinných míst</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="279"/>
 | 
				
			||||||
 | 
					        <source>Fee start age</source>
 | 
				
			||||||
 | 
					        <translation>Poplatek od věku</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="303"/>
 | 
				
			||||||
 | 
					        <source>Fee end age</source>
 | 
				
			||||||
 | 
					        <translation>Poplatek do věku</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.ui" line="317"/>
 | 
				
			||||||
 | 
					        <source>Fee description</source>
 | 
				
			||||||
 | 
					        <translation>Název na dokladu</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.cpp" line="45"/>
 | 
				
			||||||
 | 
					        <source>None</source>
 | 
				
			||||||
 | 
					        <translation>Žádné</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.cpp" line="46"/>
 | 
				
			||||||
 | 
					        <source>Up</source>
 | 
				
			||||||
 | 
					        <translation>Nahoru</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.cpp" line="47"/>
 | 
				
			||||||
 | 
					        <source>Down</source>
 | 
				
			||||||
 | 
					        <translation>Dolu</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.cpp" line="48"/>
 | 
				
			||||||
 | 
					        <source>Mathematic</source>
 | 
				
			||||||
 | 
					        <translation>Matematické</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.cpp" line="68"/>
 | 
				
			||||||
 | 
					        <source>Cannot delete</source>
 | 
				
			||||||
 | 
					        <translation>Nelze smazat</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../settings/campsettingsform.cpp" line="68"/>
 | 
				
			||||||
 | 
					        <source>Price already used</source>
 | 
				
			||||||
 | 
					        <translation>Cena je používána</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					</context>
 | 
				
			||||||
 | 
					<context>
 | 
				
			||||||
 | 
					    <name>CampWizard</name>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="17"/>
 | 
				
			||||||
 | 
					        <source>Camp record</source>
 | 
				
			||||||
 | 
					        <translation>Nové ubytování</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="37"/>
 | 
				
			||||||
 | 
					        <source>From</source>
 | 
				
			||||||
 | 
					        <translation>Od</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="44"/>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="61"/>
 | 
				
			||||||
 | 
					        <source>d. M. yyyy</source>
 | 
				
			||||||
 | 
					        <translation></translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="54"/>
 | 
				
			||||||
 | 
					        <source>To</source>
 | 
				
			||||||
 | 
					        <translation>Do</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="87"/>
 | 
				
			||||||
 | 
					        <source>People</source>
 | 
				
			||||||
 | 
					        <translation>Ubytovaný</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="102"/>
 | 
				
			||||||
 | 
					        <source>Existing address</source>
 | 
				
			||||||
 | 
					        <translation>Existující adresa</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="109"/>
 | 
				
			||||||
 | 
					        <source>Add</source>
 | 
				
			||||||
 | 
					        <translation>Přidat</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <source>New address</source>
 | 
				
			||||||
 | 
					        <translation type="vanished">Nová adresa</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="132"/>
 | 
				
			||||||
 | 
					        <source>&New address</source>
 | 
				
			||||||
 | 
					        <translation>&Nová adresa</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="144"/>
 | 
				
			||||||
 | 
					        <source>Title</source>
 | 
				
			||||||
 | 
					        <translation>Titul</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="154"/>
 | 
				
			||||||
 | 
					        <source>First name</source>
 | 
				
			||||||
 | 
					        <translation>Křestní jméno</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="164"/>
 | 
				
			||||||
 | 
					        <source>Last name</source>
 | 
				
			||||||
 | 
					        <translation>Příjmení</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="174"/>
 | 
				
			||||||
 | 
					        <source>Date of birth</source>
 | 
				
			||||||
 | 
					        <translation>Datum narození</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="181"/>
 | 
				
			||||||
 | 
					        <source>d. MM. yyyy</source>
 | 
				
			||||||
 | 
					        <translation></translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="191"/>
 | 
				
			||||||
 | 
					        <source>ID card</source>
 | 
				
			||||||
 | 
					        <translation>Číslo dokladu</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="201"/>
 | 
				
			||||||
 | 
					        <source>ZTP</source>
 | 
				
			||||||
 | 
					        <translation>ZTP</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="208"/>
 | 
				
			||||||
 | 
					        <source>Street</source>
 | 
				
			||||||
 | 
					        <translation>Ulice</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="218"/>
 | 
				
			||||||
 | 
					        <source>House number</source>
 | 
				
			||||||
 | 
					        <translation>Číslo popisné</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="228"/>
 | 
				
			||||||
 | 
					        <source>ZIP code</source>
 | 
				
			||||||
 | 
					        <translation>PSČ</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="238"/>
 | 
				
			||||||
 | 
					        <source>City</source>
 | 
				
			||||||
 | 
					        <translation>Město</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="248"/>
 | 
				
			||||||
 | 
					        <source>Country</source>
 | 
				
			||||||
 | 
					        <translation>Stát</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="327"/>
 | 
				
			||||||
 | 
					        <source>Remove</source>
 | 
				
			||||||
 | 
					        <translation>Odebrat</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="330"/>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="356"/>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="449"/>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="472"/>
 | 
				
			||||||
 | 
					        <source>...</source>
 | 
				
			||||||
 | 
					        <translation>...</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="353"/>
 | 
				
			||||||
 | 
					        <source>Owner</source>
 | 
				
			||||||
 | 
					        <translation>Vlastník</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="421"/>
 | 
				
			||||||
 | 
					        <source>Services</source>
 | 
				
			||||||
 | 
					        <translation>Služby</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="514"/>
 | 
				
			||||||
 | 
					        <source>Sale</source>
 | 
				
			||||||
 | 
					        <translation>Sleva</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="520"/>
 | 
				
			||||||
 | 
					        <source>Apply sale</source>
 | 
				
			||||||
 | 
					        <translation>Uplatnit slevu</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="541"/>
 | 
				
			||||||
 | 
					        <source>Summary</source>
 | 
				
			||||||
 | 
					        <translation>Shrnutí</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="559"/>
 | 
				
			||||||
 | 
					        <source>From:</source>
 | 
				
			||||||
 | 
					        <translation>Od:</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="566"/>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="580"/>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="622"/>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="664"/>
 | 
				
			||||||
 | 
					        <source>TextLabel</source>
 | 
				
			||||||
 | 
					        <translation></translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="573"/>
 | 
				
			||||||
 | 
					        <source>To:</source>
 | 
				
			||||||
 | 
					        <translation>Do:</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="615"/>
 | 
				
			||||||
 | 
					        <source>Days:</source>
 | 
				
			||||||
 | 
					        <translation>Počet dní:</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="657"/>
 | 
				
			||||||
 | 
					        <source>Owner:</source>
 | 
				
			||||||
 | 
					        <translation>Vlastník:</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="687"/>
 | 
				
			||||||
 | 
					        <source>People:</source>
 | 
				
			||||||
 | 
					        <translation>Ubytovaní:</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="697"/>
 | 
				
			||||||
 | 
					        <source>Services:</source>
 | 
				
			||||||
 | 
					        <translation>Služby:</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="710"/>
 | 
				
			||||||
 | 
					        <source>Sale:</source>
 | 
				
			||||||
 | 
					        <translation>Sleva:</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="723"/>
 | 
				
			||||||
 | 
					        <source>Total:</source>
 | 
				
			||||||
 | 
					        <translation>Celkem:</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.ui" line="780"/>
 | 
				
			||||||
 | 
					        <source>Print</source>
 | 
				
			||||||
 | 
					        <translation>Tisk</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.cpp" line="366"/>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.cpp" line="372"/>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.cpp" line="378"/>
 | 
				
			||||||
 | 
					        <source>Error</source>
 | 
				
			||||||
 | 
					        <translation>Chyba</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.cpp" line="366"/>
 | 
				
			||||||
 | 
					        <source>Add people.</source>
 | 
				
			||||||
 | 
					        <translation>Přidání lidí.</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.cpp" line="372"/>
 | 
				
			||||||
 | 
					        <source>Start date is after or equals end date.</source>
 | 
				
			||||||
 | 
					        <translation>Datum začátku je stejné nebo menší než datum konce.</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.cpp" line="378"/>
 | 
				
			||||||
 | 
					        <source>Add service.</source>
 | 
				
			||||||
 | 
					        <translation>Přidat službu.</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					    <message>
 | 
				
			||||||
 | 
					        <location filename="../campwizard.cpp" line="392"/>
 | 
				
			||||||
 | 
					        <source>Database error</source>
 | 
				
			||||||
 | 
					        <translation>Chyba databáze</translation>
 | 
				
			||||||
 | 
					    </message>
 | 
				
			||||||
 | 
					</context>
 | 
				
			||||||
 | 
					</TS>
 | 
				
			||||||
@ -0,0 +1,93 @@
 | 
				
			|||||||
 | 
					#include "csvimporter.h"
 | 
				
			||||||
 | 
					#include <QFile>
 | 
				
			||||||
 | 
					#include <QVariant>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CsvImporter::CsvImporter(const QMetaObject *metaObject, QObject *parent)
 | 
				
			||||||
 | 
					    :QObject(parent),
 | 
				
			||||||
 | 
					     IImporter(metaObject)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_parsed = false;
 | 
				
			||||||
 | 
					    m_currentRec = 1;
 | 
				
			||||||
 | 
					    m_error = false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CsvImporter::setImportFile(const QString &fileName)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_fileName = fileName;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int CsvImporter::recordCount()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (!m_parsed)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        parseFile();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return m_lines.count() - 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QSharedPointer<QObject> CsvImporter::nextRecord()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (!m_parsed)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        parseFile();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QObject *entity = m_metaObject->newInstance();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (entity == NULL || m_currentRec > recordCount())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        ++m_currentRec;
 | 
				
			||||||
 | 
					        return QSharedPointer<QObject>();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QStringList props = m_header.split(m_separator);
 | 
				
			||||||
 | 
					    QString line = m_lines[m_currentRec];
 | 
				
			||||||
 | 
					    QStringList values = line.split(m_separator);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (int i = 0; i < props.size(); i++) {
 | 
				
			||||||
 | 
					        QString property = props[i];
 | 
				
			||||||
 | 
					        QString value = values[i];
 | 
				
			||||||
 | 
					        if (!entity->setProperty(property.toStdString().c_str(), QVariant(value)))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            m_error = true;
 | 
				
			||||||
 | 
					            emit noSuchProperty(property);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ++m_currentRec;
 | 
				
			||||||
 | 
					            return QSharedPointer<QObject>();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ++m_currentRec;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return QSharedPointer<QObject>(entity);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool CsvImporter::isError()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return m_error;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CsvImporter::parseFile()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    QFile file(m_fileName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!file.open(QFile::ReadOnly | QFile::Text))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        m_error = true;
 | 
				
			||||||
 | 
					        emit parseError();
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QByteArray data = file.readAll();
 | 
				
			||||||
 | 
					    QString strData(data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    m_lines = strData.split("\n");
 | 
				
			||||||
 | 
					    m_header = m_lines[0];
 | 
				
			||||||
 | 
					    m_parsed = true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CsvImporter::setSeparator(const QString &separator)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_separator = separator;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					#ifndef CSVIMPORTER_H
 | 
				
			||||||
 | 
					#define CSVIMPORTER_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "iimporter.h"
 | 
				
			||||||
 | 
					#include <QStringList>
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CORESHARED_EXPORT CsvImporter : public QObject, public IImporter
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit CsvImporter(const QMetaObject *metaObject, QObject *parent = NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // IImporter interface
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    void setImportFile(const QString &fileName);
 | 
				
			||||||
 | 
					    int recordCount();
 | 
				
			||||||
 | 
					    QSharedPointer<QObject> nextRecord();
 | 
				
			||||||
 | 
					    bool isError();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void setSeparator(const QString &separator);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
					    void parseError();
 | 
				
			||||||
 | 
					    void noSuchProperty(QString propName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    void parseFile();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString m_header;
 | 
				
			||||||
 | 
					    QString m_separator;
 | 
				
			||||||
 | 
					    QString m_fileName;
 | 
				
			||||||
 | 
					    QStringList m_lines;
 | 
				
			||||||
 | 
					    bool m_parsed;
 | 
				
			||||||
 | 
					    bool m_error;
 | 
				
			||||||
 | 
					    int m_currentRec;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // CSVIMPORTER_H
 | 
				
			||||||
@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" ?><svg clip-rule="evenodd" fill-rule="evenodd" image-rendering="optimizeQuality" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg"><defs><linearGradient gradientUnits="userSpaceOnUse" id="a" x1="250" x2="250" y1="284.547" y2="122.267"><stop offset="0" stop-color="#008BFF"/><stop offset="1" stop-color="#0af"/></linearGradient></defs><g><circle cx="250" cy="250" fill="none" r="210" stroke="#434242" stroke-width="30"/><rect fill="#434242" height="29.998" rx="10" ry="10" width="260" x="120" y="350"/><path d="M270 90l60 60c5 5 10 10 10 20s-10 20-20 20h-40v125c0 8-7 15-15 15h-30c-8 0-15-7-15-15v-125h-40c-10 0-20-10-20-20s5-15 10-20l60-60c13-13 27-13 40 0z" fill="url(#a)" stroke="#434242" stroke-width="10"/></g></svg>
 | 
				
			||||||
| 
		 After Width: | Height: | Size: 820 B  | 
@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					#ifndef IIMPORTER_H
 | 
				
			||||||
 | 
					#define IIMPORTER_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QMetaObject>
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <QSharedPointer>
 | 
				
			||||||
 | 
					#include "core_global.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CORESHARED_EXPORT IImporter
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit IImporter(const QMetaObject *metaObject) { m_metaObject = metaObject; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    virtual void setImportFile(const QString &fileName) = 0;
 | 
				
			||||||
 | 
					    virtual int recordCount() = 0;
 | 
				
			||||||
 | 
					    virtual QSharedPointer<QObject> nextRecord() = 0;
 | 
				
			||||||
 | 
					    virtual bool isError() = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					    const QMetaObject *m_metaObject;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // IIMPORTER_H
 | 
				
			||||||
@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					#ifndef IIMPORTPROGRESS_H
 | 
				
			||||||
 | 
					#define IIMPORTPROGRESS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class IImportProgress
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    virtual void updateProgress(int currentPos) = 0;
 | 
				
			||||||
 | 
					    virtual bool terminate() = 0;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // IIMPORTPROGRESS_H
 | 
				
			||||||
@ -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);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					#ifndef IMPORTDIALOG_H
 | 
				
			||||||
 | 
					#define IMPORTDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					#include <QMetaObject>
 | 
				
			||||||
 | 
					#include "iservice.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class ImportDialog;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ImportDialog : public QDialog
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit ImportDialog(QWidget *parent = 0);
 | 
				
			||||||
 | 
					    ~ImportDialog();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString fileName();
 | 
				
			||||||
 | 
					    QString separator();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private slots:
 | 
				
			||||||
 | 
					    void on_btnFile_clicked();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::ImportDialog *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // IMPORTDIALOG_H
 | 
				
			||||||
@ -0,0 +1,109 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>ImportDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="ImportDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>454</width>
 | 
				
			||||||
 | 
					    <height>115</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Import data</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QFormLayout" name="formLayout">
 | 
				
			||||||
 | 
					   <item row="0" column="0">
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="label">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>File</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="1" column="0">
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="label_2">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Separator</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <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">
 | 
				
			||||||
 | 
					     <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="QLineEdit" name="editFile"/>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <widget class="QToolButton" name="btnFile">
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>...</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					     </layout>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>ImportDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>ImportDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
@ -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
 | 
				
			||||||
@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>ImportProgress</class>
 | 
				
			||||||
 | 
					 <widget class="QWidget" name="ImportProgress">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>165</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Import progress</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QVBoxLayout" name="verticalLayout">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QProgressBar" name="progressBar">
 | 
				
			||||||
 | 
					     <property name="value">
 | 
				
			||||||
 | 
					      <number>24</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QPushButton" name="btnCancel">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Cenacel</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					#include "variablefiller.h"
 | 
				
			||||||
 | 
					#include "../settingsservice.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VariableFiller::VariableFiller()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					VariableFiller::~VariableFiller()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void VariableFiller::fill(ReportPtr report, int recordId)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (m_settings.isNull())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        loadSettings();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QMap<QString, QString> vars;
 | 
				
			||||||
 | 
					    vars[COMPANY] = m_settings->firmName();
 | 
				
			||||||
 | 
					    vars[STREET] = m_settings->street();
 | 
				
			||||||
 | 
					    vars[HOUSE_NUMBER] = m_settings->houseNumber();
 | 
				
			||||||
 | 
					    vars[CITY] = m_settings->city();
 | 
				
			||||||
 | 
					    vars[ZIP_CODE] = m_settings->zipCode();
 | 
				
			||||||
 | 
					    vars[IC] = QString::number(m_settings->ic());
 | 
				
			||||||
 | 
					    vars[DIC] = m_settings->dic();
 | 
				
			||||||
 | 
					    vars[LOGO_PATH] = m_settings->logoPath();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (recordId > 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        vars[RECORD_ID] = QString::number(recordId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        vars[RECORD_ID] = "";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    report->setVariables(vars);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void VariableFiller::fillList(QList<ReportPtr> reports, int recordId)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    foreach (ReportPtr report, reports) {
 | 
				
			||||||
 | 
					        fill(report, recordId);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void VariableFiller::loadSettings()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    SettingsService srv("CORE");
 | 
				
			||||||
 | 
					    m_settings = srv.loadSettings<GlobalSettings>();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					#ifndef VARIABLEFILLER_H
 | 
				
			||||||
 | 
					#define VARIABLEFILLER_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "report.h"
 | 
				
			||||||
 | 
					#include "../settings/globalsettings.h"
 | 
				
			||||||
 | 
					#include "../core_global.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define COMPANY "COMPANY"
 | 
				
			||||||
 | 
					#define STREET "STREET"
 | 
				
			||||||
 | 
					#define HOUSE_NUMBER "HOUSE_NUMBER"
 | 
				
			||||||
 | 
					#define CITY "CITY"
 | 
				
			||||||
 | 
					#define ZIP_CODE "ZIP_CODE"
 | 
				
			||||||
 | 
					#define IC "IC"
 | 
				
			||||||
 | 
					#define DIC "DIC"
 | 
				
			||||||
 | 
					#define LOGO_PATH "LOGO_PATH"
 | 
				
			||||||
 | 
					#define RECORD_ID "RECORD_ID"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CORESHARED_EXPORT VariableFiller
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    VariableFiller();
 | 
				
			||||||
 | 
					    virtual ~VariableFiller();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    virtual void fill(ReportPtr report, int recordId = 0);
 | 
				
			||||||
 | 
					    void fillList(QList<ReportPtr> reports, int recordId = 0);
 | 
				
			||||||
 | 
					    void loadSettings();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    GlobalSettingsPtr m_settings;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // VARIABLEFILLER_H
 | 
				
			||||||
											
												Binary file not shown.
											
										
									
								@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					#include "countryregister.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "countryregistergrid.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CountryRegister::CountryRegister()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void CountryRegister::initServiceUi()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    m_service = new Service<CountryData>();
 | 
				
			||||||
 | 
					    m_ui = new CountryRegisterGrid();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool CountryRegister::showIcon()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					#ifndef COUNTRYREGISTER_H
 | 
				
			||||||
 | 
					#define COUNTRYREGISTER_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "countryregister_global.h"
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <imetadataplugin.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class COUNTRYREGISTERSHARED_EXPORT CountryRegister : public QObject, IMetaDataPlugin
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Q_PLUGIN_METADATA(IID PluginInterface_iid FILE "countryregister.json")
 | 
				
			||||||
 | 
					    Q_INTERFACES(IPlugin)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    CountryRegister();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // IMetaDataPlugin interface
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					    void initServiceUi();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // IPlugin interface
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    bool showIcon();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // COUNTRYREGISTER_H
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
					Loading…
					
					
				
		Reference in New Issue