From 3b24248cf113e4bc3efeb43b51c64d67487eb381 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 2 Jun 2022 14:00:54 +1000 Subject: [PATCH] Fixes for timezone issues with recurring entities --- app/Factory/RecurringInvoiceFactory.php | 1 + database/factories/RecurringInvoiceFactory.php | 1 + .../2022_06_01_215859_set_recurring_client_timestamp.php | 9 +++++++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/Factory/RecurringInvoiceFactory.php b/app/Factory/RecurringInvoiceFactory.php index 757401d969d2..df655b3c19b9 100644 --- a/app/Factory/RecurringInvoiceFactory.php +++ b/app/Factory/RecurringInvoiceFactory.php @@ -48,6 +48,7 @@ class RecurringInvoiceFactory $invoice->frequency_id = RecurringInvoice::FREQUENCY_MONTHLY; $invoice->last_sent_date = null; $invoice->next_send_date = null; + $invoice->next_send_date_client = null; $invoice->remaining_cycles = -1; $invoice->paid_to_date = 0; $invoice->auto_bill_enabled = false; diff --git a/database/factories/RecurringInvoiceFactory.php b/database/factories/RecurringInvoiceFactory.php index 90c2e595e276..20383cc259e9 100644 --- a/database/factories/RecurringInvoiceFactory.php +++ b/database/factories/RecurringInvoiceFactory.php @@ -51,6 +51,7 @@ class RecurringInvoiceFactory extends Factory 'frequency_id' => RecurringInvoice::FREQUENCY_MONTHLY, 'last_sent_date' => now()->subMonth(), 'next_send_date' => now()->addMonthNoOverflow(), + 'next_send_date_client' => now()->addMonthNoOverflow(), 'remaining_cycles' => $this->faker->numberBetween(1, 10), 'amount' => $this->faker->randomFloat(2, $min = 1, $max = 1000), // 48.8932 diff --git a/database/migrations/2022_06_01_215859_set_recurring_client_timestamp.php b/database/migrations/2022_06_01_215859_set_recurring_client_timestamp.php index 6b261300c720..5d4120649bcc 100644 --- a/database/migrations/2022_06_01_215859_set_recurring_client_timestamp.php +++ b/database/migrations/2022_06_01_215859_set_recurring_client_timestamp.php @@ -2,6 +2,7 @@ use App\Models\RecurringExpense; use App\Models\RecurringInvoice; +use Carbon\Carbon; use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; @@ -11,7 +12,6 @@ class SetRecurringClientTimestamp extends Migration /** * Run the migrations. * - * @return void */ public function up() { @@ -25,8 +25,13 @@ class SetRecurringClientTimestamp extends Migration RecurringInvoice::whereNotNull('next_send_date')->cursor()->each(function ($recurring_invoice){ - $recurring_invoice->next_send_date_client = $recurring_invoice->next_send_date; + + // $offset = $recurring_invoice->client->timezone_offset(); + // $re = Carbon::parse($recurring_invoice->next_send_date)->subSeconds($offset)->format('Y-m-d'); + $re = Carbon::parse($recurring_invoice->next_send_date)->format('Y-m-d'); + $recurring_invoice->next_send_date_client = $re; $recurring_invoice->saveQuietly(); + }); RecurringExpense::whereNotNull('next_send_date')->cursor()->each(function ($recurring_expense){