Løst inkonsis bruk av kundeid bug #5

This commit is contained in:
Helge-Mikael Nordgård 2021-09-24 21:25:06 +02:00
parent df7c5a8b41
commit a87054df1b
4 changed files with 29 additions and 13 deletions

View File

@ -33,27 +33,27 @@ void KundeWidget::lagKundeTabell(KundeKartotek &kundeKart) {
for (int i = 0; i < aktivKartotek.size(); ++i) { for (int i = 0; i < aktivKartotek.size(); ++i) {
QTableWidgetItem *kundeID = new QTableWidgetItem(aktivKartotek.at(i).value("id").toString()); QTableWidgetItem *kundeID = new QTableWidgetItem(aktivKartotek.at(i).value("id").toString());
kundeID->setFlags(kundeID->flags() ^ Qt::ItemIsEditable); 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()); QTableWidgetItem *fornavn = new QTableWidgetItem(aktivKartotek.at(i).value("fornavn").toString());
fornavn->setFlags(fornavn->flags() ^ Qt::ItemIsEditable); 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()); QTableWidgetItem *etternavn = new QTableWidgetItem(aktivKartotek.at(i).value("etternavn").toString());
etternavn->setFlags(etternavn->flags() ^ Qt::ItemIsEditable); 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()); QTableWidgetItem *firmanavn = new QTableWidgetItem(aktivKartotek.at(i).value("firmanavn").toString());
firmanavn->setFlags(firmanavn->flags() ^ Qt::ItemIsEditable); 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()); QTableWidgetItem *telefon = new QTableWidgetItem(aktivKartotek.at(i).value("tlf").toString());
telefon->setFlags(telefon->flags() ^ Qt::ItemIsEditable); 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()); QTableWidgetItem *epost = new QTableWidgetItem(aktivKartotek.at(i).value("epost").toString());
epost->setFlags(epost->flags() ^ Qt::ItemIsEditable); 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, 0, kundeID);
ui->kundeTabell->setItem(i, 1, fornavn); ui->kundeTabell->setItem(i, 1, fornavn);
@ -69,12 +69,11 @@ void KundeWidget::on_pushNyKunde_clicked() {
} }
void KundeWidget::on_pushRediger_clicked() { void KundeWidget::on_pushRediger_clicked() {
emit redigerKunde(kundeKortID); emit redigerKunde(kundeNummer);
} }
void KundeWidget::celleKlikk(QTableWidgetItem *celleGjenstand) { void KundeWidget::celleKlikk(QTableWidgetItem *celleGjenstand) {
kundeKortID = celleGjenstand->data(Qt::UserRole).toInt(); kundeNummer = celleGjenstand->data(Qt::UserRole).toInt();
int kundeNummer = kundeKortID + 1;
ui->pushRediger->setEnabled(true); ui->pushRediger->setEnabled(true);
ui->pushSlett->setEnabled(true); ui->pushSlett->setEnabled(true);
@ -84,11 +83,11 @@ void KundeWidget::celleKlikk(QTableWidgetItem *celleGjenstand) {
} }
void KundeWidget::on_pushSlett_clicked() { void KundeWidget::on_pushSlett_clicked() {
emit slettKunde(kundeKortID); emit slettKunde(kundeNummer);
} }
void KundeWidget::on_pushProsjekt_clicked() { void KundeWidget::on_pushProsjekt_clicked() {
emit tilordneProsjekt(kundeKortID); emit tilordneProsjekt(kundeNummer);
} }

View File

@ -36,7 +36,7 @@ private slots:
private: private:
Ui::KundeWidget *ui; Ui::KundeWidget *ui;
int kundeKortID; int kundeNummer;
}; };
#endif // KUNDEWIDGET_H #endif // KUNDEWIDGET_H

View File

@ -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(): /* erstattProsjekt():
* ------------------------ * ------------------------
* *
@ -581,7 +597,7 @@ void MainWindow::slettKunde(int posisjon) {
switch (svar) { switch (svar) {
case QMessageBox::Ok: case QMessageBox::Ok:
kundeKart[posisjon].insert("active", false); slettKundeFraKartotek(posisjon);
kundeW->lagKundeTabell(kundeKart); kundeW->lagKundeTabell(kundeKart);
filLagret = false; filLagret = false;
oppdaterTittel(); oppdaterTittel();

View File

@ -83,6 +83,7 @@ private:
void oppdaterTittel(); void oppdaterTittel();
void oppdaterUI(); void oppdaterUI();
void oppdaterTellere(); void oppdaterTellere();
void slettKundeFraKartotek(int kundeNummer);
void erstattProsjekt(ProsjektFil prosjekt); void erstattProsjekt(ProsjektFil prosjekt);
int tellKunder(); int tellKunder();
int tellProsjekter(); int tellProsjekter();