uppercese category qoshildi
BIN
Screenshot 2026-04-06 at 17.32.39.png
Normal file
|
After Width: | Height: | Size: 374 KiB |
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Http\Controllers\QrController;
|
||||
use setasign\Fpdi\Fpdi;
|
||||
|
||||
class AutoController extends Controller
|
||||
{
|
||||
@@ -106,7 +107,7 @@ class AutoController extends Controller
|
||||
'tech_passport' => $request->tech_passport,
|
||||
'tech_given_date' => $request->tech_given_date,
|
||||
'tech_given_whom' => $request->tech_given_whom,
|
||||
'cost' => $request->cost ?? 0,
|
||||
'cost' => (int)str_replace(',', '', $request->cost ?? 0),
|
||||
'note' => $request->note,
|
||||
'created_at' => $request->created_at ?? now(),
|
||||
'updated_at' => now(),
|
||||
@@ -157,7 +158,7 @@ class AutoController extends Controller
|
||||
'tech_passport' => $request->tech_passport,
|
||||
'tech_given_date' => $request->tech_given_date,
|
||||
'tech_given_whom' => $request->tech_given_whom,
|
||||
'cost' => $request->cost ?? 0,
|
||||
'cost' => (int)str_replace(',', '', $request->cost ?? 0),
|
||||
'note' => $request->note,
|
||||
'created_at' => $request->created_at,
|
||||
'updated_at' => now(),
|
||||
@@ -214,7 +215,14 @@ class AutoController extends Controller
|
||||
$members = DB::table('order_members as om')
|
||||
->leftJoin('users as u', 'u.id', '=', 'om.user_id')
|
||||
->select('om.*', 'u.name', 'u.avatar', 'u.phone', 'u.role')
|
||||
->where('om.order_id', $order->id ?? 0)->where('om.order_type', 'auto_')->get();
|
||||
->where('om.order_id', $order->id ?? 0)->where('om.order_type', 'auto_')->get()
|
||||
->map(function ($member) {
|
||||
$member->started = DB::table('order_members')->where('user_id', $member->user_id)->count();
|
||||
$member->finished = 0; // Defaulting for now
|
||||
$member->approved = 0;
|
||||
$member->rejected = 0;
|
||||
return $member;
|
||||
});
|
||||
$appraisers = DB::table('users')->whereRaw('LOWER(role) = ?', ['appraiser'])->where('status', 'active')->get();
|
||||
return view('auto.show-team', compact('order', 'members', 'appraisers'));
|
||||
}
|
||||
@@ -240,4 +248,56 @@ class AutoController extends Controller
|
||||
{
|
||||
return redirect()->route('auto.index');
|
||||
}
|
||||
|
||||
public function generatePdf($id)
|
||||
{
|
||||
$order = DB::table('auto_orders as o')
|
||||
->selectRaw('o.*, p.uz as purpose, c.uz as category, CONCAT_WS(\' \', o.owner_last_name, o.owner_first_name, o.owner_patronymic) as "ownerName"')
|
||||
->leftJoin('purposes as p', 'p.id', '=', 'o.purpose_id')
|
||||
->leftJoin('concerns as c', 'c.id', '=', 'o.car_category')
|
||||
->where('o.id', $id)
|
||||
->first();
|
||||
|
||||
if (!$order) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
$pdf = new Fpdi();
|
||||
$pdf->AddPage();
|
||||
|
||||
// Add Title
|
||||
$pdf->SetFont('Arial', 'B', 16);
|
||||
$pdf->Cell(0, 10, 'BAXOLASH XULOSASI (AVTO)', 0, 1, 'C');
|
||||
$pdf->Ln(10);
|
||||
|
||||
// Add Details
|
||||
$pdf->SetFont('Arial', '', 12);
|
||||
|
||||
$fields = [
|
||||
'Tartib raqami' => $order->number,
|
||||
'Sana' => date('d.m.Y', strtotime($order->created_at)),
|
||||
'Maqsadi' => $order->purpose,
|
||||
'Kategoriya' => $order->category,
|
||||
'Markasi' => $order->car_mark,
|
||||
'Davlat raqami' => $order->car_number,
|
||||
'Egasi' => $order->ownerName,
|
||||
'Ishlab chiqarilgan yili' => $order->made_date,
|
||||
'Baholangan summa' => number_format($order->object_price ?: 0, 0, '.', ' ') . ' UZS',
|
||||
];
|
||||
|
||||
foreach ($fields as $label => $value) {
|
||||
$pdf->SetFont('Arial', 'B', 12);
|
||||
$pdf->Cell(60, 10, $label . ':', 0, 0);
|
||||
$pdf->SetFont('Arial', '', 12);
|
||||
$pdf->Cell(0, 10, $value ?: '-', 0, 1);
|
||||
}
|
||||
|
||||
$pdf->Ln(20);
|
||||
$pdf->SetFont('Arial', 'I', 10);
|
||||
$pdf->Cell(0, 10, 'Ushbu hujjat tizim tomonidan avtomatik generatsiya qilindi.', 0, 1, 'C');
|
||||
|
||||
return response($pdf->Output('S'), 200)
|
||||
->header('Content-Type', 'application/pdf')
|
||||
->header('Content-Disposition', 'attachment; filename="Conclusion_'.$order->number.'.pdf"');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,7 +82,8 @@ class ConclusionController extends Controller
|
||||
$qrPath = storage_path('app/public/attachments/' . $dbType . $orderId . '/qr.png');
|
||||
if (!file_exists($qrPath)) {
|
||||
Storage::makeDirectory('public/attachments/' . $dbType . $orderId);
|
||||
$qrContent = url(($orderType === 'AUTO' ? 'auto' : 'estate') . '/show/' . $orderId);
|
||||
$cleanType = strtolower($orderType);
|
||||
$qrContent = route('qr.verify', ['type' => $cleanType, 'id' => $orderId]);
|
||||
$qrImage = QrCode::format('png')->size(150)->generate($qrContent);
|
||||
file_put_contents($qrPath, $qrImage);
|
||||
}
|
||||
@@ -123,6 +124,11 @@ class ConclusionController extends Controller
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
|
||||
DB::table($table)->where('id', $orderId)->update([
|
||||
'status' => \App\Enums\OrderStatusEnum::FINISHED->name,
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
}
|
||||
|
||||
$route = $orderType === 'AUTO' ? 'auto.show' : 'estate.show';
|
||||
|
||||
@@ -89,7 +89,7 @@ class EstateController extends Controller
|
||||
'tech_passport' => $request->tech_passport,
|
||||
'tech_given_date' => $request->tech_given_date,
|
||||
'tech_given_whom' => $request->tech_given_whom,
|
||||
'cost' => $request->cost ?? 0,
|
||||
'cost' => (int)str_replace(',', '', $request->cost ?? 0),
|
||||
'note' => $request->note,
|
||||
'created_at' => $request->created_at ?? now(),
|
||||
'updated_at' => now(),
|
||||
@@ -142,7 +142,7 @@ class EstateController extends Controller
|
||||
'tech_passport' => $request->tech_passport,
|
||||
'tech_given_date' => $request->tech_given_date,
|
||||
'tech_given_whom' => $request->tech_given_whom,
|
||||
'cost' => $request->cost ?? 0,
|
||||
'cost' => (int)str_replace(',', '', $request->cost ?? 0),
|
||||
'note' => $request->note,
|
||||
'created_at' => $request->created_at,
|
||||
'updated_at' => now(),
|
||||
@@ -196,7 +196,14 @@ class EstateController extends Controller
|
||||
$members = DB::table('order_members as om')
|
||||
->leftJoin('users as u', 'u.id', '=', 'om.user_id')
|
||||
->select('om.*', 'u.name', 'u.avatar', 'u.phone', 'u.role')
|
||||
->where('om.order_id', $order->id ?? 0)->where('om.order_type', 'estate_')->get();
|
||||
->where('om.order_id', $order->id ?? 0)->where('om.order_type', 'estate_')->get()
|
||||
->map(function ($member) {
|
||||
$member->started = DB::table('order_members')->where('user_id', $member->user_id)->count();
|
||||
$member->finished = 0;
|
||||
$member->approved = 0;
|
||||
$member->rejected = 0;
|
||||
return $member;
|
||||
});
|
||||
$appraisers = DB::table('users')->whereRaw('LOWER(role) = ?', ['appraiser'])->where('status', 'active')->get();
|
||||
return view('estate.show-team', compact('order', 'members', 'appraisers'));
|
||||
}
|
||||
|
||||
@@ -13,6 +13,38 @@ class QrController extends Controller
|
||||
return view('qr.show', compact('content'));
|
||||
}
|
||||
|
||||
public function verify($type, $id)
|
||||
{
|
||||
$table = $type === 'auto' ? 'auto_orders' : 'estate_orders';
|
||||
$order = \Illuminate\Support\Facades\DB::table($table)->where('id', $id)->first();
|
||||
|
||||
if (!$order) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
// Add display relations and formatting
|
||||
$order->customer = $order->ordered_customer;
|
||||
$order->purposeOne = \Illuminate\Support\Facades\DB::table('purposes')->where('id', $order->purpose_id)->first();
|
||||
|
||||
if ($type === 'auto') {
|
||||
$order->concernOne = \Illuminate\Support\Facades\DB::table('concerns')->where('id', $order->car_category)->first();
|
||||
$order->ownerName = trim($order->owner_last_name . ' ' . $order->owner_first_name . ' ' . $order->owner_patronymic);
|
||||
$order->name = $order->car_mark;
|
||||
} else {
|
||||
$order->regions = \Illuminate\Support\Facades\DB::table('regions')->where('id', $order->region)->first();
|
||||
$order->districts = \Illuminate\Support\Facades\DB::table('districts')->where('id', $order->district)->first();
|
||||
$order->owner = trim($order->owner_last_name . ' ' . $order->owner_first_name . ' ' . $order->owner_patronymic);
|
||||
$order->name = $order->name_of_object;
|
||||
}
|
||||
|
||||
$conclusion = \Illuminate\Support\Facades\DB::table('files')
|
||||
->where('order_id', $id)
|
||||
->where('order_type', 'conclusion_')
|
||||
->first();
|
||||
|
||||
return view('qr.' . $type, compact('order', 'conclusion'));
|
||||
}
|
||||
|
||||
public function reGenerate($id, $type)
|
||||
{
|
||||
self::generateQr($id, $type);
|
||||
@@ -22,7 +54,8 @@ class QrController extends Controller
|
||||
public static function generateQr($id, $type)
|
||||
{
|
||||
// type is 'auto_' or 'estate_'
|
||||
$url = url(($type === 'auto_' ? 'auto' : 'estate') . '/show/' . $id);
|
||||
$cleanType = str_replace('_', '', $type);
|
||||
$url = route('qr.verify', ['type' => $cleanType, 'id' => $id]);
|
||||
$dir = 'public/attachments/' . $type . $id;
|
||||
Storage::makeDirectory($dir);
|
||||
$qr = QrCode::format('png')->size(200)->generate($url);
|
||||
|
||||
18
dummy.pdf
Normal file
@@ -0,0 +1,18 @@
|
||||
%PDF-1.4
|
||||
1 0 obj <</Type /Catalog /Pages 2 0 R>> endobj
|
||||
2 0 obj <</Type /Pages /Kids [3 0 R] /Count 1>> endobj
|
||||
3 0 obj <</Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Contents 4 0 R>> endobj
|
||||
4 0 obj <</Length 22>> stream
|
||||
BT /F1 24 Tf 100 700 Td (Hello World) Tj ET
|
||||
endstream endobj
|
||||
xref
|
||||
0 5
|
||||
0000000000 65535 f
|
||||
0000000009 00000 n
|
||||
0000000056 00000 n
|
||||
0000000111 00000 n
|
||||
0000000212 00000 n
|
||||
trailer <</Size 5 /Root 1 0 R>>
|
||||
startxref
|
||||
284
|
||||
%%EOF
|
||||
@@ -17,7 +17,7 @@
|
||||
validate>
|
||||
@csrf
|
||||
@method('put')
|
||||
<input type="hidden" name="status" value="{{ App\Enums\OrderStatusEnum::DRAFT->name }}">
|
||||
<input type="hidden" name="status" value="{{ $order->status }}">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="card">
|
||||
@@ -67,7 +67,7 @@
|
||||
id="choices-purpose-input" tabindex="3">
|
||||
@foreach($purposeCases as $purposeItem)
|
||||
<option value="{{ $purposeItem->id }}"
|
||||
@if(old('purpose_id') == $purposeItem->id)selected @endif>
|
||||
@if((old('purpose_id') ?? $order->purpose_id) == $purposeItem->id)selected @endif>
|
||||
{{ $purposeItem->{str_replace('_', '-', app()->getLocale())} }}
|
||||
</option>
|
||||
@endforeach
|
||||
@@ -290,7 +290,7 @@
|
||||
id="choose-order-car-category" name="car_category" tabindex="10">
|
||||
@foreach ($concerns as $concern)
|
||||
<option value="{{ $concern->id }}"
|
||||
{{ $concern->car_category == $concern->id ? 'selected' : '' }}>
|
||||
{{ (old('car_category') ?? $order->car_category) == $concern->id ? 'selected' : '' }}>
|
||||
@lang($concern->{str_replace('_', '-', app()->getLocale())})
|
||||
</option>
|
||||
@endforeach
|
||||
@@ -500,11 +500,11 @@
|
||||
@lang('translation.select-diller')
|
||||
</label>
|
||||
<select data-choices data-choices-search-false data-choices-multiple-groups="false"
|
||||
name="diller" class="form-select @error('diller') is-invalid @enderror"
|
||||
name="diller_id" class="form-select @error('diller_id') is-invalid @enderror"
|
||||
id="choices-diller-input"
|
||||
tabindex="23">
|
||||
@foreach($dillers as $diller)
|
||||
<option value="{{ $diller->id}}" @if($order->diller== $diller->id) selected @endif>
|
||||
<option value="{{ $diller->id}}" @if((old('diller_id') ?? $order->diller_id) == $diller->id) selected @endif>
|
||||
{{ $diller->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
|
||||
@@ -121,14 +121,22 @@
|
||||
{{ __('translation.conclusions') }}
|
||||
</h4>
|
||||
<div class="flex-shrink-0">
|
||||
@if(in_array($order->status,[\App\Enums\OrderStatusEnum::STARTED->name,\App\Enums\OrderStatusEnum::REJECTED->name])&& $isAppraisers)
|
||||
@if(in_array($order->status,[\App\Enums\OrderStatusEnum::STARTED->name,\App\Enums\OrderStatusEnum::REJECTED->name, \App\Enums\OrderStatusEnum::FINISHED->name]) || in_array(Auth::user()?->role, ['admin', \App\Enums\RoleEnum::MANAGER->name]))
|
||||
<a href="{{ route('auto.generate_pdf', $order->id) }}"
|
||||
target="_blank"
|
||||
class="btn btn-soft-success btn-sm me-1">
|
||||
<i class="ri-download-2-line me-1 align-bottom"></i>
|
||||
Tayyor xulosani yuklab olish
|
||||
</a>
|
||||
@endif
|
||||
@if(in_array($order->status,[\App\Enums\OrderStatusEnum::STARTED->name,\App\Enums\OrderStatusEnum::REJECTED->name]) && ($isAppraisers || in_array(Auth::user()?->role, ['admin', \App\Enums\RoleEnum::MANAGER->name])))
|
||||
<a href="{{ route('conclusion.add', ['id' => $order->id,'type'=>\App\Enums\OrderTypeEnum::AUTO->name]) }}"
|
||||
type="button" class="btn btn-soft-info btn-sm">
|
||||
<i class="ri-upload-2-fill me-1 align-bottom"></i>
|
||||
{{ __('translation.upload') }}
|
||||
</a>
|
||||
@endif
|
||||
@if($order->status == \App\Enums\OrderStatusEnum::FINISHED->name && in_array(Auth::user()->role,['admin',\App\Enums\RoleEnum::MANAGER->name]))
|
||||
@if($order->status == \App\Enums\OrderStatusEnum::FINISHED->name && in_array(Auth::user()?->role,['admin',\App\Enums\RoleEnum::MANAGER->name]))
|
||||
<button type="button" class="btn btn-soft-info btn-sm"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#givingBonusModal">
|
||||
@@ -311,7 +319,7 @@
|
||||
<div class="card">
|
||||
<div class="card-header align-items-center d-flex border-bottom-dashed">
|
||||
<h4 class="card-title mb-0 flex-grow-1"> @lang('translation.member-appraisers')</h4>
|
||||
@if(in_array(Auth::user()->role,['admin',\App\Enums\RoleEnum::MANAGER->name]))
|
||||
@if(in_array(Auth::user()?->role,['admin',\App\Enums\RoleEnum::MANAGER->name]))
|
||||
<div class="flex-shrink-0">
|
||||
<button type="button" class="btn btn-soft-danger btn-sm"
|
||||
data-bs-toggle="modal"
|
||||
@@ -343,7 +351,7 @@
|
||||
</div>
|
||||
<div class="flex-shrink-0">
|
||||
<div class="d-flex align-items-center gap-1">
|
||||
@if(in_array(Auth::user()->role,['admin',\App\Enums\RoleEnum::MANAGER->name]))
|
||||
@if(in_array(Auth::user()?->role,['admin',\App\Enums\RoleEnum::MANAGER->name]))
|
||||
<form name="order-member{{ $member->id }}"
|
||||
action="{{ route('member.remove') }}"
|
||||
method="post"
|
||||
@@ -505,7 +513,7 @@
|
||||
</div>
|
||||
<!-- Page content end row -->
|
||||
|
||||
@if(Auth::user()->role!=\App\Enums\RoleEnum::USER->name)
|
||||
@if(Auth::user()?->role!=\App\Enums\RoleEnum::USER->name)
|
||||
<!-- Attachment adding Modal -->
|
||||
<div class="modal fade" id="attachModal" tabindex="-1" aria-labelledby="attachModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
@@ -590,7 +598,7 @@
|
||||
</div>
|
||||
<!-- Attachment adding end modal -->
|
||||
@endif
|
||||
@if(in_array(Auth::user()->role,['admin',\App\Enums\RoleEnum::MANAGER->name]))
|
||||
@if(in_array(Auth::user()?->role,['admin',\App\Enums\RoleEnum::MANAGER->name]))
|
||||
<!-- Invite members Modal -->
|
||||
<div class="modal fade" id="inviteMembersModal" tabindex="-1" aria-labelledby="inviteMembersModalLabel"
|
||||
aria-hidden="true">
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="text-muted mb-2"> @lang('translation.conclusion-file-pdf') </p>
|
||||
<input type="file" class="form-control @error('file') is-invalid @enderror" name="file">
|
||||
<input type="file" class="form-control @error('file') is-invalid @enderror" name="file" required accept="application/pdf">
|
||||
@error('file')
|
||||
<span class="invalid-feedback" role="alert">
|
||||
<strong>@lang($message,['attribute'=>trans('translation.file')])</strong>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
{{ __('translation.conclusions') }}
|
||||
</h4>
|
||||
<div class="flex-shrink-0">
|
||||
@if(in_array($order->status,[\App\Enums\OrderStatusEnum::STARTED->name,\App\Enums\OrderStatusEnum::REJECTED->name]) && $isAppraisers)
|
||||
@if(in_array($order->status,[\App\Enums\OrderStatusEnum::STARTED->name,\App\Enums\OrderStatusEnum::REJECTED->name]) && ($isAppraisers || in_array(Auth::user()?->role, ['admin', \App\Enums\RoleEnum::MANAGER->name])))
|
||||
<a href="{{ route('conclusion.add', ['id' => $order->id,'type'=>\App\Enums\OrderTypeEnum::ESTATE->name]) }}"
|
||||
type="button" class="btn btn-soft-info btn-sm">
|
||||
<i class="ri-upload-2-fill me-1 align-bottom"></i>
|
||||
|
||||
@@ -42,7 +42,10 @@ Route::get('index/{locale}', [HomeController::class, 'lang']);
|
||||
|
||||
Route::get('/', [HomeController::class, 'index'])->name('root');
|
||||
Route::get('index', [HomeController::class, 'index'])->name('index');
|
||||
Route::get('v/{type}/{id}', [QrController::class, 'verify'])->name('qr.verify');
|
||||
Route::get('/download/{file}', [FileStoreController::class, 'downloadFile'])->name('download');
|
||||
|
||||
Route::group(['middleware' => ['auth']], function () {
|
||||
//Update User Details
|
||||
Route::post('/update-profile/{id}', [ProfileController::class, 'updateProfile'])->name('updateProfile');
|
||||
Route::post('/update-password/{id}', [ProfileController::class, 'updatePassword'])->name('updatePassword');
|
||||
@@ -73,13 +76,13 @@ Route::get('/auto/show/{order}', [AutoController::class, 'show'])->name('auto.sh
|
||||
Route::get('/auto/show-activities/{order}', [AutoController::class, 'showActivities'])->name('auto.show-activities');
|
||||
Route::get('/auto/show-team/{order}', [AutoController::class, 'showTeam'])->name('auto.show-team');
|
||||
Route::get('/auto/show-documents/{order}', [AutoController::class, 'showDocuments'])->name('auto.show-documents');
|
||||
Route::get('/auto/generate-pdf/{order}', [AutoController::class, 'generatePdf'])->name('auto.generate_pdf');
|
||||
Route::put('/auto/order-clone/{id}', [AutoController::class, 'orderClone'])->name('auto.clone');
|
||||
|
||||
Route::get('/conclusion/add/{id}/{type}', [ConclusionController::class, 'create'])->name('conclusion.add');
|
||||
Route::post('/conclusion/store', [ConclusionController::class, 'store'])->name('conclusion.store');
|
||||
Route::put('/conclusion/reject', [ConclusionController::class, 'reject'])->name('conclusion.reject');
|
||||
|
||||
|
||||
Route::get('/tools', [ToolsController::class, 'index'])->name('tools.index');
|
||||
Route::get('/user', [UserController::class, 'index'])->name('user.index');
|
||||
Route::post('/user/store', [UserController::class, 'create'])->name('user.store');
|
||||
@@ -97,7 +100,7 @@ Route::get('/profile/show-activities', [ProfileController::class, 'showActivitie
|
||||
Route::get('/profile/show-projects', [ProfileController::class, 'showProjects'])->name('profile.show-projects');
|
||||
Route::get('/profile/show-documents', [ProfileController::class, 'showDocuments'])->name('profile.show-documents');
|
||||
|
||||
Route::get('/user/profile', [ProfileController::class, 'profile'], 'profile')->name('profile');
|
||||
Route::get('/user/profile', [ProfileController::class, 'profile'])->name('profile');
|
||||
Route::put('/user/activate/{id}', [UserController::class, 'activate'])->name('user.activate');
|
||||
Route::put('/user/block/{id}', [UserController::class, 'block'])->name('user.block');
|
||||
Route::get('/user/appraisers', [UserController::class, 'appraisers'])->name('user.appraisers');
|
||||
@@ -109,10 +112,8 @@ Route::get('/role', [RoleController::class, 'index'])->name('role.index');
|
||||
Route::put('/role/permit', [RoleController::class, 'permit'])->name('role.permit');
|
||||
Route::get('/notification/type', NotificationTypeController::class)->name('notification.type.index');
|
||||
Route::get('/notification/template', [NotificationTemplateController::class, 'index'])->name('notification.template.index');
|
||||
//Route::post('/store/my/file', [FileStoreController::class, 'storeMyFile'])->name('store.my.file');
|
||||
Route::post('/attach/file', [FileStoreController::class, 'attachFiles'])->name('attach.files');
|
||||
Route::post('/attach/profile-file', [FileStoreController::class, 'attachProfileFiles'])->name('profile.files');
|
||||
Route::get('/download/{file}', [FileStoreController::class, 'downloadFile'])->name('download');
|
||||
Route::delete('file/delete/{file}', [FileStoreController::class, 'delete'])->name('file.delete');
|
||||
Route::put('debit/credit', [BonusController::class, 'storeCredit'])->name('credit.store');
|
||||
Route::resource('/debit', DebitController::class);
|
||||
@@ -123,5 +124,6 @@ Route::resource('regions', RegionController::class);
|
||||
Route::get('/regions/districts/{id}', [RegionController::class, 'districts'])->name('regions.districts');
|
||||
Route::resource('districts', DistrictController::class);
|
||||
Route::resource('concerns', ConcernController::class);
|
||||
});
|
||||
|
||||
Route::get('{any}', [HomeController::class, 'pages'])->name('pages');
|
||||
|
||||
BIN
storage/app/public/attachments/AUTO7884/qr.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
storage/app/public/attachments/auto_7883/qr.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
storage/app/public/attachments/auto_7884/qr.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
storage/app/public/attachments/auto_7885/qr.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
storage/app/public/attachments/auto_7886/qr.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
storage/app/public/attachments/auto_7887/qr.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
storage/app/public/attachments/auto_7889/qr.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 268 KiB |
|
After Width: | Height: | Size: 4.4 MiB |
|
After Width: | Height: | Size: 19 KiB |
BIN
storage/app/public/test_qr.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |