feat : Ajout du système de RTT sur la page employé avec le repport annuel des heures
All checks were successful
Auto Tag Develop / tag (push) Successful in 6s

This commit is contained in:
2026-03-13 10:26:33 +01:00
parent 1858817649
commit 4a2c3a8eed
29 changed files with 1595 additions and 391 deletions

View File

@@ -26,8 +26,20 @@ class EmployeeRttBalance
#[ORM\Column(type: 'integer', options: ['comment' => 'Annee d exercice (year = annee de fin, ex: 2026 = 01/06/2025 -> 31/05/2026).'])]
private int $year = 0;
#[ORM\Column(type: 'integer', options: ['comment' => 'Report N-1 en minutes (solde d ouverture).'])]
private int $openingMinutes = 0;
#[ORM\Column(type: 'integer', options: ['comment' => 'Mois de fin du report (1-12). Le report s affiche dans le mois suivant.', 'default' => 5])]
private int $month = 5;
#[ORM\Column(type: 'integer', options: ['comment' => 'Report N-1 base 25% en minutes.', 'default' => 0])]
private int $openingBase25Minutes = 0;
#[ORM\Column(type: 'integer', options: ['comment' => 'Report N-1 bonus 25% en minutes.', 'default' => 0])]
private int $openingBonus25Minutes = 0;
#[ORM\Column(type: 'integer', options: ['comment' => 'Report N-1 base 50% en minutes.', 'default' => 0])]
private int $openingBase50Minutes = 0;
#[ORM\Column(type: 'integer', options: ['comment' => 'Report N-1 bonus 50% en minutes.', 'default' => 0])]
private int $openingBonus50Minutes = 0;
#[ORM\Column(type: 'boolean', options: ['default' => false, 'comment' => 'Indique si le solde est fige (verrouille RH).'])]
private bool $isLocked = false;
@@ -74,18 +86,71 @@ class EmployeeRttBalance
return $this;
}
public function getOpeningMinutes(): int
public function getMonth(): int
{
return $this->openingMinutes;
return $this->month;
}
public function setOpeningMinutes(int $openingMinutes): self
public function setMonth(int $month): self
{
$this->openingMinutes = $openingMinutes;
$this->month = $month;
return $this;
}
public function getOpeningBase25Minutes(): int
{
return $this->openingBase25Minutes;
}
public function setOpeningBase25Minutes(int $openingBase25Minutes): self
{
$this->openingBase25Minutes = $openingBase25Minutes;
return $this;
}
public function getOpeningBonus25Minutes(): int
{
return $this->openingBonus25Minutes;
}
public function setOpeningBonus25Minutes(int $openingBonus25Minutes): self
{
$this->openingBonus25Minutes = $openingBonus25Minutes;
return $this;
}
public function getOpeningBase50Minutes(): int
{
return $this->openingBase50Minutes;
}
public function setOpeningBase50Minutes(int $openingBase50Minutes): self
{
$this->openingBase50Minutes = $openingBase50Minutes;
return $this;
}
public function getOpeningBonus50Minutes(): int
{
return $this->openingBonus50Minutes;
}
public function setOpeningBonus50Minutes(int $openingBonus50Minutes): self
{
$this->openingBonus50Minutes = $openingBonus50Minutes;
return $this;
}
public function getTotalOpeningMinutes(): int
{
return $this->openingBase25Minutes + $this->openingBonus25Minutes + $this->openingBase50Minutes + $this->openingBonus50Minutes;
}
public function isLocked(): bool
{
return $this->isLocked;