Update staffing management to enhance payroll and hiring functionalities
- 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:
@@ -26,9 +26,9 @@ public class StaffingApiTests(AppHostFixture fixture)
|
||||
|
||||
var staffing = await GetStaffingAsync(client, school.Id);
|
||||
|
||||
Assert.Equal(10_000f, staffing.Allocated);
|
||||
Assert.Equal(40_000f, staffing.Allocated);
|
||||
Assert.Equal(0f, staffing.Payroll);
|
||||
Assert.Equal(10_000f, staffing.Remaining);
|
||||
Assert.Equal(40_000f, staffing.Remaining);
|
||||
Assert.Equal(12, staffing.Applicants.Count);
|
||||
Assert.Empty(staffing.Staff);
|
||||
Assert.Contains(staffing.Uncovered, subject => subject.DefName == "Mathematics");
|
||||
@@ -148,9 +148,9 @@ public class StaffingApiTests(AppHostFixture fixture)
|
||||
}
|
||||
|
||||
Assert.Equal("payroll-exceeded", problem?.Code);
|
||||
Assert.Equal(10_000f, problem?.Allocated);
|
||||
Assert.True(problem?.Payroll <= 10_000f);
|
||||
Assert.True(problem?.Attempted > 10_000f);
|
||||
Assert.Equal(40_000f, problem?.Allocated);
|
||||
Assert.True(problem?.Payroll <= 40_000f);
|
||||
Assert.True(problem?.Attempted > 40_000f);
|
||||
Assert.True(staffing.Staff.Count >= 1);
|
||||
}
|
||||
|
||||
@@ -165,7 +165,8 @@ public class StaffingApiTests(AppHostFixture fixture)
|
||||
var teacher = hired.Staff.Single();
|
||||
|
||||
var assigned = await AssignAsync(client, school.Id, teacher.Id, "Mathematics");
|
||||
Assert.Equal(hired.Payroll, assigned.Payroll);
|
||||
// The first subject already costs: 35 curriculum hours is well past one full rate.
|
||||
Assert.True(assigned.Payroll > hired.Payroll);
|
||||
|
||||
assigned = await AssignAsync(client, school.Id, teacher.Id, "RussianLanguage");
|
||||
Assert.True(assigned.Payroll > hired.Payroll);
|
||||
|
||||
Reference in New Issue
Block a user