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