61 lines
1.1 KiB
PHP
61 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Jobs\Common;
|
|
|
|
use App\Abstracts\Job;
|
|
use App\Models\Common\Company;
|
|
use App\Traits\Users;
|
|
|
|
class DeleteCompany extends Job
|
|
{
|
|
use Users;
|
|
|
|
protected $company;
|
|
|
|
/**
|
|
* Create a new job instance.
|
|
*
|
|
* @param $request
|
|
*/
|
|
public function __construct($company)
|
|
{
|
|
$this->company = $company;
|
|
}
|
|
|
|
/**
|
|
* Execute the job.
|
|
*
|
|
* @return Company
|
|
*/
|
|
public function handle()
|
|
{
|
|
$this->authorize();
|
|
|
|
$this->company->delete();
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Determine if this action is applicable.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function authorize()
|
|
{
|
|
// Can't delete active company
|
|
if ($this->company->id == session('company_id')) {
|
|
$message = trans('companies.error.delete_active');
|
|
|
|
throw new \Exception($message);
|
|
}
|
|
|
|
// Check if user can access company
|
|
if (!$this->isUserCompany($this->company->id)) {
|
|
$message = trans('companies.error.not_user_company');
|
|
|
|
throw new \Exception($message);
|
|
}
|
|
}
|
|
}
|