diff --git a/src/app/Tables/Builders/DataImportTable.php b/src/app/Tables/Builders/DataImportTable.php index f41fe2e..c430503 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,12 +14,12 @@ class DataImportTable implements Table public function query(): Builder { - return 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, - sec_to_time(timestampdiff(second, data_imports.created_at, data_imports.updated_at)) as duration - ')->join('files', function ($join) { + {$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,7 +27,7 @@ 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); }); } @@ -34,4 +35,11 @@ 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))'; + } }