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 ] ); } 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]); } }