finish current sale
This commit is contained in:
parent
8b534e1229
commit
150ce946d1
5 changed files with 81 additions and 11 deletions
|
@ -45,10 +45,8 @@ void Marketplace::sortSellers() { std::sort(sellers_.begin(), sellers_.end()); }
|
|||
|
||||
Seller* Marketplace::findSellerWithSellerNo(int sellerNo)
|
||||
{
|
||||
auto iter =
|
||||
std::find_if(sellers_.begin(), sellers_.end(), [sellerNo](const auto& a) {
|
||||
return a->getSellerNo() == sellerNo;
|
||||
});
|
||||
auto iter = std::find_if(sellers_.begin(), sellers_.end(),
|
||||
[sellerNo](const auto& a) { return a->getSellerNo() == sellerNo; });
|
||||
if (iter == sellers_.end())
|
||||
return nullptr;
|
||||
return (*iter).get();
|
||||
|
@ -57,4 +55,21 @@ Seller* Marketplace::findSellerWithSellerNo(int sellerNo)
|
|||
void Marketplace::addArticleToBasket(std::unique_ptr<Article> article)
|
||||
{
|
||||
basket_.push_back(std::move(article));
|
||||
}
|
||||
|
||||
size_t Marketplace::basketSize() { return basket_.size(); }
|
||||
|
||||
void Marketplace::finishCurrentSale()
|
||||
{
|
||||
if (basket_.size() == 0)
|
||||
return;
|
||||
|
||||
auto sale = std::make_unique<Sale>();
|
||||
|
||||
for (auto iter = basket_.begin(); iter != basket_.end(); ++iter) {
|
||||
sale->addArticle((*iter).get());
|
||||
(*iter)->getSeller()->addArticle(std::move(*iter));
|
||||
}
|
||||
|
||||
sales_.push_back(std::move(sale));
|
||||
}
|
|
@ -21,6 +21,7 @@ class Marketplace
|
|||
{
|
||||
public:
|
||||
Marketplace();
|
||||
|
||||
void storeToDb(bool onlyDelete = false);
|
||||
void loadFromDb();
|
||||
SellersVec& getSellers();
|
||||
|
@ -29,6 +30,8 @@ class Marketplace
|
|||
void sortSellers();
|
||||
Seller* findSellerWithSellerNo(int sellerNo);
|
||||
void addArticleToBasket(std::unique_ptr<Article> article);
|
||||
size_t basketSize();
|
||||
void finishCurrentSale();
|
||||
|
||||
private:
|
||||
SellersVec sellers_;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue