Added edit and pay functionality to camp module.
This commit is contained in:
+87
-1
@@ -120,6 +120,43 @@ void CampService::saveCamp(CampDataPtr data)
|
||||
tr.commit();
|
||||
}
|
||||
catch (const odb::exception &ex)
|
||||
{
|
||||
emit dbError(ex.what());
|
||||
emit dbErrorInsert(ex.what());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void CampService::updateCamp(CampDataPtr data)
|
||||
{
|
||||
if (!checkPermission(PERM_EDIT))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Transaction tr;
|
||||
|
||||
try
|
||||
{
|
||||
odb::database *db = Context::instance().db();
|
||||
|
||||
db->execute(QString("DELETE FROM ServiceItem WHERE campData = %1").arg(data->id()).toStdString());
|
||||
db->execute(QString("DELETE FROM AddressItem WHERE campData = %1").arg(data->id()).toStdString());
|
||||
|
||||
foreach (ServiceItemPtr item, data->services()) {
|
||||
item->setCampData(data.toWeakRef());
|
||||
db->persist(item);
|
||||
}
|
||||
|
||||
foreach (AddressItemPtr item, data->people()) {
|
||||
item->setCampData(data.toWeakRef());
|
||||
db->persist(item);
|
||||
}
|
||||
|
||||
db->update(data);
|
||||
tr.commit();
|
||||
}
|
||||
catch (const odb::exception &ex)
|
||||
{
|
||||
emit dbError(ex.what());
|
||||
emit dbErrorUpdate(ex.what());
|
||||
@@ -127,6 +164,42 @@ void CampService::saveCamp(CampDataPtr data)
|
||||
}
|
||||
}
|
||||
|
||||
void CampService::eraseCamp(CampDataPtr data)
|
||||
{
|
||||
if (!checkPermission(PERM_DELETE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Transaction tr;
|
||||
|
||||
try
|
||||
{
|
||||
odb::database *db = Context::instance().db();
|
||||
|
||||
db->execute(QString("DELETE FROM ServiceItem WHERE campData = %1").arg(data->id()).toStdString());
|
||||
db->execute(QString("DELETE FROM AddressItem WHERE campData = %1").arg(data->id()).toStdString());
|
||||
|
||||
db->erase(data);
|
||||
tr.commit();
|
||||
}
|
||||
catch (const odb::exception &ex)
|
||||
{
|
||||
emit dbError(ex.what());
|
||||
emit dbErrorDelete(ex.what());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void CampService::loadItems(CampDataPtr data)
|
||||
{
|
||||
Service<AddressItem> srv;
|
||||
data->setPeople(srv.all(QString("campData = %1").arg(data->id())));
|
||||
|
||||
Service<ServiceItem> srvService;
|
||||
data->setServices(srvService.all(QString("campData = %1").arg(data->id())));
|
||||
}
|
||||
|
||||
void CampService::calcPeople(CampDataPtr data)
|
||||
{
|
||||
foreach (ServiceItemPtr service, data->services()) {
|
||||
@@ -291,9 +364,22 @@ ShopItemPtr CampService::shopItem(int )
|
||||
return CampShopItemPtr(new CampShopItem);
|
||||
}
|
||||
|
||||
void CampService::addedToVoucher(int , int )
|
||||
void CampService::addedToVoucher(int itemId, int countAdded)
|
||||
{
|
||||
Transaction tx;
|
||||
CampDataPtr data = loadById(itemId);
|
||||
|
||||
if (countAdded > 0)
|
||||
{
|
||||
data->setOnVoucher(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
data->setOnVoucher(false);
|
||||
}
|
||||
|
||||
this->update(data);
|
||||
tx.commit();
|
||||
}
|
||||
|
||||
ISeller *CampService::seller()
|
||||
|
||||
Reference in New Issue
Block a user