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 = [ private $first_load = [
'account', 'account',
'token.company_user', 'user.company_user.token.company_user',
//'token.company_user',
'company.activities', 'company.activities',
'company.designs.company', 'company.designs.company',
'company.task_statuses',
'company.expense_categories',
'company.documents', 'company.documents',
'company.users.company_users', 'company.users.company_users',
'company.clients.contacts', 'company.clients.contacts',
@ -257,6 +260,12 @@ class BaseController extends Controller
'company.vendors'=> function ($query) use ($updated_at) { 'company.vendors'=> function ($query) use ($updated_at) {
$query->where('updated_at', '>=', $updated_at)->with('contacts','documents' ); $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 $this->hasManyThrough(User::class, CompanyUser::class, 'company_id', 'id', 'id', 'user_id');
} }
/** public function expense_categories()
* @return \Illuminate\Database\Eloquent\Relations\HasMany {
*/ return $this->hasMany(ExpenseCategory::class)->withTrashed();
}
public function task_statuses()
{
return $this->hasMany(TaskStatus::class)->withTrashed();
}
public function clients() public function clients()
{ {
return $this->hasMany(Client::class)->withTrashed(); return $this->hasMany(Client::class)->withTrashed();
} }
/** /**
* @return \Illuminate\Database\Eloquent\Relations\HasMany * @return \Illuminate\Database\Eloquent\Relations\HasMany
*/ */

View File

@ -23,6 +23,7 @@ use App\Models\Credit;
use App\Models\Design; use App\Models\Design;
use App\Models\Document; use App\Models\Document;
use App\Models\Expense; use App\Models\Expense;
use App\Models\ExpenseCategory;
use App\Models\GroupSetting; use App\Models\GroupSetting;
use App\Models\Payment; use App\Models\Payment;
use App\Models\PaymentTerm; use App\Models\PaymentTerm;
@ -32,6 +33,7 @@ use App\Models\Quote;
use App\Models\RecurringInvoice; use App\Models\RecurringInvoice;
use App\Models\SystemLog; use App\Models\SystemLog;
use App\Models\Task; use App\Models\Task;
use App\Models\TaskStatus;
use App\Models\TaxRate; use App\Models\TaxRate;
use App\Models\User; use App\Models\User;
use App\Models\Webhook; use App\Models\Webhook;
@ -40,9 +42,11 @@ use App\Transformers\CompanyTokenHashedTransformer;
use App\Transformers\CompanyTokenTransformer; use App\Transformers\CompanyTokenTransformer;
use App\Transformers\CreditTransformer; use App\Transformers\CreditTransformer;
use App\Transformers\DocumentTransformer; use App\Transformers\DocumentTransformer;
use App\Transformers\ExpenseCategoryTransformer;
use App\Transformers\PaymentTermTransformer; use App\Transformers\PaymentTermTransformer;
use App\Transformers\RecurringInvoiceTransformer; use App\Transformers\RecurringInvoiceTransformer;
use App\Transformers\SystemLogTransformer; use App\Transformers\SystemLogTransformer;
use App\Transformers\TaskStatusTransformer;
use App\Transformers\TaskTransformer; use App\Transformers\TaskTransformer;
use App\Transformers\WebhookTransformer; use App\Transformers\WebhookTransformer;
use App\Utils\Traits\MakesHash; use App\Utils\Traits\MakesHash;
@ -95,6 +99,8 @@ class CompanyTransformer extends EntityTransformer
'tokens', 'tokens',
'tokens_hashed', 'tokens_hashed',
'system_logs', '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) public function includeDocuments(Company $company)
{ {
$transformer = new DocumentTransformer($this->serializer); $transformer = new DocumentTransformer($this->serializer);