[AccompanyingCourse location] Indicate course location on course index

page
This commit is contained in:
2021-08-18 10:52:13 +02:00
parent 75d3dfb830
commit a0afaa568d
5 changed files with 97 additions and 14 deletions

View File

@@ -499,6 +499,17 @@ class AccompanyingPeriod implements TrackCreationInterface, TrackUpdateInterface
return $collection->count() > 0 ? $collection->first() : NULL;
}
public function getOPenParticipations(): Collection
{
return $this
->getParticipations()
->filter(
static function(AccompanyingPeriodParticipation $participation): bool {
return null === $participation->getEndDate();
}
);
}
/**
* Return true if the accompanying period contains a person.
*
@@ -974,6 +985,22 @@ class AccompanyingPeriod implements TrackCreationInterface, TrackUpdateInterface
return $this->personLocation;
}
/**
* Get a list of person which have an adresse available for a valid location
*
* @return Collection|Person[]
*/
public function getAvailablePersonLocation(): Collection
{
return $this->getOPenParticipations()
->filter(function(AccompanyingPeriodParticipation $p) {
return $p->getPerson()->hasCurrentHouseholdAddress();
})
->map(function(AccompanyingPeriodParticipation $p) {
return $p->getPerson();
});
}
/**
* @Groups({"write"})
*/

View File

@@ -103,7 +103,7 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI
*
* @ORM\Column(type="date", nullable=true)
*/
private $birthdate;
private $birthdate;
/**
* The person's deathdate
@@ -736,8 +736,8 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI
{
return $this->birthdate;
}
public function getAge(): ?int
public function getAge(): ?int
{
if ($this->birthdate instanceof \DateTimeInterface) {
return date_diff($this->birthdate, date_create('now'))->format("%y");
@@ -1439,6 +1439,11 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI
}
}
public function hasCurrentHouseholdAddress(?\DateTimeImmutable $at = null): bool
{
return null !== $this->getCurrentHouseholdAddress($at);
}
public function getGenderComment(): CommentEmbeddable
{
return $this->genderComment;