diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index 4a31d53c851f..cdd0a217e0d1 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -106,6 +106,7 @@ class BaseController extends Controller 'company.webhooks', 'company.system_logs', 'company.bank_integrations', + 'company.bank_transactions', ]; private $mini_load = [ @@ -447,6 +448,13 @@ class BaseController extends Controller $query->where('bank_integrations.user_id', $user->id); } }, + 'company.bank_transactions'=> function ($query) use ($updated_at, $user) { + $query->whereNotNull('updated_at'); + + if (! $user->isAdmin()) { + $query->where('bank_transactions.user_id', $user->id); + } + }, ] ); @@ -763,6 +771,13 @@ class BaseController extends Controller $query->where('bank_integrations.user_id', $user->id); } }, + 'company.bank_transactions'=> function ($query) use ($created_at, $user) { + $query->where('created_at', '>=', $created_at); + + if (! $user->isAdmin()) { + $query->where('bank_transactions.user_id', $user->id); + } + }, ] ); diff --git a/app/Models/Company.php b/app/Models/Company.php index 6cc051b398e4..f6b5735636df 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -181,6 +181,11 @@ class Company extends BaseModel return $this->hasMany(BankIntegration::class); } + public function bank_transactions() + { + return $this->hasMany(BankTransaction::class); + } + public function getCompanyIdAttribute() { return $this->encodePrimaryKey($this->id); diff --git a/app/Transformers/CompanyTransformer.php b/app/Transformers/CompanyTransformer.php index 0544d683b7b9..8778204ac6c8 100644 --- a/app/Transformers/CompanyTransformer.php +++ b/app/Transformers/CompanyTransformer.php @@ -14,6 +14,7 @@ namespace App\Transformers; use App\Models\Account; use App\Models\Activity; use App\Models\BankIntegration; +use App\Models\BankTransaction; use App\Models\Client; use App\Models\Company; use App\Models\CompanyGateway; @@ -42,6 +43,7 @@ use App\Models\TaxRate; use App\Models\User; use App\Models\Webhook; use App\Transformers\BankIntegrationTransformer; +use App\Transformers\BankTransactionTransformer; use App\Transformers\PurchaseOrderTransformer; use App\Transformers\RecurringExpenseTransformer; use App\Utils\Traits\MakesHash; @@ -101,6 +103,7 @@ class CompanyTransformer extends EntityTransformer 'recurring_expenses', 'purchase_orders', 'bank_integrations', + 'bank_transactions', ]; /** @@ -227,6 +230,13 @@ class CompanyTransformer extends EntityTransformer return $this->includeCollection($company->bank_integrations, $transformer, BankIntegration::class); } + public function includeBankTransactions(Company $company) + { + $transformer = new BankTransactionTransformer($this->serializer); + + return $this->includeCollection($company->bank_transactions(), $transformer, BankTransaction::class); + } + public function includeTokensHashed(Company $company) { $transformer = new CompanyTokenHashedTransformer($this->serializer);