use jobs in seeds

This commit is contained in:
Denis Duliçi 2021-09-06 14:46:42 +03:00
parent 442b238854
commit 7fd3917d63
7 changed files with 38 additions and 22 deletions

View File

@ -5,6 +5,7 @@ namespace App\Jobs\Common;
use App\Abstracts\Job;
use App\Interfaces\Job\HasOwner;
use App\Interfaces\Job\ShouldCreate;
use App\Jobs\Common\CreateWidget;
use App\Models\Auth\User;
use App\Models\Common\Company;
use App\Models\Common\Dashboard;
@ -110,16 +111,21 @@ class CreateDashboard extends Job implements HasOwner, ShouldCreate
$name = (new $class())->getDefaultName();
}
Widget::firstOrCreate([
'company_id' => $this->model->company_id,
'dashboard_id' => $this->model->id,
'class' => $class,
], [
'name' => $name,
'sort' => $sort,
'settings' => (new $class())->getDefaultSettings(),
'created_by' => $this->model->created_by,
]);
$widget = Widget::companyId($this->model->company_id)
->where('dashboard_id', $this->model->id)
->where('class', $class)
->first();
if (! $widget) {
$this->dispatch(new CreateWidget([
'company_id' => $this->model->company_id,
'dashboard_id' => $this->model->id,
'class' => $class,
'name' => $name,
'sort' => $sort,
'settings' => (new $class())->getDefaultSettings(),
]));
}
$sort++;
}

View File

@ -11,8 +11,6 @@ class CreateWidget extends Job implements HasOwner, ShouldCreate
{
public function handle(): Widget
{
$this->request['enabled'] = $this->request['enabled'] ?? 1;
\DB::transaction(function () {
$this->widget = Widget::create($this->request->all());
});

View File

@ -3,11 +3,14 @@
namespace Database\Seeds;
use App\Abstracts\Model;
use App\Models\Banking\Account;
use App\Jobs\Banking\CreateAccount;
use App\Traits\Jobs;
use Illuminate\Database\Seeder;
class Accounts extends Seeder
{
use Jobs;
/**
* Run the database seeds.
*
@ -26,14 +29,14 @@ class Accounts extends Seeder
{
$company_id = $this->command->argument('company');
$account = Account::create([
$account = $this->dispatch(new CreateAccount([
'company_id' => $company_id,
'name' => trans('demo.accounts.cash'),
'number' => '1',
'currency_code' => 'USD',
'bank_name' => trans('demo.accounts.cash'),
'enabled' => '1',
]);
]));
setting()->set('default.account', $account->id);
}

View File

@ -3,11 +3,14 @@
namespace Database\Seeds;
use App\Abstracts\Model;
use App\Models\Setting\Category;
use App\Jobs\Setting\CreateCategory;
use App\Traits\Jobs;
use Illuminate\Database\Seeder;
class Categories extends Seeder
{
use Jobs;
/**
* Run the database seeds.
*
@ -67,7 +70,7 @@ class Categories extends Seeder
$income_category_id = $expense_category_id = 0;
foreach ($rows as $row) {
$category = Category::create($row);
$category = $this->dispatch(new CreateCategory($row));
switch ($category->type) {
case 'income':

View File

@ -3,11 +3,14 @@
namespace Database\Seeds;
use App\Abstracts\Model;
use App\Models\Setting\Currency;
use App\Jobs\Setting\CreateCurrency;
use App\Traits\Jobs;
use Illuminate\Database\Seeder;
class Currencies extends Seeder
{
use Jobs;
/**
* Run the database seeds.
*
@ -75,7 +78,7 @@ class Currencies extends Seeder
];
foreach ($rows as $row) {
Currency::create($row);
$this->dispatch(new CreateCurrency($row));
}
}
}

View File

@ -3,8 +3,8 @@
namespace Database\Seeds;
use App\Abstracts\Model;
use Artisan;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Artisan;
class Modules extends Seeder
{

View File

@ -3,11 +3,14 @@
namespace Database\Seeds;
use App\Abstracts\Model;
use App\Models\Common\Report;
use App\Jobs\Common\CreateReport;
use App\Traits\Jobs;
use Illuminate\Database\Seeder;
class Reports extends Seeder
{
use Jobs;
/**
* Run the database seeds.
*
@ -65,7 +68,7 @@ class Reports extends Seeder
];
foreach ($rows as $row) {
Report::create($row);
$this->dispatch(new CreateReport($row));
}
}
}