Edit File: Settlement.php
<?php namespace App\Models; use App\Traits\Uploadable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Settlement extends Model { use HasFactory; use Uploadable; protected $fillable = ['provider_id','status','total_due','image','total_price','total_app_percentage','total_added_value','refuse_reason']; public function provider() { return $this->belongsTo(User::class,'provider_id'); } public function settlementOrders() { return $this->hasMany(SettlementOrder::class); } public function getImagePathAttribute() { $image = $this->image == null ? 'image.png' : $this->image; return asset('assets/uploads/settlements/' . $image); } public function setImageAttribute($value) { if (is_file($value)) { $this->attributes['image'] = $this->uploadOne($value, 'settlements'); } } public static function boot() { parent::boot(); /* creating, created, updating, updated, deleting, deleted, forceDeleted, restored */ self::deleted(function ($model) { $model->deleteFile($model->attributes['image'], 'settlements'); }); } public function scopeSearch($query, $searchArray = []) { $query->where(function ($query) use ($searchArray) { if ($searchArray) { foreach ($searchArray as $key => $value) { if (str_contains($key, '_id')) { if (null != $value) { $query->Where($key, $value); } } elseif ('order' == $key) { } elseif ('created_at_min' == $key) { if (null != $value) { $query->WhereDate('created_at', '>=', $value); } } elseif ('created_at_max' == $key) { if (null != $value) { $query->WhereDate('created_at', '<=', $value); } } else { if (null != $value) { $query->Where($key, 'like', '%' . $value . '%'); } } } } }); return $query->orderBy('created_at', request()->searchArray && request()->searchArray['order'] ? request()->searchArray['order'] : 'DESC'); } }
Back to File Manager