Passed
Push — master ( b8147c...403ced )
by Curtis
11:47 queued 05:39
created

CompanyTable::query()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 7
c 1
b 0
f 1
nc 1
nop 0
dl 0
loc 12
rs 10
1
<?php
2
3
namespace App\Tables\Builders\enso\Companies;
4
5
use Illuminate\Database\Eloquent\Builder;
6
use LaravelEnso\Companies\Models\Company;
7
use LaravelEnso\Tables\Contracts\Table;
8
9
class CompanyTable implements Table
10
{
11
    protected const TemplatePath = __DIR__.'/../../../Templates/enso/company/companies.json';
12
13
    public function query(): Builder
14
    {
15
        return Company::selectRaw('
16
            companies.id, companies.name,  companies.fiscal_code,  people.name as mandatary,
17
            companies.email, companies.website, companies.bank,  companies.pays_vat, 
18
            companies.phone,  companies.status, companies.is_tenant, companies.created_at
19
        ')->leftJoin(
20
            'company_person',
21
            fn ($join) => $join
22
                ->on('companies.id', '=', 'company_person.company_id')
23
                ->where('company_person.is_mandatary', true)
24
        )->leftJoin('people', 'company_person.person_id', '=', 'people.id');
25
    }
26
27
    public function templatePath(): string
28
    {
29
        return static::TemplatePath;
30
    }
31
}
32