Browse Source

Find seller by sellerno

allow_new_sellers
Martin Brodbeck 4 years ago
parent
commit
0ad460346c
  1. 13
      src/core/marketplace.cpp
  2. 1
      src/core/marketplace.h
  3. 31
      src/gui/mainwindow.cpp
  4. 13
      src/gui/mainwindow.h
  5. 4
      src/gui/mainwindow.ui

13
src/core/marketplace.cpp

@ -41,4 +41,15 @@ int Marketplace::getNumSellersDelete()
return count;
}
void Marketplace::sortSellers() { std::sort(sellers_.begin(), sellers_.end()); }
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;
});
if (iter == sellers_.end())
return nullptr;
return (*iter).get();
}

1
src/core/marketplace.h

@ -26,6 +26,7 @@ class Marketplace
int getNextSellerNo();
int getNumSellersDelete();
void sortSellers();
Seller* findSellerWithSellerNo(int sellerNo);
private:
SellersVec sellers_;

31
src/gui/mainwindow.cpp

@ -2,6 +2,8 @@
#include "sellerdialog.h"
#include <regex>
constexpr int STATUSBAR_TIMEOUT = 5000;
MainWindow::MainWindow()
@ -11,6 +13,8 @@ MainWindow::MainWindow()
connect(ui_.actionQuit, &QAction::triggered, qApp, QApplication::quit);
connect(ui_.actionEditSeller, &QAction::triggered, this,
&MainWindow::on_actionEditSeller_triggered);
connect(ui_.sellerNoEdit, &QLineEdit::returnPressed, this,
&MainWindow::on_sellerNoEdit_checkSellerNo);
marketplace_ = std::make_unique<Marketplace>();
marketplace_->loadFromDb();
@ -31,4 +35,31 @@ void MainWindow::on_actionEditSeller_triggered()
statusBar()->showMessage("Änderungen an den Verkäufer-Stammdaten verworfen!",
STATUSBAR_TIMEOUT);
}
}
void MainWindow::on_sellerNoEdit_checkSellerNo()
{
using std::regex, std::regex_match, std::smatch;
auto inputText = ui_.sellerNoEdit->text().toStdString();
if (inputText.empty()) {
return;
}
regex pattern{R"(\d{1,5})"};
smatch result;
if (!regex_match(inputText, result, pattern)) {
return;
}
int sellerNo = std::stoi(result[0]);
auto seller = marketplace_->findSellerWithSellerNo(sellerNo);
if (seller) {
std::cout << "!!! Seller gefunden: " << seller->getFirstName() << "\n";
// TODO: Warenkorb füllen
}
ui_.sellerNoEdit->clear();
}

13
src/gui/mainwindow.h

@ -13,15 +13,16 @@ class MainWindow : public QMainWindow
{
Q_OBJECT
public:
public:
MainWindow();
Marketplace* getMarketplace() {return marketplace_.get();}
Marketplace* getMarketplace() { return marketplace_.get(); }
private:
void on_actionEditSeller_triggered();
private:
void on_actionEditSeller_triggered();
void on_sellerNoEdit_checkSellerNo();
Ui::MainWindow ui_;
std::unique_ptr<Marketplace> marketplace_;
Ui::MainWindow ui_;
std::unique_ptr<Marketplace> marketplace_;
};
#endif

4
src/gui/mainwindow.ui

@ -52,10 +52,10 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLineEdit" name="lineEdit"/>
<widget class="QLineEdit" name="sellerNoEdit"/>
</item>
<item>
<widget class="QPushButton" name="pushButton_3">
<widget class="QPushButton" name="paidButton">
<property name="text">
<string>Bezahlt!</string>
</property>

Loading…
Cancel
Save