diff --git a/app/Jobs/Util/Import.php b/app/Jobs/Util/Import.php index a761d5194..f02eb511d 100644 --- a/app/Jobs/Util/Import.php +++ b/app/Jobs/Util/Import.php @@ -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. diff --git a/app/Models/Expense.php b/app/Models/Expense.php index 29ad16e5e..47e80d739 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -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', diff --git a/app/Transformers/ExpenseTransformer.php b/app/Transformers/ExpenseTransformer.php index 3dba3db52..2760fe9c0 100644 --- a/app/Transformers/ExpenseTransformer.php +++ b/app/Transformers/ExpenseTransformer.php @@ -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 ?: '', diff --git a/database/migrations/2020_10_30_084139_change_expense_currency_id_column.php b/database/migrations/2020_10_30_084139_change_expense_currency_id_column.php new file mode 100644 index 000000000..e2f5690c0 --- /dev/null +++ b/database/migrations/2020_10_30_084139_change_expense_currency_id_column.php @@ -0,0 +1,30 @@ +renameColumn('expense_currency_id', 'currency_id'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}