Installing and managing modules from admin panel (#847)

This commit is contained in:
Yash Govekar
2020-10-19 19:40:28 +05:30
committed by GitHub
parent ca220f1cdf
commit 5803487d51
92 changed files with 1259 additions and 669 deletions

View File

@@ -0,0 +1,47 @@
<?php
namespace App\Services\Importers;
use App\Models\Enums\ExpenseType;
use App\Models\Expense;
class ExpenseImporter extends BaseImporter
{
protected $table = 'expenses';
private $expense_types = [
'M' => ExpenseType::MONTHLY,
'F' => ExpenseType::FLIGHT,
'P' => ExpenseType::MONTHLY, // percent, monthly
'G' => ExpenseType::FLIGHT, // percent, per-flight
];
/**
* {@inheritdoc}
*/
public function run($start = 0)
{
$this->comment('--- EXPENSES IMPORT ---');
$count = 0;
$rows = $this->db->readRows($this->table, $this->idField, $start);
foreach ($rows as $row) {
$attrs = [
'airline_id' => null,
'name' => $row->name,
'amount' => $row->amount,
'type' => $this->expense_types[$row->type],
'active' => 1,
'ref_model' => Expense::class,
];
$expense = Expense::updateOrCreate(['name' => $row->name], $attrs);
$this->idMapper->addMapping('expenses', $row->id, $expense->id);
$this->idMapper->addMapping('expenses', $row->name, $expense->id);
$count++;
}
$this->info('Imported '.$count.' expenses');
}
}