1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 08:21:34 +02:00

Working on migration for expenses and tasks

This commit is contained in:
David Bomba 2020-10-30 20:17:29 +11:00
parent 3f202b8c58
commit a283f1dcf7
4 changed files with 131 additions and 2 deletions

View File

@ -44,12 +44,15 @@ use App\Models\CompanyGateway;
use App\Models\Credit;
use App\Models\Document;
use App\Models\Expense;
use App\Models\ExpenseCategory;
use App\Models\Invoice;
use App\Models\Payment;
use App\Models\PaymentTerm;
use App\Models\Product;
use App\Models\Quote;
use App\Models\RecurringInvoice;
use App\Models\Task;
use App\Models\TaskStatus;
use App\Models\TaxRate;
use App\Models\User;
use App\Repositories\ClientContactRepository;
@ -111,6 +114,10 @@ class Import implements ShouldQueue
'payments',
'company_gateways',
'client_gateway_tokens',
'expense_categories',
'task_statuses',
'expenses',
'tasks',
// //'documents',
];
@ -906,6 +913,97 @@ class Import implements ShouldQueue
$data = null;
}
private function processTaskStatuses(array $data) :void
{
TaskStatus::unguard();
foreach ($data as $resource) {
$modified = $resource;
unset($modified['id']);
$modified['company_id'] = $this->company->id;
$modified['user_id'] = $this->transformId('users', $resource['user_id']);
$task_status = TaskStatus::Create($modified);
$old_user_key = array_key_exists('user_id', $resource) ?? $this->user->id;
$this->ids['task_statuses'] = [
"task_statuses_{$old_user_key}" => [
'old' => $resource['id'],
'new' => $task_status->id,
],
];
}
TaskStatus::reguard();
$data = null;
}
private function processExpenseCategories(array $data) :void
{
ExpenseCategory::unguard();
foreach ($data as $resource) {
$modified = $resource;
unset($modified['id']);
$modified['company_id'] = $this->company->id;
$modified['user_id'] = $this->transformId('users', $resource['user_id']);
$expense_category = ExpenseCategory::Create($modified);
$old_user_key = array_key_exists('user_id', $resource) ?? $this->user->id;
$this->ids['expense_categories'] = [
"expense_categories_{$old_user_key}" => [
'old' => $resource['id'],
'new' => $expense_category->id,
],
];
}
ExpenseCategory::reguard();
$data = null;
}
private function processTasks(array $data) :void
{
Task::unguard();
foreach ($data as $resource) {
$modified = $resource;
unset($modified['id']);
$modified['company_id'] = $this->company->id;
$modified['user_id'] = $this->transformId('users', $resource['user_id']);
$modified['client_id'] = $this->transformId('clients', $resource['client_id']);
$modified['invoice_id'] = $this->transformId('invoices', $resource['invoice_id']);
$modified['project_id'] = $this->transformId('projects', $resource['project_id']);
$modified['status_id'] = $this->transformId('task_statuses', $resource['status_id']);
$task = Task::Create($modified);
$old_user_key = array_key_exists('user_id', $resource) ?? $this->user->id;
$this->ids['tasks'] = [
"tasks_{$old_user_key}" => [
'old' => $resource['id'],
'new' => $task->id,
],
];
}
Task::reguard();
$data = null;
}
/**
* |--------------------------------------------------------------------------
* | Additional migration methods.

View File

@ -26,7 +26,7 @@ class Expense extends BaseModel
'assigned_user_id',
'vendor_id',
'invoice_id',
'expense_currency_id',
'currency_id',
'date',
'invoice_currency_id',
'amount',

View File

@ -58,7 +58,8 @@ class ExpenseTransformer extends EntityTransformer
'client_id' => $this->encodePrimaryKey($expense->client_id),
'bank_id' => (string) $expense->bank_id ?: '',
'invoice_currency_id' => (string) $expense->invoice_currency_id ?: '',
'expense_currency_id' => (string) $expense->expense_currency_id ?: '',
'expense_currency_id' => '', //todo remove redundant in 5.0.25
'currency_id' => (string) $expense->expense_currency_id ?: '',
'category_id' => $this->encodePrimaryKey($expense->category_id),
'payment_type_id' => (string) $expense->payment_type_id ?: '',
'recurring_expense_id' => (string) $expense->recurring_expense_id ?: '',

View File

@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class ChangeExpenseCurrencyIdColumn extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('expenses', function(Blueprint $table){
$table->renameColumn('expense_currency_id', 'currency_id');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}