2018-07-16 12:00:17 +02:00
|
|
|
#include "sellerdialog.h"
|
|
|
|
|
|
|
|
#include "mainwindow.h"
|
|
|
|
|
2018-07-17 12:52:56 +02:00
|
|
|
#include <QItemSelectionModel>
|
2018-07-16 18:04:25 +02:00
|
|
|
#include <QMessageBox>
|
|
|
|
|
2018-07-16 12:00:17 +02:00
|
|
|
SellerDialog::SellerDialog(QWidget* parent, Qt::WindowFlags f) : QDialog(parent, f)
|
|
|
|
{
|
|
|
|
ui_.setupUi(this);
|
2018-07-23 12:58:27 +02:00
|
|
|
ui_.editButton->setVisible(false);
|
2018-07-27 10:10:48 +02:00
|
|
|
market_ = dynamic_cast<MainWindow*>(parent)->getMarketplace();
|
2018-07-27 10:34:27 +02:00
|
|
|
model_ = std::make_unique<SellerModel>(market_, ui_.tableView);
|
|
|
|
ui_.tableView->setModel(model_.get());
|
2018-07-16 12:00:17 +02:00
|
|
|
ui_.tableView->setColumnHidden(0, true); // hide the uuid
|
2018-08-07 11:02:19 +02:00
|
|
|
ui_.tableView->setRowHidden(0, true); // hide the special "Sonderkonto" user
|
2018-07-16 18:04:25 +02:00
|
|
|
connect(ui_.newButton, &QPushButton::clicked, this, &SellerDialog::on_newButton_clicked);
|
2018-07-17 15:32:16 +02:00
|
|
|
connect(ui_.deleteButton, &QPushButton::clicked, this, &SellerDialog::on_deleteButton_clicked);
|
2018-07-27 10:34:27 +02:00
|
|
|
connect(model_.get(), &SellerModel::duplicateSellerNo, this,
|
2018-07-17 16:37:16 +02:00
|
|
|
&SellerDialog::on_model_duplicateSellerNo);
|
2018-07-23 12:58:27 +02:00
|
|
|
connect(ui_.tableView->selectionModel(), &QItemSelectionModel::selectionChanged, this,
|
|
|
|
&SellerDialog::onSellerViewSelectionChanged);
|
2018-07-16 18:04:25 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void SellerDialog::on_newButton_clicked()
|
|
|
|
{
|
2018-08-07 11:02:19 +02:00
|
|
|
// Don't allow new seller if market has already started
|
|
|
|
if (market_->getSales().size() > 0) {
|
|
|
|
QMessageBox(QMessageBox::Icon::Warning, "Hinweis",
|
|
|
|
"Da die Verkaufsphase schon begonnen hat (Artikel wurden bereits verkauft) "
|
|
|
|
"können Sie keine Verkäufer mehr hinzufügen.",
|
|
|
|
QMessageBox::StandardButton::Ok, this)
|
|
|
|
.exec();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2018-07-17 12:52:56 +02:00
|
|
|
ui_.tableView->reset();
|
2018-07-16 18:04:25 +02:00
|
|
|
ui_.tableView->model()->insertRows(ui_.tableView->model()->rowCount(), 1);
|
|
|
|
ui_.tableView->scrollToBottom();
|
2018-07-17 11:40:09 +02:00
|
|
|
ui_.tableView->selectRow(ui_.tableView->model()->rowCount() - 1);
|
2018-07-17 12:52:56 +02:00
|
|
|
QModelIndex idx = ui_.tableView->model()->index(ui_.tableView->model()->rowCount() - 1, 2);
|
|
|
|
ui_.tableView->setCurrentIndex(idx);
|
|
|
|
ui_.tableView->edit(idx);
|
2018-07-16 12:00:17 +02:00
|
|
|
}
|
2018-07-16 18:04:25 +02:00
|
|
|
|
2018-07-17 15:32:16 +02:00
|
|
|
void SellerDialog::on_deleteButton_clicked()
|
|
|
|
{
|
|
|
|
auto selModel = ui_.tableView->selectionModel();
|
|
|
|
if (selModel->hasSelection() == false)
|
|
|
|
return;
|
2018-07-17 16:37:16 +02:00
|
|
|
|
2018-07-27 10:10:48 +02:00
|
|
|
if (market_->getSales().size() > 0) {
|
|
|
|
QMessageBox(QMessageBox::Icon::Warning, "Hinweis",
|
2018-08-02 09:49:42 +02:00
|
|
|
"Da die Verkaufsphase schon begonnen hat (Artikel wurden bereits verkauft) "
|
|
|
|
"können Sie keine Verkäufer mehr löschen.",
|
2018-07-27 10:10:48 +02:00
|
|
|
QMessageBox::StandardButton::Ok, this)
|
|
|
|
.exec();
|
2018-08-02 09:49:42 +02:00
|
|
|
return;
|
2018-07-27 10:10:48 +02:00
|
|
|
}
|
|
|
|
|
2018-07-18 08:17:30 +02:00
|
|
|
auto dlgResult =
|
|
|
|
QMessageBox(QMessageBox::Icon::Warning, "Sind Sie sicher?",
|
|
|
|
"Löschen wirkt sich direkt auf die Datenbank aus. Möchten Sie fortfahren?",
|
|
|
|
QMessageBox::StandardButton::Yes | QMessageBox::StandardButton::No, this)
|
|
|
|
.exec();
|
|
|
|
if (dlgResult == QMessageBox::No)
|
|
|
|
return;
|
|
|
|
|
|
|
|
auto indexes = selModel->selectedRows();
|
2018-07-17 15:32:16 +02:00
|
|
|
std::sort(indexes.begin(), indexes.end());
|
|
|
|
|
|
|
|
// Deleting the rows, beginning with the last one!
|
|
|
|
for (auto iter = indexes.constEnd() - 1; iter >= indexes.constBegin(); --iter) {
|
|
|
|
ui_.tableView->model()->removeRow(iter->row());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-07-17 16:37:16 +02:00
|
|
|
void SellerDialog::on_model_duplicateSellerNo(const QString& message)
|
|
|
|
{
|
|
|
|
QMessageBox(QMessageBox::Icon::Warning, "Fehler", message, QMessageBox::StandardButton::Ok,
|
|
|
|
this)
|
|
|
|
.exec();
|
|
|
|
}
|
|
|
|
|
2018-07-16 18:04:25 +02:00
|
|
|
void SellerDialog::accept()
|
|
|
|
{
|
2018-08-02 09:49:42 +02:00
|
|
|
/* Marketplace* market = dynamic_cast<MainWindow*>(parentWidget())->getMarketplace();
|
2018-07-16 18:04:25 +02:00
|
|
|
for (const auto& seller : market->getSellers()) {
|
|
|
|
if (seller->getFirstName().empty() || seller->getLastName().empty()) {
|
|
|
|
QMessageBox(QMessageBox::Icon::Critical, "Fehler",
|
|
|
|
"Bitte geben Sie bei jedem Verkäufer Vorname und Nachname an.",
|
2018-07-17 12:52:56 +02:00
|
|
|
QMessageBox::StandardButton::Ok, this)
|
|
|
|
.exec();
|
2018-07-16 18:04:25 +02:00
|
|
|
return;
|
|
|
|
}
|
2018-08-02 09:49:42 +02:00
|
|
|
} */
|
2018-07-16 18:04:25 +02:00
|
|
|
QDialog::accept();
|
2018-07-23 12:58:27 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
void SellerDialog::onSellerViewSelectionChanged(const QItemSelection& selected,
|
|
|
|
[[maybe_unused]] const QItemSelection& deselected)
|
|
|
|
{
|
|
|
|
if (selected.size() > 0) {
|
|
|
|
ui_.deleteButton->setEnabled(true);
|
|
|
|
} else {
|
|
|
|
ui_.deleteButton->setEnabled(false);
|
|
|
|
}
|
2018-07-16 18:04:25 +02:00
|
|
|
}
|