akaunting/app/Jobs/Install/FinishUpdate.php
2020-12-25 12:08:15 +03:00

61 lines
1.3 KiB
PHP

<?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;
protected $company_id;
/**
* Create a new job instance.
*
* @param $alias
* @param $new
* @param $old
* @param $company_id
*/
public function __construct($alias, $new, $old, $company_id)
{
$this->alias = $alias;
$this->new = $new;
$this->old = $old;
$this->company_id = $company_id;
}
/**
* Execute the job.
*
* @return string
*/
public function handle()
{
if ($this->alias == 'core') {
$companies = [$this->company_id];
} 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);
}
}
}
}