Breaks and working hours are now shown

This commit is contained in:
0xFEEDC0DE64
2017-12-05 20:28:12 +01:00
parent 7e83064c73
commit 978fb41694
2 changed files with 30 additions and 3 deletions

View File

@@ -102,6 +102,7 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, Zeiterfassung &erfassung
connect(ui->treeViewKontierungen, &QWidget::customContextMenuRequested, connect(ui->treeViewKontierungen, &QWidget::customContextMenuRequested,
this, &MainWindow::contextMenuKontierung); this, &MainWindow::contextMenuKontierung);
ui->statusbar->addPermanentWidget(m_kontierungLabel = new QLabel(ui->statusbar));
ui->statusbar->addPermanentWidget(m_auswertungLabel = new QLabel(ui->statusbar)); ui->statusbar->addPermanentWidget(m_auswertungLabel = new QLabel(ui->statusbar));
refresh(true); refresh(true);
@@ -151,6 +152,8 @@ void MainWindow::refresh(bool forceAuswertung)
ui->treeViewBuchungen->setEnabled(false); ui->treeViewBuchungen->setEnabled(false);
ui->treeViewKontierungen->setEnabled(false); ui->treeViewKontierungen->setEnabled(false);
m_kontierungLabel->setText(tr("Kontierung time: ???"));
auto waitForBuchugen = m_buchungenModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date()); auto waitForBuchugen = m_buchungenModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date());
if(waitForBuchugen) if(waitForBuchugen)
{ {
@@ -841,6 +844,9 @@ void MainWindow::validateEntries()
m_kontierungTime = QTime(0, 0); m_kontierungTime = QTime(0, 0);
auto buchungTimespan = QTime(0, 0); auto buchungTimespan = QTime(0, 0);
const Zeiterfassung::Buchung *lastBuchung = Q_NULLPTR;
const Zeiterfassung::Kontierung *lastKontierung = Q_NULLPTR;
QString errorMessage; QString errorMessage;
while(true) while(true)
@@ -866,6 +872,16 @@ void MainWindow::validateEntries()
goto after; goto after;
} }
if(lastBuchung)
{
auto label = new QLabel(tr("Pause: %0h").arg(timeBetween(lastBuchung->time, startBuchung.time).toString(QStringLiteral("HH:mm"))), ui->scrollAreaWidgetContents);
ui->verticalLayout2->addWidget(label);
label->setMinimumHeight(20);
label->setMaximumHeight(20);
}
lastBuchung = &startBuchung;
m_lastKontierungStart = startBuchung.time; m_lastKontierungStart = startBuchung.time;
ui->verticalLayout2->addWidget(new BuchungStrip(startBuchung.id, startBuchung.time, startBuchung.type, m_settings, ui->scrollAreaWidgetContents)); ui->verticalLayout2->addWidget(new BuchungStrip(startBuchung.id, startBuchung.time, startBuchung.type, m_settings, ui->scrollAreaWidgetContents));
@@ -885,6 +901,8 @@ void MainWindow::validateEntries()
goto after; goto after;
} }
lastKontierung = &kontierung;
ui->verticalLayout2->addWidget(new KontierungStrip(kontierung.id, kontierung.timespan, buildProjektString(kontierung.projekt), ui->verticalLayout2->addWidget(new KontierungStrip(kontierung.id, kontierung.timespan, buildProjektString(kontierung.projekt),
kontierung.subprojekt, kontierung.workpackage, kontierung.text, kontierung.subprojekt, kontierung.workpackage, kontierung.text,
m_settings, ui->scrollAreaWidgetContents)); m_settings, ui->scrollAreaWidgetContents));
@@ -938,6 +956,8 @@ void MainWindow::validateEntries()
goto after; goto after;
} }
lastKontierung = &kontierung;
ui->verticalLayout2->addWidget(new KontierungStrip(kontierung.id, kontierung.timespan, buildProjektString(kontierung.projekt), ui->verticalLayout2->addWidget(new KontierungStrip(kontierung.id, kontierung.timespan, buildProjektString(kontierung.projekt),
kontierung.subprojekt, kontierung.workpackage, kontierung.text, kontierung.subprojekt, kontierung.workpackage, kontierung.text,
m_settings, ui->scrollAreaWidgetContents)); m_settings, ui->scrollAreaWidgetContents));
@@ -976,6 +996,8 @@ void MainWindow::validateEntries()
goto after; goto after;
} }
lastBuchung = &endBuchung;
buchungTimespan = timeAdd(buchungTimespan, timeBetween(startBuchung.time, endBuchung.time)); buchungTimespan = timeAdd(buchungTimespan, timeBetween(startBuchung.time, endBuchung.time));
ui->timeEditTime->setMinimumTime(timeAdd(endBuchung.time, QTime(0, 1))); ui->timeEditTime->setMinimumTime(timeAdd(endBuchung.time, QTime(0, 1)));
@@ -1008,6 +1030,8 @@ void MainWindow::validateEntries()
goto after; goto after;
} }
lastKontierung = &kontierung;
ui->verticalLayout2->addWidget(new KontierungStrip(kontierung.id, kontierung.timespan, buildProjektString(kontierung.projekt), ui->verticalLayout2->addWidget(new KontierungStrip(kontierung.id, kontierung.timespan, buildProjektString(kontierung.projekt),
kontierung.subprojekt, kontierung.workpackage, kontierung.text, kontierung.subprojekt, kontierung.workpackage, kontierung.text,
m_settings, ui->scrollAreaWidgetContents)); m_settings, ui->scrollAreaWidgetContents));
@@ -1058,15 +1082,17 @@ void MainWindow::validateEntries()
if(m_kontierungTime > buchungTimespan) if(m_kontierungTime > buchungTimespan)
goto after; goto after;
else
ui->verticalLayout2->addSpacing(17);
} }
} }
} }
after: after:
if(!errorMessage.isEmpty()) if(errorMessage.isEmpty())
m_kontierungLabel->setText(tr("Kontierung time: %0h").arg(m_kontierungTime.toString(QStringLiteral("HH:mm"))));
else
{ {
m_kontierungLabel->setText(tr("Kontierung time: ???"));
auto label = new QLabel(tr("Strip rendering aborted due error."), ui->scrollAreaWidgetContents); auto label = new QLabel(tr("Strip rendering aborted due error."), ui->scrollAreaWidgetContents);
ui->verticalLayout2->addWidget(label); ui->verticalLayout2->addWidget(label);
label->setMinimumHeight(20); label->setMinimumHeight(20);

View File

@@ -51,6 +51,7 @@ private:
QMap<QString, QString> m_projekte; QMap<QString, QString> m_projekte;
QDate m_auswertungDate; QDate m_auswertungDate;
QByteArray m_auswertung; QByteArray m_auswertung;
QLabel *m_kontierungLabel;
QLabel *m_auswertungLabel; QLabel *m_auswertungLabel;
BuchungenModel *m_buchungenModel; BuchungenModel *m_buchungenModel;