diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index bad4f90c691b..2c51f6a6cacb 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -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); + }, ] ); diff --git a/app/Models/Company.php b/app/Models/Company.php index af1efb90ed6f..00a7ef9c0f04 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -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 */ diff --git a/app/Transformers/CompanyTransformer.php b/app/Transformers/CompanyTransformer.php index 6bba99350e1b..6427c10336df 100644 --- a/app/Transformers/CompanyTransformer.php +++ b/app/Transformers/CompanyTransformer.php @@ -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);