mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Add UTC support.
This commit is contained in:
parent
07b55bd71f
commit
1bf61f57f5
@ -36,6 +36,7 @@ use FireflyIII\Models\PiggyBankRepetition;
|
|||||||
use FireflyIII\Models\Recurrence;
|
use FireflyIII\Models\Recurrence;
|
||||||
use FireflyIII\Models\Tag;
|
use FireflyIII\Models\Tag;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
|
use FireflyIII\Support\Facades\FireflyConfig;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Illuminate\Database\QueryException;
|
use Illuminate\Database\QueryException;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
@ -81,6 +82,8 @@ class AddTimezonesToDates extends Command
|
|||||||
foreach (self::$models as $model => $fields) {
|
foreach (self::$models as $model => $fields) {
|
||||||
$this->addTimezoneToModel($model, $fields);
|
$this->addTimezoneToModel($model, $fields);
|
||||||
}
|
}
|
||||||
|
// not yet in UTC mode
|
||||||
|
FireflyConfig::set('utc', false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function addTimezoneToModel(string $model, array $fields): void
|
private function addTimezoneToModel(string $model, array $fields): void
|
||||||
|
@ -25,6 +25,7 @@ namespace FireflyIII\Console\Commands\Integrity;
|
|||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use FireflyIII\Console\Commands\ShowsFriendlyMessages;
|
use FireflyIII\Console\Commands\ShowsFriendlyMessages;
|
||||||
|
use FireflyIII\Support\Facades\FireflyConfig;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Illuminate\Database\QueryException;
|
use Illuminate\Database\QueryException;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
@ -39,7 +40,7 @@ class ConvertDatesToUTC extends Command
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $signature = 'firefly-iii:convert-dates-to-utc';
|
protected $signature = 'firefly-iii:migrate-to-utc';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The console command description.
|
* The console command description.
|
||||||
@ -60,6 +61,8 @@ class ConvertDatesToUTC extends Command
|
|||||||
foreach (AddTimezonesToDates::$models as $model => $fields) {
|
foreach (AddTimezonesToDates::$models as $model => $fields) {
|
||||||
$this->ConvertModeltoUTC($model, $fields);
|
$this->ConvertModeltoUTC($model, $fields);
|
||||||
}
|
}
|
||||||
|
// tell the system we are now in UTC mode.
|
||||||
|
FireflyConfig::set('utc', true);
|
||||||
|
|
||||||
return Command::SUCCESS;
|
return Command::SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Factory;
|
namespace FireflyIII\Factory;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
use FireflyIII\Enums\TransactionTypeEnum;
|
||||||
use FireflyIII\Exceptions\DuplicateTransactionException;
|
use FireflyIII\Exceptions\DuplicateTransactionException;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
@ -43,6 +44,7 @@ use FireflyIII\Repositories\TransactionType\TransactionTypeRepositoryInterface;
|
|||||||
use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface;
|
use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface;
|
||||||
use FireflyIII\Services\Internal\Destroy\JournalDestroyService;
|
use FireflyIII\Services\Internal\Destroy\JournalDestroyService;
|
||||||
use FireflyIII\Services\Internal\Support\JournalServiceTrait;
|
use FireflyIII\Services\Internal\Support\JournalServiceTrait;
|
||||||
|
use FireflyIII\Support\Facades\FireflyConfig;
|
||||||
use FireflyIII\Support\NullArrayObject;
|
use FireflyIII\Support\NullArrayObject;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use FireflyIII\Validation\AccountValidator;
|
use FireflyIII\Validation\AccountValidator;
|
||||||
@ -157,7 +159,7 @@ class TransactionJournalFactory
|
|||||||
|
|
||||||
$this->errorIfDuplicate($row['import_hash_v2']);
|
$this->errorIfDuplicate($row['import_hash_v2']);
|
||||||
|
|
||||||
/** Some basic fields */
|
// Some basic fields
|
||||||
$type = $this->typeRepository->findTransactionType(null, $row['type']);
|
$type = $this->typeRepository->findTransactionType(null, $row['type']);
|
||||||
$carbon = $row['date'] ?? today(config('app.timezone'));
|
$carbon = $row['date'] ?? today(config('app.timezone'));
|
||||||
$order = $row['order'] ?? 0;
|
$order = $row['order'] ?? 0;
|
||||||
@ -170,6 +172,12 @@ class TransactionJournalFactory
|
|||||||
// Manipulate basic fields
|
// Manipulate basic fields
|
||||||
$carbon->setTimezone(config('app.timezone'));
|
$carbon->setTimezone(config('app.timezone'));
|
||||||
|
|
||||||
|
// 2024-11-19, overrule timezone with UTC and store it as UTC.
|
||||||
|
if(FireflyConfig::get('utc', false)) {
|
||||||
|
$carbon->setTimezone('UTC');
|
||||||
|
}
|
||||||
|
// $carbon->setTimezone('UTC');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// validate source and destination using a new Validator.
|
// validate source and destination using a new Validator.
|
||||||
$this->validateAccounts($row);
|
$this->validateAccounts($row);
|
||||||
@ -205,7 +213,7 @@ class TransactionJournalFactory
|
|||||||
app('log')->debug('Done with getAccount(2x)');
|
app('log')->debug('Done with getAccount(2x)');
|
||||||
|
|
||||||
// this is the moment for a reconciliation sanity check (again).
|
// this is the moment for a reconciliation sanity check (again).
|
||||||
if (TransactionType::RECONCILIATION === $type->type) {
|
if (TransactionTypeEnum::RECONCILIATION->value === $type->type) {
|
||||||
[$sourceAccount, $destinationAccount] = $this->reconciliationSanityCheck($sourceAccount, $destinationAccount);
|
[$sourceAccount, $destinationAccount] = $this->reconciliationSanityCheck($sourceAccount, $destinationAccount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user