fix(rtt) : rollover reporte le solde de clôture complet (#SIRH-34)
La bascule app:rtt:rollover ne reprenait que les RTT acquis de l'exercice qui se terminait : le report d'ouverture déjà présent était perdu et les paiements n'étaient pas déduits. Le nouveau report reprend le solde de clôture = report d'ouverture(N-1) + acquis(N-1) − RTT payés(N-1), soit le "Disponible" affiché par EmployeeRttSummaryProvider. - nouveau RttClosingBalanceService (fold pur testé : invariant somme tranches = disponible, cascade déficit 50% avant 25%, récup CUSTOM non perdue) - RttRolloverCommand branché dessus + option --recompute (écrase les lignes existantes non verrouillées, pour reprise d'une bascule erronée) - test date-sensible EmployeeRttSummaryProviderTest rendu robuste - docs: doc/rtt-rollover.md, CLAUDE.md, documentation-content.ts Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -156,8 +156,11 @@ final class EmployeeRttSummaryProviderTest extends TestCase
|
||||
$provider = $this->buildProvider([]);
|
||||
$year = $this->invokePrivate($provider, 'resolveYear', $currentPhase);
|
||||
|
||||
// Today is 2026-05-19 → current RTT exercise (Juin N-1 → Mai N) = 2026.
|
||||
self::assertSame(2026, $year);
|
||||
// No params → current RTT exercise (Juin N-1 → Mai N). Derive the expectation
|
||||
// from today so the test is not pinned to a single calendar date.
|
||||
$today = new DateTimeImmutable('today');
|
||||
$expected = (int) $today->format('n') >= 6 ? (int) $today->format('Y') + 1 : (int) $today->format('Y');
|
||||
self::assertSame($expected, $year);
|
||||
}
|
||||
|
||||
public function testInvalidYearFormatReturns422(): void
|
||||
|
||||
Reference in New Issue
Block a user