diff --git a/src/core/article.cpp b/src/core/article.cpp index c4fdce7..34dc249 100644 --- a/src/core/article.cpp +++ b/src/core/article.cpp @@ -31,16 +31,9 @@ int Article::getPrice() const { return price_; } std::string Article::getPriceAsString() const { std::stringstream sumStream; - // sumStream.imbue(std::locale("de_DE.utf8")); - sumStream << std::right << std::setw(10) << std::showbase << std::put_money(price_, false); + //sumStream.imbue(std::locale("de_DE.utf8")); + sumStream << std::right << std::setw(12) << std::showbase << std::put_money(price_, false); return sumStream.str(); } -int Article::getArticleNo() const { return articleNo_; } - -std::string Article::getCompleteArticleNo() const -{ - std::stringstream artNoStream; - artNoStream << sourceNo_ << "K" << std::setfill('0') << std::setw(5) << articleNo_; - return artNoStream.str(); -} \ No newline at end of file +int Article::getArticleNo() { return articleNo_; } \ No newline at end of file diff --git a/src/core/article.h b/src/core/article.h index a497242..2282fdf 100644 --- a/src/core/article.h +++ b/src/core/article.h @@ -25,8 +25,7 @@ class Article : public Entity void setSale(Sale* salePtr); void setSeller(Seller* sellerPtr); - int getArticleNo() const; - std::string getCompleteArticleNo() const; + int getArticleNo(); std::string getDescription(); Seller* getSeller(); Sale* getSale(); diff --git a/src/core/entity.h b/src/core/entity.h index 017b6e0..8751dce 100644 --- a/src/core/entity.h +++ b/src/core/entity.h @@ -11,7 +11,7 @@ class Entity public: enum class State { NEW, UPDATE, DELETE, OK }; - // Entity() = default; + //Entity() = default; virtual ~Entity() = 0; void createUuid(); @@ -24,12 +24,10 @@ class Entity virtual State getState() const; virtual int getSourceNo() const; - protected: - int sourceNo_{}; - private: boost::uuids::uuid uuid_{}; State state_{State::NEW}; + int sourceNo_{}; }; #endif // ENTITY_H \ No newline at end of file diff --git a/src/core/marketplace.cpp b/src/core/marketplace.cpp index 4913317..66615f5 100644 --- a/src/core/marketplace.cpp +++ b/src/core/marketplace.cpp @@ -89,11 +89,14 @@ void Marketplace::addArticleToBasket(std::unique_ptr
article) size_t Marketplace::basketSize() { return basket_.size(); } -void Marketplace::finishCurrentSale(std::unique_ptr sale) +void Marketplace::finishCurrentSale() { if (basket_.size() == 0) return; + auto sale = std::make_unique(); + sale->createUuid(); + for (auto iter = basket_.begin(); iter != basket_.end(); ++iter) { sale->addArticle((*iter).get()); (*iter)->getSeller()->addArticle(std::move(*iter)); @@ -122,7 +125,7 @@ std::string Marketplace::getBasketSumAsString() // return sumStream.str(); std::stringstream sumStream; // sumStream.imbue(std::locale("de_DE.utf8")); - sumStream << std::right << std::setw(10) << std::showbase << std::put_money(sumInCent, false); + sumStream << std::right << std::setw(12) << std::showbase << std::put_money(sumInCent, false); return sumStream.str(); } @@ -145,7 +148,7 @@ double marketFee(int sum, int percent, int maxFee) std::string marketFeeAsString(int sum, int percent, int maxFee) { std::stringstream feeStream; - feeStream << std::right << std::setw(10) << std::showbase + feeStream << std::right << std::setw(12) << std::showbase << std::put_money(marketFee(sum, percent, maxFee), false); return feeStream.str(); } @@ -153,7 +156,7 @@ std::string marketFeeAsString(int sum, int percent, int maxFee) std::string paymentAsString(int sum, int percent) { std::stringstream feeStream; - feeStream << std::right << std::setw(10) << std::showbase + feeStream << std::right << std::setw(12) << std::showbase << std::put_money(sum - marketFee(sum, percent), false); return feeStream.str(); } \ No newline at end of file diff --git a/src/core/marketplace.h b/src/core/marketplace.h index b5c63a4..7bddb72 100644 --- a/src/core/marketplace.h +++ b/src/core/marketplace.h @@ -38,7 +38,7 @@ class Marketplace Seller* findSellerWithSellerNo(int sellerNo); void addArticleToBasket(std::unique_ptr
article); size_t basketSize(); - void finishCurrentSale(std::unique_ptr sale); + void finishCurrentSale(); void removeSale(boost::uuids::uuid uuid); private: diff --git a/src/core/sale.cpp b/src/core/sale.cpp index 95bf4dc..6c3dd1b 100644 --- a/src/core/sale.cpp +++ b/src/core/sale.cpp @@ -34,7 +34,7 @@ int Sale::sumInCents() std::string Sale::sumAsString() { std::stringstream sumStream; - sumStream << std::right << std::setw(10) << std::showbase << std::put_money(sumInCents(), false); + sumStream << std::right << std::setw(12) << std::showbase << std::put_money(sumInCents(), false); return sumStream.str(); } diff --git a/src/core/seller.cpp b/src/core/seller.cpp index 89f5aa8..61e48ef 100644 --- a/src/core/seller.cpp +++ b/src/core/seller.cpp @@ -94,7 +94,7 @@ int Seller::sumInCents() std::string Seller::sumAsString() { std::stringstream sumStream; - sumStream << std::right << std::setw(10) << std::showbase << std::put_money(sumInCents(), false); + sumStream << std::right << std::setw(12) << std::showbase << std::put_money(sumInCents(), false); return sumStream.str(); } diff --git a/src/gui/basketmodel.cpp b/src/gui/basketmodel.cpp index 215d7de..d063d2e 100644 --- a/src/gui/basketmodel.cpp +++ b/src/gui/basketmodel.cpp @@ -1,7 +1,6 @@ #include "basketmodel.h" #include -#include BasketModel::BasketModel(Marketplace* market, QObject* parent) : QAbstractTableModel(parent), marketplace_(market) @@ -24,8 +23,7 @@ QVariant BasketModel::data(const QModelIndex& index, int role) const case 0: [[fallthrough]]; case 1: - myFont.setFamily("monospace"); - return myFont; + [[fallthrough]]; case 2: return myFont; case 3: @@ -46,7 +44,7 @@ QVariant BasketModel::data(const QModelIndex& index, int role) const case 0: return article->getUuidAsString().c_str(); case 1: - return article->getCompleteArticleNo().c_str(); + return article->getArticleNo(); case 2: return article->getSeller()->getSellerNo(); case 3: @@ -81,6 +79,20 @@ QVariant BasketModel::headerData(int section, Qt::Orientation orientation, int r return ""; } +/* bool BasketModel::insertRows(int row, int count, const QModelIndex& parent) +{ + //emit beginInsertRows(parent, row, row + count - 1); + //auto article = std::make_unique
(); + //article->createUuid(); + //article->setArticleNo(marketplace_->getNextArticleNo()); + //marketplace_->addArticleToBasket(std::move(article)); + //emit endInsertRows(); + + emit layoutChanged(); + + return true; +} */ + void BasketModel::addArticle(Seller* seller, int price) { emit beginInsertRows(QModelIndex(), marketplace_->getBasket().size(), @@ -88,8 +100,8 @@ void BasketModel::addArticle(Seller* seller, int price) auto article = std::make_unique
(price); article->createUuid(); article->setArticleNo(marketplace_->getNextArticleNo()); - article->setSourceNo(QSettings().value("global/cashPointNo").toInt()); article->setSeller(seller); + // std::cout << "!!! Neuer Artikel: " << article->getPrice() << " Cent \n"; marketplace_->addArticleToBasket(std::move(article)); emit endInsertRows(); } @@ -97,10 +109,7 @@ void BasketModel::addArticle(Seller* seller, int price) void BasketModel::finishSale() { emit beginRemoveRows(QModelIndex(), 0, marketplace_->getBasket().size() - 1); - auto sale = std::make_unique(); - sale->createUuid(); - sale->setSourceNo(QSettings().value("global/cashPointNo").toInt()); - marketplace_->finishCurrentSale(std::move(sale)); + marketplace_->finishCurrentSale(); emit endRemoveRows(); emit basketDataChanged(); } diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index cb98663..c9f6373 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -96,7 +96,6 @@ void MainWindow::onPaidButtonTriggered() dynamic_cast(ui_.basketView->model())->finishSale(); ui_.lastPriceLabel1->setText(lastPrice); ui_.lastPriceLabel2->setText(lastPrice); - ui_.basketSumLabel->setText(" 0,00 €"); statusBar()->showMessage("Verkaufsvorgang erfolgreich durchgeführt.", STATUSBAR_TIMEOUT); } } @@ -129,7 +128,8 @@ void MainWindow::onSellerNoEditCheckSellerNo() if (dialogResult == QDialog::Accepted) { int price = priceDialog.getPrice(); dynamic_cast(ui_.basketView->model())->addArticle(seller, price); - ui_.basketSumLabel->setText(marketplace_->getBasketSumAsString().c_str()); + std::string sumStr = "Gesamt: " + marketplace_->getBasketSumAsString(); + ui_.basketSumLabel->setText(sumStr.c_str()); } } diff --git a/src/gui/mainwindow.ui b/src/gui/mainwindow.ui index ac8b2bb..80b52d6 100644 --- a/src/gui/mainwindow.ui +++ b/src/gui/mainwindow.ui @@ -33,7 +33,6 @@ - Monospace 18 75 true @@ -43,7 +42,7 @@ QFrame::Box - 0,00 € + Gesamt: --- Qt::AlignCenter @@ -299,7 +298,6 @@ drucken - Monospace 20 75 true @@ -353,7 +351,6 @@ drucken - Monospace 20 75 true diff --git a/src/gui/reportdialog.ui b/src/gui/reportdialog.ui index fc2525f..f19e7ab 100644 --- a/src/gui/reportdialog.ui +++ b/src/gui/reportdialog.ui @@ -17,14 +17,7 @@ - - - QAbstractItemView::SingleSelection - - - QAbstractItemView::SelectRows - - + diff --git a/src/gui/reportmodel.cpp b/src/gui/reportmodel.cpp index 45ff334..52d2b2b 100644 --- a/src/gui/reportmodel.cpp +++ b/src/gui/reportmodel.cpp @@ -35,10 +35,6 @@ QVariant ReportModel::data(const QModelIndex& index, int role) const if (role == Qt::TextAlignmentRole) { switch (index.column()) { case 4: - [[fallthrough]]; - case 5: - [[fallthrough]]; - case 6: return Qt::AlignRight; default: return Qt::AlignLeft; diff --git a/src/gui/salemodel.cpp b/src/gui/salemodel.cpp index c0d3589..2ef9959 100644 --- a/src/gui/salemodel.cpp +++ b/src/gui/salemodel.cpp @@ -108,7 +108,7 @@ QVariant SaleModel::data(const QModelIndex& index, int role) const Article* article = static_cast(index.internalPointer()); switch (index.column()) { case 0: - return article->getCompleteArticleNo().c_str(); + return article->getArticleNo(); case 1: return article->getPriceAsString().c_str(); case 2: