Fixes for timezone issues with recurring entities

This commit is contained in:
David Bomba 2022-06-02 14:00:54 +10:00
parent 3bf56af37f
commit 3b24248cf1
3 changed files with 9 additions and 2 deletions

View File

@ -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;

View File

@ -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

View File

@ -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){