UI improvements
This commit is contained in:
@@ -12,6 +12,7 @@ use App\Providers\DoubleCheckEventRegistrationProvider;
|
||||
use App\Providers\InertiaProvider;
|
||||
use App\Resources\UserResource;
|
||||
use App\Scopes\CommonController;
|
||||
use App\ValueObjects\Amount;
|
||||
use DateTime;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -194,7 +195,7 @@ class SignupController extends CommonController {
|
||||
$arrival = \DateTime::createFromFormat('Y-m-d', $request->input('arrival'));
|
||||
$departure = \DateTime::createFromFormat('Y-m-d', $request->input('departure'));
|
||||
|
||||
$amount = $event->calculateAmount(
|
||||
$baseFee = $event->calculateAmount(
|
||||
$request->input('participationType'),
|
||||
$request->input('beitrag'),
|
||||
$arrival,
|
||||
@@ -205,12 +206,27 @@ class SignupController extends CommonController {
|
||||
// Gewählte Zusätze immer einrechnen -- so enthält der finale Anzeigebetrag (und der Bestätigungstext)
|
||||
// stets die Addons und der Zahlungsschritt wird nur bei Gesamt 0 € übersprungen.
|
||||
$selectedAddonKeys = array_keys(array_filter((array)$request->input('addons', []), fn($v) => (bool)$v));
|
||||
$amount->addAmount($event->resolveAddons($selectedAddonKeys, $arrival, $departure)['total']);
|
||||
$resolution = $event->resolveAddons($selectedAddonKeys, $arrival, $departure);
|
||||
|
||||
// Gesamt = Teilnahmebeitrag + Zusätze; Basisbetrag separat für die Kostenübersicht in der Zusammenfassung.
|
||||
$total = new Amount($baseFee->getAmount(), 'Euro');
|
||||
$total->addAmount($resolution['total']);
|
||||
|
||||
$addonLines = array_map(fn($item) => [
|
||||
'key' => $item['key'],
|
||||
'title' => $item['title'],
|
||||
'amountValue' => $item['amount'],
|
||||
'amount' => new Amount($item['amount'], 'Euro')->toString(),
|
||||
'free' => $item['amount'] <= 0,
|
||||
], $resolution['items']);
|
||||
|
||||
// amountValue (numerisch) steuert im Frontend das Überspringen des Zahlungsart-Schritts bei 0 €.
|
||||
return response()->json([
|
||||
'amount' => $amount->toString(),
|
||||
'amountValue' => $amount->getAmount(),
|
||||
'amount' => $total->toString(),
|
||||
'amountValue' => $total->getAmount(),
|
||||
'baseAmount' => $baseFee->toString(),
|
||||
'baseAmountValue' => $baseFee->getAmount(),
|
||||
'addons' => $addonLines,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user