Add support of leaves

This commit is contained in:
Aurélie Delhaie
2022-10-16 17:36:47 +02:00
parent 6a44c4afd9
commit fd4b766c4d
14 changed files with 219 additions and 77 deletions

View File

@@ -185,12 +185,8 @@ void MainWindow::compute_time() {
ui->thu_time_label->setText(Tools::double_to_string_time(current_week->getThu()->get_total()));
ui->fri_time_label->setText(Tools::double_to_string_time(current_week->getFri()->get_total()));
ui->total_time_label->setText(Tools::double_to_string_time(current_week->total()));
updateStartLabel();
updateBreakLabel();
updateEndLabel();
updateLabels();
updateWeekTime();
updateValidIcon();
updateWarningIcon();
double late = 0.0;
double overtime = 0.0;
@@ -199,8 +195,8 @@ void MainWindow::compute_time() {
while (i.hasNext()) {
Week *w = i.next().value();
if (w->getWeekNumber() <= todayWeekNumber) {
late += (week_template->total() - w->total()) - w->getTimeDeltaInHours();
overtime += (w->total() - week_template->total()) + w->getTimeDeltaInHours();
late += (week_template->total() - w->total(week_template)) - w->getTimeDeltaInHours();
overtime += (w->total() - week_template->total(week_template)) + w->getTimeDeltaInHours();
}
}
late -= current_week->getTimeDeltaInHours();
@@ -209,25 +205,9 @@ void MainWindow::compute_time() {
ui->overtime_time_label->setText(Tools::double_to_string_time((overtime > 0.0) ? overtime : 0.0));
}
void MainWindow::updateValidIcon() {
ui->mondayValidate->setVisible(current_week->getMon()->get_validate());
ui->tuesdayValidate->setVisible(current_week->getTue()->get_validate());
ui->wednesdayValidate->setVisible(current_week->getWed()->get_validate());
ui->thurdayValidate->setVisible(current_week->getThu()->get_validate());
ui->fridayValidate->setVisible(current_week->getFri()->get_validate());
}
void MainWindow::updateWarningIcon() {
ui->mondayWarning->setVisible(current_week->getMon()->has_warning());
ui->tuesdayWarning->setVisible(current_week->getTue()->has_warning());
ui->wednesdayWarning->setVisible(current_week->getWed()->has_warning());
ui->thurdayWarning->setVisible(current_week->getThu()->has_warning());
ui->fridayWarning->setVisible(current_week->getFri()->has_warning());
}
void MainWindow::updateWeekTime()
{
double t = (current_week->total() + current_week->getTimeDeltaInHours()) - week_template->total();
double t = (current_week->total(week_template) + current_week->getTimeDeltaInHours()) - week_template->total();
if (t > 0) {
ui->overtime_time_label_week->setText(Tools::double_to_string_time(t));
ui->late_time_label_week->setText("0h");
@@ -240,28 +220,30 @@ void MainWindow::updateWeekTime()
}
}
void MainWindow::updateStartLabel() {
ui->monStartLabel->setText(current_week->getMon()->get_start().toString("HH:mm"));
ui->tueStartLabel->setText(current_week->getTue()->get_start().toString("HH:mm"));
ui->wedStartLabel->setText(current_week->getWed()->get_start().toString("HH:mm"));
ui->thuStartLabel->setText(current_week->getThu()->get_start().toString("HH:mm"));
ui->friStartLabel->setText(current_week->getFri()->get_start().toString("HH:mm"));
void MainWindow::updateLabels() {
updateDayLabels(ui->monStartLabel, ui->monEndLabel, ui->monBreakLabel, ui->mondayValidate, ui->mondayWarning, ui->mondayNotWorking, current_week->getMon());
updateDayLabels(ui->tueStartLabel, ui->tueEndLabel, ui->tueBreakLabel, ui->tuesdayValidate, ui->tuesdayWarning, ui->tuesdayNotWorking, current_week->getTue());
updateDayLabels(ui->wedStartLabel, ui->wedEndLabel, ui->wedBreakLabel, ui->wednesdayValidate, ui->wednesdayWarning, ui->wednesdayNotWorking, current_week->getWed());
updateDayLabels(ui->thuStartLabel, ui->thuEndLabel, ui->thuBreakLabel, ui->thurdayValidate, ui->thurdayWarning, ui->thurdayNotWorking, current_week->getThu());
updateDayLabels(ui->friStartLabel, ui->friEndLabel, ui->friBreakLabel, ui->fridayValidate, ui->fridayWarning, ui->fridayNotWorking, current_week->getFri());
}
void MainWindow::updateBreakLabel() {
ui->monBreakLabel->setText(QString("%1 min.").arg(current_week->getMon()->get_time_break()));
ui->tueBreakLabel->setText(QString("%1 min.").arg(current_week->getTue()->get_time_break()));
ui->wedBreakLabel->setText(QString("%1 min.").arg(current_week->getWed()->get_time_break()));
ui->thuBreakLabel->setText(QString("%1 min.").arg(current_week->getThu()->get_time_break()));
ui->friBreakLabel->setText(QString("%1 min.").arg(current_week->getFri()->get_time_break()));
}
void MainWindow::updateEndLabel() {
ui->monEndLabel->setText(current_week->getMon()->get_end().toString("HH:mm"));
ui->tueEndLabel->setText(current_week->getTue()->get_end().toString("HH:mm"));
ui->wedEndLabel->setText(current_week->getWed()->get_end().toString("HH:mm"));
ui->thuEndLabel->setText(current_week->getThu()->get_end().toString("HH:mm"));
ui->friEndLabel->setText(current_week->getFri()->get_end().toString("HH:mm"));
void MainWindow::updateDayLabels(QLabel *start, QLabel *end, QLabel *breaks, QFrame *validate, QFrame *warning, QFrame *not_working, Day *d)
{
not_working->setVisible(d->not_working());
if (!d->not_working()) {
start->setText(d->get_start().toString("HH:mm"));
end->setText(d->get_end().toString("HH:mm"));
breaks->setText(QString("%1 min.").arg(d->get_time_break()));
validate->setVisible(d->get_validate());
warning->setVisible(d->has_warning());
} else {
start->setText("--:--");
end->setText("--:--");
breaks->setText("0 min.");
validate->setVisible(false);
warning->setVisible(false);
}
}
void MainWindow::edit() {