Add timezone info to new objects.

This commit is contained in:
James Cole 2024-11-06 11:12:26 +01:00
parent fb3295bde1
commit 038790a5d6
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
7 changed files with 21 additions and 10 deletions

View File

@ -225,7 +225,8 @@ class TransactionJournalFactory
'bill_id' => $billId, 'bill_id' => $billId,
'transaction_currency_id' => $currency->id, 'transaction_currency_id' => $currency->id,
'description' => substr($description, 0, 1000), 'description' => substr($description, 0, 1000),
'date' => $carbon->format('Y-m-d H:i:s'), 'date' => $carbon,
'date_tz' => $carbon->format('e'),
'order' => $order, 'order' => $order,
'tag_count' => 0, 'tag_count' => 0,
'completed' => 0, 'completed' => 0,

View File

@ -135,7 +135,9 @@ class BudgetLimitHandler
'user_group_id' => $budgetLimit->budget->user->user_group_id, 'user_group_id' => $budgetLimit->budget->user->user_group_id,
'transaction_currency_id' => $budgetLimit->transaction_currency_id, 'transaction_currency_id' => $budgetLimit->transaction_currency_id,
'start_date' => $current, 'start_date' => $current,
'start_date_tz' => $current->format('e'),
'end_date' => $currentEnd, 'end_date' => $currentEnd,
'end_date_tz' => $currentEnd->format('e'),
'amount' => $amount, 'amount' => $amount,
] ]
); );

View File

@ -122,6 +122,7 @@ class CategoryReportController extends Controller
public function categoryIncome(Collection $accounts, Collection $categories, Carbon $start, Carbon $end): JsonResponse public function categoryIncome(Collection $accounts, Collection $categories, Carbon $start, Carbon $end): JsonResponse
{ {
$result = []; $result = [];
$earned = $this->opsRepository->listIncome($start, $end, $accounts, $categories); $earned = $this->opsRepository->listIncome($start, $end, $accounts, $categories);

View File

@ -14,7 +14,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
class AccountBalance extends Model class AccountBalance extends Model
{ {
use HasFactory; use HasFactory;
protected $fillable = ['account_id', 'title', 'transaction_currency_id', 'balance']; protected $fillable = ['account_id', 'title', 'transaction_currency_id', 'balance','date','date_tz'];
public function account(): BelongsTo public function account(): BelongsTo
{ {

View File

@ -51,7 +51,7 @@ class AvailableBudget extends Model
'transaction_currency_id' => 'int', 'transaction_currency_id' => 'int',
]; ];
protected $fillable = ['user_id', 'user_group_id', 'transaction_currency_id', 'amount', 'start_date', 'end_date']; protected $fillable = ['user_id', 'user_group_id', 'transaction_currency_id', 'amount', 'start_date', 'end_date', 'start_date_tz','end_date_tz'];
/** /**
* Route binder. Converts the key in the URL to the specified object (or throw 404). * Route binder. Converts the key in the URL to the specified object (or throw 404).

View File

@ -51,7 +51,7 @@ class TransactionJournal extends Model
use SoftDeletes; use SoftDeletes;
protected $casts protected $casts
= [ = [
'created_at' => 'datetime', 'created_at' => 'datetime',
'updated_at' => 'datetime', 'updated_at' => 'datetime',
'deleted_at' => 'datetime', 'deleted_at' => 'datetime',
@ -66,7 +66,7 @@ class TransactionJournal extends Model
]; ];
protected $fillable protected $fillable
= [ = [
'user_id', 'user_id',
'user_group_id', 'user_group_id',
'transaction_type_id', 'transaction_type_id',
@ -77,6 +77,7 @@ class TransactionJournal extends Model
'completed', 'completed',
'order', 'order',
'date', 'date',
'date_tz',
]; ];
protected $hidden = ['encrypted']; protected $hidden = ['encrypted'];
@ -89,13 +90,13 @@ class TransactionJournal extends Model
public static function routeBinder(string $value): self public static function routeBinder(string $value): self
{ {
if (auth()->check()) { if (auth()->check()) {
$journalId = (int)$value; $journalId = (int) $value;
/** @var User $user */ /** @var User $user */
$user = auth()->user(); $user = auth()->user();
/** @var null|TransactionJournal $journal */ /** @var null|TransactionJournal $journal */
$journal = $user->transactionJournals()->where('transaction_journals.id', $journalId)->first(['transaction_journals.*']); $journal = $user->transactionJournals()->where('transaction_journals.id', $journalId)->first(['transaction_journals.*']);
if (null !== $journal) { if (null !== $journal) {
return $journal; return $journal;
} }
@ -243,14 +244,14 @@ class TransactionJournal extends Model
protected function order(): Attribute protected function order(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn ($value) => (int)$value, get: static fn($value) => (int) $value,
); );
} }
protected function transactionTypeId(): Attribute protected function transactionTypeId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn ($value) => (int)$value, get: static fn($value) => (int) $value,
); );
} }
} }

View File

@ -202,7 +202,9 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface
$availableBudget->user()->associate($this->user); $availableBudget->user()->associate($this->user);
$availableBudget->transactionCurrency()->associate($currency); $availableBudget->transactionCurrency()->associate($currency);
$availableBudget->start_date = $start->startOfDay()->format('Y-m-d'); // @phpstan-ignore-line $availableBudget->start_date = $start->startOfDay()->format('Y-m-d'); // @phpstan-ignore-line
$availableBudget->start_date_tz = $start->format('e');
$availableBudget->end_date = $end->endOfDay()->format('Y-m-d'); // @phpstan-ignore-line $availableBudget->end_date = $end->endOfDay()->format('Y-m-d'); // @phpstan-ignore-line
$availableBudget->end_date_tz = $end->format('e');
} }
$availableBudget->amount = $amount; $availableBudget->amount = $amount;
$availableBudget->save(); $availableBudget->save();
@ -235,7 +237,9 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface
'transaction_currency_id' => $data['currency_id'], 'transaction_currency_id' => $data['currency_id'],
'amount' => $data['amount'], 'amount' => $data['amount'],
'start_date' => $start->format('Y-m-d'), 'start_date' => $start->format('Y-m-d'),
'start_date_tz' => $start->format('e'),
'end_date' => $end->format('Y-m-d'), 'end_date' => $end->format('Y-m-d'),
'end_date_tz' => $end->format('e'),
] ]
); );
} }
@ -257,6 +261,7 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface
if ($start instanceof Carbon) { if ($start instanceof Carbon) {
$start = $data['start']->startOfDay(); $start = $data['start']->startOfDay();
$availableBudget->start_date = $start->format('Y-m-d'); $availableBudget->start_date = $start->format('Y-m-d');
$availableBudget->start_date_tz = $start->format('e');
$availableBudget->save(); $availableBudget->save();
} }
} }
@ -266,6 +271,7 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface
if ($end instanceof Carbon) { if ($end instanceof Carbon) {
$end = $data['end']->endOfDay(); $end = $data['end']->endOfDay();
$availableBudget->end_date = $end->format('Y-m-d'); $availableBudget->end_date = $end->format('Y-m-d');
$availableBudget->end_date_tz = $end->format('e');
$availableBudget->save(); $availableBudget->save();
} }
} }