Skip to content
Snippets Groups Projects
Commit d5da6ffa authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

[FIX] correction du choix de l'échelon (si plusieurs échelons actifs alors...

[FIX] correction du choix de l'échelon (si plusieurs échelons actifs alors selection du plus récent en terme de date de passage)
parent 99c5c49b
Branches
Tags
No related merge requests found
......@@ -5,6 +5,7 @@
**Changements**
* Ajout d'un parametre indiquant le chamin d'installation pour la partie Vérification
* [FIX] correction du choix de l'échelon (si plusieurs échelons actifs alors selection du plus récent "en terme de date de passage")
* [FIX] propagation d'un renommage de variable sur l'interface des supérieurs hiérarchique
**Modifications de la base de donnée**
......
......@@ -416,18 +416,21 @@ class Agent implements
$echelons = $this->echelons->toArray();
$grades = array_filter($echelons, function (AgentEchelon $ag) { return !$ag->isDeleted();});
usort($grades, function (AgentEchelon $a, AgentEchelon $b) {
return $a->getDate() > $b->getDate();
return $a->getDateDebut() > $b->getDateDebut();
});
return $grades;
}
/**
* @return AgentEchelon|null
*/
public function getEchelonActif() : ?AgentEchelon
public function getEchelonActif(?DateTime $date = null) : ?AgentEchelon
{
if ($date === null) $date = new DateTime();
$echelons = $this->getEchelons();
$echelon = (!empty($echelons))?$echelons[0]:null;
$echelons = array_filter($echelons, function (AgentEchelon $a) use ($date) {return $a->estEnCours($date);});
$echelon = null;
foreach ($echelons as $echelon_) {
if ($echelon === null OR $echelon_->getDateDebut() > $echelon->getDateDebut()) $echelon = $echelon_;
}
return $echelon;
}
......
......@@ -15,77 +15,27 @@ use Structure\Entity\Db\Structure;
* Données synchronisées depuis Octopus :
* - pas de setter sur les données ainsi remontées
*/
class AgentEchelon {
class AgentEchelon implements HasPeriodeInterface {
use DbImportableAwareTrait;
use HasPeriodeTrait;
/** @var int */
private $id;
/** @var Agent */
private $agent;
/** @var int */
private $echelon;
/** @var DateTime */
private $date;
private ?int $id = -1;
private ?Agent $agent = null;
private ?int $echelon = null;
/**
* @return int|null
*/
public function getId() : ?int
{
return $this->id;
}
/**
* @return Agent|null
*/
public function getAgent(): ?Agent
{
return $this->agent;
}
/**
* @param Agent $agent
* @return AgentEchelon
*/
public function setAgent(Agent $agent): AgentEchelon
{
$this->agent = $agent;
return $this;
}
/**
* @return int|null
*/
public function getEchelon(): ?int
{
return $this->echelon;
}
/**
* @param int $echelon
* @return AgentEchelon
*/
public function setEchelon(int $echelon): AgentEchelon
{
$this->echelon = $echelon;
return $this;
}
/**
* @return DateTime|null
*/
public function getDate(): ?DateTime
{
return $this->date;
}
/**
* @param DateTime $date
* @return AgentEchelon
*/
public function setDate(DateTime $date): AgentEchelon
{
$this->date = $date;
return $this;
}
}
\ No newline at end of file
......@@ -343,7 +343,7 @@ trait AgentMacroTrait
$echelon = $agent->getEchelonActif();
if ($echelon) {
return $echelon->getDate()->format('d/m/Y');
return $echelon->getDateDebut()->format('d/m/Y');
}
return "";
}
......
......@@ -8,8 +8,9 @@
<join-column name="agent_id" referenced-column-name="c_individu"/>
</many-to-one>
<field name="date" type="datetime" column="d_debut" nullable="false"/>
<field name="echelon" type="integer" column="echelon" nullable="false"/>
<field name="dateDebut" type="datetime" column="d_debut" nullable="false"/>
<field name="dateFin" type="datetime" column="d_fin" nullable="true"/>
<!-- DB IMPORT ############################# -->
<field name="created_on" column="created_on" type="datetime"/>
......
......@@ -7,45 +7,27 @@ use Doctrine\ORM\QueryBuilder;
trait HasPeriodeTrait {
/** @var DateTime|null */
private $dateDebut;
/** @var DateTime|null */
private $dateFin;
private ?DateTime $dateDebut = null;
private ?DateTime $dateFin = null;
/**
* @return DateTime|null
*/
public function getDateDebut() : ?DateTime
{
return $this->dateDebut;
}
/**
* @param DateTime|null $date
* @return self
*/
public function setDateDebut(?DateTime $date) : self
public function setDateDebut(?DateTime $date) : void
{
$this->dateDebut = $date;
return $this;
}
/**
* @return DateTime|null
*/
public function getDateFin() : ?DateTime
{
return $this->dateFin;
}
/**
* @param DateTime|null $date
* @return self
*/
public function setDateFin(?DateTime $date) : self
public function setDateFin(?DateTime $date) : void
{
$this->dateFin = $date;
return $this;
}
/**
......
......@@ -103,7 +103,7 @@ $displayCorrespondance = (isset($options['correspondance']) and $options['corres
<?php if ($echelon and $echelon->getEchelon() !== 0) : ?>
<dt class="col-md-3"> Échelon</dt>
<dd class="col-md-9"> <?php echo $echelon->getEchelon(); ?> (date de passage
: <?php echo $echelon->getDate()->format('d/m/Y'); ?>)
: <?php echo $echelon->getDateDebut()->format('d/m/Y'); ?>)
</dd>
<?php endif; ?>
</dl>
......
......@@ -97,7 +97,7 @@ $this->headTitle("Vérification de l'installation");
</div>
<!-- PARAMETRE ---------------------------------------------------------------------------------------------------->
<?php $path = file_exists($installation_path . '/module/' . $module . '/src/' . $module . '/Provider/Parametre'); ?>
<?php $path = $installation_path . '/module/' . $module . '/src/' . $module . '/Provider/Parametre'; ?>
<?php $exist = (file_exists($installation_path . '/module/' . $module . '/src/' . $module . '/Provider/Parametre')); ?>
<div class="card bg-default ">
<div class="card-header">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment