From c364a8c3a7785c60493018b0d1bb04458b8af936 Mon Sep 17 00:00:00 2001 From: Herwig Birke Date: Wed, 17 Jan 2018 16:21:30 +0100 Subject: [PATCH] . --- cmainwindow.cpp | 2 +- cparteditdialog.cpp | 14 ++++++++------ cpartlistitem.cpp | 24 ++++++++++++++++++++++++ cpartlistitem.h | 6 +++++- cpartlistitemeditdialog.cpp | 7 +++++++ cpartlistwindow.cpp | 5 ++--- 6 files changed, 47 insertions(+), 11 deletions(-) diff --git a/cmainwindow.cpp b/cmainwindow.cpp index 7d33ecc..ac49daa 100644 --- a/cmainwindow.cpp +++ b/cmainwindow.cpp @@ -617,7 +617,7 @@ void cMainWindow::partChanged(cPart* /*lpPart*/) loadPartDistributorList(); } -void cMainWindow::partlistSelectionChanged(const QModelIndex& index) +void cMainWindow::partlistSelectionChanged(const QModelIndex& /*index*/) { updateMenu(); } diff --git a/cparteditdialog.cpp b/cparteditdialog.cpp index f9a6855..9297519 100644 --- a/cparteditdialog.cpp +++ b/cparteditdialog.cpp @@ -226,13 +226,9 @@ bool cPartEditDialog::save() return(false); } - query.prepare("SELECT id FROM part_distributor WHERE name=:name AND description=:description AND partID=:partID AND distributorID=:distributorID AND price=:price AND link=:link;"); - query.bindValue(":name", lpItemName->text()); - query.bindValue(":description", lpItemDescription->text()); + query.prepare("SELECT id FROM part_distributor WHERE partID=:partID AND distributorID=:distributorID;"); query.bindValue(":partID", m_lpPart->id()); query.bindValue(":distributorID", m_lpDistributorList->find(lpItemDistributor->text())->id()); - query.bindValue(":price", lpItemPrice->text().toDouble()); - query.bindValue(":link", lpItemLink->text()); if(!query.exec()) { @@ -240,13 +236,19 @@ bool cPartEditDialog::save() return(false); } + if(!query.next()) + { + myDebug << query.lastError().text(); + return(false); + } + idList << QString("%1").arg(query.value("id").toInt()); } } if(idList.count()) { - query.prepare(QString("DELETE FROM part_distributor WHERE id NOT IN (%1);").arg(idList.join(", "))); + query.prepare(QString("DELETE FROM part_distributor WHERE id NOT IN (%1) AND partID=%2;").arg(idList.join(", ")).arg(m_lpPart->id())); if(!query.exec()) { myDebug << query.lastError().text(); diff --git a/cpartlistitem.cpp b/cpartlistitem.cpp index 48c02ed..18f8f5d 100644 --- a/cpartlistitem.cpp +++ b/cpartlistitem.cpp @@ -94,6 +94,30 @@ cPartlistItem::STATE cPartlistItem::state() return(m_state); } +QString cPartlistItem::stateString() +{ + return(stateString(m_state)); +} + +QString cPartlistItem::stateString(const cPartlistItem::STATE& state) +{ + switch(state) + { + case STATE_init: + return(QObject::tr("init")); + case STATE_ordered: + return(QObject::tr("ordered")); + case STATE_shipping: + return(QObject::tr("shipping")); + case STATE_received: + return(QObject::tr("received")); + case STATE_missing: + return(QObject::tr("missing")); + } + + return("UNKNOWN"); +} + void cPartlistItem::setPrice(const qreal& price) { m_dPrice = price; diff --git a/cpartlistitem.h b/cpartlistitem.h index 34a264e..a20151f 100644 --- a/cpartlistitem.h +++ b/cpartlistitem.h @@ -13,7 +13,9 @@ public: { STATE_init = 0, STATE_ordered = 1, - STATE_received = 2, + STATE_shipping = 2, + STATE_received = 3, + STATE_missing = 4, }; cPartlistItem(); @@ -41,6 +43,8 @@ public: void setState(const STATE& state); STATE state(); + QString stateString(); + static QString stateString(const STATE& state); void setPrice(const qreal& price); qreal price(); diff --git a/cpartlistitemeditdialog.cpp b/cpartlistitemeditdialog.cpp index ca666ee..c2dd6ac 100644 --- a/cpartlistitemeditdialog.cpp +++ b/cpartlistitemeditdialog.cpp @@ -10,6 +10,12 @@ cPartlistItemEditDialog::cPartlistItemEditDialog(QWidget *parent) : m_lpPartDistributorList(0) { ui->setupUi(this); + + ui->m_lpOrderState->addItem(cPartlistItem::stateString(cPartlistItem::STATE_init), QVariant::fromValue((qint8)cPartlistItem::STATE_init)); + ui->m_lpOrderState->addItem(cPartlistItem::stateString(cPartlistItem::STATE_ordered), QVariant::fromValue((qint8)cPartlistItem::STATE_ordered)); + ui->m_lpOrderState->addItem(cPartlistItem::stateString(cPartlistItem::STATE_shipping), QVariant::fromValue((qint8)cPartlistItem::STATE_shipping)); + ui->m_lpOrderState->addItem(cPartlistItem::stateString(cPartlistItem::STATE_received), QVariant::fromValue((qint8)cPartlistItem::STATE_received)); + ui->m_lpOrderState->addItem(cPartlistItem::stateString(cPartlistItem::STATE_missing), QVariant::fromValue((qint8)cPartlistItem::STATE_missing)); } cPartlistItemEditDialog::~cPartlistItemEditDialog() @@ -42,6 +48,7 @@ void cPartlistItemEditDialog::setValues(const QString &szReference, const QStrin ui->m_lpReference->setText(szReference); ui->m_lpDistributorList->setCurrentText(szDistributor); + ui->m_lpOrderState->setCurrentText(szState); ui->m_lpPrice->setValue(dPrice); ui->m_lpDescription->setText(szDescription); } diff --git a/cpartlistwindow.cpp b/cpartlistwindow.cpp index 8461206..79c80ad 100644 --- a/cpartlistwindow.cpp +++ b/cpartlistwindow.cpp @@ -231,12 +231,11 @@ void cPartlistWindow::showPartList() lpItems.at(2)->setText(m_lpPartList->find(lpPartlistItem->partID())->name()); if(lpPartlistItem->distributorID()) lpItems.at(3)->setText(m_lpDistributorList->find(lpPartlistItem->distributorID())->name()); - //lpItems.at(4)->setText(lpPartlistItem->state()); + lpItems.at(4)->setText(lpPartlistItem->stateString()); lpItems.at(5)->setText(QString::number(lpPartlistItem->price(), 'f', 2)); + lpItems.at(5)->setTextAlignment(Qt::AlignRight); lpItems.at(6)->setText(lpPartlistItem->description()); - lpItems.at(4)->setTextAlignment(Qt::AlignRight); - for(int z = 0;z < header.count();z++) { lpItems.at(z)->setData(QVariant::fromValue(lpPartlistItem), Qt::UserRole);