feat: add export for cycles

This commit is contained in:
amir-ys
2024-12-14 00:56:08 +03:30
parent a74492e488
commit f4acfd7531
2 changed files with 50 additions and 1 deletions
+49
View File
@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Models\Cycle;
use App\Models\Item;
use App\Models\Package;
use App\Services\ExportCollection;
@@ -123,4 +124,52 @@ class ExportController extends Controller
$export = new ExportCollection( $Packages );
return Excel::download( $export , 'packages.xlsx' , null , [ \Maatwebsite\Excel\Excel::XLSX ] );
}
public function cycles()
{
$cycles = Cycle::with([
'user' => function ($query) {
$query->select('id', 'name', 'medical_center_id');
},
'user.medical_center' => function ($query) {
$query->select('id', 'name');
},
]);
$user = auth('api')->user();
if ($user->hasRole('User') or $user->hasRole('Supervisor')) {
$cycles = $cycles->whereHas('user', function ($query) use ($user) {
$query->where('medical_center_id', $user->medical_center_id);
});
}
$cycles = $cycles->orderByDesc('id')->get();
$cycles = $cycles->map(function ($item, $key) {
$row[] = $item["id"];
$row[] = $item["unique_id"];
$row[] = $item["note"];
$row[] = $item["sterilizer_id"];
$row[] = $item["cycle_number"];
$row[] = $item["user"] != null ? $item["user"]["id"] : null;
$row[] = $item["user"] != null ? $item["user"]["name"] : null;
$row[] = $item['user']['medical_center']['id'] ?? null;
$row[] = $item['user']['medical_center']['name'] ?? null;
return $row;
});
$cycles->prepend([
'شناسه آیتم',
'unique_id',
'یادداشت',
'sterilizer_id',
'cycle_number',
'شناسه کاربر',
'نام کاربر',
'شناسه بیمارستان',
'نام بیمارستان',
]);
$export = new ExportCollection($cycles);
return Excel::download($export, 'cycles.xlsx', null, [\Maatwebsite\Excel\Excel::XLSX]);
}
}
+1 -1
View File
@@ -83,7 +83,7 @@ Route::middleware('auth:api')->group(function () {
Route::get('export/items', [ExportController::class, 'items']);
Route::get('export/packages', [ExportController::class, 'packages']);
Route::get('export/cycles', [ExportController::class, 'cycles']);
Route::namespace('Media')->group(function () {
Route::post('store_media', StoreMedia::class);
Route::delete('destroy_media/{media}', DestroyMedia::class);