diff --git a/app/Livewire/BillingPortal/Cart/OptionalOneTimeProducts.php b/app/Livewire/BillingPortal/Cart/OptionalOneTimeProducts.php index bf5f3aaa0030..22350ee06b69 100644 --- a/app/Livewire/BillingPortal/Cart/OptionalOneTimeProducts.php +++ b/app/Livewire/BillingPortal/Cart/OptionalOneTimeProducts.php @@ -19,6 +19,13 @@ class OptionalOneTimeProducts extends Component { public Subscription $subscription; + public array $context; + + public function quantity($id, $value): void + { + $this->dispatch('purchase.context', property: "bundle.optional_one_time_products.{$id}.quantity", value: $value); + } + public function render(): \Illuminate\View\View { return view('billing-portal.v3.cart.optional-one-time-products'); diff --git a/resources/views/billing-portal/v3/cart/optional-one-time-products.blade.php b/resources/views/billing-portal/v3/cart/optional-one-time-products.blade.php index cee8704c90a3..0e206333710b 100644 --- a/resources/views/billing-portal/v3/cart/optional-one-time-products.blade.php +++ b/resources/views/billing-portal/v3/cart/optional-one-time-products.blade.php @@ -1,15 +1,20 @@
- @unless(empty($subscription->optional_recurring_product_ids)) - @foreach($subscription->service()->optional_products() as $index => $product) + @isset($context['bundle']['optional_one_time_products']) + @foreach($context['bundle']['optional_one_time_products'] as $key => $entry) + + @php + $product = $entry['product']; + @endphp +
- @if(filter_var($product->product_image, FILTER_VALIDATE_URL)) + @if(filter_var($product['product_image'], FILTER_VALIDATE_URL))
@@ -17,24 +22,24 @@ @endif
-

{{ $product->product_key }}

-

{{ \App\Utils\Number::formatMoney($product->price, $subscription->company) }}

+

{{ $product['product_key'] }}

+

{{ \App\Utils\Number::formatMoney($product['price'], $subscription['company']) }}

- @if(is_numeric($product->max_quantity)) - @if($subscription->use_inventory_management && $product->in_stock_quantity == 0) + @if($subscription->per_seat_enabled) + @if($subscription->use_inventory_management && $product['in_stock_quantity'] == 0)

{{ ctrans('texts.out_of_stock') }}

@else

{{ ctrans('texts.qty') }}

@endif - - use_inventory_management && $product['in_stock_quantity'] == 0) disabled @endif> + + @for ($i = 1; $i <= ($subscription->use_inventory_management ? min($product['in_stock_quantity'], max(100,$product['max_quantity'])) : max(100,$product['max_quantity'])); $i++) + @endfor @endif @@ -43,9 +48,9 @@
- {!! $product->markdownNotes() !!} + {!! $product['notes'] !!}
@endforeach - @endunless + @endisset