uppercese category qoshildi
@@ -61,4 +61,16 @@ class QrController extends Controller
|
|||||||
$qr = QrCode::format('png')->size(200)->generate($url);
|
$qr = QrCode::format('png')->size(200)->generate($url);
|
||||||
Storage::put($dir . '/qr.png', $qr);
|
Storage::put($dir . '/qr.png', $qr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function qrImage($type, $id)
|
||||||
|
{
|
||||||
|
$dbType = $type === 'auto' ? 'auto_' : 'estate_';
|
||||||
|
$path = storage_path('app/public/attachments/' . $dbType . $id . '/qr.png');
|
||||||
|
|
||||||
|
if (!file_exists($path)) {
|
||||||
|
abort(404);
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->file($path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,7 +121,7 @@
|
|||||||
{{ __('translation.conclusions') }}
|
{{ __('translation.conclusions') }}
|
||||||
</h4>
|
</h4>
|
||||||
<div class="flex-shrink-0">
|
<div class="flex-shrink-0">
|
||||||
@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]))
|
@if($conclusions->count() > 0)
|
||||||
<a href="{{ route('auto.generate_pdf', $order->id) }}"
|
<a href="{{ route('auto.generate_pdf', $order->id) }}"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
class="btn btn-soft-success btn-sm me-1">
|
class="btn btn-soft-success btn-sm me-1">
|
||||||
@@ -129,14 +129,14 @@
|
|||||||
Tayyor xulosani yuklab olish
|
Tayyor xulosani yuklab olish
|
||||||
</a>
|
</a>
|
||||||
@endif
|
@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])))
|
@if(!in_array($order->status, [\App\Enums\OrderStatusEnum::APPROVED->value, \App\Enums\OrderStatusEnum::MODERATED->value]) && (in_array(Auth::user()?->role, ['admin', 'manager']) || $isAppraisers))
|
||||||
<a href="{{ route('conclusion.add', ['id' => $order->id,'type'=>\App\Enums\OrderTypeEnum::AUTO->name]) }}"
|
<a href="{{ route('conclusion.add', ['id' => $order->id, 'type' => \App\Enums\OrderTypeEnum::AUTO->name]) }}"
|
||||||
type="button" class="btn btn-soft-info btn-sm">
|
type="button" class="btn btn-soft-info btn-sm">
|
||||||
<i class="ri-upload-2-fill me-1 align-bottom"></i>
|
<i class="ri-upload-2-fill me-1 align-bottom"></i>
|
||||||
{{ __('translation.upload') }}
|
{{ __('translation.upload') }}
|
||||||
</a>
|
</a>
|
||||||
@endif
|
@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->value && in_array(Auth::user()?->role, ['admin', 'manager']))
|
||||||
<button type="button" class="btn btn-soft-info btn-sm"
|
<button type="button" class="btn btn-soft-info btn-sm"
|
||||||
data-bs-toggle="modal"
|
data-bs-toggle="modal"
|
||||||
data-bs-target="#givingBonusModal">
|
data-bs-target="#givingBonusModal">
|
||||||
|
|||||||
@@ -116,15 +116,22 @@
|
|||||||
<h4 class="card-title mb-0 flex-grow-1">
|
<h4 class="card-title mb-0 flex-grow-1">
|
||||||
{{ __('translation.conclusions') }}
|
{{ __('translation.conclusions') }}
|
||||||
</h4>
|
</h4>
|
||||||
<div class="flex-shrink-0">
|
@if($conclusions->count() > 0)
|
||||||
@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('estate.generate_pdf', $order->id) }}"
|
||||||
<a href="{{ route('conclusion.add', ['id' => $order->id,'type'=>\App\Enums\OrderTypeEnum::ESTATE->name]) }}"
|
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::APPROVED->value, \App\Enums\OrderStatusEnum::MODERATED->value]) && (in_array(Auth::user()?->role, ['admin', 'manager']) || $isAppraisers))
|
||||||
|
<a href="{{ route('conclusion.add', ['id' => $order->id, 'type' => \App\Enums\OrderTypeEnum::ESTATE->name]) }}"
|
||||||
type="button" class="btn btn-soft-info btn-sm">
|
type="button" class="btn btn-soft-info btn-sm">
|
||||||
<i class="ri-upload-2-fill me-1 align-bottom"></i>
|
<i class="ri-upload-2-fill me-1 align-bottom"></i>
|
||||||
{{ __('translation.upload') }}
|
{{ __('translation.upload') }}
|
||||||
</a>
|
</a>
|
||||||
@endif
|
@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->value && in_array(Auth::user()?->role, ['admin', 'manager']))
|
||||||
<button type="button" class="btn btn-soft-info btn-sm"
|
<button type="button" class="btn btn-soft-info btn-sm"
|
||||||
data-bs-toggle="modal"
|
data-bs-toggle="modal"
|
||||||
data-bs-target="#givingBonusModal">
|
data-bs-target="#givingBonusModal">
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
<div class="card mt-4">
|
<div class="card mt-4">
|
||||||
<div class="card-body p-4">
|
<div class="card-body p-4">
|
||||||
<div class="text-center mt-2">
|
<div class="text-center mt-2">
|
||||||
<img width="100" src="{{ URL::asset('storage/attachments/auto_'.$order->id.'/qr.png') }}"
|
<img width="100" src="{{ route('qr.image', ['type' => 'auto', 'id' => $order->id]) }}"
|
||||||
alt="Order qr code image">
|
alt="Order qr code image">
|
||||||
</div>
|
</div>
|
||||||
<div class="p-2 mt-4">
|
<div class="p-2 mt-4">
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
<div class="card mt-4">
|
<div class="card mt-4">
|
||||||
<div class="card-body p-4">
|
<div class="card-body p-4">
|
||||||
<div class="text-center mt-2">
|
<div class="text-center mt-2">
|
||||||
<img width="100" src="{{ URL::asset('storage/attachments/estate_'.$order->id.'/qr.png') }}"
|
<img width="100" src="{{ route('qr.image', ['type' => 'estate', 'id' => $order->id]) }}"
|
||||||
alt="Order qr code image">
|
alt="Order qr code image">
|
||||||
</div>
|
</div>
|
||||||
<div class="p-2 mt-4">
|
<div class="p-2 mt-4">
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ Route::get('index/{locale}', [HomeController::class, 'lang']);
|
|||||||
Route::get('/', [HomeController::class, 'index'])->name('root');
|
Route::get('/', [HomeController::class, 'index'])->name('root');
|
||||||
Route::get('index', [HomeController::class, 'index'])->name('index');
|
Route::get('index', [HomeController::class, 'index'])->name('index');
|
||||||
Route::get('v/{type}/{id}', [QrController::class, 'verify'])->name('qr.verify');
|
Route::get('v/{type}/{id}', [QrController::class, 'verify'])->name('qr.verify');
|
||||||
|
Route::get('qr-image/{type}/{id}', [QrController::class, 'qrImage'])->name('qr.image');
|
||||||
Route::get('/download/{file}', [FileStoreController::class, 'downloadFile'])->name('download');
|
Route::get('/download/{file}', [FileStoreController::class, 'downloadFile'])->name('download');
|
||||||
|
|
||||||
Route::group(['middleware' => ['auth']], function () {
|
Route::group(['middleware' => ['auth']], function () {
|
||||||
|
|||||||
0
storage/app/public/attachments/AUTO7884/qr.png
Normal file → Executable file
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
0
storage/app/public/attachments/auto_7883/qr.png
Normal file → Executable file
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
0
storage/app/public/attachments/auto_7884/qr.png
Normal file → Executable file
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
0
storage/app/public/attachments/auto_7885/qr.png
Normal file → Executable file
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
0
storage/app/public/attachments/auto_7886/qr.png
Normal file → Executable file
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
0
storage/app/public/attachments/auto_7887/qr.png
Normal file → Executable file
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
0
storage/app/public/attachments/auto_7889/qr.png
Normal file → Executable file
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
storage/app/public/attachments/auto_7890/qr.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |