akaunting/app/Jobs/Install/FinishUpdate.php

61 lines
1.3 KiB
PHP
Raw Normal View History

2020-12-24 02:16:00 +03:00
<?php
namespace App\Jobs\Install;
use App\Abstracts\Job;
use App\Models\Module\Module;
use App\Utilities\Console;
class FinishUpdate extends Job
{
protected $alias;
protected $new;
protected $old;
2020-12-25 12:08:15 +03:00
protected $company_id;
2020-12-24 02:16:00 +03:00
/**
* Create a new job instance.
*
* @param $alias
* @param $new
* @param $old
2020-12-25 12:08:15 +03:00
* @param $company_id
2020-12-24 02:16:00 +03:00
*/
2020-12-25 12:08:15 +03:00
public function __construct($alias, $new, $old, $company_id)
2020-12-24 02:16:00 +03:00
{
$this->alias = $alias;
$this->new = $new;
$this->old = $old;
2020-12-25 12:08:15 +03:00
$this->company_id = $company_id;
2020-12-24 02:16:00 +03:00
}
/**
* Execute the job.
*
* @return string
*/
public function handle()
{
if ($this->alias == 'core') {
2020-12-25 12:08:15 +03:00
$companies = [$this->company_id];
2020-12-24 02:16:00 +03:00
} else {
$companies = Module::alias($this->alias)->allCompanies()->cursor();
}
foreach ($companies as $company) {
$company_id = is_object($company) ? $company->id : $company;
$command = "update:finish {$this->alias} {$company_id} {$this->new} {$this->old}";
if (true !== $result = Console::run($command)) {
$message = !empty($result) ? $result : trans('modules.errors.finish', ['module' => $this->alias]);
throw new \Exception($message);
}
}
}
}