From 772d8d036ff021f0bf75e0d2d3e7ca53818a138f Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 6 Dec 2022 13:26:37 +1100 Subject: [PATCH 01/13] add payment to bank transaction matching --- app/Jobs/Bank/MatchBankTransactions.php | 1 + app/Utils/Traits/GeneratesCounter.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Jobs/Bank/MatchBankTransactions.php b/app/Jobs/Bank/MatchBankTransactions.php index e52cc7f39a..2fb5611fbb 100644 --- a/app/Jobs/Bank/MatchBankTransactions.php +++ b/app/Jobs/Bank/MatchBankTransactions.php @@ -389,6 +389,7 @@ class MatchBankTransactions implements ShouldQueue $this->bt->invoice_ids = collect($invoices)->pluck('hashed_id')->implode(','); $this->bt->status_id = BankTransaction::STATUS_CONVERTED; + $this->bt->payment_id = $payment->id $this->bt->save(); } diff --git a/app/Utils/Traits/GeneratesCounter.php b/app/Utils/Traits/GeneratesCounter.php index 604caa1174..533b5b60dd 100644 --- a/app/Utils/Traits/GeneratesCounter.php +++ b/app/Utils/Traits/GeneratesCounter.php @@ -751,7 +751,7 @@ trait GeneratesCounter $replace[] = $client->number; $search[] = '{$client_id_number}'; - $replace[] = $client->id_number; + $replace[] = $client->id_number ?: $client->number; $search[] = '{$clientIdNumber}'; $replace[] = $client->id_number ?: $client->number; From 27887b2b624971ef4c695c7f342cbf7690d8ad76 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 6 Dec 2022 14:50:37 +1100 Subject: [PATCH 02/13] minor fixes --- app/Jobs/Bank/MatchBankTransactions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Jobs/Bank/MatchBankTransactions.php b/app/Jobs/Bank/MatchBankTransactions.php index 2fb5611fbb..bc6473d0d8 100644 --- a/app/Jobs/Bank/MatchBankTransactions.php +++ b/app/Jobs/Bank/MatchBankTransactions.php @@ -389,7 +389,7 @@ class MatchBankTransactions implements ShouldQueue $this->bt->invoice_ids = collect($invoices)->pluck('hashed_id')->implode(','); $this->bt->status_id = BankTransaction::STATUS_CONVERTED; - $this->bt->payment_id = $payment->id + $this->bt->payment_id = $payment->id; $this->bt->save(); } From ce1d115ff4ac090c31d761fd01f2ae0b4c7f8501 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 6 Dec 2022 20:13:59 +1100 Subject: [PATCH 03/13] Expand document name 20->40 chars --- .../ninja2020/components/livewire/documents-table.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php b/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php index 5ac0423432..f79a5d2067 100644 --- a/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php +++ b/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php @@ -95,7 +95,7 @@ - {{ Illuminate\Support\Str::limit($document->name, 20) }} + {{ Illuminate\Support\Str::limit($document->name, 40) }} From 3a97b39e3b824a4e58651ba365b0362e8b260897 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 7 Dec 2022 07:43:38 +1100 Subject: [PATCH 04/13] Ensure we retrieve archived invoices in Stripe payment webhook --- .../Stripe/Jobs/PaymentIntentWebhook.php | 58 +++++++++++-------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/app/PaymentDrivers/Stripe/Jobs/PaymentIntentWebhook.php b/app/PaymentDrivers/Stripe/Jobs/PaymentIntentWebhook.php index d3a8ad40e7..e6971ae79a 100644 --- a/app/PaymentDrivers/Stripe/Jobs/PaymentIntentWebhook.php +++ b/app/PaymentDrivers/Stripe/Jobs/PaymentIntentWebhook.php @@ -154,31 +154,6 @@ class PaymentIntentWebhook implements ShouldQueue 'card_details' => isset($charge['payment_method_details']['card']['brand']) ? $charge['payment_method_details']['card']['brand'] : PaymentType::CREDIT_CARD_OTHER ]; - if(isset($pi['allowed_source_types']) && in_array('card', $pi['allowed_source_types'])) - { - - $invoice = Invoice::with('client')->find($payment_hash->fee_invoice_id); - $client = $invoice->client; - - $this->updateCreditCardPayment($payment_hash, $client, $meta); - } - elseif(isset($pi['payment_method_types']) && in_array('card', $pi['payment_method_types'])) - { - - $invoice = Invoice::with('client')->find($payment_hash->fee_invoice_id); - $client = $invoice->client; - - $this->updateCreditCardPayment($payment_hash, $client, $meta); - } - elseif(isset($pi['payment_method_types']) && in_array('us_bank_account', $pi['payment_method_types'])) - { - - $invoice = Invoice::with('client')->find($payment_hash->fee_invoice_id); - $client = $invoice->client; - - $this->updateAchPayment($payment_hash, $client, $meta); - } - SystemLogger::dispatch( ['response' => $this->stripe_request, 'data' => []], SystemLog::CATEGORY_GATEWAY_RESPONSE, @@ -188,6 +163,39 @@ class PaymentIntentWebhook implements ShouldQueue $company, ); + if(isset($pi['allowed_source_types']) && in_array('card', $pi['allowed_source_types'])) + { + + $invoice = Invoice::with('client')->withTrashed()->find($payment_hash->fee_invoice_id); + $client = $invoice->client; + + if($invoice->is_deleted) + return; + + $this->updateCreditCardPayment($payment_hash, $client, $meta); + } + elseif(isset($pi['payment_method_types']) && in_array('card', $pi['payment_method_types'])) + { + + $invoice = Invoice::with('client')->withTrashed()->find($payment_hash->fee_invoice_id); + $client = $invoice->client; + + if($invoice->is_deleted) + return; + + $this->updateCreditCardPayment($payment_hash, $client, $meta); + } + elseif(isset($pi['payment_method_types']) && in_array('us_bank_account', $pi['payment_method_types'])) + { + + $invoice = Invoice::with('client')->withTrashed()->find($payment_hash->fee_invoice_id); + $client = $invoice->client; + + if($invoice->is_deleted) + return; + + $this->updateAchPayment($payment_hash, $client, $meta); + } } From 75073a78628e8cdfc63475c019a73e5e4dbfe882 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 7 Dec 2022 07:44:20 +1100 Subject: [PATCH 05/13] Update for github actions - add PHP 8.2 --- .github/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml index d662e4d2da..46bc8ae28a 100644 --- a/.github/workflows/phpunit.yml +++ b/.github/workflows/phpunit.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: operating-system: ['ubuntu-20.04', 'ubuntu-22.04'] - php-versions: ['8.1.11'] + php-versions: ['8.1','8.2'] phpunit-versions: ['latest'] env: From ea5588e1e7c4f02757f1cb5d1caf781d7ffd9eb0 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 7 Dec 2022 07:51:50 +1100 Subject: [PATCH 06/13] Remove php 8.2 from test runners --- .github/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml index 46bc8ae28a..ad1109a26b 100644 --- a/.github/workflows/phpunit.yml +++ b/.github/workflows/phpunit.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: operating-system: ['ubuntu-20.04', 'ubuntu-22.04'] - php-versions: ['8.1','8.2'] + php-versions: ['8.1'] phpunit-versions: ['latest'] env: From 9d0ba8d30a94938c256a19724b24c38877e03544 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 7 Dec 2022 12:21:12 +1100 Subject: [PATCH 07/13] Check for properties before accessing --- app/Utils/Traits/GeneratesCounter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Utils/Traits/GeneratesCounter.php b/app/Utils/Traits/GeneratesCounter.php index 533b5b60dd..1ea15dde0c 100644 --- a/app/Utils/Traits/GeneratesCounter.php +++ b/app/Utils/Traits/GeneratesCounter.php @@ -60,7 +60,7 @@ trait GeneratesCounter $counter_entity = $client; } elseif ((strpos($pattern, 'groupCounter') !== false) || (strpos($pattern, 'group_counter') !== false)) { - if (property_exists($client->group_settings, $counter_string)) { + if (property_exists($client, 'group_settings') && property_exists($client->group_settings, $counter_string)) { $counter = $client->group_settings->{$counter_string}; } else { $counter = 1; From 3a376fddf65f6462d747f213de94a2e07dc5fa43 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 7 Dec 2022 13:05:35 +1100 Subject: [PATCH 08/13] Improve bank transaction filters --- app/Filters/BankTransactionFilters.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/Filters/BankTransactionFilters.php b/app/Filters/BankTransactionFilters.php index e7cff05fee..8bcfc55f15 100644 --- a/app/Filters/BankTransactionFilters.php +++ b/app/Filters/BankTransactionFilters.php @@ -152,7 +152,22 @@ class BankTransactionFilters extends QueryFilters public function sort(string $sort) : Builder { $sort_col = explode('|', $sort); + + if(!is_array($sort_col)) + return $this->builder; + if($sort_col[0] == 'deposit') + return $this->builder->where('base_type', 'CREDIT')->orderBy('amount', $sort_col[1]); + + if($sort_col[0] == 'withdrawal') + return $this->builder->where('base_type', 'DEBIT')->orderBy('amount', $sort_col[1]); + + if($sort_col[0] == 'status') + $sort_col[0] = 'status_id'; + + if(in_array($sort_col[0],['invoices','expense'])) + return $this->builder; + return $this->builder->orderBy($sort_col[0], $sort_col[1]); } From 54b9d3f65de3a8e7a0169ea56b8f5b601bc84437 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 7 Dec 2022 13:45:51 +1100 Subject: [PATCH 09/13] Ensure client is tagged on view quote activity --- app/Listeners/Quote/QuoteViewedActivity.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Listeners/Quote/QuoteViewedActivity.php b/app/Listeners/Quote/QuoteViewedActivity.php index 0a25130e68..777f86bfbb 100644 --- a/app/Listeners/Quote/QuoteViewedActivity.php +++ b/app/Listeners/Quote/QuoteViewedActivity.php @@ -50,7 +50,7 @@ class QuoteViewedActivity implements ShouldQueue $fields->user_id = $event->invitation->quote->user_id; $fields->company_id = $event->invitation->company_id; $fields->activity_type_id = Activity::VIEW_QUOTE; - $fields->client_id = $event->invitation->client_id; + $fields->client_id = $event->invitation->quote->client_id; $fields->client_contact_id = $event->invitation->client_contact_id; $fields->invitation_id = $event->invitation->id; $fields->quote_id = $event->invitation->quote_id; From 02d30ee778dfd93877e651da2d5fd8d0bc0ccc8c Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 7 Dec 2022 13:48:38 +1100 Subject: [PATCH 10/13] Add convert currency properties to company table --- app/Models/Company.php | 2 ++ app/Transformers/CompanyTransformer.php | 2 ++ ...4625_add_properties_to_companies_table.php | 31 +++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 database/migrations/2022_12_07_024625_add_properties_to_companies_table.php diff --git a/app/Models/Company.php b/app/Models/Company.php index 37d4814e4d..230b603992 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -126,6 +126,8 @@ class Company extends BaseModel 'report_include_deleted', 'invoice_task_lock', 'use_vendor_currency', + 'convert_payment_currency', + 'convert_expense_currency', ]; protected $hidden = [ diff --git a/app/Transformers/CompanyTransformer.php b/app/Transformers/CompanyTransformer.php index 1b47cdbd5b..b2732d87af 100644 --- a/app/Transformers/CompanyTransformer.php +++ b/app/Transformers/CompanyTransformer.php @@ -190,6 +190,8 @@ class CompanyTransformer extends EntityTransformer 'report_include_deleted' => (bool) $company->report_include_deleted, 'invoice_task_lock' => (bool) $company->invoice_task_lock, 'use_vendor_currency' => (bool) $company->use_vendor_currency, + 'convert_payment_currency' => (bool) $company->convert_payment_currency, + 'convert_expense_currency' => (bool) $company->convert_expense_currency, ]; } diff --git a/database/migrations/2022_12_07_024625_add_properties_to_companies_table.php b/database/migrations/2022_12_07_024625_add_properties_to_companies_table.php new file mode 100644 index 0000000000..78336ab3e2 --- /dev/null +++ b/database/migrations/2022_12_07_024625_add_properties_to_companies_table.php @@ -0,0 +1,31 @@ +boolean('convert_payment_currency')->default(false); + $table->boolean('convert_expense_currency')->default(false); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + + } +}; From 33d4402189afe63643a99bc0b8aa720e10bc38f0 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 7 Dec 2022 16:45:25 +1100 Subject: [PATCH 11/13] Subscriptions v2 --- app/Http/Livewire/BillingPortalPurchasev2.php | 158 +++++++++++++++--- .../billing-portal-purchasev2.blade.php | 59 +++---- 2 files changed, 164 insertions(+), 53 deletions(-) diff --git a/app/Http/Livewire/BillingPortalPurchasev2.php b/app/Http/Livewire/BillingPortalPurchasev2.php index 79bf70f3bd..c1720f73c3 100644 --- a/app/Http/Livewire/BillingPortalPurchasev2.php +++ b/app/Http/Livewire/BillingPortalPurchasev2.php @@ -11,6 +11,7 @@ namespace App\Http\Livewire; +use App\DataMapper\ClientSettings; use App\Factory\ClientFactory; use App\Jobs\Mail\NinjaMailerJob; use App\Jobs\Mail\NinjaMailerObject; @@ -19,15 +20,17 @@ use App\Mail\ContactPasswordlessLogin; use App\Models\Client; use App\Models\ClientContact; use App\Models\Invoice; +use App\Models\RecurringInvoice; use App\Models\Subscription; use App\Repositories\ClientContactRepository; use App\Repositories\ClientRepository; +use App\Utils\Number; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Validator; use Illuminate\Support\Str; -use App\DataMapper\ClientSettings; use Livewire\Component; class BillingPortalPurchasev2 extends Component @@ -179,6 +182,13 @@ class BillingPortalPurchasev2 extends Component */ public $campaign; + public $bundle; + public $recurring_products; + public $products; + public $optional_recurring_products; + public $optional_products; + public $total; + public function mount() { MultiDB::setDb($this->company->db); @@ -196,46 +206,156 @@ class BillingPortalPurchasev2 extends Component elseif(strlen($this->subscription->promo_code) == 0 && $this->subscription->promo_discount > 0){ $this->price = $this->subscription->promo_price; } + + $this->recurring_products = $this->subscription->service()->recurring_products(); + $this->products = $this->subscription->service()->products(); + $this->optional_recurring_products = $this->subscription->service()->optional_recurring_products(); + $this->optional_products = $this->subscription->service()->optional_products(); + + $this->buildBundle(); + + } - public function updatingData() + public function buildBundle() { - nlog('updating'); - // nlog($this->data); + $this->bundle = collect(); + + $data = $this->data; + + foreach($this->recurring_products as $key => $p) + { + + $qty = isset($data[$key]['recurring_qty']) ? $data[$key]['recurring_qty'] : 1; + $total = $p->price * $qty; + + $this->bundle->push([ + 'product' => nl2br(substr($p->notes, 0, 50)), + 'price' => Number::formatMoney($total, $this->subscription->company).' / '. RecurringInvoice::frequencyForKey($this->subscription->frequency_id), + 'total' => $total, + 'qty' => $qty, + 'is_recurring' => true + ]); + } + + foreach($this->products as $key => $p) + { + + $qty = 1; + $total = $p->price * $qty; + + $this->bundle->push([ + 'product' => nl2br(substr($p->notes, 0, 50)), + 'price' => Number::formatMoney($total, $this->subscription->company), + 'total' => $total, + 'qty' => $qty, + 'is_recurring' => false + ]); + } + + foreach($this->data as $key => $value) + { + if(isset($this->data[$key]['optional_recurring_qty'])) + { + $p = $this->optional_recurring_products->first(function ($v,$k) use($key){ + return $k == $key; + }); + + $qty = isset($this->data[$key]['optional_recurring_qty']) ? $this->data[$key]['optional_recurring_qty'] : 0; + $total = $p->price * $qty; + + if($qty == 0) + return; + + + $this->bundle->push([ + 'product' => nl2br(substr($p->notes, 0, 50)), + 'price' => Number::formatMoney($total, $this->subscription->company).' / '. RecurringInvoice::frequencyForKey($this->subscription->frequency_id), + 'total' => $total, + 'qty' => $qty, + 'is_recurring' => true + ]); + + } + + if(isset($this->data[$key]['optional_qty'])) + { + $p = $this->optional_products->first(function ($v,$k) use($key){ + return $k == $key; + }); + + $qty = isset($this->data[$key]['optional_qty']) ? $this->data[$key]['optional_qty'] : 0; + $total = $p->price * $qty; + + if($qty == 0) + return; + + $this->bundle->push([ + 'product' => nl2br(substr($p->notes, 0, 50)), + 'price' => Number::formatMoney($total, $this->subscription->company), + 'total' => $total, + 'qty' => $qty, + 'is_recurring' => false + ]); + + } + + + } + + $this->total = Number::formatMoney($this->bundle->sum('total'), $this->subscription->company); + + return $this; } public function updatedData() { - nlog('updated'); - nlog($this->data); - $validatedData = $this->validate(); - nlog( $validatedData ); + } + + public function updating($prop) + { + // $this->resetValidation($prop); + // $this->resetErrorBag($prop); } public function updated($propertyName) { - nlog("validating {$propertyName}"); - $this->errors = $this->validateOnly($propertyName); + $x = $this->validateOnly($propertyName, $this->rules(), [], $this->attributes()); - nlog($this->errors); - $validatedData = $this->validate(); - nlog( $validatedData ); + // // $validatedData = $this->validate(); + $this->buildBundle(); + + // $order_validator = Validator::make($this->all(), $this->rules(), [], $this->attributes()); } public function rules() { - $rules = [ - 'email' => ['required', 'email'], - 'data' => ['required', 'array'], - 'data.*.recurring_qty' => ['required', 'between:100,1000'], - 'data.*.optional_recurring_qty' => ['required', 'between:100,1000'], - 'data.*.optional_qty' => ['required', 'between:100,1000'], + $rules = [ + 'data.*.recurring_qty' => 'numeric|between:0,1000', + 'data.*.optional_recurring_qty' => 'numeric|between:0,1000', + 'data.*.optional_qty' => 'numeric|between:0,1000', ]; return $rules; } + public function attributes() + { + $attributes = [ + 'data.*.recurring_qty' => 'recurring_qty', + 'data.*.optional_recurring_qty' => 'optional_recurring_qty', + 'data.*.optional_qty' => 'optional_qty', + ]; + + return $attributes; + } + + public function store() + { + + } + /** * Handle user authentication * diff --git a/resources/views/portal/ninja2020/components/livewire/billing-portal-purchasev2.blade.php b/resources/views/portal/ninja2020/components/livewire/billing-portal-purchasev2.blade.php index 5300edf2ba..c7c464c8c4 100644 --- a/resources/views/portal/ninja2020/components/livewire/billing-portal-purchasev2.blade.php +++ b/resources/views/portal/ninja2020/components/livewire/billing-portal-purchasev2.blade.php @@ -7,10 +7,12 @@ {{ $subscription->name }} +
+
    @if(!empty($subscription->recurring_product_ids)) - @foreach($subscription->service()->recurring_products() as $index => $product) + @foreach($recurring_products as $index => $product)
  • @if(false)
    @@ -32,18 +34,11 @@

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

    - +
    @endif
    - {{ isset($data[$index]['recurring_qty']) ? $data[$index]['recurring_qty'] : 'merp' }} - - @if($errors) - @foreach($errors as $error) - {{ $error }} - @endforeach - @endif - @error('data.{{$index}}.recurring_qty') + @error("data.{$index}.recurring_qty")
  • @if(false)
    @@ -93,7 +88,7 @@
      @if(!empty($subscription->optional_recurring_product_ids)) - @foreach($subscription->service()->optional_recurring_products() as $index => $product) + @foreach($optional_recurring_products as $index => $product)
    • @if(false)
      @@ -104,7 +99,7 @@

      {!! nl2br($product->notes) !!}

      -

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

      +

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

      @@ -112,21 +107,22 @@

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

      - +
      + @error("data.{$index}.optional_recurring_qty") - + @enderror
  • @endforeach @endif @if(!empty($subscription->optional_product_ids)) - @foreach($subscription->service()->optional_products() as $index => $product) + @foreach($optional_products as $index => $product)
  • @if(false)
    @@ -145,13 +141,15 @@

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

    - +
    + @error("data.{$index}.optional_qty") + @enderror
  • @endforeach @@ -160,27 +158,20 @@ +

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

    - @foreach($subscription->service()->recurring_products() as $product) -
    - {!! nl2br(substr($product->notes, 0, 50)) !!} - {{ \App\Utils\Number::formatMoney($product->price, $subscription->company) }} -
    + @foreach($bundle as $item) +
    + {{$item['product']}} x {{$item['qty']}} + {{ $item['price'] }} +
    @endforeach - @foreach($subscription->service()->products() as $product) -
    - {!! nl2br(substr($product->notes, 0, 50)) !!} - {{ \App\Utils\Number::formatMoney($product->price, $subscription->company) }} -
    - @endforeach - - @if(!empty($subscription->promo_code) && !$subscription->trial_enabled)
    @csrf @@ -190,7 +181,7 @@
    - +
    From 82a1bf80adc3e3919e28956ea1b9bdda079803e1 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 7 Dec 2022 16:48:40 +1100 Subject: [PATCH 12/13] Subscriptions v2 --- app/Http/Livewire/BillingPortalPurchasev2.php | 6 +++--- .../components/livewire/billing-portal-purchasev2.blade.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Http/Livewire/BillingPortalPurchasev2.php b/app/Http/Livewire/BillingPortalPurchasev2.php index c1720f73c3..dd8e89b7a4 100644 --- a/app/Http/Livewire/BillingPortalPurchasev2.php +++ b/app/Http/Livewire/BillingPortalPurchasev2.php @@ -212,14 +212,14 @@ class BillingPortalPurchasev2 extends Component $this->optional_recurring_products = $this->subscription->service()->optional_recurring_products(); $this->optional_products = $this->subscription->service()->optional_products(); - $this->buildBundle(); - + // $this->buildBundle(); + $this->bundle = collect(); } public function buildBundle() { - $this->bundle = collect(); + $this->bundle = collect(); $data = $this->data; diff --git a/resources/views/portal/ninja2020/components/livewire/billing-portal-purchasev2.blade.php b/resources/views/portal/ninja2020/components/livewire/billing-portal-purchasev2.blade.php index c7c464c8c4..07d2096e31 100644 --- a/resources/views/portal/ninja2020/components/livewire/billing-portal-purchasev2.blade.php +++ b/resources/views/portal/ninja2020/components/livewire/billing-portal-purchasev2.blade.php @@ -160,7 +160,7 @@ -
    +

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

    From 524db138c0a2f650e30af4724f5060084272b5d9 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 7 Dec 2022 17:55:29 +1100 Subject: [PATCH 13/13] v5.5.47 --- VERSION.txt | 2 +- config/ninja.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VERSION.txt b/VERSION.txt index fb0a65a36d..aa3706ff60 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -5.5.46 \ No newline at end of file +5.5.47 \ No newline at end of file diff --git a/config/ninja.php b/config/ninja.php index ac016b05b7..8c09c1c8ec 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -14,8 +14,8 @@ return [ 'require_https' => env('REQUIRE_HTTPS', true), 'app_url' => rtrim(env('APP_URL', ''), '/'), 'app_domain' => env('APP_DOMAIN', 'invoicing.co'), - 'app_version' => '5.5.46', - 'app_tag' => '5.5.46', + 'app_version' => '5.5.47', + 'app_tag' => '5.5.47', 'minimum_client_version' => '5.0.16', 'terms_version' => '1.0.1', 'api_secret' => env('API_SECRET', ''),