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

2 years ago
  1. #include "WarenStorage.h"
  2. WarenStorage::WarenStorage() { }
  3. void WarenStorage::addWarenListToSum(std::vector<Ware>* sumList, std::vector<Ware> itemList) const {
  4. //reference ohne const möglich oder ist hier ein pointer notwendig??
  5. for(Ware ware : itemList) {
  6. sumList->push_back((Ware) ware); //static_cast<> oder ganz weg
  7. }
  8. }
  9. std::vector<Ware> WarenStorage::getAllWaren() const {
  10. std::vector<Ware> w;
  11. addWarenListToSum(&w, warenList);
  12. addWarenListToSum(&w, coolingWarenList);
  13. addWarenListToSum(&w, largeWarenList);
  14. return w;
  15. }
  16. std::vector<Ware> WarenStorage::getWarenList() {
  17. return warenList;
  18. }
  19. void WarenStorage::setWarenList(const std::vector<Ware> waren) {
  20. this->warenList = waren;
  21. }
  22. std::vector<WarenStorage::CoolingWare> WarenStorage::getCoolingWarenList() {
  23. return coolingWarenList;
  24. }
  25. void WarenStorage::setCoolingWarenList(const std::vector<CoolingWare> coolingWaren) {
  26. this->coolingWarenList = coolingWaren;
  27. }
  28. std::vector<Ware> WarenStorage::getLargeWarenList() {
  29. return largeWarenList;
  30. }
  31. void WarenStorage::setLargeWarenList(const std::vector<LargeWare> largeWaren) {
  32. this->largeWarenList = largeWaren;
  33. }
  34. void WarenStorage::addWareAndGenerateId(Ware ware) {
  35. ware.generateId();
  36. switch(ware.getType()) {
  37. case Ware::WareType::DefaultWare:
  38. warenList.push_back(ware);
  39. break;
  40. case Ware::WareType::CoolingWare:
  41. coolingWarenList.push_back(ware);
  42. break;
  43. case Ware::WareType::LargeWare:
  44. largeWarenList.push_back(ware);
  45. break;
  46. }
  47. }
  48. void WarenStorage::removeWare(const std::string name) {
  49. std::vector<Ware> allWaren = getAllWaren();
  50. for(size_t i = 0; i < allWaren.size(); i++) {
  51. if(allWaren[i].getName() == name) {
  52. switch(allWaren[i].getType()) {
  53. case Ware::WareType::DefaultWare:
  54. warenList.erase(
  55. warenList.begin() + i
  56. );
  57. break;
  58. case Ware::WareType::CoolingWare:
  59. coolingWarenList.erase(
  60. coolingWarenList.begin() + i
  61. );
  62. break;
  63. case Ware::WareType::LargeWare:
  64. largeWarenList.erase(
  65. largeWarenList.begin() + i
  66. );
  67. break;
  68. }
  69. break; //remove only one item
  70. }
  71. }
  72. }