Files
cssd-back/app/Http/Controllers/ExportController.php
T
2024-11-07 16:41:50 +03:30

127 lines
4.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Item;
use App\Models\Package;
use App\Services\ExportCollection;
use Maatwebsite\Excel\Facades\Excel;
class ExportController extends Controller
{
public function items()
{
$Items = Item::with( [ 'user' => function ( $query ) {
$query->select( 'id' , 'name' , 'medical_center_id' );
} ,
'user.medical_center' => function ( $query ) {
$query->select( 'id' , 'name' );
} ,
'latestTransfer'
] );
$user = auth( 'api' )->user();
if ( $user->hasRole( 'User' ) ) {
$Items = $Items->whereHas( 'user' , function ( $query ) use ( $user ) {
$query->where( 'medical_center_id' , $user->medical_center_id );
} )->where( "status" , 1 );
} elseif ( $user->hasRole( 'Supervisor' ) ) {
$Items = $Items->whereHas( 'user' , function ( $query ) use ( $user ) {
$query->where( 'medical_center_id' , $user->medical_center_id );
} );
}
$Items = $Items->orderByDesc( 'id' )->get();
$Items = $Items->map( function ( $item , $key ) {
$row[] = $item[ "id" ];
$row[] = $item[ "name" ];
$row[] = $item[ "size" ];
$row[] = $item[ "udi" ];
$row[] = $item[ "note" ];
$row[] = $item[ "specific" ];
$row[] = $item[ "status" ];
$row[] = $item[ "repair" ];
$row[] = $item[ "user" ] != null ? $item[ "user" ][ "id" ] : null;
$row[] = $item[ "user" ] != null ? $item[ "user" ][ "name" ] : null;
$row[] = $item[ "medical_center" ] != null ? $item[ "medical_center" ][ "id" ] : null;
$row[] = $item[ "medical_center" ] != null ? $item[ "medical_center" ][ "name" ] : null;
$row[] = $item[ "latestTransfer" ] != null ? $item[ "latestTransfer" ][ "from_date" ] : null;
return $row;
} );
$Items->prepend( [
'شناسه آیتم' ,
'نام' ,
'سایز' ,
'udi' ,
'توضیحات' ,
'specific' ,
'وضعیت' ,
'تعمیرات' ,
'شناسه کاربر' ,
'نام کاربر' ,
'شناسه بیمارستان' ,
'نام بیمارستان',
'اخرین انتقال'
] );
$export = new ExportCollection( $Items );
return Excel::download( $export , 'items.xlsx' , null , [ \Maatwebsite\Excel\Excel::XLSX ] );
}
public function packages()
{
$Packages = Package::with( [
'user' => function ( $query ) {
$query->select( 'id' , 'name' , 'medical_center_id' );
} ,
'user.medical_center' => function ( $query ) {
$query->select( 'id' , 'name' );
},
"latestTransfer"
] );
$user = auth( 'api' )->user();
if ( $user->hasRole( 'User' ) or $user->hasRole( 'Supervisor' ) ) {
$Packages = $Packages->whereHas( 'user' , function ( $query ) use ( $user ) {
$query->where( 'medical_center_id' , $user->medical_center_id );
} );
}
$Packages = $Packages->orderByDesc( 'id' )->get();
$Packages = $Packages->map( function ( $item , $key ) {
$row[] = $item[ "id" ];
$row[] = $item[ "name" ];
$row[] = $item[ "bar_code" ];
$row[] = $item[ "qr_code" ];
$row[] = $item[ "note" ];
$row[] = $item[ "verified" ];
$row[] = $item[ "user" ] != null ? $item[ "user" ][ "id" ] : null;
$row[] = $item[ "user" ] != null ? $item[ "user" ][ "name" ] : null;
$row[] = $item[ "medical_center" ] != null ? $item[ "medical_center" ][ "id" ] : null;
$row[] = $item[ "medical_center" ] != null ? $item[ "medical_center" ][ "name" ] : null;
$row[] = $item[ "latestTransfer" ] != null ? $item[ "latestTransfer" ][ "from_date" ] : null;
return $row;
} );
$Packages->prepend( [
'شناسه آیتم' ,
'نام' ,
'بارکد' ,
'qr code' ,
'توضیحات' ,
'وضعیت' ,
'شناسه کاربر' ,
'نام کاربر' ,
'شناسه بیمارستان' ,
'نام بیمارستان',
'اخرین انتقال'
] );
$export = new ExportCollection( $Packages );
return Excel::download( $export , 'packages.xlsx' , null , [ \Maatwebsite\Excel\Excel::XLSX ] );
}
}