feat: add reporting pay type and logic
All checks were successful
Docker Build and Publish / build-and-push (push) Successful in 41s

This commit is contained in:
2026-01-12 08:34:18 -05:00
parent 9a939f0182
commit 89e5e8a303
4 changed files with 34 additions and 0 deletions

View File

@@ -152,7 +152,9 @@ const EntryForm = ({ onEntryAdded }) => {
<option value="regular">{t('type.regular')}</option>
<option value="standby">{t('type.standby')}</option>
<option value="callback">{t('type.callback')}</option>
<option value="callback">{t('type.callback')}</option>
<option value="non_contiguous">{t('type.non_contiguous')}</option>
<option value="reporting_pay">{t('type.reporting_pay')}</option>
</select>
</div>

View File

@@ -60,6 +60,15 @@ export const calculateBankedHours = (duration, type, dayType) => {
return Math.max(minPay, workedValue);
}
// --- REPORTING PAY ---
if (type === 'reporting_pay') {
// Article 9.03 (a): Minimum 4 hours pay at straight time rates
// OR time worked at applicable overtime rate, whichever is greater.
let workedValue = calculateOvertimeValue(hours, dayType);
const minPay = 4.0;
return Math.max(minPay, workedValue);
}
// --- REGULAR / OVERTIME ---
if (type === 'overtime' || type === 'regular') {
// "Regular" on a Time Tracker for Overtime usually implies "Regular Overtime" unless it is standard hours?

View File

@@ -37,7 +37,9 @@ export const translations = {
'type.regular': 'Regular',
'type.standby': 'Standby',
'type.callback': 'Call-back',
'type.callback': 'Call-back',
'type.non_contiguous': 'Non-Contiguous Hours',
'type.reporting_pay': 'Reporting Pay',
// Day Types
'day.workday': 'Normal Workday',
@@ -123,7 +125,9 @@ export const translations = {
'type.regular': 'Régulier',
'type.standby': 'Disponibilité',
'type.callback': 'Rappel au travail',
'type.callback': 'Rappel au travail',
'type.non_contiguous': 'Heures non contiguës',
'type.reporting_pay': 'Indemnité de rentrée',
// Day Types
'day.workday': 'Jour normal',