|
|
|
@ -1,11 +1,18 @@
|
|
|
|
|
#include "sellermodel.h"
|
|
|
|
|
|
|
|
|
|
SellerModel::SellerModel(std::vector<std::unique_ptr<Seller>>& sellers, QObject* parent)
|
|
|
|
|
: QAbstractTableModel(parent), sellers_(&sellers)
|
|
|
|
|
#include <algorithm>
|
|
|
|
|
|
|
|
|
|
#include <QMessageBox>
|
|
|
|
|
|
|
|
|
|
SellerModel::SellerModel(Marketplace* market, QObject* parent)
|
|
|
|
|
: QAbstractTableModel(parent), marketplace_(market)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int SellerModel::rowCount(const QModelIndex& parent) const { return sellers_->size(); }
|
|
|
|
|
int SellerModel::rowCount(const QModelIndex& parent) const
|
|
|
|
|
{
|
|
|
|
|
return marketplace_->getSellers().size();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int SellerModel::columnCount(const QModelIndex& parent) const { return 5; }
|
|
|
|
|
|
|
|
|
@ -14,7 +21,7 @@ QVariant SellerModel::data(const QModelIndex& index, int role) const
|
|
|
|
|
if (role != Qt::DisplayRole)
|
|
|
|
|
return QVariant();
|
|
|
|
|
|
|
|
|
|
Seller* seller = sellers_->at(index.row()).get();
|
|
|
|
|
Seller* seller = marketplace_->getSellers().at(index.row()).get();
|
|
|
|
|
switch (index.column()) {
|
|
|
|
|
case 0:
|
|
|
|
|
return seller->getUuidAsString().c_str();
|
|
|
|
@ -62,18 +69,34 @@ Qt::ItemFlags SellerModel::flags(const QModelIndex& index) const
|
|
|
|
|
return QAbstractTableModel::flags(index) | Qt::ItemFlag::ItemIsEditable;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool SellerModel::setData(const QModelIndex& index, const QVariant& value, int role) {
|
|
|
|
|
bool SellerModel::setData(const QModelIndex& index, const QVariant& value, int role)
|
|
|
|
|
{
|
|
|
|
|
if (role != Qt::EditRole)
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
Seller* seller = sellers_->at(index.row()).get();
|
|
|
|
|
Seller* seller = marketplace_->getSellers().at(index.row()).get();
|
|
|
|
|
|
|
|
|
|
switch (index.column()) {
|
|
|
|
|
case 0:
|
|
|
|
|
seller->setUuidFromString(value.toString().toStdString());
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
case 1: {
|
|
|
|
|
if (value.toInt() < 0)
|
|
|
|
|
return false;
|
|
|
|
|
auto iter =
|
|
|
|
|
std::find_if(marketplace_->getSellers().begin(), marketplace_->getSellers().end(),
|
|
|
|
|
[&value](const std::unique_ptr<Seller>& seller) {
|
|
|
|
|
return value.toInt() == seller->getSellerNo();
|
|
|
|
|
});
|
|
|
|
|
if (iter != marketplace_->getSellers().end()) {
|
|
|
|
|
/* QMessageBox(QMessageBox::Icon::Warning, "Fehler",
|
|
|
|
|
"Die Verkäufernummer muss eindeutig sein.", QMessageBox::StandardButton::Ok)
|
|
|
|
|
.exec(); */
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
seller->setSellerNo(value.toInt());
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 2:
|
|
|
|
|
seller->setFirstName(value.toString().toStdString());
|
|
|
|
|
break;
|
|
|
|
@ -86,6 +109,20 @@ bool SellerModel::setData(const QModelIndex& index, const QVariant& value, int r
|
|
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (seller->getState() == Seller::State::OK)
|
|
|
|
|
seller->setState(Seller::State::UPDATE);
|
|
|
|
|
dataChanged(index, index);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool SellerModel::insertRows(int row, int count, const QModelIndex& parent)
|
|
|
|
|
{
|
|
|
|
|
beginInsertRows(parent, row, row + count - 1);
|
|
|
|
|
auto seller = std::make_unique<Seller>();
|
|
|
|
|
seller->createUuid();
|
|
|
|
|
seller->setSellerNo(marketplace_->getNextSellerNo());
|
|
|
|
|
marketplace_->getSellers().push_back(std::move(seller));
|
|
|
|
|
endInsertRows();
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|