141 lines
5.5 KiB
C++
141 lines
5.5 KiB
C++
#include "prosjektwidget.h"
|
|
#include "ui_prosjektwidget.h"
|
|
|
|
ProsjektWidget::ProsjektWidget(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::ProsjektWidget) {
|
|
ui->setupUi(this);
|
|
}
|
|
|
|
ProsjektWidget::~ProsjektWidget() {
|
|
delete ui;
|
|
}
|
|
|
|
void ProsjektWidget::oppdaterProsjektListe(ProsjektKartotek &kartotek, ProsjektBindinger &bindinger, KundeKartotek &kundeKart) {
|
|
ui->prosjektTre->clear();
|
|
ui->prosjektTre->setColumnCount(1);
|
|
|
|
connect(ui->prosjektTre, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(gjenstandKlikk(QTreeWidgetItem*,int)));
|
|
|
|
QList<QTreeWidgetItem *> prosjektListe;
|
|
QIcon prosjektIkon(":/res/clipboard.svg");
|
|
QIcon prosjektFerdigIkon(":/res/check.svg");
|
|
QIcon kundeIkon(":/res/user.svg");
|
|
|
|
for (int i = 0; i < kartotek.size(); ++i) {
|
|
bool aktiv = kartotek.at(i).value("active").toBool();
|
|
if (aktiv) {
|
|
bool ferdig = kartotek.at(i).value("ferdig").toBool();
|
|
QTreeWidgetItem *prosjektGjenstand = new QTreeWidgetItem(QTreeWidgetItem::Type);
|
|
prosjektGjenstand->setText(0, kartotek.at(i).value("prosjektnavn").toString());
|
|
|
|
if (ferdig)
|
|
prosjektGjenstand->setIcon(0,prosjektFerdigIkon);
|
|
else
|
|
prosjektGjenstand->setIcon(0, prosjektIkon);
|
|
|
|
int ordrenummer = kartotek.at(i).value("ordrenummer").toInt();
|
|
QList<QTreeWidgetItem *> kundeGjenstander;
|
|
if (bindinger.contains(ordrenummer)) {
|
|
QList<int> kunder = bindinger.value(ordrenummer);
|
|
for (int x = 0; x < kunder.size(); ++x) {
|
|
QString kundeFornavn, kundeEtternavn, kundeFirmanavn;
|
|
for (int z = 0; z < kundeKart.size(); ++z) {
|
|
if (kundeKart.at(z).value("id").toInt() == kunder.at(x)) {
|
|
kundeFornavn = kundeKart.at(z).value("fornavn").toString();
|
|
kundeEtternavn = kundeKart.at(z).value("etternavn").toString();
|
|
if (!kundeKart.at(z).value("firmanavn").toString().isEmpty()) {
|
|
kundeFirmanavn = QString(tr("(%1)").arg(kundeKart.at(z).value("firmanavn").toString()));
|
|
}
|
|
}
|
|
}
|
|
QTreeWidgetItem *kunde = new QTreeWidgetItem(QTreeWidgetItem::UserType);
|
|
kunde->setText(0, tr("%1 %2 %3").arg(kundeFornavn, kundeEtternavn, kundeFirmanavn));
|
|
kunde->setIcon(0, kundeIkon);
|
|
kunde->setData(0, Qt::UserRole, kunder.at(x));
|
|
kundeGjenstander.append(kunde);
|
|
}
|
|
prosjektGjenstand->addChildren(kundeGjenstander);
|
|
}
|
|
|
|
prosjektGjenstand->setData(0, Qt::UserRole, i);
|
|
prosjektListe.append(prosjektGjenstand);
|
|
}
|
|
}
|
|
|
|
ui->prosjektTre->addTopLevelItems(prosjektListe);
|
|
}
|
|
|
|
void ProsjektWidget::settGjeldendeProsjekt(ProsjektFil prosjekt) {
|
|
valgtProsjekt = prosjekt;
|
|
}
|
|
|
|
void ProsjektWidget::on_pushNy_clicked() {
|
|
emit opprettProsjekt();
|
|
}
|
|
|
|
void ProsjektWidget::gjenstandKlikk(QTreeWidgetItem *gjenstand, int kolonne) {
|
|
if (gjenstand->type() == QTreeWidgetItem::Type) {
|
|
emit hentProsjektFil(gjenstand->data(kolonne, Qt::UserRole).toInt());
|
|
kartotekPosisjon = gjenstand->data(kolonne, Qt::UserRole).toInt();
|
|
|
|
ui->labelProsjektNavn->setText(valgtProsjekt.value("prosjektnavn").toString());
|
|
ui->labelOrdrenrValue->setText(valgtProsjekt.value("ordrenummer").toString());
|
|
ui->ordreText->setHtml(valgtProsjekt.value("prosjektbeskrivelse").toString());
|
|
|
|
quint64 prosjektStart = valgtProsjekt.value("prosjektstart").toULongLong();
|
|
quint64 prosjektSlutt = valgtProsjekt.value("prosjektslutt").toULongLong();
|
|
QDateTime tProsjektStart(QDateTime::fromMSecsSinceEpoch(prosjektStart));
|
|
QDateTime tProsjektSlutt(QDateTime::fromMSecsSinceEpoch(prosjektSlutt));
|
|
ui->labelBegynnerValue->setText(tProsjektStart.toString("dd.MM.yyyy hh:mm"));
|
|
ui->labelSlutterValue->setText(tProsjektSlutt.toString("dd.MM.yyyy hh:mm"));
|
|
|
|
prosjektUI();
|
|
} else {
|
|
QTreeWidgetItem *forelder = gjenstand->parent();
|
|
kartotekPosisjon = forelder->data(kolonne, Qt::UserRole).toInt();
|
|
kundeID = gjenstand->data(kolonne, Qt::UserRole).toInt();
|
|
ui->labelProsjektNavn->setText("Ingen prosjekt valgt");
|
|
ui->labelOrdrenrValue->setText("-");
|
|
ui->labelBegynnerValue->setText("-");
|
|
ui->labelSlutterValue->setText("-");
|
|
ui->ordreText->clear();
|
|
|
|
kundeUI();
|
|
}
|
|
}
|
|
|
|
void ProsjektWidget::prosjektUI() {
|
|
ui->pushFjernKunde->setEnabled(false);
|
|
ui->pushRediger->setEnabled(true);
|
|
ui->pushSlett->setEnabled(true);
|
|
ui->pushMerkFerdig->setEnabled(true);
|
|
}
|
|
|
|
void ProsjektWidget::kundeUI() {
|
|
ui->pushFjernKunde->setEnabled(true);
|
|
ui->pushRediger->setEnabled(false);
|
|
ui->pushSlett->setEnabled(false);
|
|
ui->pushMerkFerdig->setEnabled(false);
|
|
}
|
|
|
|
|
|
void ProsjektWidget::on_pushRediger_clicked() {
|
|
emit redigerProsjekt(kartotekPosisjon);
|
|
}
|
|
|
|
|
|
void ProsjektWidget::on_pushSlett_clicked() {
|
|
emit slettProsjekt(kartotekPosisjon);
|
|
}
|
|
|
|
|
|
void ProsjektWidget::on_pushMerkFerdig_clicked() {
|
|
emit settAktiv(kartotekPosisjon);
|
|
}
|
|
|
|
|
|
void ProsjektWidget::on_pushFjernKunde_clicked() {
|
|
emit fjernKunde(kartotekPosisjon, kundeID);
|
|
}
|