Remove subfleet_expenses and combine into main expenses table; select expense type on subfleet #130 #136
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Models\Traits\ExpensableTrait;
|
||||
use App\Models\Traits\Expensable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
|
||||
/**
|
||||
@@ -12,7 +12,7 @@ use Illuminate\Notifications\Notifiable;
|
||||
*/
|
||||
class Airport extends BaseModel
|
||||
{
|
||||
use ExpensableTrait;
|
||||
use Expensable;
|
||||
use Notifiable;
|
||||
|
||||
public $table = 'airports';
|
||||
|
||||
@@ -18,6 +18,8 @@ class Expense extends BaseModel
|
||||
'amount',
|
||||
'type',
|
||||
'multiplier',
|
||||
'ref_class',
|
||||
'ref_class_id',
|
||||
'active',
|
||||
];
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Models;
|
||||
|
||||
use App\Models\Enums\AircraftStatus;
|
||||
use App\Models\Traits\Expensable;
|
||||
|
||||
/**
|
||||
* Class Subfleet
|
||||
@@ -10,6 +11,8 @@ use App\Models\Enums\AircraftStatus;
|
||||
*/
|
||||
class Subfleet extends BaseModel
|
||||
{
|
||||
use Expensable;
|
||||
|
||||
public $table = 'subfleets';
|
||||
|
||||
public $fillable = [
|
||||
@@ -88,14 +91,6 @@ class Subfleet extends BaseModel
|
||||
return $this->belongsTo(Airline::class, 'airline_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||
*/
|
||||
public function expenses()
|
||||
{
|
||||
return $this->hasMany(SubfleetExpense::class, 'subfleet_id');
|
||||
}
|
||||
|
||||
public function fares()
|
||||
{
|
||||
return $this->belongsToMany(Fare::class, 'subfleet_fare')
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
/**
|
||||
* Class SubfleetExpense
|
||||
* @package App\Models
|
||||
*/
|
||||
class SubfleetExpense extends BaseModel
|
||||
{
|
||||
public $table = 'subfleet_expenses';
|
||||
|
||||
public $fillable = [
|
||||
'subfleet_id',
|
||||
'name',
|
||||
'amount',
|
||||
'type',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be casted to native types.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $casts = [
|
||||
'amount' => 'float',
|
||||
'type' => 'integer',
|
||||
];
|
||||
|
||||
public static $rules = [
|
||||
'name' => 'required',
|
||||
'amount' => 'required|numeric',
|
||||
];
|
||||
|
||||
/**
|
||||
* Relationships
|
||||
*/
|
||||
|
||||
/**
|
||||
* Has a subfleet
|
||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||
*/
|
||||
public function subfleet()
|
||||
{
|
||||
return $this->belongsTo(Subfleet::class, 'subfleet_id');
|
||||
}
|
||||
}
|
||||
@@ -4,13 +4,12 @@ namespace App\Models\Traits;
|
||||
|
||||
use App\Models\Expense;
|
||||
|
||||
trait ExpensableTrait
|
||||
trait Expensable
|
||||
{
|
||||
|
||||
/**
|
||||
* Initialize a new journal when a new record is created
|
||||
*/
|
||||
public static function bootExpensableTrait()
|
||||
public static function bootExpensable()
|
||||
{
|
||||
/*static::created(function ($model) {
|
||||
$model->initJournal(config('phpvms.currency'));
|
||||
@@ -23,6 +22,7 @@ trait ExpensableTrait
|
||||
*/
|
||||
public function expenses()
|
||||
{
|
||||
return $this->morphToMany(Expense::class, 'expensable');
|
||||
return $this->hasMany(Expense::class, 'ref_class_id')
|
||||
->where('ref_class', __CLASS__);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user