From a87054df1baa777c878497fb8b49e1e4568c05db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Helge=20Nordg=C3=A5rd?= Date: Fri, 24 Sep 2021 21:25:06 +0200 Subject: [PATCH] =?UTF-8?q?L=C3=B8st=20inkonsis=20bruk=20av=20kundeid=20bu?= =?UTF-8?q?g=20#5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/kundewidget.cpp | 21 ++++++++++----------- src/core/kundewidget.h | 2 +- src/core/mainwindow.cpp | 18 +++++++++++++++++- src/core/mainwindow.h | 1 + 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/core/kundewidget.cpp b/src/core/kundewidget.cpp index 5d31bad..0fc77dd 100644 --- a/src/core/kundewidget.cpp +++ b/src/core/kundewidget.cpp @@ -33,27 +33,27 @@ void KundeWidget::lagKundeTabell(KundeKartotek &kundeKart) { for (int i = 0; i < aktivKartotek.size(); ++i) { QTableWidgetItem *kundeID = new QTableWidgetItem(aktivKartotek.at(i).value("id").toString()); kundeID->setFlags(kundeID->flags() ^ Qt::ItemIsEditable); - kundeID->setData(Qt::UserRole, i); + kundeID->setData(Qt::UserRole, aktivKartotek.at(i).value("id").toInt()); QTableWidgetItem *fornavn = new QTableWidgetItem(aktivKartotek.at(i).value("fornavn").toString()); fornavn->setFlags(fornavn->flags() ^ Qt::ItemIsEditable); - fornavn->setData(Qt::UserRole, i); + fornavn->setData(Qt::UserRole, aktivKartotek.at(i).value("id").toInt()); QTableWidgetItem *etternavn = new QTableWidgetItem(aktivKartotek.at(i).value("etternavn").toString()); etternavn->setFlags(etternavn->flags() ^ Qt::ItemIsEditable); - etternavn->setData(Qt::UserRole, i); + etternavn->setData(Qt::UserRole, aktivKartotek.at(i).value("id").toInt()); QTableWidgetItem *firmanavn = new QTableWidgetItem(aktivKartotek.at(i).value("firmanavn").toString()); firmanavn->setFlags(firmanavn->flags() ^ Qt::ItemIsEditable); - firmanavn->setData(Qt::UserRole, i); + firmanavn->setData(Qt::UserRole, aktivKartotek.at(i).value("id").toInt()); QTableWidgetItem *telefon = new QTableWidgetItem(aktivKartotek.at(i).value("tlf").toString()); telefon->setFlags(telefon->flags() ^ Qt::ItemIsEditable); - telefon->setData(Qt::UserRole, i); + telefon->setData(Qt::UserRole, aktivKartotek.at(i).value("id").toInt()); QTableWidgetItem *epost = new QTableWidgetItem(aktivKartotek.at(i).value("epost").toString()); epost->setFlags(epost->flags() ^ Qt::ItemIsEditable); - epost->setData(Qt::UserRole, i); + epost->setData(Qt::UserRole, aktivKartotek.at(i).value("id").toInt()); ui->kundeTabell->setItem(i, 0, kundeID); ui->kundeTabell->setItem(i, 1, fornavn); @@ -69,12 +69,11 @@ void KundeWidget::on_pushNyKunde_clicked() { } void KundeWidget::on_pushRediger_clicked() { - emit redigerKunde(kundeKortID); + emit redigerKunde(kundeNummer); } void KundeWidget::celleKlikk(QTableWidgetItem *celleGjenstand) { - kundeKortID = celleGjenstand->data(Qt::UserRole).toInt(); - int kundeNummer = kundeKortID + 1; + kundeNummer = celleGjenstand->data(Qt::UserRole).toInt(); ui->pushRediger->setEnabled(true); ui->pushSlett->setEnabled(true); @@ -84,11 +83,11 @@ void KundeWidget::celleKlikk(QTableWidgetItem *celleGjenstand) { } void KundeWidget::on_pushSlett_clicked() { - emit slettKunde(kundeKortID); + emit slettKunde(kundeNummer); } void KundeWidget::on_pushProsjekt_clicked() { - emit tilordneProsjekt(kundeKortID); + emit tilordneProsjekt(kundeNummer); } diff --git a/src/core/kundewidget.h b/src/core/kundewidget.h index 58912f7..cdd3d28 100644 --- a/src/core/kundewidget.h +++ b/src/core/kundewidget.h @@ -36,7 +36,7 @@ private slots: private: Ui::KundeWidget *ui; - int kundeKortID; + int kundeNummer; }; #endif // KUNDEWIDGET_H diff --git a/src/core/mainwindow.cpp b/src/core/mainwindow.cpp index f5309e2..e4f09ea 100644 --- a/src/core/mainwindow.cpp +++ b/src/core/mainwindow.cpp @@ -165,6 +165,22 @@ void MainWindow::oppdaterTellere() { } +/* slettKundeFraKartotek(): + * ------------------------ + * + * Sletter kunde fra kundekartoteket ved bruk av kundeNummer argumentet + */ + +void MainWindow::slettKundeFraKartotek(int kundeNummer) { + for (int i = 0; i < kundeKart.size(); ++i) { + if (kundeKart.at(i).value("id").toInt() == kundeNummer) { + KundeFil kunde = kundeKart.at(i); + kunde.insert("active", false); + kundeKart.replace(i, kunde); + } + } +} + /* erstattProsjekt(): * ------------------------ * @@ -581,7 +597,7 @@ void MainWindow::slettKunde(int posisjon) { switch (svar) { case QMessageBox::Ok: - kundeKart[posisjon].insert("active", false); + slettKundeFraKartotek(posisjon); kundeW->lagKundeTabell(kundeKart); filLagret = false; oppdaterTittel(); diff --git a/src/core/mainwindow.h b/src/core/mainwindow.h index fe29e2f..98b9d24 100644 --- a/src/core/mainwindow.h +++ b/src/core/mainwindow.h @@ -83,6 +83,7 @@ private: void oppdaterTittel(); void oppdaterUI(); void oppdaterTellere(); + void slettKundeFraKartotek(int kundeNummer); void erstattProsjekt(ProsjektFil prosjekt); int tellKunder(); int tellProsjekter();