Update staffing management to enhance payroll and hiring functionalities
ci / server (push) Failing after 3m39s
ci / client (push) Successful in 14s

- Increased the `MonthlyPayrollCap` from 10,000 to 40,000, allowing for greater flexibility in hiring and subject assignments.
- Revised payroll calculation logic to ensure that staff members are compensated based on their actual weekly hours, with a minimum payment reflecting one full rate.
- Updated documentation to clarify the new payroll structure and its implications for hiring and subject assignments.
- Enhanced tests to validate the new payroll cap and ensure proper functionality in staffing scenarios, including the handling of uncovered subjects.
- Improved localization strings to reflect changes in staffing and payroll terminology.
This commit is contained in:
Leonid Pershin
2026-08-19 12:51:38 +03:00
parent d61240d5c1
commit 25ce26064d
20 changed files with 376 additions and 112 deletions
+9 -6
View File
@@ -181,16 +181,19 @@ public sealed class StaffingDef : Def
public float HourlyWagePerSkill { get; init; }
/// <summary>Hours assumed in the monthly base rate. Extra subjects add a surcharge on top.</summary>
/// <summary>
/// One full rate. A hired person is paid for at least this many hours even with nothing
/// assigned; hours beyond it are paid on top.
/// </summary>
public float BaseWeeklyHours { get; init; }
public float WeeksPerMonth { get; init; }
/// <summary>
/// Added to the monthly base for each subject after the first. <c>0.25</c> means a second
/// subject costs 25% of the base rate.
/// Most hours one person can carry. A subject whose curriculum needs more than this needs a
/// second teacher — the hours are then shared between them.
/// </summary>
public float ExtraSubjectSurcharge { get; init; }
public float MaxWeeklyHours { get; init; }
public float WeeksPerMonth { get; init; }
}
public enum BodyAttributeKind