From 5a4a53f8347e8d9a9d6c73155a27578b90c6c9b9 Mon Sep 17 00:00:00 2001 From: reza Date: Fri, 27 Dec 2019 20:17:09 +0330 Subject: [PATCH 1/2] fixes table --- src/app/Tables/Builders/DataImportTable.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/app/Tables/Builders/DataImportTable.php b/src/app/Tables/Builders/DataImportTable.php index f41fe2e..86090cb 100644 --- a/src/app/Tables/Builders/DataImportTable.php +++ b/src/app/Tables/Builders/DataImportTable.php @@ -3,6 +3,7 @@ namespace LaravelEnso\DataImport\app\Tables\Builders; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Support\Facades\DB; use LaravelEnso\DataImport\app\Models\DataImport; use LaravelEnso\DataImport\app\Models\RejectedImportSummary; use LaravelEnso\Tables\app\Contracts\Table; @@ -13,11 +14,10 @@ class DataImportTable implements Table public function query(): Builder { - return DataImport::selectRaw(' + $query = DataImport::selectRaw(' data_imports.id, data_imports.type, data_imports.status, data_imports.status as computedStatus, files.original_name as name, data_imports.successful, data_imports.failed, data_imports.created_at, - TIME(data_imports.created_at) as time, people.name as createdBy, rejected_imports.id as rejectedId, - sec_to_time(timestampdiff(second, data_imports.created_at, data_imports.updated_at)) as duration + TIME(data_imports.created_at) as time, people.name as createdBy, rejected_imports.id as rejectedId ')->join('files', function ($join) { $join->on('files.attachable_id', 'data_imports.id') ->where('files.attachable_type', DataImport::class); @@ -28,6 +28,10 @@ public function query(): Builder $join->on('rejected_files.attachable_id', 'rejected_imports.id') ->where('rejected_files.attachable_type', RejectedImportSummary::class); }); + + return $query->selectRaw(DB::getDriverName() === 'sqlite' + ? '0 as duration' + : 'sec_to_time(timestampdiff(second, data_imports.created_at, data_imports.updated_at)) as duration'); } public function templatePath(): string From 54ea500e8e05dd7364b5b26c868a72d2f27bcdf7 Mon Sep 17 00:00:00 2001 From: Adrian Ocneanu Date: Fri, 27 Dec 2019 19:22:15 +0200 Subject: [PATCH 2/2] Update DataImportTable.php --- src/app/Tables/Builders/DataImportTable.php | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/app/Tables/Builders/DataImportTable.php b/src/app/Tables/Builders/DataImportTable.php index 86090cb..c430503 100644 --- a/src/app/Tables/Builders/DataImportTable.php +++ b/src/app/Tables/Builders/DataImportTable.php @@ -14,11 +14,12 @@ class DataImportTable implements Table public function query(): Builder { - $query = DataImport::selectRaw(' + return DataImport::selectRaw(" data_imports.id, data_imports.type, data_imports.status, data_imports.status as computedStatus, files.original_name as name, data_imports.successful, data_imports.failed, data_imports.created_at, - TIME(data_imports.created_at) as time, people.name as createdBy, rejected_imports.id as rejectedId - ')->join('files', function ($join) { + TIME(data_imports.created_at) as time, people.name as createdBy, rejected_imports.id as rejectedId, + {$this->rawDuration()} as duration + ")->join('files', function ($join) { $join->on('files.attachable_id', 'data_imports.id') ->where('files.attachable_type', DataImport::class); })->join('users', 'files.created_by', '=', 'users.id') @@ -26,16 +27,19 @@ public function query(): Builder ->leftJoin('rejected_imports', 'data_imports.id', '=', 'rejected_imports.data_import_id') ->leftJoin('files as rejected_files', function ($join) { $join->on('rejected_files.attachable_id', 'rejected_imports.id') - ->where('rejected_files.attachable_type', RejectedImportSummary::class); + ->where('rejected_files.attachable_type', RejectedImportSummary::class); }); - - return $query->selectRaw(DB::getDriverName() === 'sqlite' - ? '0 as duration' - : 'sec_to_time(timestampdiff(second, data_imports.created_at, data_imports.updated_at)) as duration'); } public function templatePath(): string { return static::TemplatePath; } + + private function rawDuration() + { + return DB::getDriverName() === 'sqlite' + ? '0' + : 'sec_to_time(timestampdiff(second, data_imports.created_at, data_imports.updated_at))'; + } }