change ref_class to ref_model
This commit is contained in:
@@ -7,7 +7,7 @@ $factory->define(App\Models\Award::class, function (Faker $faker) {
|
||||
'id' => null,
|
||||
'name' => $faker->name,
|
||||
'description' => $faker->text(10),
|
||||
'ref_class' => null,
|
||||
'ref_class_params' => null,
|
||||
'ref_model' => null,
|
||||
'ref_model_params' => null,
|
||||
];
|
||||
});
|
||||
|
||||
@@ -11,8 +11,8 @@ $factory->define(App\Models\Expense::class, function (Faker $faker) {
|
||||
'amount' => $faker->randomFloat(2, 100, 1000),
|
||||
'type' => ExpenseType::FLIGHT,
|
||||
'multiplier' => false,
|
||||
'ref_class' => \App\Models\Expense::class,
|
||||
'ref_class_id' => null,
|
||||
'ref_model' => \App\Models\Expense::class,
|
||||
'ref_model_id' => null,
|
||||
'active' => true,
|
||||
];
|
||||
});
|
||||
|
||||
@@ -21,13 +21,13 @@ class CreateAwardsTable extends Migration
|
||||
|
||||
# ref fields are expenses tied to some model object
|
||||
# EG, the airports has an internal expense for gate costs
|
||||
$table->string('ref_class')->nullable();
|
||||
$table->text('ref_class_params')->nullable();
|
||||
#$table->string('ref_class_id', 36)->nullable();
|
||||
$table->string('ref_model')->nullable();
|
||||
$table->text('ref_model_params')->nullable();
|
||||
#$table->string('ref_model_id', 36)->nullable();
|
||||
|
||||
$table->timestamps();
|
||||
|
||||
$table->index(['ref_class']);
|
||||
$table->index(['ref_model']);
|
||||
});
|
||||
|
||||
Schema::create('user_awards', function (Blueprint $table) {
|
||||
|
||||
@@ -21,12 +21,12 @@ class CreateExpensesTable extends Migration
|
||||
|
||||
# ref fields are expenses tied to some model object
|
||||
# EG, the airports has an internal expense for gate costs
|
||||
$table->string('ref_class')->nullable();
|
||||
$table->string('ref_class_id', 36)->nullable();
|
||||
$table->string('ref_model')->nullable();
|
||||
$table->string('ref_model_id', 36)->nullable();
|
||||
|
||||
$table->timestamps();
|
||||
|
||||
$table->index(['ref_class', 'ref_class_id']);
|
||||
$table->index(['ref_model', 'ref_model_id']);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -22,15 +22,15 @@ class CreateJournalTransactionsTable extends Migration
|
||||
$table->char('currency', 5);
|
||||
$table->text('memo')->nullable();
|
||||
$table->string('tags')->nullable();
|
||||
$table->string('ref_class', 50)->nullable();
|
||||
$table->string('ref_class_id', 36)->nullable();
|
||||
$table->string('ref_model', 50)->nullable();
|
||||
$table->string('ref_model_id', 36)->nullable();
|
||||
$table->timestamps();
|
||||
$table->date('post_date');
|
||||
|
||||
$table->primary('id');
|
||||
$table->index('journal_id');
|
||||
$table->index('transaction_group');
|
||||
$table->index(['ref_class', 'ref_class_id']);
|
||||
$table->index(['ref_model', 'ref_model_id']);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -98,8 +98,8 @@ awards:
|
||||
name: Pilot 50 flights
|
||||
description: When a pilot has 50 flights, give this award
|
||||
image_url:
|
||||
ref_class: App\Awards\PilotFlightAwards
|
||||
ref_class_params: 50
|
||||
ref_model: App\Awards\PilotFlightAwards
|
||||
ref_model_params: 50
|
||||
created_at: now
|
||||
updated_at: now
|
||||
|
||||
@@ -194,52 +194,52 @@ expenses:
|
||||
amount: 100
|
||||
type: 0
|
||||
active: 1
|
||||
ref_class: App\Models\Expense
|
||||
ref_model: App\Models\Expense
|
||||
- name: Per-Flight (multiplier)
|
||||
amount: 100
|
||||
type: 0
|
||||
multiplier: 1
|
||||
active: 1
|
||||
ref_class: App\Models\Expense
|
||||
ref_model: App\Models\Expense
|
||||
- name: Per-Flight (multiplier, on airline)
|
||||
airline_id: 1
|
||||
amount: 200
|
||||
type: 0
|
||||
multiplier: 1
|
||||
active: 1
|
||||
ref_class: App\Models\Expense
|
||||
ref_model: App\Models\Expense
|
||||
- name: A daily fee
|
||||
amount: 800
|
||||
type: 1
|
||||
active: 1
|
||||
ref_class: App\Models\Expense
|
||||
ref_model: App\Models\Expense
|
||||
- name: A monthly fee
|
||||
amount: 5000
|
||||
type: 2
|
||||
active: 1
|
||||
ref_class: App\Models\Expense
|
||||
ref_model: App\Models\Expense
|
||||
- name: Catering
|
||||
amount: 1000
|
||||
type: 0
|
||||
active: 1
|
||||
ref_class: App\Models\Subfleet
|
||||
ref_class_id: 1
|
||||
ref_model: App\Models\Subfleet
|
||||
ref_model_id: 1
|
||||
created_at: now
|
||||
updated_at: now
|
||||
- name: Catering Staff
|
||||
amount: 1000
|
||||
type: 1
|
||||
active: 1
|
||||
ref_class: App\Models\Subfleet
|
||||
ref_class_id: 1
|
||||
ref_model: App\Models\Subfleet
|
||||
ref_model_id: 1
|
||||
created_at: now
|
||||
updated_at: now
|
||||
- name: Maintenance
|
||||
amount: 1000
|
||||
type: 1
|
||||
active: 1
|
||||
ref_class: App\Models\Aircraft
|
||||
ref_class_id: 1
|
||||
ref_model: App\Models\Aircraft
|
||||
ref_model_id: 1
|
||||
created_at: now
|
||||
updated_at: now
|
||||
|
||||
@@ -519,8 +519,8 @@ journal_transactions:
|
||||
currency: USD
|
||||
memo: 'Pilot Payment @ 50'
|
||||
tags: '"pilot_pay"'
|
||||
ref_class: App\Models\Pirep
|
||||
ref_class_id: pirepid_1
|
||||
ref_model: App\Models\Pirep
|
||||
ref_model_id: pirepid_1
|
||||
created_at: '2018-03-06 12:34:15'
|
||||
updated_at: '2018-03-06 12:34:15'
|
||||
post_date: '2018-03-06 12:34:15'
|
||||
@@ -533,8 +533,8 @@ journal_transactions:
|
||||
currency: USD
|
||||
memo: 'Expense: Per-Flight (no muliplier)'
|
||||
tags: '"expense"'
|
||||
ref_class: App\Models\Pirep
|
||||
ref_class_id: pirepid_1
|
||||
ref_model: App\Models\Pirep
|
||||
ref_model_id: pirepid_1
|
||||
created_at: '2018-03-06 12:34:15'
|
||||
updated_at: '2018-03-06 12:34:15'
|
||||
post_date: '2018-03-06 12:34:15'
|
||||
@@ -547,8 +547,8 @@ journal_transactions:
|
||||
currency: USD
|
||||
memo: 'Fares Y300; price: 200, cost: 0'
|
||||
tags: '"fare"'
|
||||
ref_class: App\Models\Pirep
|
||||
ref_class_id: pirepid_1
|
||||
ref_model: App\Models\Pirep
|
||||
ref_model_id: pirepid_1
|
||||
created_at: '2018-03-06 12:34:15'
|
||||
updated_at: '2018-03-06 12:34:15'
|
||||
post_date: '2018-03-06 12:34:15'
|
||||
@@ -561,8 +561,8 @@ journal_transactions:
|
||||
currency: USD
|
||||
memo: 'Expense: Per-Flight (multiplier, on airline)'
|
||||
tags: '"expense"'
|
||||
ref_class: App\Models\Pirep
|
||||
ref_class_id: pirepid_1
|
||||
ref_model: App\Models\Pirep
|
||||
ref_model_id: pirepid_1
|
||||
created_at: '2018-03-06 12:34:15'
|
||||
updated_at: '2018-03-06 12:34:15'
|
||||
post_date: '2018-03-06 12:34:15'
|
||||
@@ -575,8 +575,8 @@ journal_transactions:
|
||||
currency: USD
|
||||
memo: 'Expense: Per-Flight (multiplier)'
|
||||
tags: '"expense"'
|
||||
ref_class: App\Models\Pirep
|
||||
ref_class_id: pirepid_1
|
||||
ref_model: App\Models\Pirep
|
||||
ref_model_id: pirepid_1
|
||||
created_at: '2018-03-06 12:34:15'
|
||||
updated_at: '2018-03-06 12:34:15'
|
||||
post_date: '2018-03-06 12:34:15'
|
||||
@@ -589,8 +589,8 @@ journal_transactions:
|
||||
currency: USD
|
||||
memo: 'Subfleet Expense: Catering (747-43X RB211-524G)'
|
||||
tags: '"subfleet"'
|
||||
ref_class: App\Models\Pirep
|
||||
ref_class_id: pirepid_1
|
||||
ref_model: App\Models\Pirep
|
||||
ref_model_id: pirepid_1
|
||||
created_at: '2018-03-06 12:34:15'
|
||||
updated_at: '2018-03-06 12:34:15'
|
||||
post_date: '2018-03-06 12:34:15'
|
||||
@@ -603,8 +603,8 @@ journal_transactions:
|
||||
currency: USD
|
||||
memo: 'Fares F10; price: 1000, cost: 0'
|
||||
tags: '"fare"'
|
||||
ref_class: App\Models\Pirep
|
||||
ref_class_id: pirepid_1
|
||||
ref_model: App\Models\Pirep
|
||||
ref_model_id: pirepid_1
|
||||
created_at: '2018-03-06 12:34:15'
|
||||
updated_at: '2018-03-06 12:34:15'
|
||||
post_date: '2018-03-06 12:34:15'
|
||||
@@ -617,8 +617,8 @@ journal_transactions:
|
||||
currency: USD
|
||||
memo: 'Pilot Payment @ 50'
|
||||
tags: '"pilot_pay"'
|
||||
ref_class: App\Models\Pirep
|
||||
ref_class_id: pirepid_1
|
||||
ref_model: App\Models\Pirep
|
||||
ref_model_id: pirepid_1
|
||||
created_at: now
|
||||
updated_at: now
|
||||
post_date: now
|
||||
@@ -631,8 +631,8 @@ journal_transactions:
|
||||
currency: USD
|
||||
memo: 'Fares B10; price: 1100, cost: 0'
|
||||
tags: '"fare"'
|
||||
ref_class: App\Models\Pirep
|
||||
ref_class_id: pirepid_1
|
||||
ref_model: App\Models\Pirep
|
||||
ref_model_id: pirepid_1
|
||||
created_at: now
|
||||
updated_at: now
|
||||
post_date: now
|
||||
@@ -645,8 +645,8 @@ journal_transactions:
|
||||
currency: USD
|
||||
memo: 'Ground Handling'
|
||||
tags: '"ground_handling"'
|
||||
ref_class: App\Models\Pirep
|
||||
ref_class_id: pirepid_1
|
||||
ref_model: App\Models\Pirep
|
||||
ref_model_id: pirepid_1
|
||||
created_at: now
|
||||
updated_at: now
|
||||
post_date: now
|
||||
@@ -660,8 +660,8 @@ journal_transactions:
|
||||
currency: USD
|
||||
memo: 'Subfleet 744-3X-RB211: Block Time Cost'
|
||||
tags: '"subfleet"'
|
||||
ref_class: App\Models\Pirep
|
||||
ref_class_id: pirepid_1
|
||||
ref_model: App\Models\Pirep
|
||||
ref_model_id: pirepid_1
|
||||
created_at: now
|
||||
updated_at: now
|
||||
post_date: now
|
||||
|
||||
@@ -247,8 +247,8 @@ class AircraftController extends Controller
|
||||
|
||||
if ($request->isMethod('post')) {
|
||||
$expense = new Expense($request->post());
|
||||
$expense->ref_class = Aircraft::class;
|
||||
$expense->ref_class_id = $aircraft->id;
|
||||
$expense->ref_model = Aircraft::class;
|
||||
$expense->ref_model_id = $aircraft->id;
|
||||
$expense->save();
|
||||
} elseif ($request->isMethod('put')) {
|
||||
$expense = Expense::findOrFail($request->input('expense_id'));
|
||||
|
||||
@@ -255,8 +255,8 @@ class AirportController extends Controller
|
||||
|
||||
if ($request->isMethod('post')) {
|
||||
$expense = new Expense($request->post());
|
||||
$expense->ref_class = Airport::class;
|
||||
$expense->ref_class_id = $airport->id;
|
||||
$expense->ref_model = Airport::class;
|
||||
$expense->ref_model_id = $airport->id;
|
||||
$expense->save();
|
||||
} elseif ($request->isMethod('put')) {
|
||||
$expense = Expense::findOrFail($request->input('expense_id'));
|
||||
|
||||
@@ -53,7 +53,7 @@ class ExpenseController extends Controller
|
||||
{
|
||||
$this->expenseRepo->pushCriteria(new RequestCriteria($request));
|
||||
$expenses = $this->expenseRepo->findWhere([
|
||||
'ref_class' => Expense::class
|
||||
'ref_model' => Expense::class
|
||||
]);
|
||||
|
||||
return view('admin.expenses.index', [
|
||||
@@ -81,7 +81,7 @@ class ExpenseController extends Controller
|
||||
public function store(Request $request)
|
||||
{
|
||||
$input = $request->all();
|
||||
$input['ref_class'] = Expense::class;
|
||||
$input['ref_model'] = Expense::class;
|
||||
$this->expenseRepo->create($input);
|
||||
|
||||
Flash::success('Expense saved successfully.');
|
||||
|
||||
@@ -395,8 +395,8 @@ class SubfleetController extends Controller
|
||||
*/
|
||||
if ($request->isMethod('post')) {
|
||||
$expense = new Expense($request->post());
|
||||
$expense->ref_class = Subfleet::class;
|
||||
$expense->ref_class_id = $subfleet->id;
|
||||
$expense->ref_model = Subfleet::class;
|
||||
$expense->ref_model_id = $subfleet->id;
|
||||
$expense->save();
|
||||
} elseif ($request->isMethod('put')) {
|
||||
$expense = Expense::findOrFail($request->input('expense_id'));
|
||||
|
||||
@@ -56,9 +56,9 @@ abstract class Award
|
||||
final public function handle(): void
|
||||
{
|
||||
# Check if the params are a JSON object or array
|
||||
$param = $this->award->ref_class_params;
|
||||
if (Utils::isObject($this->award->ref_class_params)) {
|
||||
$param = json_decode($this->award->ref_class_params);
|
||||
$param = $this->award->ref_model_params;
|
||||
if (Utils::isObject($this->award->ref_model_params)) {
|
||||
$param = json_decode($this->award->ref_model_params);
|
||||
}
|
||||
|
||||
if ($this->check($param)) {
|
||||
|
||||
@@ -7,8 +7,8 @@ use App\Interfaces\Model;
|
||||
/**
|
||||
* The Award model
|
||||
* @property mixed id
|
||||
* @property mixed ref_class
|
||||
* @property mixed|null ref_class_params
|
||||
* @property mixed ref_model
|
||||
* @property mixed|null ref_model_params
|
||||
* @package Award\Models
|
||||
*/
|
||||
class Award extends Model
|
||||
@@ -19,16 +19,16 @@ class Award extends Model
|
||||
'name',
|
||||
'description',
|
||||
'image_url',
|
||||
'ref_class',
|
||||
'ref_class_params',
|
||||
'ref_model',
|
||||
'ref_model_params',
|
||||
];
|
||||
|
||||
public static $rules = [
|
||||
'name' => 'required',
|
||||
'description' => 'nullable',
|
||||
'image_url' => 'nullable',
|
||||
'ref_class' => 'required',
|
||||
'ref_class_params' => 'nullable'
|
||||
'ref_model' => 'required',
|
||||
'ref_model_params' => 'nullable'
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -39,12 +39,12 @@ class Award extends Model
|
||||
*/
|
||||
public function getReference(Award $award = null, User $user = null)
|
||||
{
|
||||
if (!$this->ref_class) {
|
||||
if (!$this->ref_model) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
return new $this->ref_class($award, $user);
|
||||
return new $this->ref_model($award, $user);
|
||||
} catch (\Exception $e) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -8,8 +8,8 @@ use App\Interfaces\Model;
|
||||
* @property int airline_id
|
||||
* @property float amount
|
||||
* @property string name
|
||||
* @property string ref_class
|
||||
* @property string ref_class_id
|
||||
* @property string ref_model
|
||||
* @property string ref_model_id
|
||||
* @package App\Models
|
||||
*/
|
||||
class Expense extends Model
|
||||
@@ -23,8 +23,8 @@ class Expense extends Model
|
||||
'type',
|
||||
'multiplier',
|
||||
'charge_to_user',
|
||||
'ref_class',
|
||||
'ref_class_id',
|
||||
'ref_model',
|
||||
'ref_model_id',
|
||||
'active',
|
||||
];
|
||||
|
||||
@@ -42,18 +42,18 @@ class Expense extends Model
|
||||
*/
|
||||
public function getReference()
|
||||
{
|
||||
if (!$this->ref_class || !$this->ref_class_id) {
|
||||
if (!$this->ref_model || !$this->ref_model_id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($this->ref_class === __CLASS__) {
|
||||
if ($this->ref_model === __CLASS__) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
try {
|
||||
$klass = new $this->ref_class;
|
||||
$klass = new $this->ref_model;
|
||||
|
||||
return $klass->find($this->ref_class_id);
|
||||
return $klass->find($this->ref_model_id);
|
||||
} catch (\Exception $e) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -130,8 +130,8 @@ class Journal extends Model
|
||||
{
|
||||
return $this
|
||||
->transactions()
|
||||
->where('ref_class', \get_class($object))
|
||||
->where('ref_class_id', $object->id);
|
||||
->where('ref_model', \get_class($object))
|
||||
->where('ref_model_id', $object->id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,8 +16,8 @@ use App\Interfaces\Model;
|
||||
* @property string post_date
|
||||
* @property integer credit
|
||||
* @property integer debit
|
||||
* @property string ref_class
|
||||
* @property integer ref_class_id
|
||||
* @property string ref_model
|
||||
* @property integer ref_model_id
|
||||
* @property Journal journal
|
||||
*/
|
||||
class JournalTransaction extends Model
|
||||
@@ -34,8 +34,8 @@ class JournalTransaction extends Model
|
||||
'currency',
|
||||
'memo',
|
||||
'tags',
|
||||
'ref_class',
|
||||
'ref_class_id',
|
||||
'ref_model',
|
||||
'ref_model_id',
|
||||
'post_date'
|
||||
];
|
||||
|
||||
@@ -67,8 +67,8 @@ class JournalTransaction extends Model
|
||||
*/
|
||||
public function referencesObject($object)
|
||||
{
|
||||
$this->ref_class = \get_class($object);
|
||||
$this->ref_class_id = $object->id;
|
||||
$this->ref_model = \get_class($object);
|
||||
$this->ref_model_id = $object->id;
|
||||
$this->save();
|
||||
|
||||
return $this;
|
||||
@@ -79,10 +79,10 @@ class JournalTransaction extends Model
|
||||
*/
|
||||
public function getReferencedObject()
|
||||
{
|
||||
if ($classname = $this->ref_class) {
|
||||
$klass = new $this->ref_class;
|
||||
if ($classname = $this->ref_model) {
|
||||
$klass = new $this->ref_model;
|
||||
|
||||
return $klass->find($this->ref_class_id);
|
||||
return $klass->find($this->ref_model_id);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
@@ -375,8 +375,8 @@ class Pirep extends Model
|
||||
|
||||
public function transactions()
|
||||
{
|
||||
return $this->hasMany(JournalTransaction::class, 'ref_class_id')
|
||||
->where('ref_class', __CLASS__)
|
||||
return $this->hasMany(JournalTransaction::class, 'ref_model_id')
|
||||
->where('ref_model', __CLASS__)
|
||||
->orderBy('credit', 'desc')
|
||||
->orderBy('debit', 'desc');
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@ trait ExpensableTrait
|
||||
return $this->morphMany(
|
||||
Expense::class,
|
||||
'expenses', # overridden by the next two anyway
|
||||
'ref_class',
|
||||
'ref_class_id'
|
||||
'ref_model',
|
||||
'ref_model_id'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,18 +26,18 @@ class ExpenseRepository extends Repository implements CacheableInterface
|
||||
* include expenses for a given airline ID
|
||||
* @param $type
|
||||
* @param null $airline_id
|
||||
* @param null $ref_class
|
||||
* @param null $ref_model
|
||||
* @return Collection
|
||||
*/
|
||||
public function getAllForType($type, $airline_id = null, $ref_class = null)
|
||||
public function getAllForType($type, $airline_id = null, $ref_model = null)
|
||||
{
|
||||
$where = [
|
||||
'type' => $type,
|
||||
['airline_id', '=', null]
|
||||
];
|
||||
|
||||
if ($ref_class) {
|
||||
$where['ref_class'] = $ref_class;
|
||||
if ($ref_model) {
|
||||
$where['ref_model'] = $ref_model;
|
||||
}
|
||||
|
||||
$expenses = $this->findWhere($where);
|
||||
@@ -48,8 +48,8 @@ class ExpenseRepository extends Repository implements CacheableInterface
|
||||
'airline_id' => $airline_id
|
||||
];
|
||||
|
||||
if ($ref_class) {
|
||||
$where['ref_class'] = $ref_class;
|
||||
if ($ref_model) {
|
||||
$where['ref_model'] = $ref_model;
|
||||
}
|
||||
|
||||
$airline_expenses = $this->findWhere($where);
|
||||
|
||||
@@ -113,8 +113,8 @@ class JournalRepository extends Repository implements CacheableInterface
|
||||
];
|
||||
|
||||
if ($reference !== null) {
|
||||
$attrs['ref_class'] = \get_class($reference);
|
||||
$attrs['ref_class_id'] = $reference->id;
|
||||
$attrs['ref_model'] = \get_class($reference);
|
||||
$attrs['ref_model_id'] = $reference->id;
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -238,8 +238,8 @@ class JournalRepository extends Repository implements CacheableInterface
|
||||
public function getAllForObject($object, $journal = null, Carbon $date = null)
|
||||
{
|
||||
$where = [
|
||||
'ref_class' => \get_class($object),
|
||||
'ref_class_id' => $object->id,
|
||||
'ref_model' => \get_class($object),
|
||||
'ref_model_id' => $object->id,
|
||||
];
|
||||
|
||||
if ($journal) {
|
||||
@@ -272,8 +272,8 @@ class JournalRepository extends Repository implements CacheableInterface
|
||||
public function deleteAllForObject($object, $journal = null)
|
||||
{
|
||||
$where = [
|
||||
'ref_class' => \get_class($object),
|
||||
'ref_class_id' => $object->id,
|
||||
'ref_model' => \get_class($object),
|
||||
'ref_model_id' => $object->id,
|
||||
];
|
||||
|
||||
if ($journal) {
|
||||
|
||||
@@ -200,19 +200,19 @@ class PirepFinanceService extends Service
|
||||
|
||||
Log::info('Finance: PIREP: '.$pirep->id.', expense:', $expense->toArray());
|
||||
|
||||
# Get the transaction group name from the ref_class name
|
||||
# Get the transaction group name from the ref_model name
|
||||
# This way it can be more dynamic and don't have to add special
|
||||
# tables or specific expense calls to accomodate all of these
|
||||
$klass = 'Expense';
|
||||
if ($expense->ref_class) {
|
||||
$ref = explode('\\', $expense->ref_class);
|
||||
if ($expense->ref_model) {
|
||||
$ref = explode('\\', $expense->ref_model);
|
||||
$klass = end($ref);
|
||||
}
|
||||
|
||||
# Form the memo, with some specific ones depending on the group
|
||||
if ($klass === 'Airport') {
|
||||
$memo = "Airport Expense: {$expense->name} ({$expense->ref_class_id})";
|
||||
$transaction_group = "Airport: {$expense->ref_class_id}";
|
||||
$memo = "Airport Expense: {$expense->name} ({$expense->ref_model_id})";
|
||||
$transaction_group = "Airport: {$expense->ref_model_id}";
|
||||
} elseif ($klass === 'Subfleet') {
|
||||
$memo = "Subfleet Expense: {$expense->name} ({$pirep->aircraft->subfleet->name})";
|
||||
$transaction_group = "Subfleet: {$expense->name} ({$pirep->aircraft->subfleet->name})";
|
||||
|
||||
@@ -57,15 +57,15 @@ class RecurringFinanceService extends Service
|
||||
protected function getMemoAndGroup(Expense $expense): array
|
||||
{
|
||||
$klass = 'Expense';
|
||||
if ($expense->ref_class) {
|
||||
$ref = explode('\\', $expense->ref_class);
|
||||
if ($expense->ref_model) {
|
||||
$ref = explode('\\', $expense->ref_model);
|
||||
$klass = end($ref);
|
||||
$obj = $expense->getReference();
|
||||
}
|
||||
|
||||
if ($klass === 'Airport') {
|
||||
$memo = "Airport Expense: {$expense->name} ({$expense->ref_class_id})";
|
||||
$transaction_group = "Airport: {$expense->ref_class_id}";
|
||||
$memo = "Airport Expense: {$expense->name} ({$expense->ref_model_id})";
|
||||
$transaction_group = "Airport: {$expense->ref_model_id}";
|
||||
} elseif ($klass === 'Subfleet') {
|
||||
$memo = "Subfleet Expense: {$expense->name}";
|
||||
$transaction_group = "Subfleet: {$expense->name}";
|
||||
@@ -111,8 +111,8 @@ class RecurringFinanceService extends Service
|
||||
# against this specific journal, on today
|
||||
$w = [
|
||||
'journal_id' => $journal->id,
|
||||
'ref_class' => Expense::class,
|
||||
'ref_class_id' => $expense->id,
|
||||
'ref_model' => Expense::class,
|
||||
'ref_model_id' => $expense->id,
|
||||
];
|
||||
|
||||
$found = JournalTransaction::where($w)
|
||||
|
||||
@@ -48,26 +48,26 @@ class ExpenseExporter extends ImportExport
|
||||
|
||||
// For the different expense types, instead of exporting
|
||||
// the ID, export a specific column
|
||||
if ($expense->ref_class === Expense::class) {
|
||||
$ret['ref_class'] = '';
|
||||
$ret['ref_class_id'] = '';
|
||||
if ($expense->ref_model === Expense::class) {
|
||||
$ret['ref_model'] = '';
|
||||
$ret['ref_model_id'] = '';
|
||||
} else {
|
||||
$obj = $expense->getReference();
|
||||
if(!$obj) { // bail out
|
||||
return $ret;
|
||||
}
|
||||
|
||||
if ($expense->ref_class === Aircraft::class) {
|
||||
$ret['ref_class_id'] = $obj->registration;
|
||||
} elseif ($expense->ref_class === Airport::class) {
|
||||
$ret['ref_class_id'] = $obj->icao;
|
||||
} elseif ($expense->ref_class === Subfleet::class) {
|
||||
$ret['ref_class_id'] = $obj->type;
|
||||
if ($expense->ref_model === Aircraft::class) {
|
||||
$ret['ref_model_id'] = $obj->registration;
|
||||
} elseif ($expense->ref_model === Airport::class) {
|
||||
$ret['ref_model_id'] = $obj->icao;
|
||||
} elseif ($expense->ref_model === Subfleet::class) {
|
||||
$ret['ref_model_id'] = $obj->type;
|
||||
}
|
||||
}
|
||||
|
||||
// And convert the ref_class into the shorter name
|
||||
$ret['ref_class'] = str_replace('App\Models\\', '', $ret['ref_class']);
|
||||
// And convert the ref_model into the shorter name
|
||||
$ret['ref_model'] = str_replace('App\Models\\', '', $ret['ref_model']);
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
@@ -30,8 +30,8 @@ class ExpenseImporter extends ImportExport
|
||||
'charge_to_user' => 'nullable|boolean',
|
||||
'multiplier' => 'nullable|numeric',
|
||||
'active' => 'nullable|boolean',
|
||||
'ref_class' => 'nullable',
|
||||
'ref_class_id' => 'nullable',
|
||||
'ref_model' => 'nullable',
|
||||
'ref_model_id' => 'nullable',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -70,27 +70,27 @@ class ExpenseImporter extends ImportExport
|
||||
}
|
||||
|
||||
/**
|
||||
* See if this expense refers to a ref_class
|
||||
* See if this expense refers to a ref_model
|
||||
* @param array $row
|
||||
* @return array
|
||||
*/
|
||||
protected function getRefClassInfo(array $row)
|
||||
{
|
||||
$row['ref_class'] = trim($row['ref_class']);
|
||||
$row['ref_model'] = trim($row['ref_model']);
|
||||
|
||||
// class from import is being saved as the name of the model only
|
||||
// prepend the full class path so we can search it out
|
||||
if (\strlen($row['ref_class']) > 0) {
|
||||
if (substr_count($row['ref_class'], 'App\Models\\') === 0) {
|
||||
$row['ref_class'] = 'App\Models\\'.$row['ref_class'];
|
||||
if (\strlen($row['ref_model']) > 0) {
|
||||
if (substr_count($row['ref_model'], 'App\Models\\') === 0) {
|
||||
$row['ref_model'] = 'App\Models\\'.$row['ref_model'];
|
||||
}
|
||||
} else {
|
||||
$row['ref_class'] = Expense::class;
|
||||
$row['ref_model'] = Expense::class;
|
||||
return $row;
|
||||
}
|
||||
|
||||
$class = $row['ref_class'];
|
||||
$id = $row['ref_class_id'];
|
||||
$class = $row['ref_model'];
|
||||
$id = $row['ref_model_id'];
|
||||
$obj = null;
|
||||
|
||||
if ($class === Aircraft::class) {
|
||||
@@ -110,7 +110,7 @@ class ExpenseImporter extends ImportExport
|
||||
return $row;
|
||||
}
|
||||
|
||||
$row['ref_class_id'] = $obj->id;
|
||||
$row['ref_model_id'] = $obj->id;
|
||||
return $row;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user