diff --git a/app/Exports/OperatorDialogues/OperatorCartableExcel.php b/app/Exports/OperatorDialogues/OperatorCartableExcel.php
new file mode 100644
index 0000000..6171456
--- /dev/null
+++ b/app/Exports/OperatorDialogues/OperatorCartableExcel.php
@@ -0,0 +1,41 @@
+ $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);
+ }
+ ];
+ }
+
+}
diff --git a/app/Exports/OperatorDialogues/SupervisorCartableExcel.php b/app/Exports/OperatorDialogues/SupervisorCartableExcel.php
new file mode 100644
index 0000000..5073d8d
--- /dev/null
+++ b/app/Exports/OperatorDialogues/SupervisorCartableExcel.php
@@ -0,0 +1,41 @@
+ $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);
+ }
+ ];
+ }
+
+}
diff --git a/app/Exports/PeopleMessages/OperatorCartableExcel.php b/app/Exports/PeopleMessages/OperatorCartableExcel.php
new file mode 100644
index 0000000..f0c08b6
--- /dev/null
+++ b/app/Exports/PeopleMessages/OperatorCartableExcel.php
@@ -0,0 +1,41 @@
+ $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);
+ }
+ ];
+ }
+
+}
diff --git a/app/Exports/PeopleMessages/SupervisorCartableExcel.php b/app/Exports/PeopleMessages/SupervisorCartableExcel.php
new file mode 100644
index 0000000..9b76d67
--- /dev/null
+++ b/app/Exports/PeopleMessages/SupervisorCartableExcel.php
@@ -0,0 +1,41 @@
+ $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);
+ }
+ ];
+ }
+
+}
diff --git a/app/Exports/SystemMessage/OperatorCartableExcel.php b/app/Exports/SystemMessage/OperatorCartableExcel.php
new file mode 100644
index 0000000..cbf0f7d
--- /dev/null
+++ b/app/Exports/SystemMessage/OperatorCartableExcel.php
@@ -0,0 +1,41 @@
+ $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);
+ }
+ ];
+ }
+
+}
diff --git a/app/Exports/SystemMessage/SupervisorCartableExcel.php b/app/Exports/SystemMessage/SupervisorCartableExcel.php
index 41770f2..f2ab817 100644
--- a/app/Exports/SystemMessage/SupervisorCartableExcel.php
+++ b/app/Exports/SystemMessage/SupervisorCartableExcel.php
@@ -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);
+ }
+ ];
+ }
}
diff --git a/app/Http/Controllers/ProvinceDashboard/OperatorDialogues/OperatorController.php b/app/Http/Controllers/ProvinceDashboard/OperatorDialogues/OperatorController.php
index 614733a..2abef87 100644
--- a/app/Http/Controllers/ProvinceDashboard/OperatorDialogues/OperatorController.php
+++ b/app/Http/Controllers/ProvinceDashboard/OperatorDialogues/OperatorController.php
@@ -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);
}
}
diff --git a/app/Http/Controllers/ProvinceDashboard/OperatorDialogues/SupervisorController.php b/app/Http/Controllers/ProvinceDashboard/OperatorDialogues/SupervisorController.php
index 1fd5395..a1ef601 100644
--- a/app/Http/Controllers/ProvinceDashboard/OperatorDialogues/SupervisorController.php
+++ b/app/Http/Controllers/ProvinceDashboard/OperatorDialogues/SupervisorController.php
@@ -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);
}
}
diff --git a/app/Http/Controllers/ProvinceDashboard/PeopleMessages/OperatorController.php b/app/Http/Controllers/ProvinceDashboard/PeopleMessages/OperatorController.php
index 41677ec..8b30444 100644
--- a/app/Http/Controllers/ProvinceDashboard/PeopleMessages/OperatorController.php
+++ b/app/Http/Controllers/ProvinceDashboard/PeopleMessages/OperatorController.php
@@ -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);
}
diff --git a/app/Http/Controllers/ProvinceDashboard/PeopleMessages/SupervisorController.php b/app/Http/Controllers/ProvinceDashboard/PeopleMessages/SupervisorController.php
index 6028dcf..cee7a46 100644
--- a/app/Http/Controllers/ProvinceDashboard/PeopleMessages/SupervisorController.php
+++ b/app/Http/Controllers/ProvinceDashboard/PeopleMessages/SupervisorController.php
@@ -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);
}
/**
diff --git a/app/Http/Controllers/ProvinceDashboard/SystemMessages/OperatorController.php b/app/Http/Controllers/ProvinceDashboard/SystemMessages/OperatorController.php
index fe582d7..c7bd230 100644
--- a/app/Http/Controllers/ProvinceDashboard/SystemMessages/OperatorController.php
+++ b/app/Http/Controllers/ProvinceDashboard/SystemMessages/OperatorController.php
@@ -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);
}
}
diff --git a/app/Http/Controllers/ProvinceDashboard/SystemMessages/SupervisorController.php b/app/Http/Controllers/ProvinceDashboard/SystemMessages/SupervisorController.php
index 914f594..d5b4d96 100644
--- a/app/Http/Controllers/ProvinceDashboard/SystemMessages/SupervisorController.php
+++ b/app/Http/Controllers/ProvinceDashboard/SystemMessages/SupervisorController.php
@@ -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);
}
diff --git a/bootstrap/providers.php b/bootstrap/providers.php
index dbaa61a..5d11af9 100644
--- a/bootstrap/providers.php
+++ b/bootstrap/providers.php
@@ -5,4 +5,5 @@ return [
App\Providers\DataTableServiceProvider::class,
App\Providers\FileServiceProvider::class,
App\Providers\TelescopeServiceProvider::class,
+ Maatwebsite\Excel\ExcelServiceProvider::class,
];
diff --git a/composer.json b/composer.json
index 046b61e..93db14c 100644
--- a/composer.json
+++ b/composer.json
@@ -15,6 +15,7 @@
"laravel/sanctum": "^4.0",
"laravel/telescope": "^5.7",
"laravel/tinker": "^2.10.1",
+ "maatwebsite/excel": "^3.1",
"spatie/laravel-permission": "^6.17"
},
"require-dev": {
diff --git a/composer.lock b/composer.lock
index 6eff47c..74715b5 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "8eb5ac276d904be6e4f6bd9ca7aa7b2f",
+ "content-hash": "8238c006d65780b3b7c4e5059ede9197",
"packages": [
{
"name": "brick/math",
@@ -135,6 +135,166 @@
],
"time": "2024-02-09T16:56:22+00:00"
},
+ {
+ "name": "composer/pcre",
+ "version": "3.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<1.11.10"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.12 || ^2",
+ "phpstan/phpstan-strict-rules": "^1 || ^2",
+ "phpunit/phpunit": "^8 || ^9"
+ },
+ "type": "library",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ },
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Pcre\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "keywords": [
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/3.3.2"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-11-12T16:29:46+00:00"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+ "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.11",
+ "symfony/phpunit-bridge": "^3 || ^7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "Semver library that offers utilities, version constraint parsing and validation.",
+ "keywords": [
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.4.3"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-19T14:15:21+00:00"
+ },
{
"name": "dflydev/dot-access-data",
"version": "v3.0.3",
@@ -565,6 +725,67 @@
],
"time": "2025-03-06T22:45:56+00:00"
},
+ {
+ "name": "ezyang/htmlpurifier",
+ "version": "v4.18.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ezyang/htmlpurifier.git",
+ "reference": "cb56001e54359df7ae76dc522d08845dc741621b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/cb56001e54359df7ae76dc522d08845dc741621b",
+ "reference": "cb56001e54359df7ae76dc522d08845dc741621b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0"
+ },
+ "require-dev": {
+ "cerdic/css-tidy": "^1.7 || ^2.0",
+ "simpletest/simpletest": "dev-master"
+ },
+ "suggest": {
+ "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.",
+ "ext-bcmath": "Used for unit conversion and imagecrash protection",
+ "ext-iconv": "Converts text to and from non-UTF-8 encodings",
+ "ext-tidy": "Used for pretty-printing HTML"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "library/HTMLPurifier.composer.php"
+ ],
+ "psr-0": {
+ "HTMLPurifier": "library/"
+ },
+ "exclude-from-classmap": [
+ "/library/HTMLPurifier/Language/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-2.1-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Edward Z. Yang",
+ "email": "admin@htmlpurifier.org",
+ "homepage": "http://ezyang.com"
+ }
+ ],
+ "description": "Standards compliant HTML filter written in PHP",
+ "homepage": "http://htmlpurifier.org/",
+ "keywords": [
+ "html"
+ ],
+ "support": {
+ "issues": "https://github.com/ezyang/htmlpurifier/issues",
+ "source": "https://github.com/ezyang/htmlpurifier/tree/v4.18.0"
+ },
+ "time": "2024-11-01T03:51:45+00:00"
+ },
{
"name": "fruitcake/php-cors",
"version": "v1.3.0",
@@ -2357,6 +2578,272 @@
],
"time": "2025-04-12T22:26:52+00:00"
},
+ {
+ "name": "maatwebsite/excel",
+ "version": "3.1.66",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/SpartnerNL/Laravel-Excel.git",
+ "reference": "3b29c2426a46674f444890c45f742452a396aae8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/3b29c2426a46674f444890c45f742452a396aae8",
+ "reference": "3b29c2426a46674f444890c45f742452a396aae8",
+ "shasum": ""
+ },
+ "require": {
+ "composer/semver": "^3.3",
+ "ext-json": "*",
+ "illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0||^11.0||^12.0",
+ "php": "^7.0||^8.0",
+ "phpoffice/phpspreadsheet": "^1.29.12",
+ "psr/simple-cache": "^1.0||^2.0||^3.0"
+ },
+ "require-dev": {
+ "laravel/scout": "^7.0||^8.0||^9.0||^10.0",
+ "orchestra/testbench": "^6.0||^7.0||^8.0||^9.0||^10.0",
+ "predis/predis": "^1.1"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "aliases": {
+ "Excel": "Maatwebsite\\Excel\\Facades\\Excel"
+ },
+ "providers": [
+ "Maatwebsite\\Excel\\ExcelServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Maatwebsite\\Excel\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Patrick Brouwers",
+ "email": "patrick@spartner.nl"
+ }
+ ],
+ "description": "Supercharged Excel exports and imports in Laravel",
+ "keywords": [
+ "PHPExcel",
+ "batch",
+ "csv",
+ "excel",
+ "export",
+ "import",
+ "laravel",
+ "php",
+ "phpspreadsheet"
+ ],
+ "support": {
+ "issues": "https://github.com/SpartnerNL/Laravel-Excel/issues",
+ "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.66"
+ },
+ "funding": [
+ {
+ "url": "https://laravel-excel.com/commercial-support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/patrickbrouwers",
+ "type": "github"
+ }
+ ],
+ "time": "2025-08-07T08:31:22+00:00"
+ },
+ {
+ "name": "maennchen/zipstream-php",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/maennchen/ZipStream-PHP.git",
+ "reference": "9712d8fa4cdf9240380b01eb4be55ad8dcf71416"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/9712d8fa4cdf9240380b01eb4be55ad8dcf71416",
+ "reference": "9712d8fa4cdf9240380b01eb4be55ad8dcf71416",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "ext-zlib": "*",
+ "php-64bit": "^8.3"
+ },
+ "require-dev": {
+ "brianium/paratest": "^7.7",
+ "ext-zip": "*",
+ "friendsofphp/php-cs-fixer": "^3.16",
+ "guzzlehttp/guzzle": "^7.5",
+ "mikey179/vfsstream": "^1.6",
+ "php-coveralls/php-coveralls": "^2.5",
+ "phpunit/phpunit": "^12.0",
+ "vimeo/psalm": "^6.0"
+ },
+ "suggest": {
+ "guzzlehttp/psr7": "^2.4",
+ "psr/http-message": "^2.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ZipStream\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Paul Duncan",
+ "email": "pabs@pablotron.org"
+ },
+ {
+ "name": "Jonatan Männchen",
+ "email": "jonatan@maennchen.ch"
+ },
+ {
+ "name": "Jesse Donat",
+ "email": "donatj@gmail.com"
+ },
+ {
+ "name": "András Kolesár",
+ "email": "kolesar@kolesar.hu"
+ }
+ ],
+ "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.",
+ "keywords": [
+ "stream",
+ "zip"
+ ],
+ "support": {
+ "issues": "https://github.com/maennchen/ZipStream-PHP/issues",
+ "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/maennchen",
+ "type": "github"
+ }
+ ],
+ "time": "2025-07-17T11:15:13+00:00"
+ },
+ {
+ "name": "markbaker/complex",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/MarkBaker/PHPComplex.git",
+ "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/95c56caa1cf5c766ad6d65b6344b807c1e8405b9",
+ "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "dealerdirect/phpcodesniffer-composer-installer": "dev-master",
+ "phpcompatibility/php-compatibility": "^9.3",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
+ "squizlabs/php_codesniffer": "^3.7"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Complex\\": "classes/src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mark Baker",
+ "email": "mark@lange.demon.co.uk"
+ }
+ ],
+ "description": "PHP Class for working with complex numbers",
+ "homepage": "https://github.com/MarkBaker/PHPComplex",
+ "keywords": [
+ "complex",
+ "mathematics"
+ ],
+ "support": {
+ "issues": "https://github.com/MarkBaker/PHPComplex/issues",
+ "source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.2"
+ },
+ "time": "2022-12-06T16:21:08+00:00"
+ },
+ {
+ "name": "markbaker/matrix",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/MarkBaker/PHPMatrix.git",
+ "reference": "728434227fe21be27ff6d86621a1b13107a2562c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/728434227fe21be27ff6d86621a1b13107a2562c",
+ "reference": "728434227fe21be27ff6d86621a1b13107a2562c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "dealerdirect/phpcodesniffer-composer-installer": "dev-master",
+ "phpcompatibility/php-compatibility": "^9.3",
+ "phpdocumentor/phpdocumentor": "2.*",
+ "phploc/phploc": "^4.0",
+ "phpmd/phpmd": "2.*",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
+ "sebastian/phpcpd": "^4.0",
+ "squizlabs/php_codesniffer": "^3.7"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Matrix\\": "classes/src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mark Baker",
+ "email": "mark@demon-angel.eu"
+ }
+ ],
+ "description": "PHP Class for working with matrices",
+ "homepage": "https://github.com/MarkBaker/PHPMatrix",
+ "keywords": [
+ "mathematics",
+ "matrix",
+ "vector"
+ ],
+ "support": {
+ "issues": "https://github.com/MarkBaker/PHPMatrix/issues",
+ "source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.1"
+ },
+ "time": "2022-12-02T22:17:43+00:00"
+ },
{
"name": "monolog/monolog",
"version": "3.9.0",
@@ -2859,6 +3346,112 @@
],
"time": "2024-11-21T10:39:51+00:00"
},
+ {
+ "name": "phpoffice/phpspreadsheet",
+ "version": "1.30.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
+ "reference": "2f39286e0136673778b7a142b3f0d141e43d1714"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/2f39286e0136673778b7a142b3f0d141e43d1714",
+ "reference": "2f39286e0136673778b7a142b3f0d141e43d1714",
+ "shasum": ""
+ },
+ "require": {
+ "composer/pcre": "^1||^2||^3",
+ "ext-ctype": "*",
+ "ext-dom": "*",
+ "ext-fileinfo": "*",
+ "ext-gd": "*",
+ "ext-iconv": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-simplexml": "*",
+ "ext-xml": "*",
+ "ext-xmlreader": "*",
+ "ext-xmlwriter": "*",
+ "ext-zip": "*",
+ "ext-zlib": "*",
+ "ezyang/htmlpurifier": "^4.15",
+ "maennchen/zipstream-php": "^2.1 || ^3.0",
+ "markbaker/complex": "^3.0",
+ "markbaker/matrix": "^3.0",
+ "php": "^7.4 || ^8.0",
+ "psr/http-client": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/simple-cache": "^1.0 || ^2.0 || ^3.0"
+ },
+ "require-dev": {
+ "dealerdirect/phpcodesniffer-composer-installer": "dev-main",
+ "dompdf/dompdf": "^1.0 || ^2.0 || ^3.0",
+ "friendsofphp/php-cs-fixer": "^3.2",
+ "mitoteam/jpgraph": "^10.3",
+ "mpdf/mpdf": "^8.1.1",
+ "phpcompatibility/php-compatibility": "^9.3",
+ "phpstan/phpstan": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^8.5 || ^9.0",
+ "squizlabs/php_codesniffer": "^3.7",
+ "tecnickcom/tcpdf": "^6.5"
+ },
+ "suggest": {
+ "dompdf/dompdf": "Option for rendering PDF with PDF Writer",
+ "ext-intl": "PHP Internationalization Functions",
+ "mitoteam/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers",
+ "mpdf/mpdf": "Option for rendering PDF with PDF Writer",
+ "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Maarten Balliauw",
+ "homepage": "https://blog.maartenballiauw.be"
+ },
+ {
+ "name": "Mark Baker",
+ "homepage": "https://markbakeruk.net"
+ },
+ {
+ "name": "Franck Lefevre",
+ "homepage": "https://rootslabs.net"
+ },
+ {
+ "name": "Erik Tilt"
+ },
+ {
+ "name": "Adrien Crivelli"
+ }
+ ],
+ "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
+ "homepage": "https://github.com/PHPOffice/PhpSpreadsheet",
+ "keywords": [
+ "OpenXML",
+ "excel",
+ "gnumeric",
+ "ods",
+ "php",
+ "spreadsheet",
+ "xls",
+ "xlsx"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
+ "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.30.0"
+ },
+ "time": "2025-08-10T06:28:02+00:00"
+ },
{
"name": "phpoption/phpoption",
"version": "1.9.3",
diff --git a/resources/views/Reports/OperatorDialogues/OperatorCartableReport.blade.php b/resources/views/Reports/OperatorDialogues/OperatorCartableReport.blade.php
new file mode 100644
index 0000000..087f9fa
--- /dev/null
+++ b/resources/views/Reports/OperatorDialogues/OperatorCartableReport.blade.php
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+ گزارش مکالمات کارشناسان
+
+
+
+
+
+
+
+
+
+ |
+ تاریخ دریافت گزارش: {{ now()->format('Y/m/d H:i') }}
+ |
+
+
+ |
+ |
+
+
+ |
+ گزارش کارتابل مکالمات کارشناسان
+ |
+
+
+ | کد
+ یکتا |
+
+
+ تاریخ |
+
+
+ شنیده شده |
+
+
+ امتیاز کسب شده |
+
+ توضیحات |
+
+
+
+
+
+ @foreach ($data as $item)
+
+ | {{ $item['id'] ?? '-' }} |
+ {{ $item['data'] ?? '-' }} |
+ {{ $item['is_listen'] ?? '-' }} |
+ {{ $item['is_good'] ?? '-' }} |
+ {{ $item['description'] ?? '-' }} |
+
+
+ @endforeach
+
+
+
+
+
diff --git a/resources/views/Reports/OperatorDialogues/SupervisorCartableReport.blade.php b/resources/views/Reports/OperatorDialogues/SupervisorCartableReport.blade.php
new file mode 100644
index 0000000..301b0f5
--- /dev/null
+++ b/resources/views/Reports/OperatorDialogues/SupervisorCartableReport.blade.php
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+ گزارش مکالمات کارشناسان
+
+
+
+
+
+
+
+
+
+ |
+ تاریخ دریافت گزارش: {{ now()->format('Y/m/d H:i') }}
+ |
+
+
+ |
+ |
+
+
+ |
+ گزارش کارتابل مکالمات کارشناسان
+ |
+
+
+ | کد
+ یکتا |
+
+
+ تاریخ |
+
+
+ بازرس |
+
+
+ شنیده شده |
+
+
+ امتیاز کسب شده |
+
+ توضیحات |
+
+
+
+
+
+ @foreach ($data as $item)
+
+ | {{ $item['id'] ?? '-' }} |
+ {{ $item['data'] ?? '-' }} |
+ {{ $item['supervisor_id'] ?? '-' }} |
+ {{ $item['is_listen'] ?? '-' }} |
+ {{ $item['is_good'] ?? '-' }} |
+ {{ $item['description'] ?? '-' }} |
+
+
+ @endforeach
+
+
+
+
+
diff --git a/resources/views/Reports/PeopleMessages/OperatorCartableReport.blade.php b/resources/views/Reports/PeopleMessages/OperatorCartableReport.blade.php
new file mode 100644
index 0000000..0ed31e6
--- /dev/null
+++ b/resources/views/Reports/PeopleMessages/OperatorCartableReport.blade.php
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+ گزارش پیام های مردمی
+
+
+
+
+
+
+
+
+
+ |
+ تاریخ دریافت گزارش: {{ now()->format('Y/m/d H:i') }}
+ |
+
+
+ |
+ |
+
+
+ |
+ گزارش کارتابل ارزیابی پیام های مردمی
+ |
+
+
+ | کد
+ یکتا |
+
+ شماره تماس گیرنده
+ |
+
+
+ تاریخ |
+
+
+ زمان بررسی |
+
+
+ تاریخ مشاهده |
+
+ شنیده شده |
+
+ اقدام انجام شده |
+
+ توضیحات |
+
+ کد سامانه سوانح |
+
+
+
+
+
+ @foreach ($data as $item)
+
+ | {{ $item['id'] ?? '-' }} |
+ {{ $item['caller_phone_number'] ?? '-' }} |
+ {{ $item['data'] ?? '-' }} |
+ {{ $item['review_duration'] ?? '-' }} |
+ {{ $item['listen_at'] ?? '-' }} |
+ {{ $item['action_name'] ?? '-' }} |
+ {{ $item['description'] ?? '-' }} |
+ {{ $item['savaneh_id'] ?? '-' }} |
+
+
+ @endforeach
+
+
+
+
+
diff --git a/resources/views/Reports/PeopleMessages/SupervisorCartableReport.blade.php b/resources/views/Reports/PeopleMessages/SupervisorCartableReport.blade.php
new file mode 100644
index 0000000..b869e59
--- /dev/null
+++ b/resources/views/Reports/PeopleMessages/SupervisorCartableReport.blade.php
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+ گزارش پیام های مردمی
+
+
+
+
+
+
+
+
+
+ |
+ تاریخ دریافت گزارش: {{ now()->format('Y/m/d H:i') }}
+ |
+
+
+ |
+ |
+
+
+ |
+ گزارش کارتابل ارزیابی پیام های مردمی
+ |
+
+
+ | کد
+ یکتا |
+
+ شماره تماس گیرنده
+ |
+
+
+ تاریخ |
+
+
+ زمان بررسی |
+
+
+ تاریخ مشاهده |
+
+ شنیده شده |
+
+ اقدام انجام شده |
+
+ توضیحات |
+
+ کد سامانه سوانح |
+
+
+
+
+
+ @foreach ($data as $item)
+
+ | {{ $item['id'] ?? '-' }} |
+ {{ $item['caller_phone_number'] ?? '-' }} |
+ {{ $item['data'] ?? '-' }} |
+ {{ $item['review_duration'] ?? '-' }} |
+ {{ $item['listen_at'] ?? '-' }} |
+ {{ $item['action_name'] ?? '-' }} |
+ {{ $item['description'] ?? '-' }} |
+ {{ $item['savaneh_id'] ?? '-' }} |
+
+
+ @endforeach
+
+
+
+
+
diff --git a/resources/views/Reports/SystemMessage/OperatorCartableReport.blade.php b/resources/views/Reports/SystemMessage/OperatorCartableReport.blade.php
new file mode 100644
index 0000000..01089bf
--- /dev/null
+++ b/resources/views/Reports/SystemMessage/OperatorCartableReport.blade.php
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+ گزارش پیام های سیستمی
+
+
+
+
+
+
+
+
+
+ |
+ تاریخ دریافت گزارش: {{ now()->format('Y/m/d H:i') }}
+ |
+
+
+ |
+ |
+
+
+ |
+ گزارش کارتابل ارزیابی پیام های سیستمی
+ |
+
+
+ | کد
+ یکتا |
+ تاریخ
+ |
+
+ ایدی کاربر |
+
+ اسم کاربر |
+
+
+
+
+
+ @foreach ($data as $item)
+
+ | {{ $item['id'] ?? '-' }} |
+ {{ $item['data'] ?? '-' }} |
+ {{ $item['type_id'] ?? '-' }} |
+ {{ $item['type_name'] ?? '-' }} |
+
+
+ @endforeach
+
+
+
+
+
diff --git a/resources/views/Reports/SystemMessage/SupervisorCartableReport.blade.php b/resources/views/Reports/SystemMessage/SupervisorCartableReport.blade.php
new file mode 100644
index 0000000..9cc3030
--- /dev/null
+++ b/resources/views/Reports/SystemMessage/SupervisorCartableReport.blade.php
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+ گزارش پیام های سیستمی
+
+
+
+
+
+
+
+
+
+ |
+ تاریخ دریافت گزارش: {{ now()->format('Y/m/d H:i') }}
+ |
+
+
+ |
+ |
+
+
+ |
+ گزارش کارتابل ارزیابی پیام های سیستمی
+ |
+
+
+ | کد
+ یکتا |
+
+ تاریخ
+ |
+
+
+ کیفیت پیام |
+
+
+ ساختار پیام |
+
+
+ توضیحات |
+
+ ایدی کاربر |
+
+ اسم کاربر |
+
+
+
+
+
+ @foreach ($data as $item)
+
+ | {{ $item['id'] ?? '-' }} |
+ {{ $item['data'] ?? '-' }} |
+ {{ $item['message_quality'] ?? '-' }} |
+ {{ $item['format_quality'] ?? '-' }} |
+ {{ $item['description'] ?? '-' }} |
+ {{ $item['type_id'] ?? '-' }} |
+ {{ $item['type_name'] ?? '-' }} |
+
+
+ @endforeach
+
+
+
+
+