PDF Calc, Cosmetics

This commit is contained in:
Carsten Graf
2026-01-26 10:29:03 +01:00
parent 563d4fc373
commit bbb176dbe3
6 changed files with 30 additions and 7 deletions

View File

@@ -38,6 +38,18 @@ body {
padding: 15px 30px; padding: 15px 30px;
} }
.navbar-brand {
display: flex;
align-items: center;
gap: 25px;
}
.navbar-logo {
height: 40px;
width: auto;
object-fit: contain;
}
.navbar h1 { .navbar h1 {
font-size: 24px; font-size: 24px;
margin: 0; margin: 0;

BIN
public/images/header.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -251,12 +251,13 @@ function generatePDF(timesheetId, req, res) {
doc.moveTo(50, y).lineTo(550, y).stroke(); doc.moveTo(50, y).lineTo(550, y).stroke();
doc.moveDown(0.5); doc.moveDown(0.5);
doc.font('Helvetica-Bold'); doc.font('Helvetica-Bold');
doc.text(`Gesamtstunden: ${totalHours.toFixed(2)} h`, 50, doc.y); // Gesamtstunden = Arbeitsstunden + Urlaubsstunden (Urlaub zählt als Arbeitszeit)
const totalHoursWithVacation = totalHours + vacationHours;
doc.text(`Gesamtstunden: ${totalHoursWithVacation.toFixed(2)} h`, 50, doc.y);
// Überstunden berechnen und anzeigen // Überstunden berechnen und anzeigen
const wochenstunden = timesheet.wochenstunden || 0; const wochenstunden = timesheet.wochenstunden || 0;
// Überstunden = (Tatsächliche Stunden + Urlaubsstunden) - Wochenstunden // Überstunden = (Tatsächliche Stunden + Urlaubsstunden) - Wochenstunden
const totalHoursWithVacation = totalHours + vacationHours;
const overtimeHours = totalHoursWithVacation - wochenstunden; const overtimeHours = totalHoursWithVacation - wochenstunden;
doc.moveDown(0.3); doc.moveDown(0.3);
@@ -467,11 +468,12 @@ function generatePDFToBuffer(timesheetId, req) {
doc.moveTo(50, y).lineTo(550, y).stroke(); doc.moveTo(50, y).lineTo(550, y).stroke();
doc.moveDown(0.5); doc.moveDown(0.5);
doc.font('Helvetica-Bold'); doc.font('Helvetica-Bold');
doc.text(`Gesamtstunden: ${totalHours.toFixed(2)} h`, 50, doc.y); // Gesamtstunden = Arbeitsstunden + Urlaubsstunden (Urlaub zählt als Arbeitszeit)
const totalHoursWithVacation = totalHours + vacationHours;
doc.text(`Gesamtstunden: ${totalHoursWithVacation.toFixed(2)} h`, 50, doc.y);
const wochenstunden = timesheet.wochenstunden || 0; const wochenstunden = timesheet.wochenstunden || 0;
// Überstunden = (Tatsächliche Stunden + Urlaubsstunden) - Wochenstunden // Überstunden = (Tatsächliche Stunden + Urlaubsstunden) - Wochenstunden
const totalHoursWithVacation = totalHours + vacationHours;
const overtimeHours = totalHoursWithVacation - wochenstunden; const overtimeHours = totalHoursWithVacation - wochenstunden;
doc.moveDown(0.3); doc.moveDown(0.3);

View File

@@ -9,7 +9,10 @@
<body> <body>
<div class="navbar"> <div class="navbar">
<div class="container"> <div class="container">
<h1>Stundenerfassung - Admin</h1> <div class="navbar-brand">
<img src="/images/header.png" alt="Logo" class="navbar-logo">
<h1>Stundenerfassung - Admin</h1>
</div>
<div class="nav-right"> <div class="nav-right">
<span>Admin: <%= user.firstname %> <%= user.lastname %></span> <span>Admin: <%= user.firstname %> <%= user.lastname %></span>
<% if (user.roles && user.roles.length > 1) { %> <% if (user.roles && user.roles.length > 1) { %>

View File

@@ -10,7 +10,10 @@
<body> <body>
<div class="navbar"> <div class="navbar">
<div class="container"> <div class="container">
<h1>Stundenerfassung</h1> <div class="navbar-brand">
<img src="/images/header.png" alt="Logo" class="navbar-logo">
<h1>Stundenerfassung</h1>
</div>
<div class="nav-right"> <div class="nav-right">
<span>Willkommen, <%= user.firstname %> <%= user.lastname %></span> <span>Willkommen, <%= user.firstname %> <%= user.lastname %></span>
<% if (user.roles && user.roles.length > 1) { %> <% if (user.roles && user.roles.length > 1) { %>

View File

@@ -9,7 +9,10 @@
<body> <body>
<div class="navbar"> <div class="navbar">
<div class="container"> <div class="container">
<h1>Stundenerfassung - Verwaltung</h1> <div class="navbar-brand">
<img src="/images/header.png" alt="Logo" class="navbar-logo">
<h1>Stundenerfassung - Verwaltung</h1>
</div>
<div class="nav-right"> <div class="nav-right">
<span>Verwaltung: <%= user.firstname %> <%= user.lastname %></span> <span>Verwaltung: <%= user.firstname %> <%= user.lastname %></span>
<% if (user.roles && user.roles.length > 1) { %> <% if (user.roles && user.roles.length > 1) { %>