File: /var/www/ipsremont-demo/app/Models/Warehouse.php
<?php
namespace App\Models;
use App\Traits\Displayed;
use App\Traits\My;
use App\Traits\Sortable;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\Auth;
class Warehouse extends BaseModel
{
use SoftDeletes, Sortable, Displayed, My;
protected $table = 'warehouses';
protected $fillable = [
'name',
'description',
'central',
'branch_id',
'display',
'deleted_at',
'external_id',
];
protected static $labels = [
'name' => 'warehouses.name',
'description' => 'warehouses.description',
'central' => 'warehouses.central',
'display' => 'admins.activeNotActive',
'btnSubmit' => 'admins.btnSave',
'branch_id' => 'warehouses.branch_id',
'external_id' => 'warehouses.external_id',
];
public static function central()
{
return [
1 => 'warehouses.is_central',
0 => 'warehouses.is_not_central',
];
}
public static function columns()
{
return [
"fields" => [
[
"displayName" => 'grid.name',
"field" => "name",
"sort" => true,
"sortType" => 'asc',
],
[
"displayName" => 'grid.description',
"field" => "description",
"sort" => true,
"sortType" => 'asc',
],
[
"displayName" => 'grid.branches',
"field" => "branch_id",
"sort" => false,
"sortType" => 'asc',
],
[
"displayName" => 'grid.central',
"field" => "central",
"sort" => true,
"sortType" => 'asc',
"class" => 'text-center',
],
[
"displayName" => 'grid.status',
"field" => "display",
"sort" => true,
"sortType" => 'asc',
],
[
"displayName" => 'grid.createdAt',
"field" => "created_at",
"sort" => true,
"sortType" => 'asc',
],
[
"displayName" => '',
"field" => 'action',
"sort" => false,
],
],
"sortDefault" => [
[
"field" => 'display',
"sort" => 'desc',
],
[
"field" => 'name',
"sort" => 'asc',
],
],
];
}
public function branch()
{
return $this->belongsTo(Branch::class);
}
/**
* Scope a query to only include My items
*
* @param \Illuminate\Database\Eloquent\Builder $query
*
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeMy($query)
{
if (!can(Permission::branchesAll)) {
$query->whereIn('branch_id', Auth::user()->getBranchIds());
}
}
}