converted transfer check from category to type

This commit is contained in:
Denis Duliçi
2022-07-21 01:07:55 +03:00
parent 16c645b4a0
commit 5a7697f741
18 changed files with 221 additions and 109 deletions

View File

@@ -0,0 +1,95 @@
<?php
namespace App\Listeners\Update\V30;
use App\Abstracts\Listeners\Update as Listener;
use App\Events\Install\UpdateFinished as Event;
use App\Models\Banking\Transaction;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class Version305 extends Listener
{
const ALIAS = 'core';
const VERSION = '3.0.5';
/**
* Handle the event.
*
* @param $event
* @return void
*/
public function handle(Event $event)
{
if ($this->skipThisUpdate($event)) {
return;
}
Log::channel('stdout')->info('Updating to 3.0.5 version...');
$this->updateDatabase();
$this->updateSettings();
$this->updateTransfers();
Log::channel('stdout')->info('Done!');
}
public function updateDatabase(): void
{
Log::channel('stdout')->info('Updating database...');
Artisan::call('migrate', ['--force' => true]);
Log::channel('stdout')->info('Database updated.');
}
public function updateSettings(): void
{
Log::channel('stdout')->info('Updating settings...');
DB::table('settings')->where('key', 'transaction.type.income')->get()->each(function ($setting) {
DB::table('settings')->where('id', $setting->id)->update([
'value' => $setting->value . ',' . Transaction::INCOME_TRANSFER_TYPE,
]);
});
DB::table('settings')->where('key', 'transaction.type.expense')->get()->each(function ($setting) {
DB::table('settings')->where('id', $setting->id)->update([
'value' => $setting->value . ',' . Transaction::EXPENSE_TRANSFER_TYPE,
]);
});
Log::channel('stdout')->info('Settings updated.');
}
public function updateTransfers(): void
{
Log::channel('stdout')->info('Updating transfers...');
DB::table('transfers')->get()->each(function ($transfer) {
Log::channel('stdout')->info('Updating transfer: ' . $transfer->id);
try {
DB::table('transactions')->where('id', $transfer->income_transaction_id)->update([
'type' => Transaction::INCOME_TRANSFER_TYPE,
]);
} catch (\Exception $e) {
Log::channel('stdout')->error('Error updating transaction: ' . $transfer->income_transaction_id);
}
try {
DB::table('transactions')->where('id', $transfer->expense_transaction_id)->update([
'type' => Transaction::EXPENSE_TRANSFER_TYPE,
]);
} catch (\Exception $e) {
Log::channel('stdout')->error('Error updating transaction: ' . $transfer->expense_transaction_id);
}
});
Log::channel('stdout')->info('Transfers updated.');
}
}