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) {
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);
}

View File

@ -36,7 +36,7 @@ private slots:
private:
Ui::KundeWidget *ui;
int kundeKortID;
int kundeNummer;
};
#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():
* ------------------------
*
@ -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();

View File

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