You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.4 KiB
C

#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);
void updateCamp(CampDataPtr data);
void eraseCamp(CampDataPtr data);
void loadItems(CampDataPtr data);
QList<CampDataPtr> allForSeason();
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