mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-13 11:41:07 +03:30
confilit
This commit is contained in:
+1
-3
@@ -1,7 +1,5 @@
|
|||||||
|
/public
|
||||||
/node_modules
|
/node_modules
|
||||||
/public/hot
|
|
||||||
/public/storage
|
|
||||||
/public/img
|
|
||||||
/storage
|
/storage
|
||||||
/tests
|
/tests
|
||||||
/vendor
|
/vendor
|
||||||
|
|||||||
Binary file not shown.
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Cycle extends Model
|
||||||
|
{
|
||||||
|
public $fillable = ['name', 'date', 'user_id', 'cycle_number', 'sterilizer_id', 'note', 'verified'];
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\User');
|
||||||
|
}
|
||||||
|
public function packs()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany('App\Pack', 'cycle_pack');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Gallery extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $fillable = ['user_id', 'path'];
|
||||||
|
public $timestamps = false;
|
||||||
|
|
||||||
|
|
||||||
|
// public function business_item()
|
||||||
|
// {
|
||||||
|
// return $this->morphedByMany('App\BusinessItem', 'uploadable');
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Api\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Packages\Auth\SendsPasswordResetEmails;
|
||||||
|
|
||||||
|
class ForgotPasswordController extends Controller
|
||||||
|
{
|
||||||
|
use SendsPasswordResetEmails;
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('guest');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function sendResetLinkResponse($response)
|
||||||
|
{
|
||||||
|
return response()->json(['status' => 200, 'message' => trans($response)]);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function sendResetLinkFailedResponse(Request $request, $response)
|
||||||
|
{
|
||||||
|
return response()->json(['status' => 401, 'email' => trans($response)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Api\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class LoginController extends Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function login(Request $request)
|
||||||
|
{
|
||||||
|
$this->validate($request, $this->rules(), $this->validationErrorMessages());
|
||||||
|
|
||||||
|
$request = Request::create('/oauth/token', 'POST', [
|
||||||
|
'grant_type' => 'password',
|
||||||
|
'client_id' => config('services.vue_client.id'),
|
||||||
|
'client_secret' => config('services.vue_client.secret'),
|
||||||
|
'username' => $request->cell_number,
|
||||||
|
'password' => $request->password,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return app()->handle($request);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function logout()
|
||||||
|
{
|
||||||
|
$accessToken = auth()->user()->token();
|
||||||
|
|
||||||
|
DB::table('oauth_access_tokens')->where('id', $accessToken->id)->delete();
|
||||||
|
DB::table('oauth_refresh_tokens')->where('access_token_id', $accessToken->id)->delete();
|
||||||
|
|
||||||
|
return response()->json(['status' => 200]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the login validation rules.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'cell_number' => 'required',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the login validation error messages.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function validationErrorMessages()
|
||||||
|
{
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Api\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
|
||||||
|
class RegisterController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Register the given user.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\JsonResponse
|
||||||
|
*/
|
||||||
|
public function register(Request $request)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('store', User::class)) {
|
||||||
|
return \MessageResponse::error(trans('messages.failed'));
|
||||||
|
}
|
||||||
|
$this->validate($request, $this->rules(), $this->validationErrorMessages());
|
||||||
|
|
||||||
|
$user = new User();
|
||||||
|
$user->name = $request->name;
|
||||||
|
$user->country_code = $request->country_code;
|
||||||
|
$user->cell_number = $request->cell_number;
|
||||||
|
$user->gender = $request->gender;
|
||||||
|
$user->medical_center_id = $request->medical_center_id;
|
||||||
|
$user->password = bcrypt( $request->password );
|
||||||
|
$user->save();
|
||||||
|
$user->assignRole('User');
|
||||||
|
return response()->json($user, 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the user registration validation rules.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'name' => 'required|string|max:80',
|
||||||
|
'cell_number' => 'required|unique:users',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
'medical_center_id' => 'required|exists:medical_centers,id',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the user registration validation error messages.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function validationErrorMessages()
|
||||||
|
{
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Api\Auth;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class ResetPasswordController extends Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('guest');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reset the given user's password.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
|
||||||
|
*/
|
||||||
|
public function reset(Request $request)
|
||||||
|
{
|
||||||
|
$this->validatePassword($request);
|
||||||
|
|
||||||
|
if (auth('api')->check()) {
|
||||||
|
$user = auth('api')->user();
|
||||||
|
$user->password = \Hash::make($request->password);
|
||||||
|
$user->save();
|
||||||
|
return \MessageResponse::success('Success Change Password');
|
||||||
|
}
|
||||||
|
return \MessageResponse::success('You Are Not Login');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate the email for the given request.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function validatePassword(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate(['password' => 'required|confirmed|min:8',]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
|
|
||||||
|
|
||||||
class ForgotPasswordController extends Controller
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Password Reset Controller
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| This controller is responsible for handling password reset emails and
|
|
||||||
| includes a trait which assists in sending these notifications from
|
|
||||||
| your application to your users. Feel free to explore this trait.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
use SendsPasswordResetEmails;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new controller instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware('guest');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
|
||||||
|
|
||||||
class LoginController extends Controller
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Login Controller
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| This controller handles authenticating users for the application and
|
|
||||||
| redirecting them to your home screen. The controller uses a trait
|
|
||||||
| to conveniently provide its functionality to your applications.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
use AuthenticatesUsers;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Where to redirect users after login.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $redirectTo = '/home';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new controller instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware('guest')->except('logout');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\User;
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Support\Facades\Hash;
|
|
||||||
use Illuminate\Support\Facades\Validator;
|
|
||||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
|
||||||
|
|
||||||
class RegisterController extends Controller
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Register Controller
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| This controller handles the registration of new users as well as their
|
|
||||||
| validation and creation. By default this controller uses a trait to
|
|
||||||
| provide this functionality without requiring any additional code.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
use RegistersUsers;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Where to redirect users after registration.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $redirectTo = '/home';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new controller instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware('guest');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a validator for an incoming registration request.
|
|
||||||
*
|
|
||||||
* @param array $data
|
|
||||||
* @return \Illuminate\Contracts\Validation\Validator
|
|
||||||
*/
|
|
||||||
protected function validator(array $data)
|
|
||||||
{
|
|
||||||
return Validator::make($data, [
|
|
||||||
'name' => ['required', 'string', 'max:255'],
|
|
||||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
|
||||||
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new user instance after a valid registration.
|
|
||||||
*
|
|
||||||
* @param array $data
|
|
||||||
* @return \App\User
|
|
||||||
*/
|
|
||||||
protected function create(array $data)
|
|
||||||
{
|
|
||||||
return User::create([
|
|
||||||
'name' => $data['name'],
|
|
||||||
'email' => $data['email'],
|
|
||||||
'password' => Hash::make($data['password']),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Foundation\Auth\ResetsPasswords;
|
|
||||||
|
|
||||||
class ResetPasswordController extends Controller
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Password Reset Controller
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| This controller is responsible for handling password reset requests
|
|
||||||
| and uses a simple trait to include this behavior. You're free to
|
|
||||||
| explore this trait and override any methods you wish to tweak.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
use ResetsPasswords;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Where to redirect users after resetting their password.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $redirectTo = '/home';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new controller instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware('guest');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Auth;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Foundation\Auth\VerifiesEmails;
|
|
||||||
|
|
||||||
class VerificationController extends Controller
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Email Verification Controller
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| This controller is responsible for handling email verification for any
|
|
||||||
| user that recently registered with the application. Emails may also
|
|
||||||
| be re-sent if the user didn't receive the original email message.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
use VerifiesEmails;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Where to redirect users after verification.
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $redirectTo = '/home';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new controller instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
$this->middleware('auth');
|
|
||||||
$this->middleware('signed')->only('verify');
|
|
||||||
$this->middleware('throttle:6,1')->only('verify', 'resend');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use \Milon\Barcode\DNS1D;
|
||||||
|
use \Milon\Barcode\DNS2D;
|
||||||
|
use App\TestResult;
|
||||||
|
|
||||||
|
class BarCodeController extends Controller
|
||||||
|
{
|
||||||
|
public function generateBarcode($Number)
|
||||||
|
{
|
||||||
|
if($Number != "undefined")
|
||||||
|
{
|
||||||
|
// $Barcode = DNS1D::getBarcodePNGUri($Number, "C128");
|
||||||
|
$Barcode = DNS1D::getBarcodePNG($Number, "C128");
|
||||||
|
$QRCode = DNS2D::getBarcodePNG($Number, "QRCODE");
|
||||||
|
return \MessageResponse::data(['Barcode' => 'data:image/png;base64,' .$Barcode, 'QRCode' => 'data:image/png;base64,' .$QRCode]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public function generateQRcode(TestResult $TestResult)
|
||||||
|
{
|
||||||
|
if($TestResult)
|
||||||
|
{
|
||||||
|
$URL = 'https://www.cssd-doc.com/ShowTestResult/'.$TestResult->id;
|
||||||
|
$QRCode = DNS2D::getBarcodePNG($URL, "QRCODE");
|
||||||
|
return \MessageResponse::data(['QRCode' => 'data:image/png;base64,' .$QRCode]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Http\Requests\StoreCycleRequest;
|
||||||
|
use App\Cycle;
|
||||||
|
|
||||||
|
class CycleController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$Cycles = Cycle::when($request->has('name') && $request->name != '', function($query) use($request){
|
||||||
|
$query->where('name', 'LIKE', '%'.$request->name.'%');
|
||||||
|
})
|
||||||
|
->when($request->has('sterilizer_id') && $request->sterilizer_id != '', function($query) use($request){
|
||||||
|
$query->where('sterilizer_id', $request->sterilizer_id);
|
||||||
|
})
|
||||||
|
->when($request->has('date') && $request->date != '', function($query) use($request){
|
||||||
|
$query->where('date', $request->date);
|
||||||
|
})
|
||||||
|
->when($request->has('cycle_number') && $request->cycle_number != '', function($query) use($request){
|
||||||
|
$query->where('cycle_number', $request->cycle_number);
|
||||||
|
})
|
||||||
|
->with('user')->paginate(10);
|
||||||
|
return \MessageResponse::data($Cycles);
|
||||||
|
}
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public function show(Cycle $Cycle)
|
||||||
|
{
|
||||||
|
$Cycle->load('user', 'packs');
|
||||||
|
return \MessageResponse::data($Cycle);
|
||||||
|
}
|
||||||
|
public function store(StoreCycleRequest $request)
|
||||||
|
{
|
||||||
|
$CycleData = [
|
||||||
|
'name' => $request->name,
|
||||||
|
'date' => $request->date,
|
||||||
|
'sterilizer_id' => $request->sterilizer_id,
|
||||||
|
'cycle_number' => $request->cycle_number,
|
||||||
|
'note' => $request->note,
|
||||||
|
'user_id' => auth('api')->user()->id,
|
||||||
|
'verified' => 'NotVerified',
|
||||||
|
];
|
||||||
|
$CycleObj = Cycle::create($CycleData);
|
||||||
|
$CycleObj->packs()->attach($request->packs);
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function edit(Cycle $Cycle)
|
||||||
|
{
|
||||||
|
$Cycle->load('user', 'packs');
|
||||||
|
return \MessageResponse::data($Cycle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(StoreCycleRequest $request, Cycle $Cycle)
|
||||||
|
{
|
||||||
|
$Cycle->update($request->except(['packs']));
|
||||||
|
$Cycle->packs()->sync($request->packs);
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function destroy(Cycle $Cycle)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('delete', $Cycle)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
if(count($Cycle->packs))
|
||||||
|
{
|
||||||
|
$Cycle->packs()->detach();
|
||||||
|
}
|
||||||
|
$Cycle->delete();
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function verifyCycle(Cycle $Cycle)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('verifyCycle', $Cycle)) {
|
||||||
|
return \MessageResponse::error(trans('You dont have permission'));
|
||||||
|
}
|
||||||
|
if ($Cycle->verified == 'Verified') {
|
||||||
|
$Cycle->verified = 'NotVerified';
|
||||||
|
} else {
|
||||||
|
$Cycle->verified = 'Verified';
|
||||||
|
}
|
||||||
|
$Cycle->save();
|
||||||
|
$Cycle = $Cycle->load('user');
|
||||||
|
return \MessageResponse::success(trans('messages.success'), null, $Cycle);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class HomeController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Create a new controller instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('auth');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the application dashboard.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Contracts\Support\Renderable
|
||||||
|
*/
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('home');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Http\Requests\StoreItemRequest;
|
||||||
|
use App\Item;
|
||||||
|
|
||||||
|
class ItemController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$Items = Item::with('user')
|
||||||
|
->when($request->has('name') && $request->name != '', function($query) use($request){
|
||||||
|
$query->where('name', 'LIKE', '%'.$request->name.'%');
|
||||||
|
})
|
||||||
|
->when($request->has('size') && $request->size != '', function($query) use($request){
|
||||||
|
$query->where('size', $request->size);
|
||||||
|
})
|
||||||
|
->when($request->has('unique_id') && $request->unique_id != '', function($query) use($request){
|
||||||
|
$query->where('unique_id', $request->unique_id);
|
||||||
|
})
|
||||||
|
->when($request->has('specific') && $request->specific != '', function($query) use($request){
|
||||||
|
$query->where('specific', $request->specific);
|
||||||
|
})
|
||||||
|
->paginate(10);
|
||||||
|
return \MessageResponse::data($Items);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public function show(Item $Item)
|
||||||
|
{
|
||||||
|
$Item->load('user');
|
||||||
|
return \MessageResponse::data($Item);
|
||||||
|
}
|
||||||
|
public function store(StoreItemRequest $request)
|
||||||
|
{
|
||||||
|
$ItemData = [
|
||||||
|
'name' => $request->name,
|
||||||
|
'size' => $request->size,
|
||||||
|
'unique_id' => $request->unique_id,
|
||||||
|
'specific' => $request->specific,
|
||||||
|
'note' => $request->note,
|
||||||
|
'user_id' => auth('api')->user()->id,
|
||||||
|
];
|
||||||
|
$ItemObj = Item::create($ItemData);
|
||||||
|
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function edit(Item $Item)
|
||||||
|
{
|
||||||
|
return \MessageResponse::data($Item);
|
||||||
|
}
|
||||||
|
public function update(StoreItemRequest $request, Item $Item)
|
||||||
|
{
|
||||||
|
$Item->update($request->all());
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function destroy(Item $Item)
|
||||||
|
{
|
||||||
|
if (!auth('api')->user()->can('delete', $Item)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
if(count($Item->packages))
|
||||||
|
{
|
||||||
|
$Item->packages()->detach();
|
||||||
|
}
|
||||||
|
$Item->delete();
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getItems(){
|
||||||
|
$Items = Item::with('user')->get();
|
||||||
|
return \MessageResponse::data($Items);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\MedicalCenter;
|
||||||
|
use App\User;
|
||||||
|
use App\Http\Requests\StoreMedicalCenterRequest;
|
||||||
|
|
||||||
|
class MedicalCenterController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
if (!auth('api')->user()->can('list', MedicalCenter::class)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
$MedicalCenters = MedicalCenter::when($request->has('name') && $request->name, function($query) use($request){
|
||||||
|
$query->where('name', 'LIKE', '%'.$request->name.'%');
|
||||||
|
})->withCount('users')->paginate(10);
|
||||||
|
return \MessageResponse::data($MedicalCenters);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(StoreMedicalCenterRequest $request)
|
||||||
|
{
|
||||||
|
MedicalCenter::create($request->all());
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
// $MedicalCenter = MedicalCenter::with('users')->findOrFail($id);
|
||||||
|
// return response()->json(['MedicalCenter' => $MedicalCenter]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit(MedicalCenter $MedicalCenter)
|
||||||
|
{
|
||||||
|
$MedicalCenter = $MedicalCenter->load('users');
|
||||||
|
return \MessageResponse::data($MedicalCenter);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(StoreMedicalCenterRequest $request, MedicalCenter $MedicalCenter)
|
||||||
|
{
|
||||||
|
$MedicalCenter->update($request->all());
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy(MedicalCenter $MedicalCenter)
|
||||||
|
{
|
||||||
|
if (!auth('api')->user()->can('delete', $MedicalCenter)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
$MedicalCenter->delete();
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function listMedicalCenters(){
|
||||||
|
$MedicalCenters = MedicalCenter::select('id','name')->get();
|
||||||
|
return \MessageResponse::data($MedicalCenters);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Http\Requests\StoreMessageRequest;
|
||||||
|
use App\Message;
|
||||||
|
use App\User;
|
||||||
|
|
||||||
|
class MessageController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$User = auth('api')->user();
|
||||||
|
$role = null;
|
||||||
|
$medical_center_id = null;
|
||||||
|
|
||||||
|
$User = auth('api')->user();
|
||||||
|
if ($User->hasRole('Supervisor') || $User->hasRole('User')) {
|
||||||
|
$medical_center_id = $User->medical_center_id;
|
||||||
|
$role = 'Admin';
|
||||||
|
}
|
||||||
|
$remove = $User->id;
|
||||||
|
$Users = User::whereHas('messagesSent', function($q) use($User){
|
||||||
|
$q->where('recipient_user_id', $User->id);
|
||||||
|
})
|
||||||
|
->orWhereHas('messagesReceived', function($q) use($User){
|
||||||
|
$q->where('sender_user_id', $User->id);
|
||||||
|
})
|
||||||
|
->when($medical_center_id, function($query) use ($medical_center_id){
|
||||||
|
$query->where('medical_center_id', $medical_center_id);
|
||||||
|
})
|
||||||
|
->when($role, function($query) use($role){
|
||||||
|
$query->role($role);
|
||||||
|
})
|
||||||
|
->paginate(10);
|
||||||
|
|
||||||
|
foreach ($Users as $user) {
|
||||||
|
$UnReadReceivedMessages = Message::where('sender_user_id', $user->id)->where('recipient_user_id', $User->id)->where('status','UnRead')->get()->count();
|
||||||
|
$user->unread_messages_count = $UnReadReceivedMessages;
|
||||||
|
|
||||||
|
$MessagesCount = Message::where(function ($query) use ($user,$User){
|
||||||
|
$query->where('sender_user_id', $user->id)->where('recipient_user_id', $User->id);
|
||||||
|
})->orWhere(function ($query) use ($user,$User){
|
||||||
|
$query->where('sender_user_id', $User->id)->where('recipient_user_id', $user->id);
|
||||||
|
})->get()->count();
|
||||||
|
|
||||||
|
$user->messages_count = $MessagesCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// $Users = $Users->filter(function ($value, $key) use($remove){
|
||||||
|
// return $value['id'] != $remove;
|
||||||
|
// });
|
||||||
|
|
||||||
|
return \MessageResponse::data($Users);
|
||||||
|
}
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public function show($UserID)
|
||||||
|
{
|
||||||
|
// if (!auth('api')->user()->can('show', $Message)) {
|
||||||
|
// return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
// }
|
||||||
|
|
||||||
|
$User = User::findOrFail($UserID);
|
||||||
|
// $SendMessages = Message::where('sender_user_id', auth('api')->user()->id)->where('recipient_user_id', $UserID)->get();
|
||||||
|
$ReceivedMessages = Message::where('sender_user_id', $UserID)->where('recipient_user_id', auth('api')->user()->id)->get();
|
||||||
|
|
||||||
|
$Messages = Message::where(function ($query) use ($UserID)
|
||||||
|
{
|
||||||
|
$query->where('sender_user_id', auth('api')->user()->id)->where('recipient_user_id', $UserID);
|
||||||
|
})->orWhere(function ($query) use ($UserID)
|
||||||
|
{
|
||||||
|
$query->where('sender_user_id', $UserID)->where('recipient_user_id', auth('api')->user()->id);
|
||||||
|
})->get();
|
||||||
|
|
||||||
|
foreach ($ReceivedMessages as $ReceivedMessage) {
|
||||||
|
$ReceivedMessage->status = 'Read';
|
||||||
|
$ReceivedMessage->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
return \MessageResponse::data($Messages);
|
||||||
|
}
|
||||||
|
public function store(StoreMessageRequest $request)
|
||||||
|
{
|
||||||
|
$MessageData = [
|
||||||
|
// 'title' => $request->title,
|
||||||
|
'text' => $request->message,
|
||||||
|
'sender_user_id' => auth('api')->user()->id,
|
||||||
|
'recipient_user_id' => $request->user_id,
|
||||||
|
'status' => 'UnRead',
|
||||||
|
];
|
||||||
|
Message::create($MessageData);
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function edit(Message $Message)
|
||||||
|
{
|
||||||
|
// return \MessageResponse::data($Message);
|
||||||
|
}
|
||||||
|
public function update(StoreMessageRequest $request, Message $Message)
|
||||||
|
{
|
||||||
|
// $Message->update($request->all());
|
||||||
|
// return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function destroy(Message $Message)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('delete', $Message)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
$Message->delete();
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function destroyUserMessages(User $User)
|
||||||
|
{
|
||||||
|
// if (auth('api')->user()->cant('deleteUserMessage', Message::class)) {
|
||||||
|
// return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
// }
|
||||||
|
Message::where(function ($query) use ($User)
|
||||||
|
{
|
||||||
|
$query->where('sender_user_id', auth('api')->user()->id)->where('recipient_user_id', $User->id);
|
||||||
|
})->orWhere(function ($query) use ($User)
|
||||||
|
{
|
||||||
|
$query->where('sender_user_id', $User->id)->where('recipient_user_id', auth('api')->user()->id);
|
||||||
|
})->get()->each->delete();
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Http\Requests\StorePackRequest;
|
||||||
|
use App\Pack;
|
||||||
|
|
||||||
|
class PackController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$Packs = Pack::when($request->has('name') && $request->name != '', function($query) use($request){
|
||||||
|
$query->where('name', 'LIKE', '%'.$request->name.'%');
|
||||||
|
})
|
||||||
|
->when($request->has('sterilizer_id') && $request->sterilizer_id != '', function($query) use($request){
|
||||||
|
$query->where('sterilizer_id', $request->sterilizer_id);
|
||||||
|
})
|
||||||
|
->when($request->has('cycle_number') && $request->cycle_number != '', function($query) use($request){
|
||||||
|
$query->where('cycle_number', $request->cycle_number);
|
||||||
|
})
|
||||||
|
->when($request->has('lot_number') && $request->lot_number != '', function($query) use($request){
|
||||||
|
$query->where('lot_number', $request->lot_number);
|
||||||
|
})
|
||||||
|
->when($request->has('department') && $request->department != '', function($query) use($request){
|
||||||
|
$query->where('department', 'LIKE', '%'.$request->department.'%');
|
||||||
|
})
|
||||||
|
->when($request->has('medical_center_id') && $request->medical_center_id != '', function($query) use($request){
|
||||||
|
$query->whereHas('user', function($query) use($request){
|
||||||
|
$query->where('medical_center_id', $request->medical_center_id);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
->with('user', 'user.medical_center')->paginate(10);
|
||||||
|
return \MessageResponse::data($Packs);
|
||||||
|
}
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public function show(Pack $Pack)
|
||||||
|
{
|
||||||
|
$Pack->load('user', 'packages', 'user.medical_center');
|
||||||
|
return \MessageResponse::data($Pack);
|
||||||
|
}
|
||||||
|
public function store(StorePackRequest $request)
|
||||||
|
{
|
||||||
|
$PackData = [
|
||||||
|
'name' => $request->name,
|
||||||
|
'sterile_date' => $request->sterile_date,
|
||||||
|
'expire_date' => $request->expire_date,
|
||||||
|
'sterilizer_id' => $request->sterilizer_id,
|
||||||
|
'cycle_number' => $request->cycle_number,
|
||||||
|
'lot_number' => $request->lot_number,
|
||||||
|
'department' => $request->department,
|
||||||
|
'note' => $request->note,
|
||||||
|
'user_id' => auth('api')->user()->id,
|
||||||
|
];
|
||||||
|
$PackObj = Pack::create($PackData);
|
||||||
|
$PackObj->packages()->attach($request->packages);
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function edit(Pack $Pack)
|
||||||
|
{
|
||||||
|
$Pack->load('user', 'packages');
|
||||||
|
return \MessageResponse::data($Pack);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(StorePackRequest $request, Pack $Pack)
|
||||||
|
{
|
||||||
|
$Pack->update($request->except(['packages']));
|
||||||
|
$Pack->packages()->sync($request->packages);
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function destroy(Pack $Pack)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('delete', $Pack)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
if(count($Pack->packages))
|
||||||
|
{
|
||||||
|
$Pack->packages()->detach();
|
||||||
|
}
|
||||||
|
if(count($Pack->cycles))
|
||||||
|
{
|
||||||
|
$Pack->cycles()->detach();
|
||||||
|
}
|
||||||
|
$Pack->delete();
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function getPacks()
|
||||||
|
{
|
||||||
|
$Packs = Pack::with('user')->get();
|
||||||
|
return \MessageResponse::data($Packs);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Http\Requests\StorePackageRequest;
|
||||||
|
use App\Package;
|
||||||
|
|
||||||
|
class PackageController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$Packages = Package::when($request->has('name') && $request->name != '', function($query) use($request){
|
||||||
|
$query->where('name', 'LIKE', '%'.$request->name.'%');
|
||||||
|
})
|
||||||
|
->when($request->has('unique_id') && $request->unique_id != '', function($query) use($request){
|
||||||
|
$query->where('unique_id', $request->unique_id);
|
||||||
|
})
|
||||||
|
->with('user')->paginate(10);
|
||||||
|
return \MessageResponse::data($Packages);
|
||||||
|
}
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public function show(Package $Package)
|
||||||
|
{
|
||||||
|
$Package->load('user', 'items');
|
||||||
|
return \MessageResponse::data($Package);
|
||||||
|
}
|
||||||
|
public function store(StorePackageRequest $request)
|
||||||
|
{
|
||||||
|
$UniqueID = substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 10);
|
||||||
|
$PackageData = [
|
||||||
|
'name' => $request->name,
|
||||||
|
'unique_id' => $UniqueID,
|
||||||
|
'note' => $request->note,
|
||||||
|
'user_id' => auth('api')->user()->id,
|
||||||
|
'verified' => 'NotVerified',
|
||||||
|
];
|
||||||
|
$PackageObj = Package::create($PackageData);
|
||||||
|
$PackageObj->items()->attach($request->items);
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function edit(Package $Package)
|
||||||
|
{
|
||||||
|
$Package->load('user', 'items');
|
||||||
|
return \MessageResponse::data($Package);
|
||||||
|
}
|
||||||
|
public function update(StorePackageRequest $request, Package $Package)
|
||||||
|
{
|
||||||
|
$Package->update($request->except(['items']));
|
||||||
|
$Package->items()->sync($request->items);
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function destroy(Package $Package)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('delete', $Package)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
if(count($Package->items))
|
||||||
|
{
|
||||||
|
$Package->items()->detach();
|
||||||
|
}
|
||||||
|
if(count($Package->packs))
|
||||||
|
{
|
||||||
|
$Package->packs()->detach();
|
||||||
|
}
|
||||||
|
$Package->delete();
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
public function verifyPackage(Package $Package)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('verifyPackage', $Package)) {
|
||||||
|
return \MessageResponse::error(trans('You dont have permission'));
|
||||||
|
}
|
||||||
|
if ($Package->verified == 'Verified') {
|
||||||
|
$Package->verified = 'NotVerified';
|
||||||
|
} else {
|
||||||
|
$Package->verified = 'Verified';
|
||||||
|
}
|
||||||
|
$Package->save();
|
||||||
|
$Package = $Package->load('user');
|
||||||
|
return \MessageResponse::success(trans('messages.success'), null, $Package);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getPackages()
|
||||||
|
{
|
||||||
|
$Packages = Package::with('user')->get();
|
||||||
|
return \MessageResponse::data($Packages);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,492 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use App\Http\Requests\StoreTestResultRequest;
|
||||||
|
use App\TestResult;
|
||||||
|
use App\InputValue;
|
||||||
|
use App\Input;
|
||||||
|
use App\MedicalCenter;
|
||||||
|
use App\TestType;
|
||||||
|
use App\Gallery;
|
||||||
|
use App\Uploadable;
|
||||||
|
use Intervention\Image\ImageManagerStatic as Image;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
|
||||||
|
class TestResultController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$user = auth('api')->user();
|
||||||
|
|
||||||
|
if ($user->hasRole('Supervisor|User')) {
|
||||||
|
$medical_center_id = $user->medical_center_id;
|
||||||
|
}
|
||||||
|
elseif($request->has('medicalCenter_id') && $request->medicalCenter_id) {
|
||||||
|
$medical_center_id = $request->medicalCenter_id;
|
||||||
|
} else {
|
||||||
|
$medical_center_id = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->hasRole('User')) {
|
||||||
|
$user_name = $user->name;
|
||||||
|
}
|
||||||
|
elseif($request->has('user_name') && $request->user_name) {
|
||||||
|
$user_name = $request->user_name;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$user_name = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$TestResult = TestResult::with('test_type', 'user', 'user.medical_center')
|
||||||
|
->when($request->has('verified'), function ($query) use ($request)
|
||||||
|
{
|
||||||
|
return $query->where('verified', $request->verified);
|
||||||
|
})
|
||||||
|
->when(($request->has('fromPicker') && $request->fromPicker) || ($request->has('upToPicker') && $request->upToPicker), function ($query) use ($request)
|
||||||
|
{
|
||||||
|
$from = ($request->fromPicker) ? date($request->fromPicker . ' 00:00:00') : date('2010-01-01' . ' 00:00:00');
|
||||||
|
$upTo = ($request->upToPicker) ? date($request->upToPicker . ' 23:59:59') : date('Y-m-d' . ' 23:59:59');
|
||||||
|
return $query->whereBetween('created_at', [$from, $upTo]);
|
||||||
|
})
|
||||||
|
->when($request->has('testType_id') && $request->testType_id, function($query) use($request){
|
||||||
|
$query->where('test_type_id', $request->testType_id);
|
||||||
|
})
|
||||||
|
->when($request->has('device_id') && $request->device_id, function($query) use($request){
|
||||||
|
$query->where('device_id', 'LIKE', '%'.$request->device_id.'%');
|
||||||
|
})
|
||||||
|
->when($user_name, function($query) use($user_name){
|
||||||
|
$query->whereHas('user', function($query) use($user_name){
|
||||||
|
$query->where('name', 'LIKE', '%'.$user_name.'%');
|
||||||
|
});
|
||||||
|
})
|
||||||
|
->when($medical_center_id, function($query) use($medical_center_id){
|
||||||
|
$query->whereHas('user', function($query) use ($medical_center_id) {
|
||||||
|
$query->where('medical_center_id', $medical_center_id);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
->paginate(10);
|
||||||
|
|
||||||
|
return \MessageResponse::data($TestResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(StoreTestResultRequest $request)
|
||||||
|
{
|
||||||
|
// dd($request->result);
|
||||||
|
try {
|
||||||
|
$return_value = \DB::transaction(function () use ($request) {
|
||||||
|
|
||||||
|
$TestResult = [
|
||||||
|
'user_id' => auth('api')->user()->id,
|
||||||
|
'cycle_number' => $request->cycle_number,
|
||||||
|
'device_id' => $request->device_id,
|
||||||
|
'date' => $request->date,
|
||||||
|
'test_type_id' => $request->test_type_id,
|
||||||
|
'result' => $request->result,
|
||||||
|
'verified' => 'NotVerified',
|
||||||
|
];
|
||||||
|
$TestResultObj = TestResult::create($TestResult);
|
||||||
|
$TestResultInfo = $request->all();
|
||||||
|
|
||||||
|
$Inputs = Input::with('options','children','children.options')->whereNull('parent_id')->where('test_type_id',$request->test_type_id)->get();
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////Inputs
|
||||||
|
foreach ($Inputs as $Input) {
|
||||||
|
if ($Input['type'] != 'Form') {
|
||||||
|
$Value = $TestResultInfo[$Input->name.'_'.$Input->id];
|
||||||
|
if ($Input['type'] == 'Checkbox' || $Input['type'] == 'Select' || $Input['type'] == 'Radiobutton') {
|
||||||
|
|
||||||
|
foreach ($Input->options as $Option) {//--2
|
||||||
|
if(is_array($Value) && in_array($Option->id,$Value)){
|
||||||
|
$InputValueObj = InputValue::create(['test_result_id' => $TestResultObj->id, 'input_id' => $Input->id, 'option_id' => $Option->id]);
|
||||||
|
}
|
||||||
|
if ($Input['type'] == 'Radiobutton' && $Option->id == $Value) {
|
||||||
|
$InputValueObj = InputValue::create(['test_result_id' => $TestResultObj->id, 'input_id' => $Input->id, 'option_id' => $Option->id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$InputValueObj = InputValue::create(['test_result_id' => $TestResultObj->id, 'input_id' => $Input->id, 'value' => $Value]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
foreach ($Input->children as $InputChild) {
|
||||||
|
$Value = $TestResultInfo[$InputChild->name.'_'.$InputChild->id];
|
||||||
|
|
||||||
|
if ($InputChild['type'] == 'Checkbox' || $InputChild['type'] == 'Select' || $InputChild['type'] == 'Radiobutton') {
|
||||||
|
|
||||||
|
foreach ($InputChild->options as $Option) {//--2
|
||||||
|
if(is_array($Value) && in_array($Option->id,$Value)){
|
||||||
|
$InputValueObj = InputValue::create(['test_result_id' => $TestResultObj->id, 'input_id' => $InputChild->id, 'option_id' => $Option->id]);
|
||||||
|
}
|
||||||
|
if ($InputChild['type'] == 'Radiobutton' && $Option->id == $Value) {
|
||||||
|
$InputValueObj = InputValue::create(['test_result_id' => $TestResultObj->id, 'input_id' => $InputChild->id, 'option_id' => $Option->id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$InputValueObj = InputValue::create(['test_result_id' => $TestResultObj->id, 'input_id' => $InputChild->id, 'value' => $Value]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
///////////////////////////////////////////////////////////////////////////Inputs
|
||||||
|
///////////////////////////////////////////////////////////////////////////Images
|
||||||
|
if ($request->imgs != null) {
|
||||||
|
|
||||||
|
foreach ($request->imgs as $key => $img) {
|
||||||
|
$Image = $img;
|
||||||
|
$InterventionImage = Image::make($Image);
|
||||||
|
$Mime = explode('/', $InterventionImage->mime());
|
||||||
|
|
||||||
|
$ImageName = time().$key.'.'.$Mime[1];
|
||||||
|
$Path = 'uploads'.'/TestResults'.'/'.$TestResultObj->id .'/'.$ImageName;
|
||||||
|
|
||||||
|
Storage::disk('public')->makeDirectory('TestResults'.'/'.$TestResultObj->id);
|
||||||
|
$InterventionImage->save(public_path($Path));
|
||||||
|
|
||||||
|
$GalleryObj = Gallery::create(['user_id' => auth('api')->user()->id, 'path' => $Path]);
|
||||||
|
$Uploadable = Uploadable::create(['uploadable_id' => $TestResultObj->id, 'uploadable_type' => 'App\TestResult', 'gallery_id' => $GalleryObj->id, 'image_role' => 'TitleImage']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
///////////////////////////////////////////////////////////////////////////Images
|
||||||
|
|
||||||
|
});
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return response()->json($e->getMessage(), 441);
|
||||||
|
}
|
||||||
|
return \MessageResponse::success(null,trans('messages.create'));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
$TestResult = TestResult::with('input_values', 'user.medical_center', 'test_type')->select('result', 'verified', 'device_id','user_id','id', 'test_type_id', 'created_at')->findOrFail($id);
|
||||||
|
$options = [];
|
||||||
|
foreach ($TestResult->input_values as $value) {
|
||||||
|
$input = $value->input;
|
||||||
|
|
||||||
|
if ($input->parent_id != null && $input->parent['type'] == 'Form') {
|
||||||
|
//----------------------------------------------------------------------FormType
|
||||||
|
if ($input->type == 'Checkbox' || $input->type == 'Select' || $input['type'] == 'Radiobutton') {
|
||||||
|
$input_options = InputValue::with('option')->where('test_result_id', $TestResult->id)->where('input_id', $input->id)->get();
|
||||||
|
$options = [];
|
||||||
|
foreach ($input_options as $input_option) {
|
||||||
|
$options[] = $input_option->option->title;
|
||||||
|
$input_values[$input->name] = $options;
|
||||||
|
}
|
||||||
|
|
||||||
|
$children[$input->parent->name] = $input_values;
|
||||||
|
$TestResult['children'] = $children;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
$children[$input->parent->name][$input->name] = $value->value;
|
||||||
|
$TestResult['children'] = $children;
|
||||||
|
}
|
||||||
|
//-----------------------------------------------------------------------FormType
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//-----------------------------------------------------------------------Anothertype
|
||||||
|
if ($input->type == 'Checkbox' || $input->type == 'Select' || $input['type'] == 'Radiobutton') {
|
||||||
|
$input_options = InputValue::with('option')->where('test_result_id', $TestResult->id)->where('input_id', $input->id)->get();
|
||||||
|
$options = [];
|
||||||
|
foreach ($input_options as $input_option) {
|
||||||
|
$options[] = $input_option->option->title;
|
||||||
|
}
|
||||||
|
|
||||||
|
$values[$input->name] = $options;
|
||||||
|
$TestResult['options'] = $values;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$inputs[$input->name] = $value->value;
|
||||||
|
$TestResult['inputs'] = $inputs;
|
||||||
|
}
|
||||||
|
//-----------------------------------------------------------------------Anothertype
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$ImagesPath = [];
|
||||||
|
if (count($TestResult->TitleImage)) {
|
||||||
|
foreach ($TestResult->TitleImage as $Key => $TitleImage) {
|
||||||
|
$ImagesPath[] = $TitleImage->path;
|
||||||
|
}
|
||||||
|
$TestResult['imagesPath'] = $ImagesPath;
|
||||||
|
}
|
||||||
|
// dd($TestResult->test_type()->device_label);
|
||||||
|
$TestResult['device_label'] = $TestResult->test_type->device_label;
|
||||||
|
return \MessageResponse::data($TestResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit(TestResult $TestResult)
|
||||||
|
{
|
||||||
|
foreach ($TestResult->input_values as $key => $value) {
|
||||||
|
$input = $value->input;
|
||||||
|
if ($input->type == 'Checkbox' || $input->type == 'Select' || $input['type'] == 'Radiobutton') {
|
||||||
|
$input_options = InputValue::where('test_result_id', $TestResult->id)->where('input_id', $input->id)->get()->pluck('option_id')->toArray();
|
||||||
|
if ($input['type'] == 'Radiobutton') {
|
||||||
|
$TestResult[$input->name.'_'.$input->id] = $input_options[0];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$TestResult[$input->name.'_'.$input->id] = $input_options;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$TestResult[$input->name.'_'.$input->id] = $value->value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$ImagesPath = [];
|
||||||
|
if (count($TestResult->TitleImage)) {
|
||||||
|
foreach ($TestResult->TitleImage as $Key => $TitleImage) {
|
||||||
|
$ImagesPath[] = $TitleImage->path;
|
||||||
|
}
|
||||||
|
$TestResult['imagesPath'] = $ImagesPath;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$TestResult['imagesPath'] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
return \MessageResponse::data($TestResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function storage_path($path)
|
||||||
|
{
|
||||||
|
if (starts_with($path, 'uploads/')) {
|
||||||
|
$path = substr($path, 8);
|
||||||
|
}
|
||||||
|
return $path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(StoreTestResultRequest $request, TestResult $TestResult)
|
||||||
|
{
|
||||||
|
$TestResultData = [
|
||||||
|
// 'autoclave_id' => $request->autoclave_id,
|
||||||
|
'cycle_number' => $request->cycle_number,
|
||||||
|
'device_id' => $request->device_id,
|
||||||
|
'date' => $request->date,
|
||||||
|
'test_type_id' => $request->test_type_id,
|
||||||
|
'result' => $request->result,
|
||||||
|
'verified' => 'NotVerified',
|
||||||
|
];
|
||||||
|
$TestResult->update($TestResultData);
|
||||||
|
$TestResultInfo = $request->all();
|
||||||
|
|
||||||
|
$Inputs = Input::with('options', 'children', 'children.options')->whereNull('parent_id')->where('test_type_id',$request->test_type_id)->get();
|
||||||
|
|
||||||
|
foreach ($Inputs as $Input) {
|
||||||
|
if ($Input['type'] != 'Form') {
|
||||||
|
$Value = $TestResultInfo[$Input->name.'_'.$Input->id];
|
||||||
|
if ($Input['type'] == 'Checkbox' || $Input['type'] == 'Select' || $Input['type'] == 'Radiobutton') {
|
||||||
|
|
||||||
|
$InputOptions = InputValue::where('test_result_id', $TestResult->id)->where('input_id', $Input->id)->get()->each->delete();
|
||||||
|
|
||||||
|
foreach ($Input->options as $Option) {//--2
|
||||||
|
if(is_array($Value) && in_array($Option->id,$Value)){
|
||||||
|
$InputValueObj = InputValue::create(['test_result_id' => $TestResult->id, 'input_id' => $Input->id, 'option_id' => $Option->id]);
|
||||||
|
}
|
||||||
|
if ($Input['type'] == 'Radiobutton' && $Option->id == $Value) {
|
||||||
|
$InputValueObj = InputValue::create(['test_result_id' => $TestResult->id, 'input_id' => $Input->id, 'option_id' => $Option->id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$InputValueObj = InputValue::where('test_result_id', $TestResult->id)->where('input_id', $Input['id'])->update(['value' => $Value]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
foreach ($Input->children as $InputChild) {
|
||||||
|
|
||||||
|
$Value = $TestResultInfo[$InputChild->name.'_'.$InputChild->id];
|
||||||
|
|
||||||
|
if ($InputChild['type'] == 'Checkbox' || $InputChild['type'] == 'Select' || $InputChild['type'] == 'Radiobutton') {
|
||||||
|
$InputOptions = InputValue::where('test_result_id', $TestResult->id)->where('input_id', $InputChild->id)->get()->each->delete();
|
||||||
|
|
||||||
|
foreach ($InputChild->options as $Option) {//--2
|
||||||
|
if(is_array($Value) && in_array($Option->id,$Value)){
|
||||||
|
$InputValueObj = InputValue::create(['test_result_id' => $TestResult->id, 'input_id' => $InputChild->id, 'option_id' => $Option->id]);
|
||||||
|
}
|
||||||
|
if ($InputChild['type'] == 'Radiobutton' && $Option->id == $Value) {
|
||||||
|
$InputValueObj = InputValue::create(['test_result_id' => $TestResult->id, 'input_id' => $InputChild->id, 'option_id' => $Option->id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$InputValueObj = InputValue::where('test_result_id', $TestResult->id)->where('input_id', $InputChild['id'])->update(['value' => $Value]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/////////////////////////////////////////////////////////////////////Images
|
||||||
|
$images = '';
|
||||||
|
$imageExist = [];
|
||||||
|
$imagesDeleted = [];
|
||||||
|
if (count($TestResult->TitleImage))
|
||||||
|
{
|
||||||
|
$images = $TestResult->TitleImage;
|
||||||
|
foreach ($images as $key => $image) {
|
||||||
|
|
||||||
|
$imageExist[] = '/'.$image->path;
|
||||||
|
if (!in_array('/'.$image->path, $request->imgs)) {
|
||||||
|
$imagesDeleted[] = $image->path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->imgs != null) {
|
||||||
|
$request_imgs = array_diff($request->imgs, $imageExist);
|
||||||
|
|
||||||
|
foreach ($request_imgs as $key => $img) {//
|
||||||
|
|
||||||
|
if (strrpos($img, "base64") !== false) {
|
||||||
|
|
||||||
|
$Image = $img;
|
||||||
|
$InterventionImage = Image::make($Image);
|
||||||
|
$Mime = explode('/', $InterventionImage->mime());
|
||||||
|
|
||||||
|
$ImageName = time().$key.'.'.$Mime[1];
|
||||||
|
$Path = 'uploads'.'/TestResults'.'/'.$TestResult->id .'/'.$ImageName;
|
||||||
|
|
||||||
|
Storage::disk('public')->makeDirectory('TestResults'.'/'.$TestResult->id);
|
||||||
|
$InterventionImage->save(public_path($Path));
|
||||||
|
|
||||||
|
//--------------------------------------------------------
|
||||||
|
$GalleryObj = Gallery::create(['user_id' => auth('api')->user()->id, 'path' => $Path]);
|
||||||
|
$Uploadable = Uploadable::create(['uploadable_id' => $TestResult->id, 'uploadable_type' => 'App\TestResult', 'gallery_id' => $GalleryObj->id, 'image_role' => 'TitleImage']);
|
||||||
|
//--------------------------------------------------------
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($imagesDeleted)) {
|
||||||
|
foreach ($imagesDeleted as $key => $imageDeleted) {
|
||||||
|
$Gallery = Gallery::where('path', $imageDeleted)->first();
|
||||||
|
if ($Gallery) {
|
||||||
|
Storage::disk('public')->delete(static::storage_path($imageDeleted));
|
||||||
|
Uploadable::where('gallery_id', $Gallery->id)->where('uploadable_id', $TestResult->id)->where('uploadable_type', get_class($TestResult))->delete();
|
||||||
|
$Gallery->delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return \MessageResponse::success(null,trans('messages.update'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy(TestResult $TestResult)
|
||||||
|
{
|
||||||
|
if (!auth('api')->user()->can('delete', $TestResult)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
if (count($TestResult->input_values)) {
|
||||||
|
InputValue::where('test_result_id', $TestResult->id)->get()->each->delete();
|
||||||
|
}
|
||||||
|
if (count($TestResult->TitleImage)){
|
||||||
|
foreach ($TestResult->TitleImage as $image) {
|
||||||
|
Storage::disk('public')->delete(static::storage_path($image->path));
|
||||||
|
Uploadable::where('gallery_id', $image->id)->where('uploadable_id', $TestResult->id)->where('uploadable_type', get_class($TestResult))->delete();
|
||||||
|
Gallery::where('id', $image->id)->delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$TestResult->delete();
|
||||||
|
return \MessageResponse::success(null, trans('messages.success'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyTestResult(TestResult $TestResult)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('verifyTestResult', $TestResult)) {
|
||||||
|
return \MessageResponse::error(trans('You dont have permission or this test result belongs to another medical center'));
|
||||||
|
}
|
||||||
|
if ($TestResult->verified == 'Verified') {
|
||||||
|
$TestResult->verified = 'NotVerified';
|
||||||
|
} else {
|
||||||
|
$TestResult->verified = 'Verified';
|
||||||
|
}
|
||||||
|
$TestResult->save();
|
||||||
|
$TestResult = $TestResult->load('user.medical_center');
|
||||||
|
return \MessageResponse::success(trans('messages.success'), null, $TestResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function listFilterItems()
|
||||||
|
{
|
||||||
|
$user = auth('api')->user();
|
||||||
|
$MedicalCenter = MedicalCenter::when(!$user->hasRole('Admin'), function ($query) use ($user)
|
||||||
|
{
|
||||||
|
$query->where('id', $user->medical_center_id);
|
||||||
|
})->select('name', 'id')->get()->toArray();
|
||||||
|
$TestType = TestType::select('name', 'id')->get()->toArray();
|
||||||
|
return \MessageResponse::data([
|
||||||
|
'MedicalCenters' => $MedicalCenter,
|
||||||
|
'TestTypes' => $TestType
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function chart(Request $request)
|
||||||
|
{
|
||||||
|
$user = auth('api')->user();
|
||||||
|
if ($user->hasRole('User')) {
|
||||||
|
$userId = $user->id;
|
||||||
|
} elseif($request->has('userId') && $request->userId) {
|
||||||
|
$userId = $request->userId;
|
||||||
|
} else {
|
||||||
|
$userId = null;
|
||||||
|
}
|
||||||
|
if ($user->hasRole('Admin') && $request->has('medicalCenterId') && $request->medicalCenterId) {
|
||||||
|
$medicalCenterId = $request->medicalCenterId;
|
||||||
|
} else {
|
||||||
|
$medicalCenterId = $user->medical_center_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$TestResults = TestResult::
|
||||||
|
when($userId, function ($query) use ($userId)
|
||||||
|
{
|
||||||
|
$query->where('user_id', $userId);
|
||||||
|
})
|
||||||
|
->when($medicalCenterId, function ($query) use ($medicalCenterId)
|
||||||
|
{
|
||||||
|
$query->whereHas('user', function($query) use ($medicalCenterId) {
|
||||||
|
$query->where('medical_center_id', $medicalCenterId);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
->when($request->has('testTypeId') && $request->testTypeId, function ($query) use ($request)
|
||||||
|
{
|
||||||
|
$query->where('test_type_id', $request->testTypeId);
|
||||||
|
})
|
||||||
|
->when($request->has('result') && $request->result, function ($query) use ($request)
|
||||||
|
{
|
||||||
|
$query->where('result', $request->result);
|
||||||
|
})
|
||||||
|
->when(($request->has('fromPicker') && $request->fromPicker) || ($request->has('upToPicker') && $request->upToPicker), function ($query) use ($request)
|
||||||
|
{
|
||||||
|
$from = ($request->fromPicker) ? date($request->fromPicker . ' 00:00:00') : date('2010-01-01' . ' 00:00:00');
|
||||||
|
$upTo = ($request->upToPicker) ? date($request->upToPicker . ' 23:59:59') : date('Y-m-d' . ' 23:59:59');
|
||||||
|
return $query->whereBetween('created_at', [$from, $upTo]);
|
||||||
|
})
|
||||||
|
->when($request->has('verify') && $request->verify, function ($query) use ($request)
|
||||||
|
{
|
||||||
|
$query->where('verified', $request->verify);
|
||||||
|
})->select('result')->get()->groupBy('result');
|
||||||
|
$AcceptCount = (isset($TestResults['Accept'])) ? $TestResults['Accept']->count() : 0;
|
||||||
|
$RejectCount = (isset($TestResults['Reject'])) ? $TestResults['Reject']->count() : 0;
|
||||||
|
|
||||||
|
|
||||||
|
return \MessageResponse::data(['labels' => ['Number Of Accepted Test Results', 'Number Of Rejected Test Results'], 'data' => [$AcceptCount,$RejectCount]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------Show
|
||||||
|
public function showTestResult($id)
|
||||||
|
{
|
||||||
|
return view('ShowTestResult', compact('id'));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,422 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\TestType;
|
||||||
|
use App\TestResult;
|
||||||
|
use App\Input;
|
||||||
|
use App\Option;
|
||||||
|
use App\Http\Requests\StoreTestTypeRequest;
|
||||||
|
use \Milon\Barcode\DNS1D;
|
||||||
|
use \Milon\Barcode\DNS2D;
|
||||||
|
|
||||||
|
class TestTypeController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
if (!auth('api')->user()->can('list', TestType::class)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
$TestTypes = TestType::when($request->has('name') && $request->name, function($query) use($request){
|
||||||
|
$query->where('name', 'LIKE', '%'.$request->name.'%');
|
||||||
|
})
|
||||||
|
->when(($request->has('fromPicker') && $request->fromPicker) || ($request->has('upToPicker') && $request->upToPicker), function ($query) use ($request)
|
||||||
|
{
|
||||||
|
$from = ($request->fromPicker) ? date($request->fromPicker . ' 00:00:00') : date('2010-01-01' . ' 00:00:00');
|
||||||
|
$upTo = ($request->upToPicker) ? date($request->upToPicker . ' 23:59:59') : date('Y-m-d' . ' 23:59:59');
|
||||||
|
return $query->whereBetween('created_at', [$from, $upTo]);
|
||||||
|
})
|
||||||
|
->when($request->has('unique_id') && $request->unique_id, function($query) use($request){
|
||||||
|
$query->where('unique_code', $request->unique_id);
|
||||||
|
})
|
||||||
|
->when($request->has('user_name') && $request->user_name, function($query) use($request){
|
||||||
|
$query->whereHas('user', function($query) use($request){
|
||||||
|
$query->where('name', 'LIKE', '%'.$request->user_name.'%');
|
||||||
|
});
|
||||||
|
})
|
||||||
|
->withCount('test_results')->with('user','user.medical_center')->paginate(10);
|
||||||
|
return \MessageResponse::data($TestTypes);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function generateBarcode(TestType $TestType)
|
||||||
|
{
|
||||||
|
if (!auth('api')->user()->can('generateBarcode', $TestType)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
$Number = $TestType->unique_code;
|
||||||
|
$Barcode = DNS1D::getBarcodePNGUri($Number, "C128");
|
||||||
|
$QRCode = DNS2D::getBarcodePNGUri($Number, "QRCODE");
|
||||||
|
$TestType->update(['bar_code' => $Barcode]);
|
||||||
|
return \MessageResponse::data(['Barcode' => $Barcode, 'QRCode' => $QRCode]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/////////////////////// Store TestType /////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
public function CreateInput($Input,$TestType,$ParentID = null)
|
||||||
|
{
|
||||||
|
//---------------------------------------------Input
|
||||||
|
$InputData = [
|
||||||
|
'name' => $Input['name'],
|
||||||
|
'type' => $Input['type'],
|
||||||
|
'size' => $Input['size'],
|
||||||
|
'test_type_id' => $TestType->id,
|
||||||
|
'parent_id' => $ParentID
|
||||||
|
];
|
||||||
|
$InputObj = Input::create($InputData);
|
||||||
|
//---------------------------------------------Input
|
||||||
|
//---------------------------------------------Option
|
||||||
|
if ($Input['type'] == 'Checkbox' || $Input['type'] == 'Select' || $Input['type'] == 'Radiobutton' || $Input['type'] == 'Range') {
|
||||||
|
foreach ($Input['options'] as $Option) {
|
||||||
|
$Option = Option::create(['title' => $Option['title'] , 'input_id' => $InputObj->id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//---------------------------------------------Option
|
||||||
|
return $InputObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function CreateChildForm($Input,$TestType,$InputObj)
|
||||||
|
{
|
||||||
|
if (isset($Input['children'])) {
|
||||||
|
foreach ($Input['children'] as $InputChild) {
|
||||||
|
$InputChildObj = $this->CreateInput($InputChild,$TestType,$InputObj->id);
|
||||||
|
if (isset($InputChild['children'])) {
|
||||||
|
$this->CreateChildForm($InputChild,$TestType,$InputChildObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(StoreTestTypeRequest $request)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$return_value = \DB::transaction(function () use ($request) {
|
||||||
|
|
||||||
|
$TestType = [
|
||||||
|
'name' => $request['name'],
|
||||||
|
'unique_code' => $request['unique_code'],
|
||||||
|
'device_label' => $request['device_label'],
|
||||||
|
'user_id' => auth('api')->user()->id
|
||||||
|
];
|
||||||
|
|
||||||
|
$TestType = TestType::create($TestType);
|
||||||
|
$TestTypeInfo = $request['info'];
|
||||||
|
|
||||||
|
foreach ($TestTypeInfo as $Input) {
|
||||||
|
|
||||||
|
$InputObj = $this->CreateInput($Input,$TestType);
|
||||||
|
|
||||||
|
if ($Input['type'] == 'Form') {
|
||||||
|
$this->CreateChildForm($Input,$TestType,$InputObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return response()->json($e->getMessage(), 441);
|
||||||
|
}
|
||||||
|
return \MessageResponse::success(null,trans('messages.create'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/////////////////////// Edit TestType ///////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
public function CreateInputInfo($Input)
|
||||||
|
{
|
||||||
|
$Options = [];
|
||||||
|
//------------------------------------------------------Input
|
||||||
|
$InputInfo = [
|
||||||
|
'id' => $Input->id,
|
||||||
|
'name' => $Input->name,
|
||||||
|
'type' => $Input->type,
|
||||||
|
'size' => $Input->size ,
|
||||||
|
'parent_id' => $Input->parent_id,
|
||||||
|
'options' => [],
|
||||||
|
'children' => []
|
||||||
|
];
|
||||||
|
//------------------------------------------------------Input
|
||||||
|
//------------------------------------------------------Option
|
||||||
|
if ($Input['type'] == 'Checkbox' || $Input['type'] == 'Select' || $Input['type'] == 'Radiobutton' || $Input['type'] == 'Range') {
|
||||||
|
|
||||||
|
foreach ($Input['options'] as $Option) {
|
||||||
|
$OptionInfo = [
|
||||||
|
'id' => $Option->id ,
|
||||||
|
'title' => $Option->title
|
||||||
|
];
|
||||||
|
$Options[] = $OptionInfo;
|
||||||
|
}
|
||||||
|
$InputInfo['options'] = $Options;
|
||||||
|
}
|
||||||
|
//------------------------------------------------------Option
|
||||||
|
return $InputInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function CreateChildFormInfo($Input,$InputInfo)
|
||||||
|
{
|
||||||
|
$Children = [];
|
||||||
|
foreach ($Input['children'] as $InputChild) {
|
||||||
|
|
||||||
|
$ChildInfo = $this->CreateInputInfo($InputChild);
|
||||||
|
$Children[] = $ChildInfo;
|
||||||
|
if ($InputChild['type'] == 'Form') {
|
||||||
|
$this->CreateChildFormInfo($InputChild,$ChildInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $Children;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit(TestType $TestType)
|
||||||
|
{
|
||||||
|
if (count($TestType->test_results) > 0) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
$Inputs = Input::with('children','options','children.options')->where('test_type_id',$TestType->id)->where('parent_id',null)->get();
|
||||||
|
|
||||||
|
$Info = [];
|
||||||
|
$Options = [];
|
||||||
|
$Children = [];
|
||||||
|
|
||||||
|
foreach ($Inputs as $Input) {
|
||||||
|
|
||||||
|
$InputInfo = $this->CreateInputInfo($Input);
|
||||||
|
|
||||||
|
if ($Input['type'] == 'Form') {
|
||||||
|
$Children = $this->CreateChildFormInfo($Input,$InputInfo);
|
||||||
|
$InputInfo['children'] = $Children;
|
||||||
|
}
|
||||||
|
$Info[] = $InputInfo;
|
||||||
|
}
|
||||||
|
$TestTypeInfo = [
|
||||||
|
'id' => $TestType->id,
|
||||||
|
'name' => $TestType->name,
|
||||||
|
'unique_code' => $TestType->unique_code,
|
||||||
|
'device_label' => $TestType->device_label,
|
||||||
|
'info' => $Info,
|
||||||
|
];
|
||||||
|
return \MessageResponse::data($TestTypeInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/////////////////////// Update TestType /////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
public function UpdateInput($Input,$TestType,$ParentID = null)
|
||||||
|
{
|
||||||
|
//---------------------------------------------Input
|
||||||
|
$InputData = [
|
||||||
|
'name' => $Input['name'],
|
||||||
|
'type' => $Input['type'],
|
||||||
|
'size' => $Input['size'],
|
||||||
|
'test_type_id' => $TestType->id,
|
||||||
|
'parent_id' => $ParentID
|
||||||
|
];
|
||||||
|
Input::where('id',$Input['id'])->update($InputData);
|
||||||
|
$InputObj = Input::findOrFail($Input['id']);
|
||||||
|
//---------------------------------------------Input
|
||||||
|
//---------------------------------------------Option
|
||||||
|
if ($Input['type'] == 'Checkbox' || $Input['type'] == 'Select' || $Input['type'] == 'Radiobutton' || $Input['type'] == 'Range') {
|
||||||
|
|
||||||
|
|
||||||
|
//**************************
|
||||||
|
$DeletedOptionIDs = $InputObj->options->pluck('id')->toArray();
|
||||||
|
//**************************
|
||||||
|
|
||||||
|
foreach ($Input['options'] as $Option) {
|
||||||
|
if ($Option['id'] == 0) {//--new
|
||||||
|
$Option = Option::create(['title' => $Option['title'] , 'input_id' => $Input['id'] ]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//**************************
|
||||||
|
if(in_array($Option['id'],$DeletedOptionIDs)){
|
||||||
|
foreach ($DeletedOptionIDs as $index=>$DeletedOptionID){
|
||||||
|
if($DeletedOptionID == $Option['id']){
|
||||||
|
unset($DeletedOptionIDs[$index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//****************************
|
||||||
|
$Option = Option::where('id', $Option['id'])->update(['title' => $Option['title'] ]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//**************************
|
||||||
|
foreach ($DeletedOptionIDs as $DeletedOptionID){
|
||||||
|
$DeletedOption = Option::findOrFail($DeletedOptionID);
|
||||||
|
$DeletedOption->delete();
|
||||||
|
}
|
||||||
|
//**************************
|
||||||
|
}
|
||||||
|
//---------------------------------------------Option
|
||||||
|
return $Input;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function UpdateChildForm($Input,$TestType,$InputObj)
|
||||||
|
{
|
||||||
|
//**********************************
|
||||||
|
$InputObject = Input::findOrFail($InputObj['id']);//$InputObj['id'] OR $Input['id']???????
|
||||||
|
// dd($InputObject);
|
||||||
|
$DeletedChildIDs = $InputObject->children->pluck('id')->toArray();
|
||||||
|
//**********************************
|
||||||
|
|
||||||
|
if (isset($Input['children'])) {
|
||||||
|
foreach ($Input['children'] as $InputChild) {
|
||||||
|
if ($InputChild['id'] == 0) {//--newChild
|
||||||
|
|
||||||
|
$InputChildObj = $this->CreateInput($InputChild,$TestType,$InputObj['id']);
|
||||||
|
if (isset($InputChild['children'])) {
|
||||||
|
$this->CreateChildForm($InputChild,$TestType,$InputChildObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//******************************
|
||||||
|
if(in_array($InputChild['id'],$DeletedChildIDs)){
|
||||||
|
foreach ($DeletedChildIDs as $index=>$DeletedChildID){
|
||||||
|
if($DeletedChildID == $InputChild['id']){
|
||||||
|
unset($DeletedChildIDs[$index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//******************************
|
||||||
|
$InputChildObj = $this->UpdateInput($InputChild,$TestType,$InputObj['id']);
|
||||||
|
if (isset($InputChild['children'])) {
|
||||||
|
$this->UpdateChildForm($InputChild,$TestType,$InputChildObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//*****************************
|
||||||
|
foreach ($DeletedChildIDs as $DeletedChildID){
|
||||||
|
$DeletedChild = Input::findOrFail($DeletedChildID);
|
||||||
|
$DeletedChild->options()->delete();
|
||||||
|
foreach ($DeletedChild->children as $DeletedChild1) {
|
||||||
|
$DeletedChild1->options()->delete();
|
||||||
|
$DeletedChild1->delete();
|
||||||
|
}
|
||||||
|
// $DeletedChild->children()->delete();
|
||||||
|
$DeletedChild->delete();
|
||||||
|
}
|
||||||
|
//*****************************
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(StoreTestTypeRequest $request, TestType $TestType)
|
||||||
|
{
|
||||||
|
$TestTypeData = [
|
||||||
|
'name' => $request['name'],
|
||||||
|
'unique_code' => $request['unique_code'],
|
||||||
|
'device_label' => $request['device_label'],
|
||||||
|
];
|
||||||
|
$TestType->update($TestTypeData);
|
||||||
|
$TestTypeInfo = $request['info'];
|
||||||
|
$DeletedInputIDs = $TestType->inputs->where('parent_id',null)->pluck('id')->toArray();
|
||||||
|
|
||||||
|
foreach ($TestTypeInfo as $Input) {
|
||||||
|
if ($Input['id'] == 0) {//--new
|
||||||
|
$InputObj = $this->CreateInput($Input,$TestType);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//**************************
|
||||||
|
if(in_array($Input['id'],$DeletedInputIDs)){
|
||||||
|
foreach ($DeletedInputIDs as $index=>$DeletedInputID){
|
||||||
|
if($DeletedInputID == $Input['id']){
|
||||||
|
unset($DeletedInputIDs[$index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//****************************
|
||||||
|
$InputObj = $this->UpdateInput($Input,$TestType);
|
||||||
|
}
|
||||||
|
if ($Input['type'] == 'Form') {
|
||||||
|
$this->UpdateChildForm($Input,$TestType,$InputObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//******************************
|
||||||
|
foreach ($DeletedInputIDs as $DeletedInputID){
|
||||||
|
$DeletedInput = Input::findOrFail($DeletedInputID);
|
||||||
|
$DeletedInput->options()->delete();
|
||||||
|
foreach ($DeletedInput->children as $DeletedInput1) {
|
||||||
|
$DeletedInput1->options()->delete();
|
||||||
|
$DeletedInput1->delete();
|
||||||
|
}
|
||||||
|
// $DeletedInput->children()->delete();
|
||||||
|
$DeletedInput->delete();
|
||||||
|
}
|
||||||
|
//******************************
|
||||||
|
|
||||||
|
return \MessageResponse::success(null,trans('messages.update'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
public function getInputs(Request $request)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->can('getInputs')) {
|
||||||
|
return \MessageResponse::error(trans('messages.failed'));
|
||||||
|
}
|
||||||
|
if($request->test_result_id !== '') {
|
||||||
|
$testTypeId = TestResult::find($request->test_result_id);
|
||||||
|
}
|
||||||
|
if (isset($testTypeId) && $testTypeId) {
|
||||||
|
$testType = TestType::select('id', 'name', 'unique_code', 'device_label')->find($testTypeId->test_type_id);
|
||||||
|
} else {
|
||||||
|
$testType = TestType::where('name', $request->name)->orWhere('unique_code', $request->unique_code)->select('id', 'name', 'unique_code', 'device_label')->first();
|
||||||
|
}
|
||||||
|
if (isset($testType) && $testType) {
|
||||||
|
|
||||||
|
$inputs = Input::select('id', 'name', 'type', 'size', 'parent_id')->with(
|
||||||
|
['options' => function ($query) {
|
||||||
|
$query->select('id', 'title','input_id');
|
||||||
|
},
|
||||||
|
'children' => function ($query) {
|
||||||
|
$query->select('id', 'name', 'type', 'size', 'parent_id', 'test_type_id');
|
||||||
|
},
|
||||||
|
'children.options' => function ($query) {
|
||||||
|
$query->select('id', 'title', 'input_id');
|
||||||
|
}]
|
||||||
|
)->whereNull('parent_id')->where('test_type_id',$testType->id)->get();
|
||||||
|
|
||||||
|
return \MessageResponse::data(['testType' => $testType, 'inputs' => $inputs]);
|
||||||
|
}
|
||||||
|
return \MessageResponse::error();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function listNames()
|
||||||
|
{
|
||||||
|
$testType = TestType::pluck('name');
|
||||||
|
return \MessageResponse::data($testType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy(TestType $TestType)
|
||||||
|
{
|
||||||
|
if (!auth('api')->user()->can('delete', $TestType)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
$TestType->delete();
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
// public function AllTestTypes()
|
||||||
|
// {
|
||||||
|
// $testTypes = TestType::pluck('id', 'name');
|
||||||
|
// return \MessageResponse::data($testTypes);
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,200 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
use App\Http\Requests\StoreUserRequest;
|
||||||
|
use App\MedicalCenter;
|
||||||
|
use App\User;
|
||||||
|
use App\Message;
|
||||||
|
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$user = auth('api')->user();
|
||||||
|
if ($user->cant('list', User::class)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->hasRole('Supervisor')) {
|
||||||
|
$medical_center_id = $user->medical_center_id;
|
||||||
|
}
|
||||||
|
elseif($request->has('medicalCenter_id') && $request->medicalCenter_id) {
|
||||||
|
$medical_center_id = $request->medical_center_id;
|
||||||
|
} else {
|
||||||
|
$medical_center_id = null;
|
||||||
|
}
|
||||||
|
$Users = User::when($request->has('name') && $request->name, function($query) use($request){
|
||||||
|
$query->where('name', 'LIKE', '%'.$request->name.'%');
|
||||||
|
})
|
||||||
|
->when(($request->has('fromPicker') && $request->fromPicker) || ($request->has('upToPicker') && $request->upToPicker), function ($query) use ($request)
|
||||||
|
{
|
||||||
|
$from = ($request->fromPicker) ? date($request->fromPicker . ' 00:00:00') : date('2010-01-01' . ' 00:00:00');
|
||||||
|
$upTo = ($request->upToPicker) ? date($request->upToPicker . ' 23:59:59') : date('Y-m-d' . ' 23:59:59');
|
||||||
|
return $query->whereBetween('created_at', [$from, $upTo]);
|
||||||
|
})
|
||||||
|
->when($request->has('cell_number') && $request->cell_number, function($query) use($request){
|
||||||
|
$query->where('cell_number', 'LIKE', '%'.$request->cell_number.'%');
|
||||||
|
})
|
||||||
|
->when($request->has('role') && $request->role, function($query) use($request){
|
||||||
|
$query->role($request->role);
|
||||||
|
})
|
||||||
|
->when($medical_center_id, function($query) use ($medical_center_id){
|
||||||
|
$query->where('medical_center_id', $medical_center_id);
|
||||||
|
})
|
||||||
|
->with(['medical_center', 'roles'])->paginate(10);
|
||||||
|
return \MessageResponse::data($Users);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(StoreUserRequest $request)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('store', User::class)) {
|
||||||
|
return \MessageResponse::error(trans('messages.failed'));
|
||||||
|
}
|
||||||
|
$UserData = [
|
||||||
|
'name' => $request->name ,
|
||||||
|
'cell_number' => $request->cell_number ,
|
||||||
|
'medical_center_id' => $request->medical_center_id ,
|
||||||
|
'status' => 'PreRegister',
|
||||||
|
'verified' => 1,
|
||||||
|
'password' => bcrypt($request->password),
|
||||||
|
];
|
||||||
|
User::create($UserData);
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit(User $User)
|
||||||
|
{
|
||||||
|
return \MessageResponse::data($User);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(StoreUserRequest $request, User $User)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('update', $User)) {
|
||||||
|
return \MessageResponse::error(trans('messages.failed'));
|
||||||
|
}
|
||||||
|
$UserData = [
|
||||||
|
'name' => $request->name ,
|
||||||
|
'cell_number' => $request->cell_number ,
|
||||||
|
'medical_center_id' => $request->medical_center_id ,
|
||||||
|
'status' => 'PreRegister',
|
||||||
|
'verified' => 1,
|
||||||
|
'password' => bcrypt($request->password),
|
||||||
|
];
|
||||||
|
$User->update($UserData);
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy(User $User)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('delete', $User)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
$User->delete();
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getByMedicalCenter(MedicalCenter $MedicalCenter)
|
||||||
|
{
|
||||||
|
$user = auth('api')->user();
|
||||||
|
if (auth('api')->user()->cant('getByMedicalCenter', $MedicalCenter)) {
|
||||||
|
return \MessageResponse::error(trans('messages.failed'));
|
||||||
|
}
|
||||||
|
$MedicalCenter = $MedicalCenter->load(['users' => function ($query) use ($user) {
|
||||||
|
if ($user->hasRole('User')) {
|
||||||
|
return $query->select(['id', 'medical_center_id', 'name', 'cell_number', 'status'])->where('id', $user->id);
|
||||||
|
} else {
|
||||||
|
return $query->select(['id', 'medical_center_id', 'name', 'cell_number', 'status']);
|
||||||
|
}
|
||||||
|
}, 'users.roles']);
|
||||||
|
return \MessageResponse::data($MedicalCenter);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function changeStatus(User $User)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('changeStatus', User::class)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
if ($User->status == 'Active') {
|
||||||
|
$User->status = 'Suspended';
|
||||||
|
$tokens = \DB::table('oauth_access_tokens')->where('user_id', $User->id);
|
||||||
|
foreach($tokens->get() as $token) {
|
||||||
|
\DB::table('oauth_refresh_tokens')->where('access_token_id', $token->id)->delete();
|
||||||
|
}
|
||||||
|
$tokens->delete();
|
||||||
|
} else {
|
||||||
|
$User->status = 'Active';
|
||||||
|
}
|
||||||
|
$User->save();
|
||||||
|
return \MessageResponse::data($User);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function changeRole(User $User, Request $request)
|
||||||
|
{
|
||||||
|
if (auth('api')->user()->cant('changeRole', User::class)) {
|
||||||
|
return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
}
|
||||||
|
$User->syncRoles($request->roles);
|
||||||
|
return \MessageResponse::data($User);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateInfo(Request $request)
|
||||||
|
{
|
||||||
|
auth('api')->user()->update($request->all());
|
||||||
|
return \MessageResponse::success(trans('messages.success'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getInfo()
|
||||||
|
{
|
||||||
|
$user = auth('api')->user();
|
||||||
|
$user->load('medical_center');
|
||||||
|
return \MessageResponse::data([ 'user' => $user, 'roles' => auth('api')->user()->getRoleNames() ]);
|
||||||
|
}
|
||||||
|
public function getMessages()
|
||||||
|
{
|
||||||
|
$User = auth('api')->user();
|
||||||
|
// $ReceivedMessages = $User->messagesReceived;
|
||||||
|
// $SentMessages = $User->messagesSent;
|
||||||
|
$SentMessages = Message::with('recipient_user')->where('sender_user_id', $User->id)->get();
|
||||||
|
$ReceivedMessages = Message::with('sender_user')->where('recipient_user_id', $User->id)->get();
|
||||||
|
|
||||||
|
return \MessageResponse::data(['ReceivedMessages' => $ReceivedMessages, 'SentMessages' => $SentMessages]);
|
||||||
|
}
|
||||||
|
public function searchUser(Request $request)
|
||||||
|
{
|
||||||
|
// if (auth('api')->user()->cant('searchUser', User::class)) {
|
||||||
|
// return \MessageResponse::error(trans('messages.access_denied'));
|
||||||
|
// }
|
||||||
|
$role = null;
|
||||||
|
$medical_center_id = null;
|
||||||
|
|
||||||
|
$User = auth('api')->user();
|
||||||
|
if ($User->hasRole('Supervisor') || $User->hasRole('User')) {
|
||||||
|
$medical_center_id = $User->medical_center_id;
|
||||||
|
if ($User->hasRole('Supervisor')){
|
||||||
|
$role = 'Admin';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$users = User::where('id', '<>', $User->id)->select('id', 'name')->where('name', 'LIKE', '%'.$request->name.'%')
|
||||||
|
->when($medical_center_id, function($query) use ($medical_center_id){
|
||||||
|
$query->where('medical_center_id', $medical_center_id);
|
||||||
|
})
|
||||||
|
->when($role, function($query) use($role){
|
||||||
|
$query->role($role);
|
||||||
|
})
|
||||||
|
->get();
|
||||||
|
return \MessageResponse::data($users);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -19,6 +19,7 @@ class Kernel extends HttpKernel
|
|||||||
\App\Http\Middleware\TrimStrings::class,
|
\App\Http\Middleware\TrimStrings::class,
|
||||||
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
||||||
\App\Http\Middleware\TrustProxies::class,
|
\App\Http\Middleware\TrustProxies::class,
|
||||||
|
\App\Http\Middleware\Cors::class,
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php // /app/Http/Middleware/Cors.php
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
use Closure;
|
||||||
|
class Cors {
|
||||||
|
|
||||||
|
|
||||||
|
public function handle($request, Closure $next)
|
||||||
|
{
|
||||||
|
/* @var $response Response */
|
||||||
|
$response = $next($request)
|
||||||
|
->header('Access-Control-Allow-Origin', '*')
|
||||||
|
->header('Access-Control-Allow-credentials', true)
|
||||||
|
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
|
||||||
|
if (!$request->isMethod('OPTIONS')) {
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
$allow = $response->headers->get('Allow'); // true list of allowed methods
|
||||||
|
if (!$allow) {
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
$headers = [
|
||||||
|
'Access-Control-Allow-Methods' => $allow,
|
||||||
|
'Access-Control-Max-Age' => 3600,
|
||||||
|
'Access-Control-Allow-Headers' => 'X-Requested-With, Origin, X-Csrftoken, Content-Type, Accept',
|
||||||
|
];
|
||||||
|
return $response->withHeaders($headers);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -19,6 +19,6 @@ class VerifyCsrfToken extends Middleware
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $except = [
|
protected $except = [
|
||||||
//
|
'api/*'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use App\Cycle;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
|
||||||
|
|
||||||
|
class StoreCycleRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
if ($this->method() == 'POST') {
|
||||||
|
return auth('api')->check() && auth('api')->user()->can('store', Cycle::class);
|
||||||
|
} else {
|
||||||
|
$Cycle = $this->route('Cycle');
|
||||||
|
return auth('api')->check() && $Cycle && auth('api')->user()->can('update', $Cycle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
switch ($this->method()) {
|
||||||
|
case 'POST': {
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:cycles',
|
||||||
|
'date' => 'required',
|
||||||
|
'sterilizer_id' => 'required',
|
||||||
|
'cycle_number' => 'required',
|
||||||
|
'note' => 'nullable',
|
||||||
|
'packs' => 'required',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'PUT':
|
||||||
|
case 'PATCH': {
|
||||||
|
$Cycle = $this->route('Cycle');
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:cycles,id,'.$Cycle->id,
|
||||||
|
'date' => 'required',
|
||||||
|
'sterilizer_id' => 'required',
|
||||||
|
'cycle_number' => 'required',
|
||||||
|
'note' => 'nullable',
|
||||||
|
'packs' => 'required',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use App\Item;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
|
||||||
|
|
||||||
|
class StoreItemRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
if ($this->method() == 'POST') {
|
||||||
|
return auth('api')->check() && auth('api')->user()->can('store', Item::class);
|
||||||
|
} else {
|
||||||
|
$Item = $this->route('Item');
|
||||||
|
return auth('api')->check() && $Item && auth('api')->user()->can('update', $Item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
switch ($this->method()) {
|
||||||
|
case 'POST': {
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:items',
|
||||||
|
'unique_id' => 'required|max:100|unique:items',
|
||||||
|
'size' => 'required',
|
||||||
|
'specific' => 'required',
|
||||||
|
'note' => 'nullable',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'PUT':
|
||||||
|
case 'PATCH': {
|
||||||
|
$Item = $this->route('Item');
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:items,id,'.$Item->id,
|
||||||
|
'unique_id' => 'required|max:100|unique:items,id,'.$Item->id,
|
||||||
|
'size' => 'required',
|
||||||
|
'specific' => 'required',
|
||||||
|
'note' => 'nullable',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use App\MedicalCenter;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
|
||||||
|
|
||||||
|
class StoreMedicalCenterRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
if ($this->method() == 'POST') {
|
||||||
|
return auth('api')->check() && auth('api')->user()->can('store', MedicalCenter::class);
|
||||||
|
} else {
|
||||||
|
$MedicalCenter = $this->route('MedicalCenter');
|
||||||
|
return auth('api')->check() && $MedicalCenter && auth('api')->user()->can('update', $MedicalCenter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
switch ($this->method()) {
|
||||||
|
case 'POST': {
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:medical_centers',
|
||||||
|
// 'operatores.*.name'=>'required|string|max:255',
|
||||||
|
// 'operatores.*.cell_number'=>'required|digits_between:10,11|unique:users',
|
||||||
|
// 'operatores.*.password'=>'required|string|min:6',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'PUT':
|
||||||
|
case 'PATCH': {
|
||||||
|
$MedicalCenter = $this->route('MedicalCenter');
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:medical_centers,id,'.$MedicalCenter->id,
|
||||||
|
// 'operatores.*.name'=>'required|string|max:255',
|
||||||
|
// 'operatores.*.cell_number'=>'required|digits_between:10,11|unique:users',
|
||||||
|
// 'operatores.*.password'=>'required|string|min:6',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use App\Message;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
|
||||||
|
|
||||||
|
class StoreMessageRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
if ($this->method() == 'POST') {
|
||||||
|
return auth('api')->check() && auth('api')->user()->can('store', Message::class);
|
||||||
|
} else {
|
||||||
|
$Message = $this->route('Message');
|
||||||
|
return auth('api')->check() && $Message && auth('api')->user()->can('update', $Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
switch ($this->method()) {
|
||||||
|
case 'POST': {
|
||||||
|
return [
|
||||||
|
'title' => 'nullable',
|
||||||
|
'message' => 'required',
|
||||||
|
'user_id' => 'required',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'PUT':
|
||||||
|
case 'PATCH': {
|
||||||
|
$Message = $this->route('Message');
|
||||||
|
return [
|
||||||
|
'title' => 'nullable',
|
||||||
|
'message' => 'required',
|
||||||
|
'user_id' => 'required',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use App\Pack;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
|
||||||
|
|
||||||
|
class StorePackRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
if ($this->method() == 'POST') {
|
||||||
|
return auth('api')->check() && auth('api')->user()->can('store', Pack::class);
|
||||||
|
} else {
|
||||||
|
$Pack = $this->route('Pack');
|
||||||
|
return auth('api')->check() && $Pack && auth('api')->user()->can('update', $Pack);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
switch ($this->method()) {
|
||||||
|
case 'POST': {
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:packs',
|
||||||
|
'sterile_date' => 'required',
|
||||||
|
'expire_date' => 'required',
|
||||||
|
'sterilizer_id' => 'required',
|
||||||
|
'cycle_number' => 'required',
|
||||||
|
'lot_number' => 'required',
|
||||||
|
'department' => 'required',
|
||||||
|
'note' => 'nullable',
|
||||||
|
'packages' => 'required',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'PUT':
|
||||||
|
case 'PATCH': {
|
||||||
|
$Pack = $this->route('Pack');
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:packs,id,'.$Pack->id,
|
||||||
|
'sterile_date' => 'required',
|
||||||
|
'expire_date' => 'required',
|
||||||
|
'sterilizer_id' => 'required',
|
||||||
|
'cycle_number' => 'required',
|
||||||
|
'lot_number' => 'required',
|
||||||
|
'department' => 'required',
|
||||||
|
'note' => 'nullable',
|
||||||
|
'packages' => 'required',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use App\Package;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
|
||||||
|
|
||||||
|
class StorePackageRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
if ($this->method() == 'POST') {
|
||||||
|
return auth('api')->check() && auth('api')->user()->can('store', Package::class);
|
||||||
|
} else {
|
||||||
|
$Package = $this->route('Package');
|
||||||
|
return auth('api')->check() && $Package && auth('api')->user()->can('update', $Package);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
switch ($this->method()) {
|
||||||
|
case 'POST': {
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:packages',
|
||||||
|
'note' => 'nullable',
|
||||||
|
'items' => 'required',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'PUT':
|
||||||
|
case 'PATCH': {
|
||||||
|
$Package = $this->route('Package');
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:packages,id,'.$Package->id,
|
||||||
|
'unique_id' => 'required|max:100|unique:packages,id,'.$Package->id,
|
||||||
|
'note' => 'nullable',
|
||||||
|
'items' => 'required',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use App\TestResult;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
|
||||||
|
|
||||||
|
class StoreTestResultRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
if ($this->method() == 'POST') {
|
||||||
|
return auth('api')->check() && auth('api')->user()->can('store', TestResult::class);
|
||||||
|
} else {
|
||||||
|
$TestResult = $this->route('TestResult');
|
||||||
|
return auth('api')->check() && $TestResult && auth('api')->user()->can('update', $TestResult);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
switch ($this->method()) {
|
||||||
|
case 'POST': {
|
||||||
|
return [
|
||||||
|
'device_id' => 'required',
|
||||||
|
// 'cycle_number' => 'required',
|
||||||
|
'test_type_id' => 'required|numeric|exists:test_types,id',
|
||||||
|
'result' => 'required',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'PUT':
|
||||||
|
case 'PATCH': {
|
||||||
|
// $TestResult = $this->route('TestResult');
|
||||||
|
return [
|
||||||
|
'device_id' => 'required',
|
||||||
|
// 'cycle_number' => 'required',
|
||||||
|
'test_type_id' => 'required|numeric|exists:test_types,id',
|
||||||
|
'result' => 'required',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use App\TestType;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
|
||||||
|
|
||||||
|
class StoreTestTypeRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
if ($this->method() == 'POST') {
|
||||||
|
return auth('api')->check() && auth('api')->user()->can('store', TestType::class);
|
||||||
|
} else {
|
||||||
|
$TestType = $this->route('TestType');
|
||||||
|
return auth('api')->check() && $TestType && auth('api')->user()->can('update', $TestType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
switch ($this->method()) {
|
||||||
|
case 'POST': {
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:test_types',
|
||||||
|
'unique_code' => 'required|max:100|unique:test_types',
|
||||||
|
'device_label' => 'required',
|
||||||
|
'info.*.name'=>'required',
|
||||||
|
'info.*.type'=>'required',
|
||||||
|
'info.*.size'=>'nullable',
|
||||||
|
'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'PUT':
|
||||||
|
case 'PATCH': {
|
||||||
|
$TestType = $this->route('TestType');
|
||||||
|
return [
|
||||||
|
'name' => 'required|max:100|unique:test_types,id,'.$TestType->id,
|
||||||
|
'unique_code' => 'required|max:100|unique:test_types,id,'.$TestType->id,
|
||||||
|
'device_label' => 'required',
|
||||||
|
'info.*.name'=>'required',
|
||||||
|
'info.*.type'=>'required',
|
||||||
|
'info.*.size'=>'nullable',
|
||||||
|
'info.*.parent_id'=>'nullable|numeric|exists:inputs,id',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
|
||||||
|
|
||||||
|
class StoreUserRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
if ($this->method() == 'POST') {
|
||||||
|
return auth('api')->check() && auth('api')->user()->can('store', User::class);
|
||||||
|
} else {
|
||||||
|
$User = $this->route('User');
|
||||||
|
return auth('api')->check() && $User && auth('api')->user()->can('update', $User);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
switch ($this->method()) {
|
||||||
|
case 'POST': {
|
||||||
|
return [
|
||||||
|
'name'=>'required|string|max:255',
|
||||||
|
'cell_number'=>'required|digits_between:10,11|unique:users',
|
||||||
|
'password'=>'required|string|min:6',
|
||||||
|
'medical_center_id' => 'required|numeric|exists:medical_centers,id',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'PUT':
|
||||||
|
case 'PATCH': {
|
||||||
|
$User = $this->route('User');
|
||||||
|
return [
|
||||||
|
'name'=>'required|string|max:255',
|
||||||
|
'cell_number'=>'required|digits_between:10,11|unique:users,id,'.$User->id,
|
||||||
|
'password'=>'required|string|min:6',
|
||||||
|
'medical_center_id' => 'required|numeric|exists:medical_centers,id',
|
||||||
|
];
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Input extends Model
|
||||||
|
{
|
||||||
|
public $fillable = ['name','type','size','test_type_id','parent_id'];
|
||||||
|
public function test_type()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\TestType');
|
||||||
|
}
|
||||||
|
public function parent()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\Input', 'parent_id');
|
||||||
|
}
|
||||||
|
public function children()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\Input', 'parent_id');
|
||||||
|
}
|
||||||
|
public function options()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\Option');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class InputValue extends Model
|
||||||
|
{
|
||||||
|
public $fillable = ['value','test_result_id','input_id','option_id'];
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\Input');
|
||||||
|
}
|
||||||
|
public function test_result()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\TestResult');
|
||||||
|
}
|
||||||
|
public function option()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\Option');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Item extends Model
|
||||||
|
{
|
||||||
|
public $fillable = ['name', 'size', 'unique_id', 'specific', 'note', 'user_id'];
|
||||||
|
public function packages()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany('App\Package', 'item_package');
|
||||||
|
}
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\User');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class MedicalCenter extends Model
|
||||||
|
{
|
||||||
|
public $fillable = ['name'];
|
||||||
|
public function users()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\User');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
class Message extends Model
|
||||||
|
{
|
||||||
|
use SoftDeletes;
|
||||||
|
public $fillable = ['title', 'text', 'status', 'recipient_user_id', 'sender_user_id'];
|
||||||
|
public function sender_user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\User', 'sender_user_id');
|
||||||
|
}
|
||||||
|
public function recipient_user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\User', 'recipient_user_id');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Option extends Model
|
||||||
|
{
|
||||||
|
public $fillable = ['title','input_id'];
|
||||||
|
public function input()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\Input');
|
||||||
|
}
|
||||||
|
public function input_value()
|
||||||
|
{
|
||||||
|
return $this->hasOne('App\InputValue');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Pack extends Model
|
||||||
|
{
|
||||||
|
public $fillable = ['name', 'sterile_date', 'expire_date', 'sterilizer_id', 'cycle_number', 'lot_number', 'department', 'user_id', 'note'];
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\User');
|
||||||
|
}
|
||||||
|
public function packages()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany('App\Package', 'pack_package');
|
||||||
|
}
|
||||||
|
public function cycles()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany('App\Cycle', 'cycle_pack');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Package extends Model
|
||||||
|
{
|
||||||
|
public $fillable = ['name', 'unique_id', 'user_id', 'note', 'verified'];
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\User');
|
||||||
|
}
|
||||||
|
public function items()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany('App\Item', 'item_package');
|
||||||
|
}
|
||||||
|
public function packs()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany('App\Pack', 'pack_package');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Policies;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use App\Cycle;
|
||||||
|
use Doctrine\Tests\Common\Inflector\InflectorTest;
|
||||||
|
|
||||||
|
class CyclePolicy
|
||||||
|
{
|
||||||
|
public function delete(User $User, Cycle $Cycle)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin') && $Cycle->users->count() == 0)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(User $User, Cycle $Cycle)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(User $User)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function verifyCycle(User $User, Cycle $Cycle)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Policies;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use App\Item;
|
||||||
|
use Doctrine\Tests\Common\Inflector\InflectorTest;
|
||||||
|
|
||||||
|
class ItemPolicy
|
||||||
|
{
|
||||||
|
public function delete(User $User, Item $Item)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin') && $Item->users->count() == 0)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(User $User, Item $Item)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(User $User)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Policies;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use App\MedicalCenter;
|
||||||
|
use Doctrine\Tests\Common\Inflector\InflectorTest;
|
||||||
|
|
||||||
|
class MedicalCenterPolicy
|
||||||
|
{
|
||||||
|
public function list(User $User)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function delete(User $User, MedicalCenter $MedicalCenter)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin') && $MedicalCenter->users->count() == 0)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(User $User, MedicalCenter $MedicalCenter)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(User $User)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function getByMedicalCenter(User $User, MedicalCenter $MedicalCenter)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin') || $MedicalCenter->id == $User->medical_center_id) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Policies;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use App\Message;
|
||||||
|
use Doctrine\Tests\Common\Inflector\InflectorTest;
|
||||||
|
|
||||||
|
class MessagePolicy
|
||||||
|
{
|
||||||
|
public function delete(User $User, Message $Message)
|
||||||
|
{
|
||||||
|
// if($Message->sender_user_id == $User->id || $Message->recipient_user_id == $User->id)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(User $User, Message $Message)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function store(User $User)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Policies;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use App\Pack;
|
||||||
|
use Doctrine\Tests\Common\Inflector\InflectorTest;
|
||||||
|
|
||||||
|
class PackPolicy
|
||||||
|
{
|
||||||
|
public function delete(User $User, Pack $Pack)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin') && $Pack->users->count() == 0)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(User $User, Pack $Pack)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(User $User)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Policies;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use App\Package;
|
||||||
|
use Doctrine\Tests\Common\Inflector\InflectorTest;
|
||||||
|
|
||||||
|
class PackagePolicy
|
||||||
|
{
|
||||||
|
public function delete(User $User, Package $Package)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin') && $Package->users->count() == 0)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(User $User, Package $Package)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(User $User)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function verifyPackage(User $User, Package $Package)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Policies;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use App\TestResult;
|
||||||
|
use Doctrine\Tests\Common\Inflector\InflectorTest;
|
||||||
|
|
||||||
|
class TestResultPolicy
|
||||||
|
{
|
||||||
|
|
||||||
|
public function delete(User $User, TestResult $TestResult)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin') || ($User->hasRole('User') && $TestResult->verified == 'NotVerified' && $TestResult->user_id == $User->id))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(User $User, TestResult $TestResult)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin') || $TestResult->user_id == $User->id)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(User $User)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function verifyTestResult(User $User, TestResult $TestResult)
|
||||||
|
{
|
||||||
|
$TR_MID = $TestResult->user->medical_center_id;
|
||||||
|
$User_MID = $User->medical_center_id;
|
||||||
|
|
||||||
|
if($User->hasRole('Admin') || ( $User->hasRole('Supervisor') && $TR_MID == $User_MID))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Policies;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use App\TestType;
|
||||||
|
use Doctrine\Tests\Common\Inflector\InflectorTest;
|
||||||
|
|
||||||
|
class TestTypePolicy
|
||||||
|
{
|
||||||
|
public function list(User $User)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function delete(User $User, TestType $TestType)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin') )
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(User $User, TestType $TestType)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin') && $TestType->test_results->count() == 0)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(User $User)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function getInputs(User $User)
|
||||||
|
{
|
||||||
|
// if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function generateBarcode(User $User, TestType $TestType)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Policies;
|
||||||
|
|
||||||
|
use App\User;
|
||||||
|
use Doctrine\Tests\Common\Inflector\InflectorTest;
|
||||||
|
|
||||||
|
class UserPolicy
|
||||||
|
{
|
||||||
|
public function list(User $User)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin|Supervisor'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function delete(User $User, User $Operator)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin') && $Operator->test_results->count() == 0 && $Operator->test_types->count() == 0)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(User $User, User $Operator)
|
||||||
|
{
|
||||||
|
if($User->id == $Operator->id)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(User $User)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function changeRole(User $User)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function changeStatus(User $User)
|
||||||
|
{
|
||||||
|
if($User->hasRole('Admin|Supervisor'))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
public function register()
|
public function register()
|
||||||
{
|
{
|
||||||
//
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ namespace App\Providers;
|
|||||||
|
|
||||||
use Illuminate\Support\Facades\Gate;
|
use Illuminate\Support\Facades\Gate;
|
||||||
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
||||||
|
use Laravel\Passport\Passport;
|
||||||
|
|
||||||
class AuthServiceProvider extends ServiceProvider
|
class AuthServiceProvider extends ServiceProvider
|
||||||
{
|
{
|
||||||
@@ -13,7 +14,9 @@ class AuthServiceProvider extends ServiceProvider
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $policies = [
|
protected $policies = [
|
||||||
// 'App\Model' => 'App\Policies\ModelPolicy',
|
'App\MedicalCenter' => 'App\Policies\MedicalCenterPolicy',
|
||||||
|
'App\User' => 'App\Policies\UserPolicy',
|
||||||
|
'App\TestType' => 'App\Policies\TestTypePolicy',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -25,6 +28,6 @@ class AuthServiceProvider extends ServiceProvider
|
|||||||
{
|
{
|
||||||
$this->registerPolicies();
|
$this->registerPolicies();
|
||||||
|
|
||||||
//
|
Passport::routes();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Providers;
|
||||||
|
|
||||||
|
use Illuminate\Support\ServiceProvider;
|
||||||
|
|
||||||
|
class MessageServiceProvider extends ServiceProvider
|
||||||
|
{
|
||||||
|
protected $defer = true;
|
||||||
|
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
$this->app->singleton('messages', function() {
|
||||||
|
return new \App\Appended\Classes\Common\Response\MessageResponse;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the services provided by the provider.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function provides()
|
||||||
|
{
|
||||||
|
return [MessageResponse::class];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -35,6 +35,9 @@ class RouteServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
public function map()
|
public function map()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
$this->mapRoutes();
|
||||||
|
|
||||||
$this->mapApiRoutes();
|
$this->mapApiRoutes();
|
||||||
|
|
||||||
$this->mapWebRoutes();
|
$this->mapWebRoutes();
|
||||||
@@ -66,8 +69,21 @@ class RouteServiceProvider extends ServiceProvider
|
|||||||
protected function mapApiRoutes()
|
protected function mapApiRoutes()
|
||||||
{
|
{
|
||||||
Route::prefix('api')
|
Route::prefix('api')
|
||||||
->middleware('api')
|
->middleware('api')
|
||||||
->namespace($this->namespace)
|
->namespace($this->namespace)
|
||||||
->group(base_path('routes/api.php'));
|
->group(base_path('routes/api.php'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define the routes without middleware for the application.
|
||||||
|
*
|
||||||
|
* These routes are typically stateless.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function mapRoutes()
|
||||||
|
{
|
||||||
|
Route::namespace($this->namespace)
|
||||||
|
->group(base_path('routes/routes.php'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class TestResult extends Model
|
||||||
|
{
|
||||||
|
public $fillable = ['result','verified','test_type_id','user_id','device_id', 'cycle_number', 'date'];
|
||||||
|
public function test_type()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\TestType');
|
||||||
|
}
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\User');
|
||||||
|
}
|
||||||
|
public function input_values()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\InputValue');
|
||||||
|
}
|
||||||
|
public function TitleImage()
|
||||||
|
{
|
||||||
|
return $this->morphToMany('App\Gallery', 'uploadable')->wherePivot('image_role', 'TitleImage');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
class TestType extends Model
|
||||||
|
{
|
||||||
|
use SoftDeletes;
|
||||||
|
|
||||||
|
public $fillable = ['name', 'unique_code', 'user_id', 'bar_code', 'device_label'];
|
||||||
|
// protected $softDelete = true;
|
||||||
|
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\User');
|
||||||
|
}
|
||||||
|
public function test_results()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\TestResult');
|
||||||
|
}
|
||||||
|
public function inputs()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\Input');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
namespace App\Transformers;
|
||||||
|
class Json
|
||||||
|
{
|
||||||
|
public static function response($data = null, $message = null)
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'data' => $data,
|
||||||
|
'message' => $message,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Uploadable extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $fillable = ['uploadable_id', 'uploadable_type', 'gallery_id', 'image_role'];
|
||||||
|
public $timestamps = false;
|
||||||
|
|
||||||
|
public function gallery()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\Gallery');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+42
-5
@@ -5,20 +5,21 @@ namespace App;
|
|||||||
use Illuminate\Notifications\Notifiable;
|
use Illuminate\Notifications\Notifiable;
|
||||||
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||||
|
use Laravel\Passport\HasApiTokens;
|
||||||
|
use Spatie\Permission\Traits\HasRoles;
|
||||||
|
|
||||||
class User extends Authenticatable
|
class User extends Authenticatable
|
||||||
{
|
{
|
||||||
use Notifiable;
|
use Notifiable, HasApiTokens, HasRoles;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The attributes that are mass assignable.
|
* The attributes that are mass assignable.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'name', 'email', 'password',
|
'name', 'email', 'password','status','medical_center_id','address', 'gender'
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The attributes that should be hidden for arrays.
|
* The attributes that should be hidden for arrays.
|
||||||
*
|
*
|
||||||
@@ -36,4 +37,40 @@ class User extends Authenticatable
|
|||||||
protected $casts = [
|
protected $casts = [
|
||||||
'email_verified_at' => 'datetime',
|
'email_verified_at' => 'datetime',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public function medical_center()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('App\MedicalCenter');
|
||||||
|
}
|
||||||
|
public function test_results()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\TestResult');
|
||||||
|
}
|
||||||
|
public function test_types()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\TestType');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function findForPassport($username)
|
||||||
|
{
|
||||||
|
return $this->where('cell_number', $username)->where('status', 'Active')->first();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function messagesSent()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\Message', 'sender_user_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function messagesReceived()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\Message', 'recipient_user_id');
|
||||||
|
}
|
||||||
|
public function packages()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\Package');
|
||||||
|
}
|
||||||
|
public function items()
|
||||||
|
{
|
||||||
|
return $this->hasMany('App\Item');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-3
@@ -11,14 +11,17 @@
|
|||||||
"php": "^7.1.3",
|
"php": "^7.1.3",
|
||||||
"fideloper/proxy": "^4.0",
|
"fideloper/proxy": "^4.0",
|
||||||
"laravel/framework": "5.8.*",
|
"laravel/framework": "5.8.*",
|
||||||
"laravel/tinker": "^1.0"
|
"laravel/passport": "^7.2",
|
||||||
|
"laravel/tinker": "^1.0",
|
||||||
|
"milon/barcode": "^5.3",
|
||||||
|
"spatie/laravel-permission": "^2.36"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"beyondcode/laravel-dump-server": "^1.0",
|
"beyondcode/laravel-dump-server": "^1.0",
|
||||||
"filp/whoops": "^2.0",
|
"filp/whoops": "^2.0",
|
||||||
"fzaninotto/faker": "^1.4",
|
"fzaninotto/faker": "^1.4",
|
||||||
"mockery/mockery": "^1.0",
|
"mockery/mockery": "^1.0",
|
||||||
"nunomaduro/collision": "^3.0",
|
"nunomaduro/collision": "^2.0",
|
||||||
"phpunit/phpunit": "^7.5"
|
"phpunit/phpunit": "^7.5"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
@@ -33,7 +36,8 @@
|
|||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"App\\": "app/"
|
"App\\": "app/",
|
||||||
|
"Packages\\": "packages/"
|
||||||
},
|
},
|
||||||
"classmap": [
|
"classmap": [
|
||||||
"database/seeds",
|
"database/seeds",
|
||||||
|
|||||||
Generated
+1107
-79
File diff suppressed because it is too large
Load Diff
+5
-2
@@ -67,7 +67,7 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'timezone' => 'UTC',
|
'timezone' => 'Asia/Tehran',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@@ -174,6 +174,7 @@ return [
|
|||||||
// App\Providers\BroadcastServiceProvider::class,
|
// App\Providers\BroadcastServiceProvider::class,
|
||||||
App\Providers\EventServiceProvider::class,
|
App\Providers\EventServiceProvider::class,
|
||||||
App\Providers\RouteServiceProvider::class,
|
App\Providers\RouteServiceProvider::class,
|
||||||
|
Laravel\Passport\PassportServiceProvider::class,
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -225,7 +226,9 @@ return [
|
|||||||
'URL' => Illuminate\Support\Facades\URL::class,
|
'URL' => Illuminate\Support\Facades\URL::class,
|
||||||
'Validator' => Illuminate\Support\Facades\Validator::class,
|
'Validator' => Illuminate\Support\Facades\Validator::class,
|
||||||
'View' => Illuminate\Support\Facades\View::class,
|
'View' => Illuminate\Support\Facades\View::class,
|
||||||
|
'MessageResponse' => Packages\Messaging\src\Facades\MessageResponse::class,
|
||||||
|
'DNS1D' => Milon\Barcode\Facades\DNS1DFacade::class,
|
||||||
|
'DNS2D' => Milon\Barcode\Facades\DNS2DFacade::class,
|
||||||
],
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|||||||
+1
-2
@@ -42,9 +42,8 @@ return [
|
|||||||
],
|
],
|
||||||
|
|
||||||
'api' => [
|
'api' => [
|
||||||
'driver' => 'token',
|
'driver' => 'passport',
|
||||||
'provider' => 'users',
|
'provider' => 'users',
|
||||||
'hash' => false,
|
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'store_path' => public_path("Barcodes/"),
|
||||||
|
'store_path_qr' => public_path("QRCodes/"),
|
||||||
|
];
|
||||||
+1
-1
@@ -97,6 +97,6 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'),
|
'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Support\Str;
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -119,7 +117,6 @@ return [
|
|||||||
|
|
||||||
'options' => [
|
'options' => [
|
||||||
'cluster' => env('REDIS_CLUSTER', 'predis'),
|
'cluster' => env('REDIS_CLUSTER', 'predis'),
|
||||||
'prefix' => Str::slug(env('APP_NAME', 'laravel'), '_').'_database_',
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'default' => [
|
'default' => [
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ return [
|
|||||||
|
|
||||||
'public' => [
|
'public' => [
|
||||||
'driver' => 'local',
|
'driver' => 'local',
|
||||||
'root' => storage_path('app/public'),
|
'root' => public_path('uploads'),
|
||||||
'url' => env('APP_URL').'/storage',
|
'url' => env('APP_URL') . '/storage',
|
||||||
'visibility' => 'public',
|
'visibility' => 'public',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Image Driver
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Intervention Image supports "GD Library" and "Imagick" to process images
|
||||||
|
| internally. You may choose one of them according to your PHP
|
||||||
|
| configuration. By default PHP's "GD Library" implementation is used.
|
||||||
|
|
|
||||||
|
| Supported: "gd", "imagick"
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'driver' => 'gd'
|
||||||
|
|
||||||
|
];
|
||||||
@@ -0,0 +1,129 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'models' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When using the "HasPermissions" trait from this package, we need to know which
|
||||||
|
* Eloquent model should be used to retrieve your permissions. Of course, it
|
||||||
|
* is often just the "Permission" model but you may use whatever you like.
|
||||||
|
*
|
||||||
|
* The model you want to use as a Permission model needs to implement the
|
||||||
|
* `Spatie\Permission\Contracts\Permission` contract.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'permission' => Spatie\Permission\Models\Permission::class,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When using the "HasRoles" trait from this package, we need to know which
|
||||||
|
* Eloquent model should be used to retrieve your roles. Of course, it
|
||||||
|
* is often just the "Role" model but you may use whatever you like.
|
||||||
|
*
|
||||||
|
* The model you want to use as a Role model needs to implement the
|
||||||
|
* `Spatie\Permission\Contracts\Role` contract.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'role' => Spatie\Permission\Models\Role::class,
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
'table_names' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When using the "HasRoles" trait from this package, we need to know which
|
||||||
|
* table should be used to retrieve your roles. We have chosen a basic
|
||||||
|
* default value but you may easily change it to any table you like.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'roles' => 'roles',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When using the "HasPermissions" trait from this package, we need to know which
|
||||||
|
* table should be used to retrieve your permissions. We have chosen a basic
|
||||||
|
* default value but you may easily change it to any table you like.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'permissions' => 'permissions',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When using the "HasPermissions" trait from this package, we need to know which
|
||||||
|
* table should be used to retrieve your models permissions. We have chosen a
|
||||||
|
* basic default value but you may easily change it to any table you like.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'model_has_permissions' => 'model_has_permissions',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When using the "HasRoles" trait from this package, we need to know which
|
||||||
|
* table should be used to retrieve your models roles. We have chosen a
|
||||||
|
* basic default value but you may easily change it to any table you like.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'model_has_roles' => 'model_has_roles',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When using the "HasRoles" trait from this package, we need to know which
|
||||||
|
* table should be used to retrieve your roles permissions. We have chosen a
|
||||||
|
* basic default value but you may easily change it to any table you like.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'role_has_permissions' => 'role_has_permissions',
|
||||||
|
],
|
||||||
|
|
||||||
|
'column_names' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Change this if you want to name the related model primary key other than
|
||||||
|
* `model_id`.
|
||||||
|
*
|
||||||
|
* For example, this would be nice if your primary keys are all UUIDs. In
|
||||||
|
* that case, name this `model_uuid`.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'model_morph_key' => 'model_id',
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When set to true, the required permission/role names are added to the exception
|
||||||
|
* message. This could be considered an information leak in some contexts, so
|
||||||
|
* the default setting is false here for optimum safety.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'display_permission_in_exception' => false,
|
||||||
|
|
||||||
|
'cache' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
* By default all permissions are cached for 24 hours to speed up performance.
|
||||||
|
* When permissions or roles are updated the cache is flushed automatically.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'expiration_time' => \DateInterval::createFromDateString('24 hours'),
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The cache key used to store all permissions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'key' => 'spatie.permission.cache',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When checking for a permission against a model by passing a Permission
|
||||||
|
* instance to the check, this key determines what attribute on the
|
||||||
|
* Permissions model is used to cache against.
|
||||||
|
*
|
||||||
|
* Ideally, this should match your preferred way of checking permissions, eg:
|
||||||
|
* `$user->can('view-posts')` would be 'name'.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'model_key' => 'name',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* You may optionally indicate a specific cache driver to use for permission and
|
||||||
|
* role caching using any of the `store` drivers listed in the cache.php config
|
||||||
|
* file. Using 'default' here means to use the `default` set in cache.php.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'store' => 'default',
|
||||||
|
],
|
||||||
|
];
|
||||||
@@ -43,5 +43,9 @@ return [
|
|||||||
'tolerance' => env('STRIPE_WEBHOOK_TOLERANCE', 300),
|
'tolerance' => env('STRIPE_WEBHOOK_TOLERANCE', 300),
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
'vue_client' => [
|
||||||
|
'id' => env('MIX_APP_CLIENT_ID'),
|
||||||
|
'secret' => env('MIX_APP_CLIENT_SECRET'),
|
||||||
|
],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,2 +1 @@
|
|||||||
*.sqlite
|
*.sqlite
|
||||||
*.sqlite-journal
|
|
||||||
|
|||||||
+3
-7
@@ -4,7 +4,7 @@ use Illuminate\Support\Facades\Schema;
|
|||||||
use Illuminate\Database\Schema\Blueprint;
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
use Illuminate\Database\Migrations\Migration;
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
class CreateUsersTable extends Migration
|
class CreateMedicalCentersTable extends Migration
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Run the migrations.
|
* Run the migrations.
|
||||||
@@ -13,13 +13,9 @@ class CreateUsersTable extends Migration
|
|||||||
*/
|
*/
|
||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
Schema::create('users', function (Blueprint $table) {
|
Schema::create('medical_centers', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->string('email')->unique();
|
|
||||||
$table->timestamp('email_verified_at')->nullable();
|
|
||||||
$table->string('password');
|
|
||||||
$table->rememberToken();
|
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -31,6 +27,6 @@ class CreateUsersTable extends Migration
|
|||||||
*/
|
*/
|
||||||
public function down()
|
public function down()
|
||||||
{
|
{
|
||||||
Schema::dropIfExists('users');
|
Schema::dropIfExists('medical_centers');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateUsersTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('users', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('email')->nullable();
|
||||||
|
$table->string('country_code')->default('0098');;
|
||||||
|
$table->string('cell_number');
|
||||||
|
$table->enum('gender', ['Male','FeMale'])->default('Male');
|
||||||
|
$table->enum('verified', ['Verified','NotVerified'])->default('NotVerified');
|
||||||
|
$table->enum('status', ['Active','Suspended'])->default('Active');
|
||||||
|
$table->unsignedBigInteger('medical_center_id');
|
||||||
|
$table->foreign('medical_center_id')->references('id')->on('medical_centers');
|
||||||
|
$table->string('password');
|
||||||
|
$table->string('address')->nullable();
|
||||||
|
$table->rememberToken();
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('users');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateTestTypesTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('test_types', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('name')->unique();
|
||||||
|
$table->string('unique_code')->unique();
|
||||||
|
$table->string('bar_code');
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->foreign('user_id')->references('id')->on('users');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('test_types');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateTestResultsTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('test_results', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('info');
|
||||||
|
$table->string('cycle_number');
|
||||||
|
$table->date('date')->nullable();
|
||||||
|
$table->string('result');
|
||||||
|
$table->text('description');
|
||||||
|
$table->smallInteger('verified');
|
||||||
|
$table->string('device_id');
|
||||||
|
$table->string('device_label');
|
||||||
|
$table->integer('autoclave_id');
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->foreign('user_id')->references('id')->on('users');
|
||||||
|
$table->unsignedBigInteger('test_type_id');
|
||||||
|
$table->foreign('test_type_id')->references('id')->on('test_types');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('test_results');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateInputsTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('inputs', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('type');
|
||||||
|
$table->unsignedBigInteger('test_type_id');
|
||||||
|
$table->foreign('test_type_id')->references('id')->on('test_types');
|
||||||
|
$table->unsignedBigInteger('parent_id')->nullable();
|
||||||
|
$table->foreign('parent_id')->references('id')->on('inputs');
|
||||||
|
$table->string('size');
|
||||||
|
$table->string('value');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('inputs');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateInputValuesTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('input_values', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('value');
|
||||||
|
$table->unsignedBigInteger('input_id');
|
||||||
|
$table->foreign('input_id')->references('id')->on('inputs');
|
||||||
|
$table->unsignedBigInteger('test_result_id');
|
||||||
|
$table->foreign('test_result_id')->references('id')->on('test_results');
|
||||||
|
$table->unsignedBigInteger('option_id');
|
||||||
|
$table->foreign('option_id')->references('id')->on('options');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('input_values');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateOptionsTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('options', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('title');
|
||||||
|
$table->unsignedBigInteger('input_id');
|
||||||
|
$table->foreign('input_id')->references('id')->on('inputs');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('options');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateGalleriesTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('galleries', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->foreign('user_id')->references('id')->on('users');
|
||||||
|
$table->string('path');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('galleries');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateUploadablesTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('uploadables', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->unsignedBigInteger('uploadable_id');
|
||||||
|
$table->string('uploadable_type');
|
||||||
|
$table->unsignedBigInteger('gallery_id');
|
||||||
|
$table->foreign('gallery_id')->references('id')->on('galleries');
|
||||||
|
$table->string('image_role');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('uploadables');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreatePermissionTables extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
$tableNames = config('permission.table_names');
|
||||||
|
$columnNames = config('permission.column_names');
|
||||||
|
|
||||||
|
Schema::create($tableNames['permissions'], function (Blueprint $table) {
|
||||||
|
$table->increments('id');
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('guard_name');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::create($tableNames['roles'], function (Blueprint $table) {
|
||||||
|
$table->increments('id');
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('guard_name');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::create($tableNames['model_has_permissions'], function (Blueprint $table) use ($tableNames, $columnNames) {
|
||||||
|
$table->unsignedInteger('permission_id');
|
||||||
|
|
||||||
|
$table->string('model_type');
|
||||||
|
$table->unsignedBigInteger($columnNames['model_morph_key']);
|
||||||
|
$table->index([$columnNames['model_morph_key'], 'model_type', ]);
|
||||||
|
|
||||||
|
$table->foreign('permission_id')
|
||||||
|
->references('id')
|
||||||
|
->on($tableNames['permissions'])
|
||||||
|
->onDelete('cascade');
|
||||||
|
|
||||||
|
$table->primary(['permission_id', $columnNames['model_morph_key'], 'model_type'],
|
||||||
|
'model_has_permissions_permission_model_type_primary');
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::create($tableNames['model_has_roles'], function (Blueprint $table) use ($tableNames, $columnNames) {
|
||||||
|
$table->unsignedInteger('role_id');
|
||||||
|
|
||||||
|
$table->string('model_type');
|
||||||
|
$table->unsignedBigInteger($columnNames['model_morph_key']);
|
||||||
|
$table->index([$columnNames['model_morph_key'], 'model_type', ]);
|
||||||
|
|
||||||
|
$table->foreign('role_id')
|
||||||
|
->references('id')
|
||||||
|
->on($tableNames['roles'])
|
||||||
|
->onDelete('cascade');
|
||||||
|
|
||||||
|
$table->primary(['role_id', $columnNames['model_morph_key'], 'model_type'],
|
||||||
|
'model_has_roles_role_model_type_primary');
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::create($tableNames['role_has_permissions'], function (Blueprint $table) use ($tableNames) {
|
||||||
|
$table->unsignedInteger('permission_id');
|
||||||
|
$table->unsignedInteger('role_id');
|
||||||
|
|
||||||
|
$table->foreign('permission_id')
|
||||||
|
->references('id')
|
||||||
|
->on($tableNames['permissions'])
|
||||||
|
->onDelete('cascade');
|
||||||
|
|
||||||
|
$table->foreign('role_id')
|
||||||
|
->references('id')
|
||||||
|
->on($tableNames['roles'])
|
||||||
|
->onDelete('cascade');
|
||||||
|
|
||||||
|
$table->primary(['permission_id', 'role_id']);
|
||||||
|
});
|
||||||
|
|
||||||
|
app('cache')
|
||||||
|
->store(config('permission.cache.store') != 'default' ? config('permission.cache.store') : null)
|
||||||
|
->forget(config('permission.cache.key'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
$tableNames = config('permission.table_names');
|
||||||
|
|
||||||
|
Schema::drop($tableNames['role_has_permissions']);
|
||||||
|
Schema::drop($tableNames['model_has_roles']);
|
||||||
|
Schema::drop($tableNames['model_has_permissions']);
|
||||||
|
Schema::drop($tableNames['roles']);
|
||||||
|
Schema::drop($tableNames['permissions']);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreatePackagesTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('packages', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('unique_id');
|
||||||
|
$table->text('note')->nullable();
|
||||||
|
$table->enum('verified', ['Verified', 'NotVerified']);
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->foreign('user_id')->references('id')->on('users');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('packages');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateItemsTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('items', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('size');
|
||||||
|
$table->string('unique_id');
|
||||||
|
$table->string('specific');
|
||||||
|
$table->text('note')->nullable();
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->foreign('user_id')->references('id')->on('users');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('items');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateItemPackageTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('item_package', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->unsignedBigInteger('item_id');
|
||||||
|
$table->foreign('item_id')->references('id')->on('items');
|
||||||
|
$table->unsignedBigInteger('package_id');
|
||||||
|
$table->foreign('package_id')->references('id')->on('packages');
|
||||||
|
// $table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('item_package');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateCyclesTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('cycles', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('name');
|
||||||
|
$table->date('date');
|
||||||
|
$table->string('sterilizer_id');
|
||||||
|
$table->string('cycle_number');
|
||||||
|
$table->text('note')->nullable();
|
||||||
|
$table->enum('verified',['Verified', 'NotVerified']);
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->foreign('user_id')->references('id')->on('users');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('cycles');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateTablePackes extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('packes', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->date('sterile_date')->nullable();
|
||||||
|
$table->date('expire_date')->nullable();
|
||||||
|
$table->string('sterilizer_id');
|
||||||
|
$table->string('cycle_number');
|
||||||
|
$table->string('lot_number');
|
||||||
|
$table->string('department');
|
||||||
|
$table->text('note')->nullable();
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->foreign('user_id')->references('id')->on('users');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('packes');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateTablePackPackage extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('pack_package', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->unsignedBigInteger('pack_id');
|
||||||
|
$table->foreign('pack_id')->references('id')->on('packes');
|
||||||
|
$table->unsignedBigInteger('package_id');
|
||||||
|
$table->foreign('package_id')->references('id')->on('packages');
|
||||||
|
// $table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('pack_package');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateTableCyclePack extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('cycle_pack', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->unsignedBigInteger('pack_id');
|
||||||
|
$table->foreign('pack_id')->references('id')->on('packes');
|
||||||
|
$table->unsignedBigInteger('cycle_id');
|
||||||
|
$table->foreign('cycle_id')->references('id')->on('cycles');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('cycle_pack');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
|
|
||||||
class CreatePasswordResetsTable extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
Schema::create('password_resets', function (Blueprint $table) {
|
|
||||||
$table->string('email')->index();
|
|
||||||
$table->string('token');
|
|
||||||
$table->timestamp('created_at')->nullable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
Schema::dropIfExists('password_resets');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreatePackagesTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('packages', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('unique_id');
|
||||||
|
$table->text('note')->nullable();
|
||||||
|
$table->enum('verified', ['Verified', 'NotVerified']);
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->foreign('user_id')->references('id')->on('users');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('packages');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateItemsTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('items', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('size');
|
||||||
|
$table->string('unique_id');
|
||||||
|
$table->string('specific');
|
||||||
|
$table->text('note')->nullable();
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->foreign('user_id')->references('id')->on('users');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('items');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateItemPackageTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('item_package', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->unsignedBigInteger('item_id');
|
||||||
|
$table->foreign('item_id')->references('id')->on('items');
|
||||||
|
$table->unsignedBigInteger('package_id');
|
||||||
|
$table->foreign('package_id')->references('id')->on('packages');
|
||||||
|
// $table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('item_package');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateCyclesTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('cycles', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('name');
|
||||||
|
$table->date('date');
|
||||||
|
$table->string('sterilizer_id');
|
||||||
|
$table->text('note')->nullable();
|
||||||
|
$table->enum('verified',['Verified', 'NotVerified']);
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->foreign('user_id')->references('id')->on('users');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('cycles');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateTablePackes extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('packes', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->string('name');
|
||||||
|
$table->string('unique_id');
|
||||||
|
$table->date('sterile_date')->nullable();
|
||||||
|
$table->date('expire_date')->nullable();
|
||||||
|
$table->string('sterilizer_id');
|
||||||
|
$table->string('cycle_number');
|
||||||
|
$table->string('lot_number');
|
||||||
|
$table->string('department');
|
||||||
|
$table->text('note')->nullable();
|
||||||
|
$table->unsignedBigInteger('user_id');
|
||||||
|
$table->foreign('user_id')->references('id')->on('users');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('packes');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateTablePackPackage extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('pack_package', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->unsignedBigInteger('pack_id');
|
||||||
|
$table->foreign('pack_id')->references('id')->on('packes');
|
||||||
|
$table->unsignedBigInteger('package_id');
|
||||||
|
$table->foreign('package_id')->references('id')->on('packages');
|
||||||
|
// $table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('pack_package');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
|
||||||
|
class CreateTableCyclePack extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::create('cycle_pack', function (Blueprint $table) {
|
||||||
|
$table->bigIncrements('id');
|
||||||
|
$table->unsignedBigInteger('pack_id');
|
||||||
|
$table->foreign('pack_id')->references('id')->on('packes');
|
||||||
|
$table->unsignedBigInteger('cycle_id');
|
||||||
|
$table->foreign('cycle_id')->references('id')->on('cycles');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('cycle_pack');
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user