Enhances employee details with comprehensive salary and HR data

Adds detailed salary rates, commission structures, and HR-related records

Introduces new data models and view components for:
- Salary rates and supplements
- Commissions and rate configurations
- Employee HR tracking (certifications, courses, absence)

Implements dynamic rate synchronization between drawer and card views
This commit is contained in:
Janus C. H. Knudsen 2026-01-13 22:37:29 +01:00
parent 2e6207bb0b
commit f71f00099a
15 changed files with 1589 additions and 137 deletions

View file

@ -220,8 +220,62 @@ public record EmployeeDetailRecord
public required string HourlyRate { get; init; }
public required string MonthlyFixedSalary { get; init; }
// Salary - Rates
public string NormalRate { get; init; } = "131,49 kr";
public string OvertimeRate { get; init; } = "280,50 kr";
public string VacationRate { get; init; } = "140,25 kr";
// Salary - Commission
public string MinimumPerHour { get; init; } = "220 kr";
public string ServiceCommission { get; init; } = "15%";
public string ProductCommission { get; init; } = "15%";
// Salary - Supplements
public string WeekdaySupplement { get; init; } = "28,03 kr";
public string SaturdaySupplement { get; init; } = "56,02 kr";
public string SundaySupplement { get; init; } = "112,07 kr";
// Salary - Rate values (numeric only, for drawer inputs)
public string NormalRateValue { get; init; } = "131,49";
public string OvertimeRateValue { get; init; } = "280,50";
public string CourseRateValue { get; init; } = "140,25";
public string TimeOffRateValue { get; init; } = "140,25";
public string PaidLeaveRateValue { get; init; } = "140,25";
public string VacationRateValue { get; init; } = "140,25";
public string OfficeRateValue { get; init; } = "140,25";
public string ChildSickRateValue { get; init; } = "140,25";
public string ChildHospitalRateValue { get; init; } = "140,25";
public string MaternityRateValue { get; init; } = "140,25";
public string WeekdaySupplementValue { get; init; } = "28,03";
public string SaturdaySupplementValue { get; init; } = "56,02";
public string SundaySupplementValue { get; init; } = "112,07";
public string ProductCommissionValue { get; init; } = "15";
public string ServiceCommissionValue { get; init; } = "15";
// HR - Contract
public string ContractType { get; init; } = "Fastansættelse";
public string TerminationNotice { get; init; } = "1 måned";
public string ContractExpiry { get; init; } = "— (ingen udløb)";
// HR - Vacation
public string VacationEarned { get; init; } = "25 dage";
public string VacationUsed { get; init; } = "12 dage";
public string VacationRemaining { get; init; } = "13 dage";
// HR - Absence
public string SickDays2025 { get; init; } = "3 dage";
public string SickDays2024 { get; init; } = "7 dage";
public string ChildSickDays2025 { get; init; } = "1 dag";
public string MaternityLeave { get; init; } = "— (ingen planlagt)";
// Tags (certifications, specialties)
public List<EmployeeTag> Tags { get; init; } = new();
}
public record EmployeeTag(string Text, string CssClass);
// HR data records
public record CertificationRecord(string Name, string ExpiryDate, string Status, string StatusClass);
public record CourseRecord(string Name, string Provider, string Date, string? Status = null);
public record DocumentRecord(string Name, string UploadDate);
public record PlannedAbsenceRecord(string Dates, string Type, string TypeClass);