You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.5 KiB
92 lines
2.5 KiB
#include "WarenStorage.h"
|
|
|
|
|
|
WarenStorage::WarenStorage() { }
|
|
|
|
void WarenStorage::addWarenListToSum(std::vector<Ware>* sumList, std::vector<Ware> itemList) const {
|
|
//reference ohne const möglich oder ist hier ein pointer notwendig??
|
|
for(Ware ware : itemList) {
|
|
sumList->push_back((Ware) ware); //static_cast<> oder ganz weg
|
|
}
|
|
}
|
|
|
|
std::vector<Ware> WarenStorage::getAllWaren() const {
|
|
|
|
std::vector<Ware> w;
|
|
|
|
addWarenListToSum(&w, warenList);
|
|
addWarenListToSum(&w, coolingWarenList);
|
|
addWarenListToSum(&w, largeWarenList);
|
|
|
|
return w;
|
|
}
|
|
|
|
std::vector<Ware> WarenStorage::getWarenList() {
|
|
return warenList;
|
|
}
|
|
|
|
void WarenStorage::setWarenList(const std::vector<Ware> waren) {
|
|
this->warenList = waren;
|
|
}
|
|
|
|
std::vector<WarenStorage::CoolingWare> WarenStorage::getCoolingWarenList() {
|
|
return coolingWarenList;
|
|
}
|
|
|
|
void WarenStorage::setCoolingWarenList(const std::vector<CoolingWare> coolingWaren) {
|
|
this->coolingWarenList = coolingWaren;
|
|
}
|
|
|
|
std::vector<Ware> WarenStorage::getLargeWarenList() {
|
|
return largeWarenList;
|
|
}
|
|
|
|
void WarenStorage::setLargeWarenList(const std::vector<LargeWare> largeWaren) {
|
|
this->largeWarenList = largeWaren;
|
|
}
|
|
|
|
void WarenStorage::addWareAndGenerateId(Ware ware) {
|
|
|
|
ware.generateId();
|
|
switch(ware.getType()) {
|
|
case Ware::WareType::DefaultWare:
|
|
warenList.push_back(ware);
|
|
break;
|
|
|
|
case Ware::WareType::CoolingWare:
|
|
coolingWarenList.push_back(ware);
|
|
break;
|
|
|
|
case Ware::WareType::LargeWare:
|
|
largeWarenList.push_back(ware);
|
|
break;
|
|
}
|
|
}
|
|
|
|
void WarenStorage::removeWare(const std::string name) {
|
|
std::vector<Ware> allWaren = getAllWaren();
|
|
for(size_t i = 0; i < allWaren.size(); i++) {
|
|
if(allWaren[i].getName() == name) {
|
|
switch(allWaren[i].getType()) {
|
|
case Ware::WareType::DefaultWare:
|
|
warenList.erase(
|
|
warenList.begin() + i
|
|
);
|
|
break;
|
|
|
|
case Ware::WareType::CoolingWare:
|
|
coolingWarenList.erase(
|
|
coolingWarenList.begin() + i
|
|
);
|
|
break;
|
|
|
|
case Ware::WareType::LargeWare:
|
|
largeWarenList.erase(
|
|
largeWarenList.begin() + i
|
|
);
|
|
break;
|
|
}
|
|
break; //remove only one item
|
|
}
|
|
}
|
|
}
|