Utløpsdatoer vindu implementert (#10)
This commit is contained in:
parent
5cf40bcba4
commit
15bef4617a
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE QtCreatorProject>
|
<!DOCTYPE QtCreatorProject>
|
||||||
<!-- Written by QtCreator 4.15.0, 2021-09-29T00:05:03. -->
|
<!-- Written by QtCreator 4.15.0, 2021-09-29T00:16:25. -->
|
||||||
<qtcreator>
|
<qtcreator>
|
||||||
<data>
|
<data>
|
||||||
<variable>EnvironmentId</variable>
|
<variable>EnvironmentId</variable>
|
||||||
|
|
|
||||||
|
|
@ -507,7 +507,8 @@ void MainWindow::on_commandCustomers_clicked() {
|
||||||
delete prosjektW;
|
delete prosjektW;
|
||||||
pListe = false;
|
pListe = false;
|
||||||
} else if (utlop) {
|
} else if (utlop) {
|
||||||
|
delete utlopW;
|
||||||
|
utlop = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
kundeW = new KundeWidget(this);
|
kundeW = new KundeWidget(this);
|
||||||
|
|
@ -536,6 +537,9 @@ void MainWindow::on_commandProsjekter_clicked() {
|
||||||
if (kListe) {
|
if (kListe) {
|
||||||
delete kundeW;
|
delete kundeW;
|
||||||
kListe = false;
|
kListe = false;
|
||||||
|
} else if (utlop) {
|
||||||
|
delete utlopW;
|
||||||
|
utlop = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
prosjektW = new ProsjektWidget(this);
|
prosjektW = new ProsjektWidget(this);
|
||||||
|
|
@ -554,6 +558,83 @@ void MainWindow::on_commandProsjekter_clicked() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* on_commandDeadlines_clicked():
|
||||||
|
* -------------------------------
|
||||||
|
*
|
||||||
|
* Setter inn listen over fremtidige prosjekter widgeten inn i hoved dialogboksen.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void MainWindow::on_commandDeadlines_clicked() {
|
||||||
|
if (!utlop) {
|
||||||
|
if (kListe) {
|
||||||
|
delete kundeW;
|
||||||
|
kListe = false;
|
||||||
|
} else if (pListe) {
|
||||||
|
delete prosjektW;
|
||||||
|
pListe = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
delete utlopW;
|
||||||
|
utlop = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
utlopW = new UtlopWidget(this);
|
||||||
|
|
||||||
|
connect(utlopW, SIGNAL(prosjektListeStarter()), this, SLOT(prosjektOppstartsListe()));
|
||||||
|
connect(utlopW, SIGNAL(prosjektListeAvslutter()), this, SLOT(prosjektAvslutterListe()));
|
||||||
|
connect(utlopW, SIGNAL(visProsjekt(int)), this, SLOT(hoppTilProsjekt(int)));
|
||||||
|
|
||||||
|
ui->hovedLayout->insertWidget(0, utlopW);
|
||||||
|
utlopW->tegnUtlopsDatoer(prosjektKart);
|
||||||
|
utlopW->show();
|
||||||
|
utlop = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* prosjektOppstartsListe():
|
||||||
|
* -------------------------------
|
||||||
|
*
|
||||||
|
* Tegner utløpsdato tabellen på ny for å vise når prosjekter starter
|
||||||
|
*/
|
||||||
|
|
||||||
|
void MainWindow::prosjektOppstartsListe() {
|
||||||
|
utlopW->tegnOppstartsDatoer(prosjektKart);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* prosjektAvslutterListe():
|
||||||
|
* -------------------------------
|
||||||
|
*
|
||||||
|
* Tegner utløpsdato tabellen på ny for å vise når prosjekter slutter
|
||||||
|
*/
|
||||||
|
|
||||||
|
void MainWindow::prosjektAvslutterListe() {
|
||||||
|
utlopW->tegnUtlopsDatoer(prosjektKart);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* hoppTilProsjekt():
|
||||||
|
* -------------------------------
|
||||||
|
*
|
||||||
|
* Hopper fra utløpsdato til prosjekt widget og viser prosjektet brukeren dobbelklikket på
|
||||||
|
*/
|
||||||
|
|
||||||
|
void MainWindow::hoppTilProsjekt(int prosjektId) {
|
||||||
|
prosjektW = new ProsjektWidget(this);
|
||||||
|
|
||||||
|
connect(prosjektW, SIGNAL(opprettProsjekt()), this, SLOT(visNyttProsjektDlg()));
|
||||||
|
connect(prosjektW, SIGNAL(hentProsjektFil(int)), this, SLOT(sendProsjektFil(int)));
|
||||||
|
connect(prosjektW, SIGNAL(redigerProsjekt(int)), this, SLOT(visRedigerProsjektDialog(int)));
|
||||||
|
connect(prosjektW, SIGNAL(slettProsjekt(int)), this, SLOT(slettProsjekt(int)));
|
||||||
|
connect(prosjektW, SIGNAL(settAktiv(int)), this, SLOT(settAktivInaktiv(int)));
|
||||||
|
connect(prosjektW, SIGNAL(fjernKunde(int,int)), this, SLOT(fjernKundeFraProsjekt(int,int)));
|
||||||
|
|
||||||
|
ui->hovedLayout->insertWidget(0, prosjektW);
|
||||||
|
prosjektW->oppdaterProsjektListe(prosjektKart, bindinger, kundeKart, prosjektId);
|
||||||
|
prosjektW->show();
|
||||||
|
pListe = true;
|
||||||
|
delete utlopW;
|
||||||
|
utlop = false;
|
||||||
|
}
|
||||||
|
|
||||||
/* visNyttProsjektDlg():
|
/* visNyttProsjektDlg():
|
||||||
* -------------------------------
|
* -------------------------------
|
||||||
*
|
*
|
||||||
|
|
@ -940,3 +1021,4 @@ void MainWindow::on_actionOm_triggered() {
|
||||||
this->hide();
|
this->hide();
|
||||||
om->show();
|
om->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#include "kundewidget.h"
|
#include "kundewidget.h"
|
||||||
#include "prosjektwidget.h"
|
#include "prosjektwidget.h"
|
||||||
|
#include "utlopwidget.h"
|
||||||
#include "datahandler.h"
|
#include "datahandler.h"
|
||||||
#include "nykundedialog.h"
|
#include "nykundedialog.h"
|
||||||
#include "redigerkundedialog.h"
|
#include "redigerkundedialog.h"
|
||||||
|
|
@ -67,6 +68,12 @@ private slots:
|
||||||
void settAktivInaktiv(int kartotekPlassering);
|
void settAktivInaktiv(int kartotekPlassering);
|
||||||
void fjernKundeFraProsjekt(int prosjektKartotekPosisjon, int kundeID);
|
void fjernKundeFraProsjekt(int prosjektKartotekPosisjon, int kundeID);
|
||||||
|
|
||||||
|
/* Ultøpslots */
|
||||||
|
void on_commandDeadlines_clicked();
|
||||||
|
void prosjektOppstartsListe();
|
||||||
|
void prosjektAvslutterListe();
|
||||||
|
void hoppTilProsjekt(int prosjektId);
|
||||||
|
|
||||||
/* Arbeidshest slots */
|
/* Arbeidshest slots */
|
||||||
void varsle(ProsjektFil prosjekt, AlertConditions kondisjon);
|
void varsle(ProsjektFil prosjekt, AlertConditions kondisjon);
|
||||||
|
|
||||||
|
|
@ -74,6 +81,7 @@ private:
|
||||||
Ui::MainWindow *ui;
|
Ui::MainWindow *ui;
|
||||||
KundeWidget *kundeW;
|
KundeWidget *kundeW;
|
||||||
ProsjektWidget *prosjektW;
|
ProsjektWidget *prosjektW;
|
||||||
|
UtlopWidget *utlopW;
|
||||||
DataHandler *ioHandler;
|
DataHandler *ioHandler;
|
||||||
NyKundeDialog *nyKdlg;
|
NyKundeDialog *nyKdlg;
|
||||||
RedigerKundeDialog *redigerKdlg;
|
RedigerKundeDialog *redigerKdlg;
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ void KundeWidget::lagKundeTabell(KundeKartotek &kundeKart) {
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList overskrifter;
|
QStringList overskrifter;
|
||||||
overskrifter << "Kundenummer" << tr("Fornavn") << tr("Etternavn") << tr("Firmanavn") << tr("Telefonnr") << tr("Epostadresse");
|
overskrifter << tr("Kundenummer") << tr("Fornavn") << tr("Etternavn") << tr("Firmanavn") << tr("Telefonnr") << tr("Epostadresse");
|
||||||
ui->kundeTabell->setRowCount(aktivKartotek.size());
|
ui->kundeTabell->setRowCount(aktivKartotek.size());
|
||||||
ui->kundeTabell->setColumnCount(6);
|
ui->kundeTabell->setColumnCount(6);
|
||||||
ui->kundeTabell->setHorizontalHeaderLabels(overskrifter);
|
ui->kundeTabell->setHorizontalHeaderLabels(overskrifter);
|
||||||
|
|
@ -62,6 +62,8 @@ void KundeWidget::lagKundeTabell(KundeKartotek &kundeKart) {
|
||||||
ui->kundeTabell->setItem(i, 4, telefon);
|
ui->kundeTabell->setItem(i, 4, telefon);
|
||||||
ui->kundeTabell->setItem(i, 5, epost);
|
ui->kundeTabell->setItem(i, 5, epost);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ui->kundeTabell->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||||
}
|
}
|
||||||
|
|
||||||
void KundeWidget::on_pushNyKunde_clicked() {
|
void KundeWidget::on_pushNyKunde_clicked() {
|
||||||
|
|
|
||||||
|
|
@ -7,15 +7,18 @@ DEPENDPATH += \
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
$$PWD/kundewidget.cpp \
|
$$PWD/kundewidget.cpp \
|
||||||
$$PWD/prosjektwidget.cpp
|
$$PWD/prosjektwidget.cpp \
|
||||||
|
$$PWD/utlopwidget.cpp
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
$$PWD/kundewidget.h \
|
$$PWD/kundewidget.h \
|
||||||
$$PWD/prosjektwidget.h
|
$$PWD/prosjektwidget.h \
|
||||||
|
$$PWD/utlopwidget.h
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
$$PWD/kundewidget.ui \
|
$$PWD/kundewidget.ui \
|
||||||
$$PWD/prosjektwidget.ui
|
$$PWD/prosjektwidget.ui \
|
||||||
|
$$PWD/utlopwidget.ui
|
||||||
|
|
||||||
RESOURCES += \
|
RESOURCES += \
|
||||||
$$PWD/../../resources.qrc
|
$$PWD/../../resources.qrc
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,8 @@ ProsjektWidget::~ProsjektWidget() {
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProsjektWidget::oppdaterProsjektListe(ProsjektKartotek &kartotek, ProsjektBindinger &bindinger, KundeKartotek &kundeKart) {
|
void ProsjektWidget::oppdaterProsjektListe(ProsjektKartotek &kartotek, ProsjektBindinger &bindinger, KundeKartotek &kundeKart, int prosjekt) {
|
||||||
|
lokaltKartotek = kartotek;
|
||||||
ui->prosjektTre->clear();
|
ui->prosjektTre->clear();
|
||||||
ui->prosjektTre->setColumnCount(1);
|
ui->prosjektTre->setColumnCount(1);
|
||||||
|
|
||||||
|
|
@ -58,12 +59,19 @@ void ProsjektWidget::oppdaterProsjektListe(ProsjektKartotek &kartotek, ProsjektB
|
||||||
prosjektGjenstand->addChildren(kundeGjenstander);
|
prosjektGjenstand->addChildren(kundeGjenstander);
|
||||||
}
|
}
|
||||||
|
|
||||||
prosjektGjenstand->setData(0, Qt::UserRole, i);
|
prosjektGjenstand->setData(0, Qt::UserRole, kartotek.at(i).value("ordrenummer").toInt());
|
||||||
prosjektListe.append(prosjektGjenstand);
|
prosjektListe.append(prosjektGjenstand);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->prosjektTre->addTopLevelItems(prosjektListe);
|
ui->prosjektTre->addTopLevelItems(prosjektListe);
|
||||||
|
|
||||||
|
for (int i = 0; i < prosjektListe.size(); ++i) {
|
||||||
|
if (prosjekt > 0 && prosjekt == prosjektListe.at(i)->data(0, Qt::UserRole).toInt()) {
|
||||||
|
prosjektListe.at(i)->setSelected(true);
|
||||||
|
gjenstandKlikk(prosjektListe.at(i), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProsjektWidget::settGjeldendeProsjekt(ProsjektFil prosjekt) {
|
void ProsjektWidget::settGjeldendeProsjekt(ProsjektFil prosjekt) {
|
||||||
|
|
@ -76,8 +84,8 @@ void ProsjektWidget::on_pushNy_clicked() {
|
||||||
|
|
||||||
void ProsjektWidget::gjenstandKlikk(QTreeWidgetItem *gjenstand, int kolonne) {
|
void ProsjektWidget::gjenstandKlikk(QTreeWidgetItem *gjenstand, int kolonne) {
|
||||||
if (gjenstand->type() == QTreeWidgetItem::Type) {
|
if (gjenstand->type() == QTreeWidgetItem::Type) {
|
||||||
emit hentProsjektFil(gjenstand->data(kolonne, Qt::UserRole).toInt());
|
emit hentProsjektFil(hentKartotekPosisjon(gjenstand->data(kolonne, Qt::UserRole).toInt()));
|
||||||
kartotekPosisjon = gjenstand->data(kolonne, Qt::UserRole).toInt();
|
kartotekPosisjon = hentKartotekPosisjon(gjenstand->data(kolonne, Qt::UserRole).toInt());
|
||||||
|
|
||||||
ui->labelProsjektNavn->setText(valgtProsjekt.value("prosjektnavn").toString());
|
ui->labelProsjektNavn->setText(valgtProsjekt.value("prosjektnavn").toString());
|
||||||
ui->labelOrdrenrValue->setText(valgtProsjekt.value("ordrenummer").toString());
|
ui->labelOrdrenrValue->setText(valgtProsjekt.value("ordrenummer").toString());
|
||||||
|
|
@ -93,7 +101,7 @@ void ProsjektWidget::gjenstandKlikk(QTreeWidgetItem *gjenstand, int kolonne) {
|
||||||
prosjektUI();
|
prosjektUI();
|
||||||
} else {
|
} else {
|
||||||
QTreeWidgetItem *forelder = gjenstand->parent();
|
QTreeWidgetItem *forelder = gjenstand->parent();
|
||||||
kartotekPosisjon = forelder->data(kolonne, Qt::UserRole).toInt();
|
kartotekPosisjon = hentKartotekPosisjon(forelder->data(kolonne, Qt::UserRole).toInt());
|
||||||
kundeID = gjenstand->data(kolonne, Qt::UserRole).toInt();
|
kundeID = gjenstand->data(kolonne, Qt::UserRole).toInt();
|
||||||
ui->labelProsjektNavn->setText("Ingen prosjekt valgt");
|
ui->labelProsjektNavn->setText("Ingen prosjekt valgt");
|
||||||
ui->labelOrdrenrValue->setText("-");
|
ui->labelOrdrenrValue->setText("-");
|
||||||
|
|
@ -119,6 +127,16 @@ void ProsjektWidget::kundeUI() {
|
||||||
ui->pushMerkFerdig->setEnabled(false);
|
ui->pushMerkFerdig->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ProsjektWidget::hentKartotekPosisjon(int prosjektId) {
|
||||||
|
int posisjon = 0;
|
||||||
|
for (int i = 0; i < lokaltKartotek.size(); ++i) {
|
||||||
|
if (lokaltKartotek.at(i).value("ordrenummer").toInt() == prosjektId)
|
||||||
|
posisjon = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
return posisjon;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void ProsjektWidget::on_pushRediger_clicked() {
|
void ProsjektWidget::on_pushRediger_clicked() {
|
||||||
emit redigerProsjekt(kartotekPosisjon);
|
emit redigerProsjekt(kartotekPosisjon);
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ public:
|
||||||
explicit ProsjektWidget(QWidget *parent = nullptr);
|
explicit ProsjektWidget(QWidget *parent = nullptr);
|
||||||
~ProsjektWidget();
|
~ProsjektWidget();
|
||||||
|
|
||||||
void oppdaterProsjektListe(ProsjektKartotek &kartotek, ProsjektBindinger &bindinger, KundeKartotek &kundeKart);
|
void oppdaterProsjektListe(ProsjektKartotek &kartotek, ProsjektBindinger &bindinger, KundeKartotek &kundeKart, int prosjekt = 0);
|
||||||
void settGjeldendeProsjekt(ProsjektFil prosjekt);
|
void settGjeldendeProsjekt(ProsjektFil prosjekt);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
@ -39,9 +39,11 @@ private slots:
|
||||||
private:
|
private:
|
||||||
Ui::ProsjektWidget *ui;
|
Ui::ProsjektWidget *ui;
|
||||||
ProsjektFil valgtProsjekt;
|
ProsjektFil valgtProsjekt;
|
||||||
|
ProsjektKartotek lokaltKartotek;
|
||||||
|
|
||||||
void prosjektUI();
|
void prosjektUI();
|
||||||
void kundeUI();
|
void kundeUI();
|
||||||
|
int hentKartotekPosisjon(int prosjektId);
|
||||||
|
|
||||||
int kartotekPosisjon, kundeID;
|
int kartotekPosisjon, kundeID;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
116
src/mainwidgets/utlopwidget.cpp
Normal file
116
src/mainwidgets/utlopwidget.cpp
Normal file
|
|
@ -0,0 +1,116 @@
|
||||||
|
#include "utlopwidget.h"
|
||||||
|
#include "ui_utlopwidget.h"
|
||||||
|
|
||||||
|
UtlopWidget::UtlopWidget(QWidget *parent) :
|
||||||
|
QWidget(parent),
|
||||||
|
ui(new Ui::UtlopWidget) {
|
||||||
|
ui->setupUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
UtlopWidget::~UtlopWidget() {
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UtlopWidget::tegnUtlopsDatoer(ProsjektKartotek &kartotek) {
|
||||||
|
ui->prosjektTable->clear();
|
||||||
|
ProsjektKartotek gyldigKartotek = fjernUgyldigeProsjekter(kartotek);
|
||||||
|
|
||||||
|
QStringList overskrifter;
|
||||||
|
overskrifter << tr("Prosjektnavn") << tr("Antall dager til prosjektet slutter");
|
||||||
|
ui->prosjektTable->setRowCount(gyldigKartotek.size());
|
||||||
|
ui->prosjektTable->setColumnCount(2);
|
||||||
|
ui->prosjektTable->setHorizontalHeaderLabels(overskrifter);
|
||||||
|
|
||||||
|
for (int i = 0; i < gyldigKartotek.size(); ++i) {
|
||||||
|
QDateTime iDag = QDateTime::currentDateTime();
|
||||||
|
quint64 iDagEpoch = iDag.toMSecsSinceEpoch();
|
||||||
|
quint64 utlop = gyldigKartotek.at(i).value("prosjektslutt").toULongLong() - iDagEpoch;
|
||||||
|
int antallDagerUtlop = utlop / 24 / 60 / 60 / 1000;
|
||||||
|
|
||||||
|
QTableWidgetItem *prosjektNavn = new QTableWidgetItem();
|
||||||
|
prosjektNavn->setFlags(prosjektNavn->flags() ^ Qt::ItemIsEditable);
|
||||||
|
prosjektNavn->setData(Qt::EditRole, gyldigKartotek.at(i).value("prosjektnavn").toString());
|
||||||
|
prosjektNavn->setData(Qt::UserRole, gyldigKartotek.at(i).value("ordrenummer").toInt());
|
||||||
|
|
||||||
|
QTableWidgetItem *utloper = new QTableWidgetItem();
|
||||||
|
utloper->setFlags(utloper->flags() ^ Qt::ItemIsEditable);
|
||||||
|
if (antallDagerUtlop < 0)
|
||||||
|
utloper->setData(Qt::EditRole, tr("Utløpt"));
|
||||||
|
else if (antallDagerUtlop == 0)
|
||||||
|
utloper->setData(Qt::EditRole, tr("I dag"));
|
||||||
|
else
|
||||||
|
utloper->setData(Qt::EditRole, antallDagerUtlop);
|
||||||
|
utloper->setData(Qt::UserRole, gyldigKartotek.at(i).value("ordrenummer").toInt());
|
||||||
|
|
||||||
|
ui->prosjektTable->setItem(i, 0, prosjektNavn);
|
||||||
|
ui->prosjektTable->setItem(i, 1, utloper);
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->prosjektTable->sortItems(1);
|
||||||
|
ui->prosjektTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UtlopWidget::tegnOppstartsDatoer(ProsjektKartotek &kartotek) {
|
||||||
|
ui->prosjektTable->clear();
|
||||||
|
ProsjektKartotek gyldigKartotek = fjernUgyldigeProsjekter(kartotek);
|
||||||
|
|
||||||
|
QStringList overskrifter;
|
||||||
|
overskrifter << tr("Prosjektnavn") << tr("Antall dager til prosjektet starter");
|
||||||
|
ui->prosjektTable->setRowCount(gyldigKartotek.size());
|
||||||
|
ui->prosjektTable->setColumnCount(2);
|
||||||
|
ui->prosjektTable->setHorizontalHeaderLabels(overskrifter);
|
||||||
|
|
||||||
|
for (int i = 0; i < gyldigKartotek.size(); ++i) {
|
||||||
|
QDateTime iDag = QDateTime::currentDateTime();
|
||||||
|
quint64 iDagEpoch = iDag.toMSecsSinceEpoch();
|
||||||
|
quint64 utlop = gyldigKartotek.at(i).value("prosjektstart").toULongLong() - iDagEpoch;
|
||||||
|
int antallDagerUtlop = utlop / 24 / 60 / 60 / 1000;
|
||||||
|
|
||||||
|
QTableWidgetItem *prosjektNavn = new QTableWidgetItem();
|
||||||
|
prosjektNavn->setFlags(prosjektNavn->flags() ^ Qt::ItemIsEditable);
|
||||||
|
prosjektNavn->setData(Qt::EditRole, gyldigKartotek.at(i).value("prosjektnavn").toString());
|
||||||
|
prosjektNavn->setData(Qt::UserRole, gyldigKartotek.at(i).value("ordrenummer").toInt());
|
||||||
|
|
||||||
|
QTableWidgetItem *utloper = new QTableWidgetItem();
|
||||||
|
utloper->setFlags(utloper->flags() ^ Qt::ItemIsEditable);
|
||||||
|
if (antallDagerUtlop < 0)
|
||||||
|
utloper->setData(Qt::EditRole, tr("Startet"));
|
||||||
|
else if (antallDagerUtlop == 0)
|
||||||
|
utloper->setData(Qt::EditRole, tr("I dag"));
|
||||||
|
else
|
||||||
|
utloper->setData(Qt::EditRole, antallDagerUtlop);
|
||||||
|
utloper->setData(Qt::UserRole, gyldigKartotek.at(i).value("ordrenummer").toInt());
|
||||||
|
|
||||||
|
ui->prosjektTable->setItem(i, 0, prosjektNavn);
|
||||||
|
ui->prosjektTable->setItem(i, 1, utloper);
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->prosjektTable->sortItems(1);
|
||||||
|
ui->prosjektTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||||
|
}
|
||||||
|
|
||||||
|
void UtlopWidget::on_radioVisAvslutt_clicked() {
|
||||||
|
emit prosjektListeAvslutter();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UtlopWidget::on_radioVisBegynner_clicked() {
|
||||||
|
emit prosjektListeStarter();
|
||||||
|
}
|
||||||
|
|
||||||
|
ProsjektKartotek UtlopWidget::fjernUgyldigeProsjekter(ProsjektKartotek kartotek) {
|
||||||
|
ProsjektKartotek gyldige;
|
||||||
|
|
||||||
|
for (int i = 0; i < kartotek.size(); ++i) {
|
||||||
|
if (kartotek.at(i).value("active").toBool() && !kartotek.at(i).value("ferdig").toBool())
|
||||||
|
gyldige << kartotek.at(i);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return gyldige;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UtlopWidget::on_prosjektTable_itemDoubleClicked(QTableWidgetItem *item) {
|
||||||
|
emit visProsjekt(item->data(Qt::UserRole).toInt());
|
||||||
|
}
|
||||||
40
src/mainwidgets/utlopwidget.h
Normal file
40
src/mainwidgets/utlopwidget.h
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
#ifndef UTLOPWIDGET_H
|
||||||
|
#define UTLOPWIDGET_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QTableWidgetItem>
|
||||||
|
#include <QDateTime>
|
||||||
|
#include "datatypes.h"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class UtlopWidget;
|
||||||
|
}
|
||||||
|
|
||||||
|
class UtlopWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit UtlopWidget(QWidget *parent = nullptr);
|
||||||
|
~UtlopWidget();
|
||||||
|
|
||||||
|
void tegnUtlopsDatoer(ProsjektKartotek &kartotek);
|
||||||
|
void tegnOppstartsDatoer(ProsjektKartotek &kartotek);
|
||||||
|
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void prosjektListeAvslutter();
|
||||||
|
void prosjektListeStarter();
|
||||||
|
void visProsjekt(int prosjektId);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_radioVisAvslutt_clicked();
|
||||||
|
void on_radioVisBegynner_clicked();
|
||||||
|
void on_prosjektTable_itemDoubleClicked(QTableWidgetItem *item);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::UtlopWidget *ui;
|
||||||
|
ProsjektKartotek fjernUgyldigeProsjekter(ProsjektKartotek kartotek);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // UTLOPWIDGET_H
|
||||||
166
src/mainwidgets/utlopwidget.ui
Normal file
166
src/mainwidgets/utlopwidget.ui
Normal file
|
|
@ -0,0 +1,166 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>UtlopWidget</class>
|
||||||
|
<widget class="QWidget" name="UtlopWidget">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>764</width>
|
||||||
|
<height>542</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="labelHeadline">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>12</pointsize>
|
||||||
|
<weight>75</weight>
|
||||||
|
<bold>true</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Utløpsdatoer</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_3">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="labelSubHeadline">
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
<weight>50</weight>
|
||||||
|
<bold>false</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Viser alle prosjekter med utløpsdatoer i synkende rekkefølge</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_4">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QTableWidget" name="prosjektTable">
|
||||||
|
<property name="sortingEnabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<attribute name="verticalHeaderVisible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_5">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioVisAvslutt">
|
||||||
|
<property name="text">
|
||||||
|
<string>Vis når prosjekter slutter</string>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioVisBegynner">
|
||||||
|
<property name="text">
|
||||||
|
<string>Vis når prosjekter begynner</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_6">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
Loading…
Reference in New Issue
Block a user