wip: refactored price overrides
This commit is contained in:
1 parent
bb7ae1adcc
commit
41424de151
13 files changed
+668
-118
No files matched your search
@@ -6,6 +6,7 @@ use App\Entity\BlameableEntity;
|
||||
use App\Entity\BlameableEntityInterface;
|
||||
use App\Entity\TimestampableEntity;
|
||||
use App\Entity\TimestampableEntityInterface;
|
||||
use App\Enum\Groups\PriceType;
|
||||
use App\Enum\Groups\Season;
|
||||
use App\Repository\Groups\AccommodationPriceRepository;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
@@ -31,6 +32,7 @@ class AccommodationPrice implements BlameableEntityInterface, TimestampableEntit
|
||||
#[Assert\NotNull(message: 'required')]
|
||||
private ?\DateTimeImmutable $dateFrom = null;
|
||||
|
||||
// Inclusive: the last night this price applies. A booking 01.01.–10.01. covers 9 nights (01.01.–09.01.); 10.01. is checkout.
|
||||
#[ORM\Column(type: Types::DATE_IMMUTABLE)]
|
||||
#[Assert\NotNull(message: 'required')]
|
||||
#[Assert\GreaterThan(propertyPath: 'dateFrom', message: 'Das Bis-Datum muss nach dem Von-Datum liegen')]
|
||||
@@ -55,11 +57,8 @@ class AccommodationPrice implements BlameableEntityInterface, TimestampableEntit
|
||||
#[Assert\NotNull(message: 'required')]
|
||||
private ?int $minNights = null;
|
||||
|
||||
#[ORM\Column(nullable: true)]
|
||||
private ?int $pricePerNightOverride = null;
|
||||
|
||||
#[ORM\Column(nullable: true)]
|
||||
private ?int $priceAdditionalPersonOverride = null;
|
||||
#[ORM\Column(length: 20, nullable: true, enumType: PriceType::class)]
|
||||
private ?PriceType $type = null;
|
||||
|
||||
#[ORM\Column]
|
||||
private bool $acceptUndersubscription = false;
|
||||
@@ -170,40 +169,18 @@ class AccommodationPrice implements BlameableEntityInterface, TimestampableEntit
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getPricePerNightOverride(): ?int
|
||||
public function getType(): ?PriceType
|
||||
{
|
||||
return $this->pricePerNightOverride;
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
public function setPricePerNightOverride(?int $pricePerNightOverride): self
|
||||
public function setType(?PriceType $type): self
|
||||
{
|
||||
$this->pricePerNightOverride = $pricePerNightOverride;
|
||||
$this->type = $type;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getEffectivePricePerNight(): int
|
||||
{
|
||||
return $this->pricePerNightOverride ?? $this->pricePerNight;
|
||||
}
|
||||
|
||||
public function getPriceAdditionalPersonOverride(): ?int
|
||||
{
|
||||
return $this->priceAdditionalPersonOverride;
|
||||
}
|
||||
|
||||
public function setPriceAdditionalPersonOverride(?int $priceAdditionalPersonOverride): self
|
||||
{
|
||||
$this->priceAdditionalPersonOverride = $priceAdditionalPersonOverride;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getEffectivePriceAdditionalPerson(): int
|
||||
{
|
||||
return $this->priceAdditionalPersonOverride ?? $this->priceAdditionalPerson;
|
||||
}
|
||||
|
||||
public function isAcceptUndersubscription(): bool
|
||||
{
|
||||
return $this->acceptUndersubscription;
|
||||
|
||||
Reference in new issue
Block a user