From 63a7a1185394ea7ad4157967462171815fafc849 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 18 Feb 2023 08:06:53 +1100 Subject: [PATCH] Minor fixes for types --- ...ClientStatement.php => EmailStatement.php} | 2 +- app/Jobs/Mail/NinjaMailerJob.php | 4 +- app/Services/Email/EmailObject.php | 7 ++- app/Services/Scheduler/SchedulerService.php | 23 ++++---- tests/Feature/Scheduler/SchedulerTest.php | 52 +++++++++---------- 5 files changed, 45 insertions(+), 43 deletions(-) rename app/DataMapper/Schedule/{ClientStatement.php => EmailStatement.php} (99%) diff --git a/app/DataMapper/Schedule/ClientStatement.php b/app/DataMapper/Schedule/EmailStatement.php similarity index 99% rename from app/DataMapper/Schedule/ClientStatement.php rename to app/DataMapper/Schedule/EmailStatement.php index ea97f8b636a1..b9ece221c7ee 100644 --- a/app/DataMapper/Schedule/ClientStatement.php +++ b/app/DataMapper/Schedule/EmailStatement.php @@ -11,7 +11,7 @@ namespace App\DataMapper\Schedule; -class ClientStatement +class EmailStatement { /** * Defines the template name diff --git a/app/Jobs/Mail/NinjaMailerJob.php b/app/Jobs/Mail/NinjaMailerJob.php index 48844a200b28..82a3ec5255ef 100644 --- a/app/Jobs/Mail/NinjaMailerJob.php +++ b/app/Jobs/Mail/NinjaMailerJob.php @@ -207,7 +207,7 @@ class NinjaMailerJob implements ShouldQueue switch ($class) { case Invoice::class: - event(new InvoiceWasEmailedAndFailed($this->nmo->invitation, $this->nmo->company, $message, $this->nmo->reminder_template, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); + event(new InvoiceWasEmailedAndFailed($this->nmo->invitation, $this->nmo->company, $message, $this->nmo->template, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); break; case Payment::class: event(new PaymentWasEmailedAndFailed($this->nmo->entity, $this->nmo->company, $message, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); @@ -546,7 +546,7 @@ class NinjaMailerJob implements ShouldQueue * Logs any errors to the SystemLog * * @param string $errors - * @param App\Models\User | App\Models\Client $recipient_object + * @param App\Models\User | App\Models\Client | null $recipient_object * @return void */ private function logMailError($errors, $recipient_object) :void diff --git a/app/Services/Email/EmailObject.php b/app/Services/Email/EmailObject.php index a7da351727b6..4488fd02366f 100644 --- a/app/Services/Email/EmailObject.php +++ b/app/Services/Email/EmailObject.php @@ -11,10 +11,11 @@ namespace App\Services\Email; -use App\Models\Client; -use App\Models\ClientContact; use App\Models\User; +use App\Models\Client; use App\Models\Vendor; +use App\Models\Company; +use App\Models\ClientContact; use App\Models\VendorContact; use Illuminate\Mail\Mailables\Address; @@ -78,4 +79,6 @@ class EmailObject public ?string $entity_class = null; public array $variables = []; + + public ?Company $company = null; } diff --git a/app/Services/Scheduler/SchedulerService.php b/app/Services/Scheduler/SchedulerService.php index 72113dd32d02..ebb701e55e83 100644 --- a/app/Services/Scheduler/SchedulerService.php +++ b/app/Services/Scheduler/SchedulerService.php @@ -16,8 +16,7 @@ use App\Models\Scheduler; use App\Utils\Traits\MakesHash; use App\Models\RecurringInvoice; use App\Utils\Traits\MakesDates; -use App\DataMapper\Schedule\ClientStatement; -use Symfony\Component\HttpClient\Internal\ClientState; +use App\DataMapper\Schedule\EmailStatement; class SchedulerService { @@ -93,16 +92,16 @@ class SchedulerService private function calculateStartAndEndDates(): array { return match ($this->scheduler->parameters['date_range']) { - ClientStatement::LAST7 => [now()->startOfDay()->subDays(7)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], - ClientStatement::LAST30 => [now()->startOfDay()->subDays(30)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], - ClientStatement::LAST365 => [now()->startOfDay()->subDays(365)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], - ClientStatement::THIS_MONTH => [now()->startOfDay()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->lastOfMonth()->format('Y-m-d')], - ClientStatement::LAST_MONTH => [now()->startOfDay()->subMonthNoOverflow()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->subMonthNoOverflow()->lastOfMonth()->format('Y-m-d')], - ClientStatement::THIS_QUARTER => [now()->startOfDay()->firstOfQuarter()->format('Y-m-d'), now()->startOfDay()->lastOfQuarter()->format('Y-m-d')], - ClientStatement::LAST_QUARTER => [now()->startOfDay()->subQuarterNoOverflow()->firstOfQuarter()->format('Y-m-d'), now()->startOfDay()->subQuarterNoOverflow()->lastOfQuarter()->format('Y-m-d')], - ClientStatement::THIS_YEAR => [now()->startOfDay()->firstOfYear()->format('Y-m-d'), now()->startOfDay()->lastOfYear()->format('Y-m-d')], - ClientStatement::LAST_YEAR => [now()->startOfDay()->subYearNoOverflow()->firstOfYear()->format('Y-m-d'), now()->startOfDay()->subYearNoOverflow()->lastOfYear()->format('Y-m-d')], - ClientStatement::CUSTOM_RANGE => [$this->scheduler->parameters['start_date'], $this->scheduler->parameters['end_date']], + EmailStatement::LAST7 => [now()->startOfDay()->subDays(7)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], + EmailStatement::LAST30 => [now()->startOfDay()->subDays(30)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], + EmailStatement::LAST365 => [now()->startOfDay()->subDays(365)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], + EmailStatement::THIS_MONTH => [now()->startOfDay()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->lastOfMonth()->format('Y-m-d')], + EmailStatement::LAST_MONTH => [now()->startOfDay()->subMonthNoOverflow()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->subMonthNoOverflow()->lastOfMonth()->format('Y-m-d')], + EmailStatement::THIS_QUARTER => [now()->startOfDay()->firstOfQuarter()->format('Y-m-d'), now()->startOfDay()->lastOfQuarter()->format('Y-m-d')], + EmailStatement::LAST_QUARTER => [now()->startOfDay()->subQuarterNoOverflow()->firstOfQuarter()->format('Y-m-d'), now()->startOfDay()->subQuarterNoOverflow()->lastOfQuarter()->format('Y-m-d')], + EmailStatement::THIS_YEAR => [now()->startOfDay()->firstOfYear()->format('Y-m-d'), now()->startOfDay()->lastOfYear()->format('Y-m-d')], + EmailStatement::LAST_YEAR => [now()->startOfDay()->subYearNoOverflow()->firstOfYear()->format('Y-m-d'), now()->startOfDay()->subYearNoOverflow()->lastOfYear()->format('Y-m-d')], + EmailStatement::CUSTOM_RANGE => [$this->scheduler->parameters['start_date'], $this->scheduler->parameters['end_date']], default => [now()->startOfDay()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->lastOfMonth()->format('Y-m-d')], }; } diff --git a/tests/Feature/Scheduler/SchedulerTest.php b/tests/Feature/Scheduler/SchedulerTest.php index 6fba294959f6..a080ced33659 100644 --- a/tests/Feature/Scheduler/SchedulerTest.php +++ b/tests/Feature/Scheduler/SchedulerTest.php @@ -21,7 +21,7 @@ use App\Models\RecurringInvoice; use App\Factory\SchedulerFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Session; -use App\DataMapper\Schedule\ClientStatement; +use App\DataMapper\Schedule\EmailStatement; use App\Services\Scheduler\SchedulerService; use Illuminate\Validation\ValidationException; use Illuminate\Foundation\Testing\WithoutEvents; @@ -76,7 +76,7 @@ class SchedulerTest extends TestCase 'next_run' => now()->format('Y-m-d'), 'template' => 'client_statement', 'parameters' => [ - 'date_range' => ClientStatement::LAST_MONTH, + 'date_range' => EmailStatement::LAST_MONTH, 'show_payments_table' => true, 'show_aging_table' => true, 'status' => 'paid', @@ -139,7 +139,7 @@ class SchedulerTest extends TestCase 'next_run' => now()->format('Y-m-d'), 'template' => 'client_statement', 'parameters' => [ - 'date_range' => ClientStatement::LAST_MONTH, + 'date_range' => EmailStatement::LAST_MONTH, 'show_payments_table' => true, 'show_aging_table' => true, 'status' => 'paid', @@ -171,7 +171,7 @@ class SchedulerTest extends TestCase 'next_run' => now()->addDay()->format('Y-m-d'), 'template' => 'client_statement', 'parameters' => [ - 'date_range' => ClientStatement::LAST_MONTH, + 'date_range' => EmailStatement::LAST_MONTH, 'show_payments_table' => true, 'show_aging_table' => true, 'status' => 'paid', @@ -195,7 +195,7 @@ class SchedulerTest extends TestCase 'next_run' => now()->format('Y-m-d'), 'template' => 'client_statement', 'parameters' => [ - 'date_range' => ClientStatement::LAST_MONTH, + 'date_range' => EmailStatement::LAST_MONTH, 'show_payments_table' => true, 'show_aging_table' => true, 'status' => 'paid', @@ -224,7 +224,7 @@ class SchedulerTest extends TestCase 'next_run' => now()->format('Y-m-d'), 'template' => 'client_statement', 'parameters' => [ - 'date_range' => ClientStatement::LAST_MONTH, + 'date_range' => EmailStatement::LAST_MONTH, 'show_payments_table' => true, 'show_aging_table' => true, 'status' => 'paid', @@ -259,7 +259,7 @@ class SchedulerTest extends TestCase 'next_run' => "2023-01-01", 'template' => 'client_statement', 'parameters' => [ - 'date_range' => ClientStatement::LAST_MONTH, + 'date_range' => EmailStatement::LAST_MONTH, 'show_payments_table' => true, 'show_aging_table' => true, 'status' => 'paid', @@ -278,7 +278,7 @@ class SchedulerTest extends TestCase $this->assertIsArray($method); - $this->assertEquals(ClientStatement::LAST_MONTH, $scheduler->parameters['date_range']); + $this->assertEquals(EmailStatement::LAST_MONTH, $scheduler->parameters['date_range']); $this->assertEqualsCanonicalizing(['2022-12-01','2022-12-31'], $method); } @@ -293,7 +293,7 @@ class SchedulerTest extends TestCase 'next_run' => now()->format('Y-m-d'), 'template' => 'client_statement', 'parameters' => [ - 'date_range' => ClientStatement::LAST_MONTH, + 'date_range' => EmailStatement::LAST_MONTH, 'show_payments_table' => true, 'show_aging_table' => true, 'status' => 'paid', @@ -324,13 +324,13 @@ class SchedulerTest extends TestCase { $this->travelTo(Carbon::parse('2023-01-14')); - $this->assertEqualsCanonicalizing(['2023-01-01','2023-01-31'], $this->getDateRange(ClientStatement::THIS_MONTH)); - $this->assertEqualsCanonicalizing(['2023-01-01','2023-03-31'], $this->getDateRange(ClientStatement::THIS_QUARTER)); - $this->assertEqualsCanonicalizing(['2023-01-01','2023-12-31'], $this->getDateRange(ClientStatement::THIS_YEAR)); + $this->assertEqualsCanonicalizing(['2023-01-01','2023-01-31'], $this->getDateRange(EmailStatement::THIS_MONTH)); + $this->assertEqualsCanonicalizing(['2023-01-01','2023-03-31'], $this->getDateRange(EmailStatement::THIS_QUARTER)); + $this->assertEqualsCanonicalizing(['2023-01-01','2023-12-31'], $this->getDateRange(EmailStatement::THIS_YEAR)); - $this->assertEqualsCanonicalizing(['2022-12-01','2022-12-31'], $this->getDateRange(ClientStatement::LAST_MONTH)); - $this->assertEqualsCanonicalizing(['2022-10-01','2022-12-31'], $this->getDateRange(ClientStatement::LAST_QUARTER)); - $this->assertEqualsCanonicalizing(['2022-01-01','2022-12-31'], $this->getDateRange(ClientStatement::LAST_YEAR)); + $this->assertEqualsCanonicalizing(['2022-12-01','2022-12-31'], $this->getDateRange(EmailStatement::LAST_MONTH)); + $this->assertEqualsCanonicalizing(['2022-10-01','2022-12-31'], $this->getDateRange(EmailStatement::LAST_QUARTER)); + $this->assertEqualsCanonicalizing(['2022-01-01','2022-12-31'], $this->getDateRange(EmailStatement::LAST_YEAR)); $this->travelBack(); } @@ -338,16 +338,16 @@ class SchedulerTest extends TestCase private function getDateRange($range) { return match ($range) { - ClientStatement::LAST7 => [now()->startOfDay()->subDays(7)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], - ClientStatement::LAST30 => [now()->startOfDay()->subDays(30)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], - ClientStatement::LAST365 => [now()->startOfDay()->subDays(365)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], - ClientStatement::THIS_MONTH => [now()->startOfDay()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->lastOfMonth()->format('Y-m-d')], - ClientStatement::LAST_MONTH => [now()->startOfDay()->subMonthNoOverflow()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->subMonthNoOverflow()->lastOfMonth()->format('Y-m-d')], - ClientStatement::THIS_QUARTER => [now()->startOfDay()->firstOfQuarter()->format('Y-m-d'), now()->startOfDay()->lastOfQuarter()->format('Y-m-d')], - ClientStatement::LAST_QUARTER => [now()->startOfDay()->subQuarterNoOverflow()->firstOfQuarter()->format('Y-m-d'), now()->startOfDay()->subQuarterNoOverflow()->lastOfQuarter()->format('Y-m-d')], - ClientStatement::THIS_YEAR => [now()->startOfDay()->firstOfYear()->format('Y-m-d'), now()->startOfDay()->lastOfYear()->format('Y-m-d')], - ClientStatement::LAST_YEAR => [now()->startOfDay()->subYearNoOverflow()->firstOfYear()->format('Y-m-d'), now()->startOfDay()->subYearNoOverflow()->lastOfYear()->format('Y-m-d')], - ClientStatement::CUSTOM_RANGE => [$this->scheduler->parameters['start_date'], $this->scheduler->parameters['end_date']], + EmailStatement::LAST7 => [now()->startOfDay()->subDays(7)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], + EmailStatement::LAST30 => [now()->startOfDay()->subDays(30)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], + EmailStatement::LAST365 => [now()->startOfDay()->subDays(365)->format('Y-m-d'), now()->startOfDay()->format('Y-m-d')], + EmailStatement::THIS_MONTH => [now()->startOfDay()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->lastOfMonth()->format('Y-m-d')], + EmailStatement::LAST_MONTH => [now()->startOfDay()->subMonthNoOverflow()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->subMonthNoOverflow()->lastOfMonth()->format('Y-m-d')], + EmailStatement::THIS_QUARTER => [now()->startOfDay()->firstOfQuarter()->format('Y-m-d'), now()->startOfDay()->lastOfQuarter()->format('Y-m-d')], + EmailStatement::LAST_QUARTER => [now()->startOfDay()->subQuarterNoOverflow()->firstOfQuarter()->format('Y-m-d'), now()->startOfDay()->subQuarterNoOverflow()->lastOfQuarter()->format('Y-m-d')], + EmailStatement::THIS_YEAR => [now()->startOfDay()->firstOfYear()->format('Y-m-d'), now()->startOfDay()->lastOfYear()->format('Y-m-d')], + EmailStatement::LAST_YEAR => [now()->startOfDay()->subYearNoOverflow()->firstOfYear()->format('Y-m-d'), now()->startOfDay()->subYearNoOverflow()->lastOfYear()->format('Y-m-d')], + EmailStatement::CUSTOM_RANGE => [$this->scheduler->parameters['start_date'], $this->scheduler->parameters['end_date']], default => [now()->startOfDay()->firstOfMonth()->format('Y-m-d'), now()->startOfDay()->lastOfMonth()->format('Y-m-d')], }; } @@ -360,7 +360,7 @@ class SchedulerTest extends TestCase 'next_run' => now()->format('Y-m-d'), 'template' => 'client_statement', 'parameters' => [ - 'date_range' => ClientStatement::LAST_MONTH, + 'date_range' => EmailStatement::LAST_MONTH, 'show_payments_table' => true, 'show_aging_table' => true, 'status' => 'paid',