create excel for6 controller

This commit is contained in:
2025-08-11 15:33:08 +03:30
parent 2c89c7e72c
commit aee17c20ed
21 changed files with 1380 additions and 11 deletions

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Exports\OperatorDialogues;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Collection;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
class OperatorCartableExcel implements FromView, WithEvents, ShouldAutoSize
{
public function __construct(private ?Collection $data){}
public function view(): View
{
return view('Reports.OperatorDialogues.OperatorCartableReport', [
'data' => $this->data,
]);
}
public function registerEvents(): array
{
return [
AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true);
$event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial');
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setHorizontal(Alignment::HORIZONTAL_CENTER);
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setVertical(Alignment::VERTICAL_CENTER);
}
];
}
}

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Exports\OperatorDialogues;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Collection;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
class SupervisorCartableExcel implements FromView, WithEvents, ShouldAutoSize
{
public function __construct(private ?Collection $data){}
public function view(): View
{
return view('Reports.OperatorDialogues.SupervisorCartableReport', [
'data' => $this->data,
]);
}
public function registerEvents(): array
{
return [
AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true);
$event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial');
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setHorizontal(Alignment::HORIZONTAL_CENTER);
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setVertical(Alignment::VERTICAL_CENTER);
}
];
}
}

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Exports\PeopleMessages;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Collection;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
class OperatorCartableExcel implements FromView, WithEvents, ShouldAutoSize
{
public function __construct(private ?Collection $data){}
public function view(): View
{
return view('Reports.PeopleMessages.OperatorCartableReport', [
'data' => $this->data,
]);
}
public function registerEvents(): array
{
return [
AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true);
$event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial');
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setHorizontal(Alignment::HORIZONTAL_CENTER);
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setVertical(Alignment::VERTICAL_CENTER);
}
];
}
}

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Exports\PeopleMessages;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Collection;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
class SupervisorCartableExcel implements FromView, WithEvents, ShouldAutoSize
{
public function __construct(private ?Collection $data){}
public function view(): View
{
return view('Reports.PeopleMessages.SupervisorCartableReport', [
'data' => $this->data,
]);
}
public function registerEvents(): array
{
return [
AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true);
$event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial');
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setHorizontal(Alignment::HORIZONTAL_CENTER);
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setVertical(Alignment::VERTICAL_CENTER);
}
];
}
}

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Exports\SystemMessage;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Collection;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
class OperatorCartableExcel implements FromView, WithEvents, ShouldAutoSize
{
public function __construct(private ?Collection $data){}
public function view(): View
{
return view('Reports.SystemMessage.OperatorCartableReport', [
'data' => $this->data,
]);
}
public function registerEvents(): array
{
return [
AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true);
$event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial');
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setHorizontal(Alignment::HORIZONTAL_CENTER);
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setVertical(Alignment::VERTICAL_CENTER);
}
];
}
}

View File

@@ -2,7 +2,40 @@
namespace App\Exports\SystemMessage;
class SupervisorCartable
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Collection;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
class SupervisorCartableExcel implements FromView, WithEvents, ShouldAutoSize
{
public function __construct(private ?Collection $data){}
public function view(): View
{
return view('Reports.SystemMessage.SupervisorCartableReport', [
'data' => $this->data,
]);
}
public function registerEvents(): array
{
return [
AfterSheet::class => function (AfterSheet $event) {
$event->sheet->getDelegate()->setRightToLeft(true);
$event->sheet->getDelegate()->getStyle('A:U')->getFont()->setName('Arial');
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setHorizontal(Alignment::HORIZONTAL_CENTER);
$event->sheet->getDelegate()->getStyle('A:U')
->getAlignment()
->setVertical(Alignment::VERTICAL_CENTER);
}
];
}
}

View File

@@ -2,10 +2,13 @@
namespace App\Http\Controllers\ProvinceDashboard\OperatorDialogues;
use App\Exports\OperatorDialogues\OperatorCartableExcel;
use App\Http\Controllers\Controller;
use App\Services\Dashboard\Province\OperatorDialogues\DataTableService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class OperatorController extends Controller
{
@@ -36,8 +39,10 @@ class OperatorController extends Controller
/**
* Remove the specified resource from storage.
*/
public function excel(string $id)
public function excel(Request $request, DataTableService $dataTableService): BinaryFileResponse
{
//
$name = 'گزارش از کارتابل پیام های سیستمی ' . now()->format('Y-m-d H:i') . '.xlsx';
$data = $dataTableService->dataTable($request, true);
return Excel::download(new OperatorCartableExcel($data['data']), $name);
}
}

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers\ProvinceDashboard\OperatorDialogues;
use App\Exports\OperatorDialogues\SupervisorCartableExcel;
use App\Http\Controllers\Controller;
use App\Http\Requests\ProvinceDashboard\OperatorDialogs\RateRequest;
use app\Http\Traits\ApiResponse;
@@ -9,6 +10,8 @@ use App\Models\OperatorDialogue;
use App\Services\Dashboard\Province\OperatorDialogues\DataTableService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class SupervisorController extends Controller
{
@@ -35,9 +38,11 @@ class SupervisorController extends Controller
return $this->successResponse($operatorDialogue);
}
public function excel()
public function excel(Request $request, DataTableService $dataTableService): BinaryFileResponse
{
//
$name = 'گزارش از کارتابل پیام های سیستمی ' . now()->format('Y-m-d H:i') . '.xlsx';
$data = $dataTableService->dataTable($request, true);
return Excel::download(new SupervisorCartableExcel($data['data']), $name);
}
}

View File

@@ -3,12 +3,14 @@
namespace App\Http\Controllers\ProvinceDashboard\PeopleMessages;
use App\Enums\PeopleMessageActions;
use App\Exports\PeopleMessages\OperatorCartableExcel;
use App\Http\Controllers\Controller;
use app\Http\Traits\ApiResponse;
use App\Models\PeopleMessage;
use App\Services\Dashboard\Province\PeopleMessages\DataTableService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
class OperatorController extends Controller
{
@@ -21,8 +23,11 @@ class OperatorController extends Controller
return response()->json($dataTableService->index($request));
}
public function excel()
public function excel(Request $request, DataTableService $dataTableService)
{
$name = 'گزارش از کارتابل پیام های سیستمی ' . now()->format('Y-m-d H:i') . '.xlsx';
$data = $dataTableService->dataTable($request, true);
return Excel::download(new OperatorCartableExcel($data['data']), $name);
}

View File

@@ -2,10 +2,12 @@
namespace App\Http\Controllers\ProvinceDashboard\PeopleMessages;
use App\Exports\PeopleMessages\SupervisorCartableExcel;
use App\Http\Controllers\Controller;
use App\Services\Dashboard\Province\PeopleMessages\DataTableService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
class SupervisorController extends Controller
{
@@ -17,9 +19,11 @@ class SupervisorController extends Controller
return response()->json($dataTableService->index($request));
}
public function excel()
public function excel(Request $request, DataTableService $dataTableService)
{
$name = 'گزارش از کارتابل پیام های سیستمی ' . now()->format('Y-m-d H:i') . '.xlsx';
$data = $dataTableService->dataTable($request, true);
return Excel::download(new SupervisorCartableExcel($data['data']), $name);
}
/**

View File

@@ -2,12 +2,14 @@
namespace App\Http\Controllers\ProvinceDashboard\SystemMessages;
use App\Exports\SystemMessage\OperatorCartableExcel;
use App\Http\Controllers\Controller;
use app\Http\Traits\ApiResponse;
use App\Models\SystemMessage;
use App\Services\Dashboard\Province\SystemMessages\OperatorService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
class OperatorController extends Controller
{
@@ -33,8 +35,11 @@ class OperatorController extends Controller
//
}
public function excel()
public function excel(Request $request, OperatorService $operatorService)
{
$name = 'گزارش از کارتابل پیام های سیستمی ' . now()->format('Y-m-d H:i') . '.xlsx';
$data = $operatorService->dataTable($request, true);
return Excel::download(new OperatorCartableExcel($data['data']), $name);
}
}

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers\ProvinceDashboard\SystemMessages;
use App\Exports\SystemMessage\SupervisorCartableExcel;
use App\Http\Controllers\Controller;
use App\Http\Requests\ProvinceDashboard\SystemMessages\RateRequest;
use app\Http\Traits\ApiResponse;
@@ -9,6 +10,7 @@ use App\Models\SystemMessage;
use App\Services\Dashboard\Province\SystemMessages\SupervisorService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
class SupervisorController extends Controller
{
@@ -21,8 +23,11 @@ class SupervisorController extends Controller
return response()->json($supervisorService->datatable($request));
}
public function excel()
public function excel(Request $request, SupervisorService $supervisorService)
{
$name = 'گزارش از کارتابل پیام های سیستمی ' . now()->format('Y-m-d H:i') . '.xlsx';
$data = $supervisorService->dataTable($request, true);
return Excel::download(new SupervisorCartableExcel($data['data']), $name);
}