Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 25
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
CompaniesExport
0.00% covered (danger)
0.00%
0 / 25
0.00% covered (danger)
0.00%
0 / 3
30
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 array
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
12
 headings
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2namespace App\Exports;
3
4use App\Http\Models\Admin\Company;
5use Vitorccs\LaravelCsv\Concerns\FromArray;
6use Vitorccs\LaravelCsv\Concerns\Exportable;
7use App\Http\Resources\CompanyExportResource;
8use Vitorccs\LaravelCsv\Concerns\WithHeadings;
9
10class CompaniesExport implements FromArray, WithHeadings
11{
12    use Exportable;
13
14    public function __construct(public array $companyIds = [], public bool $deactivated = false)
15    { }
16
17    public function array(): array
18    {
19        $companiesQuery = Company::with(['licenses' => function ($query) {
20            $query->active();
21        }]);
22
23        if(count($this->companyIds) > 0){
24           $companiesQuery = $companiesQuery->whereIn('_id', $this->companyIds);
25        }
26
27        if ($this->deactivated == true) {
28            $companiesQuery = $companiesQuery->onlyTrashed();
29        }
30
31        $companies = $companiesQuery->latest()->get();
32
33        $companies = CompanyExportResource::collection($companies);
34
35        // Create an instance of the current request
36        $request = request();
37
38        return $companies->toArray($request); // Pass the request instance
39    }
40
41    public function headings(): array
42    {
43        return [
44            'Name',
45            'Number of Users',
46            'Contract Term',
47            'Contract Start Date',
48            'Contract End Date',
49            'Auto Renewal',
50            'Payment Options',
51            'Account Status',
52            'Last Modified On',
53            'Status Date',
54            'Created Date'
55        ];
56    }
57}