From efe3f517789fc65a35ec9c30245fe5971055ed51 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 2 Aug 2021 13:12:33 +1000 Subject: [PATCH] Notify end user to connect with Stripe Connect on hosted platform --- app/Jobs/Util/Import.php | 14 ++++- app/Mail/Migration/StripeConnectMigration.php | 55 +++++++++++++++++++ app/Services/Client/Merge.php | 4 -- resources/lang/en/texts.php | 2 + .../email/migration/max_companies.blade.php | 1 + .../email/migration/stripe_connect.blade.php | 7 +++ 6 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 app/Mail/Migration/StripeConnectMigration.php create mode 100644 resources/views/email/migration/stripe_connect.blade.php diff --git a/app/Jobs/Util/Import.php b/app/Jobs/Util/Import.php index 8086b3a84558..25db49aa85ea 100644 --- a/app/Jobs/Util/Import.php +++ b/app/Jobs/Util/Import.php @@ -35,11 +35,14 @@ use App\Http\ValidationRules\ValidCompanyGatewayFeesAndLimitsRule; use App\Http\ValidationRules\ValidUserForCompany; use App\Jobs\Company\CreateCompanyTaskStatuses; use App\Jobs\Company\CreateCompanyToken; +use App\Jobs\Mail\NinjaMailerJob; +use App\Jobs\Mail\NinjaMailerObject; use App\Jobs\Ninja\CheckCompanyData; use App\Jobs\Ninja\CompanySizeCheck; use App\Jobs\Util\VersionCheck; use App\Libraries\MultiDB; use App\Mail\MigrationCompleted; +use App\Mail\Migration\StripeConnectMigration; use App\Models\Activity; use App\Models\Client; use App\Models\ClientContact; @@ -87,11 +90,11 @@ use Illuminate\Http\UploadedFile; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Carbon; +use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Str; use Turbo124\Beacon\Facades\LightLogs; -use Illuminate\Support\Facades\App; class Import implements ShouldQueue { @@ -1386,7 +1389,16 @@ class Import implements ShouldQueue $modified['fees_and_limits'] = $this->cleanFeesAndLimits($modified['fees_and_limits']); } + /* On Hosted platform we need to advise Stripe users to connect with Stripe Connect */ if(Ninja::isHosted() && $modified['gateway_key'] == 'd14dd26a37cecc30fdd65700bfb55b23'){ + + $nmo = new NinjaMailerObject; + $nmo->mailable = new StripeConnectMigration($this->company); + $nmo->company = $this->company; + $nmo->settings = $this->company->settings; + $nmo->to_user = $this->user; + NinjaMailerJob::dispatch($nmo); + $modified['gateway_key'] = 'd14dd26a47cecc30fdd65700bfb67b34'; $modified['fees_and_limits'] = []; } diff --git a/app/Mail/Migration/StripeConnectMigration.php b/app/Mail/Migration/StripeConnectMigration.php new file mode 100644 index 000000000000..93fda725afac --- /dev/null +++ b/app/Mail/Migration/StripeConnectMigration.php @@ -0,0 +1,55 @@ +company = $company; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + $this->settings = $this->company->settings; + $this->logo = $this->company->present()->logo(); + $this->whitelabel = $this->company->account->isPaid(); + + return $this->from(config('mail.from.address'), config('mail.from.name')) + ->subject(ctrans('texts.stripe_connect_migration_title')) + ->view('email.migration.stripe_connect'); + } +} diff --git a/app/Services/Client/Merge.php b/app/Services/Client/Merge.php index 942558aa9188..e254000b2384 100644 --- a/app/Services/Client/Merge.php +++ b/app/Services/Client/Merge.php @@ -57,13 +57,10 @@ class Merge extends AbstractService $this->mergable_client->tasks()->update(['client_id' => $this->client->id]); $this->mergable_client->documents()->update(['documentable_id' => $this->client->id]); - nlog("count =" .$this->mergable_client->contacts->count()); - /* Loop through contacts an only merge distinct contacts by email */ $this->mergable_client->contacts->each(function ($contact){ $exist = $this->client->contacts->contains(function ($client_contact) use($contact){ - nlog("{$client_contact->email} == {$contact->email}"); return $client_contact->email == $contact->email; }); @@ -75,7 +72,6 @@ class Merge extends AbstractService }); - nlog($this->client->contacts->fresh()->count()); $this->mergable_client->forceDelete(); return $this->client; diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index 40038652ebad..eed12cf3f464 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -4287,6 +4287,8 @@ $LANG = array( 'company_deleted' => 'Company deleted', 'company_deleted_body' => 'Company [ :company ] was deleted by :user', 'back_to' => 'Back to :url', + 'stripe_connect_migration_title' => 'Connect your Stripe Account', + 'stripe_connect_migration_desc' => 'Invoice Ninja v5 uses Stripe Connect to link your Stripe account to Invoice Ninja. This provides an additional layer of security for your account. Now that you data has migrated, you will need to Authorize Stripe to accept payments in v5.

To do this, navigate to Settings > Online Payments > Configure Gateways. Click on Stripe Connect and then under Settings click Setup Gateway. This will take you to Stripe to authorize Invoice Ninja and on your return your account will be successfully linked!', ); return $LANG; diff --git a/resources/views/email/migration/max_companies.blade.php b/resources/views/email/migration/max_companies.blade.php index 6dd1b45a93f3..11bb1484f184 100644 --- a/resources/views/email/migration/max_companies.blade.php +++ b/resources/views/email/migration/max_companies.blade.php @@ -1,6 +1,7 @@ @component('email.template.admin', ['logo' => $logo, 'settings' => $settings])

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

+

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

@endcomponent diff --git a/resources/views/email/migration/stripe_connect.blade.php b/resources/views/email/migration/stripe_connect.blade.php new file mode 100644 index 000000000000..6e7be3c2c05a --- /dev/null +++ b/resources/views/email/migration/stripe_connect.blade.php @@ -0,0 +1,7 @@ +@component('email.template.admin', ['logo' => $logo, 'settings' => $settings]) +
+

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

+ +

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

+
+@endcomponent