diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index 5ebd8ac42b4f..14e0caa6fcc9 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -214,10 +214,10 @@ class BaseController extends Controller $query->with( [ 'company' => function ($query) use ($updated_at, $user) { - $query->whereNotNull('updated_at')->with('documents'); + $query->whereNotNull('updated_at')->with('documents')->with('users'); }, 'company.clients' => function ($query) use ($updated_at, $user) { - $query->where('clients.updated_at', '>=', $updated_at)->with('contacts.company', 'gateway_tokens', 'documents', 'group_settings'); + $query->where('clients.updated_at', '>=', $updated_at)->with('contacts.company', 'gateway_tokens', 'documents'); if(!$user->hasPermission('view_client')) $query->where('clients.user_id', $user->id)->orWhere('clients.assigned_user_id', $user->id); @@ -253,7 +253,7 @@ class BaseController extends Controller $query->where('expenses.user_id', $user->id)->orWhere('expenses.assigned_user_id', $user->id); }, 'company.groups' => function ($query) use ($updated_at, $user) { - $query->where('updated_at', '>=', $updated_at); + $query->where('updated_at', '>=', $updated_at)->with('documents'); if(!$user->isAdmin()) $query->where('group_settings.user_id', $user->id); @@ -301,7 +301,7 @@ class BaseController extends Controller }, 'company.recurring_invoices'=> function ($query) use ($updated_at, $user) { - $query->where('updated_at', '>=', $updated_at)->with('invitations', 'documents'); + $query->where('updated_at', '>=', $updated_at)->with('invitations', 'documents', 'client.gateway_tokens', 'client.group_settings'); if(!$user->hasPermission('view_recurring_invoice')) $query->where('recurring_invoices.user_id', $user->id)->orWhere('recurring_invoices.assigned_user_id', $user->id); @@ -391,7 +391,7 @@ class BaseController extends Controller $query->where('created_at', '>=', $created_at); }, 'company.groups' => function ($query) use ($created_at, $user) { - $query->where('created_at', '>=', $created_at); + $query->where('created_at', '>=', $created_at)->with('documents'); }, 'company.payment_terms'=> function ($query) use ($created_at, $user) { @@ -458,7 +458,7 @@ class BaseController extends Controller $query->whereNotNull('created_at')->with('documents'); }, 'company.clients' => function ($query) use ($created_at, $user) { - $query->where('clients.created_at', '>=', $created_at)->with('contacts.company', 'gateway_tokens', 'documents', 'group_settings'); + $query->where('clients.created_at', '>=', $created_at)->with('contacts.company', 'gateway_tokens', 'documents'); if(!$user->hasPermission('view_client')) $query->where('clients.user_id', $user->id)->orWhere('clients.assigned_user_id', $user->id); @@ -478,12 +478,6 @@ class BaseController extends Controller $query->where('credits.user_id', $user->id)->orWhere('credits.assigned_user_id', $user->id); }, - // 'company.designs'=> function ($query) use ($created_at, $user) { - // $query->where('created_at', '>=', $created_at)->with('company'); - - // if(!$user->isAdmin()) - // $query->where('designs.user_id', $user->id); - // }, 'company.documents'=> function ($query) use ($created_at, $user) { $query->where('created_at', '>=', $created_at); }, @@ -494,7 +488,7 @@ class BaseController extends Controller $query->where('expenses.user_id', $user->id)->orWhere('expenses.assigned_user_id', $user->id); }, 'company.groups' => function ($query) use ($created_at, $user) { - $query->where('created_at', '>=', $created_at); + $query->where('created_at', '>=', $created_at)->with('documents'); if(!$user->isAdmin()) $query->where('group_settings.user_id', $user->id); diff --git a/app/Http/Middleware/QueryLogging.php b/app/Http/Middleware/QueryLogging.php index c02498ba79b1..c9ad5c2f2c39 100644 --- a/app/Http/Middleware/QueryLogging.php +++ b/app/Http/Middleware/QueryLogging.php @@ -51,9 +51,13 @@ class QueryLogging $count = count($queries); $timeEnd = microtime(true); $time = $timeEnd - $timeStart; + + nlog("Query count = {$count}"); - if($count > 250) + if($count > 250){ + nlog("Quer count = {$count}"); nlog($queries); + } $ip = ''; diff --git a/app/Jobs/Company/CompanyImport.php b/app/Jobs/Company/CompanyImport.php index 10a030bd044e..6075b9e7a3db 100644 --- a/app/Jobs/Company/CompanyImport.php +++ b/app/Jobs/Company/CompanyImport.php @@ -1241,8 +1241,11 @@ class CompanyImport implements ShouldQueue /* New to convert product ids from old hashes to new hashes*/ if($class == 'App\Models\Subscription'){ - $obj_array['product_ids'] = $this->recordProductIds($obj_array['product_ids']); - $obj_array['recurring_product_ids'] = $this->recordProductIds($obj_array['recurring_product_ids']); + //$obj_array['product_ids'] = $this->recordProductIds($obj_array['product_ids']); + //$obj_array['recurring_product_ids'] = $this->recordProductIds($obj_array['recurring_product_ids']); + // + $obj_array['recurring_product_ids'] = ''; + $obj_array['product_ids'] = ''; } $new_obj = $class::firstOrNew( @@ -1272,6 +1275,12 @@ class CompanyImport implements ShouldQueue foreach($id_array as $id) { + if(!$id) + continue; + + $id = $this->decodePrimaryKey($id); + + nlog($id); $tmp_arr[] = $this->encodePrimaryKey($this->transformId('products', $id)); } diff --git a/app/Jobs/Util/Import.php b/app/Jobs/Util/Import.php index 4ee2ab0d4e19..d2ebc5dc9483 100644 --- a/app/Jobs/Util/Import.php +++ b/app/Jobs/Util/Import.php @@ -1396,7 +1396,7 @@ class Import implements ShouldQueue $modified['fees_and_limits'] = $this->cleanFeesAndLimits($modified['fees_and_limits']); } - /* On Hosted platform we need to advise Stripe users to connect with Stripe Connect */ + // /* On Hosted platform we need to advise Stripe users to connect with Stripe Connect */ if(Ninja::isHosted() && $modified['gateway_key'] == 'd14dd26a37cecc30fdd65700bfb55b23'){ $nmo = new NinjaMailerObject; @@ -1412,6 +1412,13 @@ class Import implements ShouldQueue //$modified['fees_and_limits'] = []; } + + if(Ninja::isSelfHost() && $modified['gateway_key'] == 'd14dd26a47cecc30fdd65700bfb67b34'){ + + $modified['gateway_key'] = 'd14dd26a37cecc30fdd65700bfb55b23'; + + } + $company_gateway = CompanyGateway::create($modified); diff --git a/app/Transformers/ClientTransformer.php b/app/Transformers/ClientTransformer.php index 9f3c348217e4..e17b36176bd6 100644 --- a/app/Transformers/ClientTransformer.php +++ b/app/Transformers/ClientTransformer.php @@ -39,8 +39,6 @@ class ClientTransformer extends EntityTransformer * @var array */ protected $availableIncludes = [ - 'documents', - 'gateway_tokens', 'activities', 'ledger', 'system_logs', diff --git a/app/Transformers/CreditTransformer.php b/app/Transformers/CreditTransformer.php index f624893e7145..2ebb5849d369 100644 --- a/app/Transformers/CreditTransformer.php +++ b/app/Transformers/CreditTransformer.php @@ -29,10 +29,6 @@ class CreditTransformer extends EntityTransformer ]; protected $availableIncludes = [ - 'invitations', - // 'history', - // 'client', - 'documents', 'activities', ]; diff --git a/app/Transformers/ExpenseTransformer.php b/app/Transformers/ExpenseTransformer.php index 21908884ba5e..6fa7f4236a30 100644 --- a/app/Transformers/ExpenseTransformer.php +++ b/app/Transformers/ExpenseTransformer.php @@ -31,9 +31,7 @@ class ExpenseTransformer extends EntityTransformer /** * @var array */ - protected $availableIncludes = [ - 'documents', - ]; + protected $availableIncludes = []; public function includeDocuments(Expense $expense) { diff --git a/app/Transformers/InvoiceHistoryTransformer.php b/app/Transformers/InvoiceHistoryTransformer.php index 9c5f29d00572..b650c58c3ad0 100644 --- a/app/Transformers/InvoiceHistoryTransformer.php +++ b/app/Transformers/InvoiceHistoryTransformer.php @@ -23,9 +23,7 @@ class InvoiceHistoryTransformer extends EntityTransformer 'activity', ]; - protected $availableIncludes = [ - 'activity', - ]; + protected $availableIncludes = []; public function transform(Backup $backup) { diff --git a/app/Transformers/InvoiceTransformer.php b/app/Transformers/InvoiceTransformer.php index 5f0aab010b5c..d661f30433e5 100644 --- a/app/Transformers/InvoiceTransformer.php +++ b/app/Transformers/InvoiceTransformer.php @@ -31,12 +31,9 @@ class InvoiceTransformer extends EntityTransformer ]; protected $availableIncludes = [ - // 'invitations', - // 'history', 'payments', 'client', 'activities', - // 'documents', ]; public function includeInvitations(Invoice $invoice) diff --git a/app/Transformers/PaymentTransformer.php b/app/Transformers/PaymentTransformer.php index 45db2812b4a4..175c03937472 100644 --- a/app/Transformers/PaymentTransformer.php +++ b/app/Transformers/PaymentTransformer.php @@ -32,8 +32,6 @@ class PaymentTransformer extends EntityTransformer protected $availableIncludes = [ 'client', 'invoices', - 'paymentables', - 'documents', ]; public function __construct($serializer = null) diff --git a/app/Transformers/ProductTransformer.php b/app/Transformers/ProductTransformer.php index 6917853435d2..59a71a33e36f 100644 --- a/app/Transformers/ProductTransformer.php +++ b/app/Transformers/ProductTransformer.php @@ -32,7 +32,6 @@ class ProductTransformer extends EntityTransformer protected $availableIncludes = [ 'company', 'user', - 'documents', ]; /** diff --git a/app/Transformers/ProjectTransformer.php b/app/Transformers/ProjectTransformer.php index 9fb16461f15c..97d843635270 100644 --- a/app/Transformers/ProjectTransformer.php +++ b/app/Transformers/ProjectTransformer.php @@ -30,7 +30,6 @@ class ProjectTransformer extends EntityTransformer * @var array */ protected $availableIncludes = [ - 'documents' ]; public function includeDocuments(Project $project) diff --git a/app/Transformers/QuoteTransformer.php b/app/Transformers/QuoteTransformer.php index f13d33f6981f..ccc46f55f7ff 100644 --- a/app/Transformers/QuoteTransformer.php +++ b/app/Transformers/QuoteTransformer.php @@ -29,12 +29,7 @@ class QuoteTransformer extends EntityTransformer ]; protected $availableIncludes = [ - 'invitations', - 'documents', - // 'history', 'activities', - // 'payments', - // 'client', ]; public function includeActivities(Quote $quote) diff --git a/app/Transformers/RecurringInvoiceTransformer.php b/app/Transformers/RecurringInvoiceTransformer.php index 6d6a4eaf732d..cb6f9223a0db 100644 --- a/app/Transformers/RecurringInvoiceTransformer.php +++ b/app/Transformers/RecurringInvoiceTransformer.php @@ -31,11 +31,7 @@ class RecurringInvoiceTransformer extends EntityTransformer ]; protected $availableIncludes = [ - 'invitations', - 'documents', 'activities', - // 'history', - // 'client', ]; /* diff --git a/app/Transformers/TaskTransformer.php b/app/Transformers/TaskTransformer.php index 292e0b1f256d..fac249b53aec 100644 --- a/app/Transformers/TaskTransformer.php +++ b/app/Transformers/TaskTransformer.php @@ -30,7 +30,6 @@ class TaskTransformer extends EntityTransformer * @var array */ protected $availableIncludes = [ - 'documents' ]; public function includeDocuments(Task $task) diff --git a/app/Transformers/VendorTransformer.php b/app/Transformers/VendorTransformer.php index 758bb3bd2873..cf9a29da76c6 100644 --- a/app/Transformers/VendorTransformer.php +++ b/app/Transformers/VendorTransformer.php @@ -35,7 +35,6 @@ class VendorTransformer extends EntityTransformer */ protected $availableIncludes = [ 'activities', - 'documents', ]; /** diff --git a/composer.json b/composer.json index 958fa7e31aec..7ff281eb98ae 100644 --- a/composer.json +++ b/composer.json @@ -84,6 +84,7 @@ "php": "^7.3|^7.4|^8.0", "anahkiasen/former": "^4.2", "barryvdh/laravel-debugbar": "^3.4", + "beyondcode/laravel-query-detector": "^1.5", "brianium/paratest": "^6.1", "darkaonline/l5-swagger": "^8.0", "facade/ignition": "^2.3.6", @@ -145,4 +146,4 @@ }, "minimum-stability": "dev", "prefer-stable": true -} \ No newline at end of file +} diff --git a/composer.lock b/composer.lock index bb2b73b4e27b..08d43042d75c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c78080d7228931d63406b506f04a792f", + "content-hash": "5bd3a1c05429cbdf59e68e211c0360c7", "packages": [ { "name": "asm/php-ansible", @@ -11624,6 +11624,66 @@ ], "time": "2021-06-14T14:29:26+00:00" }, + { + "name": "beyondcode/laravel-query-detector", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/beyondcode/laravel-query-detector.git", + "reference": "4a3a0cfb5d5ddc5da59d530ef5c13e260adc6d07" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/beyondcode/laravel-query-detector/zipball/4a3a0cfb5d5ddc5da59d530ef5c13e260adc6d07", + "reference": "4a3a0cfb5d5ddc5da59d530ef5c13e260adc6d07", + "shasum": "" + }, + "require": { + "illuminate/support": "^5.5 || ^6.0 || ^7.0 || ^8.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "laravel/legacy-factories": "^1.0", + "orchestra/testbench": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BeyondCode\\QueryDetector\\QueryDetectorServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "BeyondCode\\QueryDetector\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marcel Pociot", + "email": "marcel@beyondco.de", + "homepage": "https://beyondcode.de", + "role": "Developer" + } + ], + "description": "Laravel N+1 Query Detector", + "homepage": "https://github.com/beyondcode/laravel-query-detector", + "keywords": [ + "beyondcode", + "laravel-query-detector" + ], + "support": { + "issues": "https://github.com/beyondcode/laravel-query-detector/issues", + "source": "https://github.com/beyondcode/laravel-query-detector/tree/1.5.0" + }, + "time": "2021-02-16T22:51:38+00:00" + }, { "name": "brianium/paratest", "version": "v6.3.1",