From 8a049efe4924fc98cf23bf295710ac670b33f6d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCnther?= Date: Thu, 14 May 2026 17:59:22 +0200 Subject: [PATCH] Release --- app/Tasks/CloseCostUnit.php | 22 ++++++++++++++++++++-- version | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/Tasks/CloseCostUnit.php b/app/Tasks/CloseCostUnit.php index a4dfdd2..842e03d 100644 --- a/app/Tasks/CloseCostUnit.php +++ b/app/Tasks/CloseCostUnit.php @@ -2,23 +2,41 @@ namespace App\Tasks; +use App\Domains\CostUnit\Actions\ChangeCostUnitDetails\ChangeCostUnitDetailsCommand; +use App\Domains\CostUnit\Actions\ChangeCostUnitDetails\ChangeCostUnitDetailsRequest; use App\Domains\CostUnit\Actions\ChangeCostUnitState\ChangeCostUnitStateCommand; use App\Domains\CostUnit\Actions\ChangeCostUnitState\ChangeCostUnitStateRequest; use App\Models\CostUnit; use App\Repositories\CostUnitRepository; +use App\ValueObjects\Amount; class CloseCostUnit implements CronTask { public function handle(): void { $now = now(); $costUnitRepository = new CostUnitRepository(); + $now = now(); + $billingResetEnd = clone $now; + $billingResetEnd->add(new \DateInterval('P6W')); /** @var CostUnit $costUnit */ foreach ($costUnitRepository->getCurrentEvents() as $costUnit) { - $billingEndTime = \DateTime::createFromFormat('Y-m-d H:i:s', $costUnit['billing_deadline']); + $billingEnd = $costUnit['billing_deadline']; + + if ($billingEnd === null) { + $billingEnd = \DateTime::createFromFormat('Y-m-d H:i:s', $billingResetEnd)->format('Y-m-d H:i:s'); + new ChangeCostUnitDetailsCommand(new ChangeCostUnitDetailsRequest( + CostUnit::where('id', $costUnit['id'])->first(), + Amount::fromString($costUnit['distance_allowance']), + $costUnit['mail_on_new'], + $billingResetEnd + ))->execute(); + } + + $billingEndTime = \DateTime::createFromFormat('Y-m-d H:i:s', $billingEnd); $billingEndTime->setTime(0,0,0); $billingEndTime->add(new \DateInterval('P1D')); - $now = now(); + if ($billingEndTime < $now) { new ChangeCostUnitStateCommand( diff --git a/version b/version index 6aba2b2..fae6e3d 100644 --- a/version +++ b/version @@ -1 +1 @@ -4.2.0 +4.2.1