Pausenbuchung hinzugefügt
This commit is contained in:
+26
-3
@@ -28,9 +28,31 @@ function isWorkDay(dateStr, workDays) {
|
||||
return Array.isArray(workDays) && workDays.includes(day);
|
||||
}
|
||||
|
||||
/** Berechnet die tatsächlich geleisteten Minuten abzüglich Pause. */
|
||||
function computeWorkedMinutes(startTime, endTime, breakMinutes) {
|
||||
return timeToMinutes(endTime) - timeToMinutes(startTime) - Number(breakMinutes || 0);
|
||||
/**
|
||||
* Summiert alle Einzelpausen.
|
||||
* @param {Array<{start: string, end: string}>} breaks
|
||||
* @returns {number} Gesamte Pausenzeit in Minuten
|
||||
*/
|
||||
function computeTotalBreakMinutes(breaks) {
|
||||
if (!Array.isArray(breaks)) return 0;
|
||||
return breaks.reduce((total, b) => {
|
||||
if (!b || !b.start || !b.end) return total;
|
||||
const duration = timeToMinutes(b.end) - timeToMinutes(b.start);
|
||||
return total + Math.max(0, duration);
|
||||
}, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Berechnet die tatsächlich geleisteten Netto-Minuten.
|
||||
* @param {string} startTime z. B. "08:00"
|
||||
* @param {string} endTime z. B. "17:00"
|
||||
* @param {Array<{start: string, end: string}>} breaks Pausenzeiten
|
||||
* @returns {number}
|
||||
*/
|
||||
function computeWorkedMinutes(startTime, endTime, breaks) {
|
||||
const gross = timeToMinutes(endTime) - timeToMinutes(startTime);
|
||||
const totalBreak = computeTotalBreakMinutes(breaks);
|
||||
return gross - totalBreak;
|
||||
}
|
||||
|
||||
/** Saldo (Über-/Minusstunden) eines einzelnen Tages in Minuten. */
|
||||
@@ -64,6 +86,7 @@ module.exports = {
|
||||
minutesToHM,
|
||||
formatBalance,
|
||||
isWorkDay,
|
||||
computeTotalBreakMinutes,
|
||||
computeWorkedMinutes,
|
||||
computeBalanceMinutes,
|
||||
formatDateDisplay,
|
||||
|
||||
Reference in New Issue
Block a user