Fixes for first_load includes

This commit is contained in:
David Bomba 2020-10-26 07:56:02 +11:00
parent 3e21c301a5
commit b00e0b5a04
3 changed files with 40 additions and 5 deletions

View File

@ -60,9 +60,12 @@ class BaseController extends Controller
private $first_load = [
'account',
'token.company_user',
'user.company_user.token.company_user',
//'token.company_user',
'company.activities',
'company.designs.company',
'company.task_statuses',
'company.expense_categories',
'company.documents',
'company.users.company_users',
'company.clients.contacts',
@ -257,6 +260,12 @@ class BaseController extends Controller
'company.vendors'=> function ($query) use ($updated_at) {
$query->where('updated_at', '>=', $updated_at)->with('contacts','documents' );
},
'company.expense_categories'=> function ($query) use ($updated_at) {
$query->where('updated_at', '>=', $updated_at);
},
'company.task_statuses'=> function ($query) use ($updated_at) {
$query->where('updated_at', '>=', $updated_at);
},
]
);

View File

@ -165,14 +165,20 @@ class Company extends BaseModel
return $this->hasManyThrough(User::class, CompanyUser::class, 'company_id', 'id', 'id', 'user_id');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function expense_categories()
{
return $this->hasMany(ExpenseCategory::class)->withTrashed();
}
public function task_statuses()
{
return $this->hasMany(TaskStatus::class)->withTrashed();
}
public function clients()
{
return $this->hasMany(Client::class)->withTrashed();
}
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/

View File

@ -23,6 +23,7 @@ use App\Models\Credit;
use App\Models\Design;
use App\Models\Document;
use App\Models\Expense;
use App\Models\ExpenseCategory;
use App\Models\GroupSetting;
use App\Models\Payment;
use App\Models\PaymentTerm;
@ -32,6 +33,7 @@ use App\Models\Quote;
use App\Models\RecurringInvoice;
use App\Models\SystemLog;
use App\Models\Task;
use App\Models\TaskStatus;
use App\Models\TaxRate;
use App\Models\User;
use App\Models\Webhook;
@ -40,9 +42,11 @@ use App\Transformers\CompanyTokenHashedTransformer;
use App\Transformers\CompanyTokenTransformer;
use App\Transformers\CreditTransformer;
use App\Transformers\DocumentTransformer;
use App\Transformers\ExpenseCategoryTransformer;
use App\Transformers\PaymentTermTransformer;
use App\Transformers\RecurringInvoiceTransformer;
use App\Transformers\SystemLogTransformer;
use App\Transformers\TaskStatusTransformer;
use App\Transformers\TaskTransformer;
use App\Transformers\WebhookTransformer;
use App\Utils\Traits\MakesHash;
@ -95,6 +99,8 @@ class CompanyTransformer extends EntityTransformer
'tokens',
'tokens_hashed',
'system_logs',
'expense_categories',
'task_statuses',
];
/**
@ -151,6 +157,20 @@ class CompanyTransformer extends EntityTransformer
];
}
public function includeExpenseCategories(Company $company)
{
$transformer = new ExpenseCategoryTransformer($this->serializer);
return $this->includeCollection($company->expense_categories, $transformer, ExpenseCategory::class);
}
public function includeTaskStatuses(Company $company)
{
$transformer = new TaskStatusTransformer($this->serializer);
return $this->includeCollection($company->task_statuses, $transformer, TaskStatus::class);
}
public function includeDocuments(Company $company)
{
$transformer = new DocumentTransformer($this->serializer);