Remove subfleet_expenses and combine into main expenses table; select expense type on subfleet #130 #136

This commit is contained in:
Nabeel Shahzad
2018-03-05 21:24:49 -06:00
parent 8c05ad134e
commit 88a8fd2bbd
20 changed files with 160 additions and 138 deletions

View File

@@ -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';

View File

@@ -18,6 +18,8 @@ class Expense extends BaseModel
'amount',
'type',
'multiplier',
'ref_class',
'ref_class_id',
'active',
];

View File

@@ -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')

View File

@@ -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');
}
}

View File

@@ -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__);
}
}