mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-10 19:51:07 +03:30
fix status
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Constants;
|
||||
|
||||
class StatusTypeEnum
|
||||
{
|
||||
const APPROVED = "approved";
|
||||
const REJECTED = "rejected";
|
||||
const SUSPENDED = "suspended";
|
||||
}
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Constants\StatusTypeEnum;
|
||||
use App\Http\Requests\ChangeStatusRequest;
|
||||
use App\Http\Requests\StoreItemRequest;
|
||||
use App\Http\Resources\ItemResource;
|
||||
use App\Item;
|
||||
@@ -45,7 +47,7 @@ class ItemController extends Controller
|
||||
if ( $user->hasRole( 'User' ) ) {
|
||||
$Items = $Items->whereHas( 'user' , function ( $query ) use ( $user ) {
|
||||
$query->where( 'medical_center_id' , $user->medical_center_id );
|
||||
} )->where( "status" , 1 );
|
||||
} )->where( "status" , StatusTypeEnum::APPROVED );
|
||||
} elseif ( $user->hasRole( 'Supervisor' ) ) {
|
||||
$Items = $Items->whereHas( 'user' , function ( $query ) use ( $user ) {
|
||||
$query->where( 'medical_center_id' , $user->medical_center_id );
|
||||
@@ -108,7 +110,7 @@ class ItemController extends Controller
|
||||
|
||||
public function getItems()
|
||||
{
|
||||
$Items = Item::where( "status" , 1 )
|
||||
$Items = Item::where( "status" , StatusTypeEnum::APPROVED )
|
||||
->where( "package_id" , null )
|
||||
->orderByDesc( 'id' )
|
||||
->get();
|
||||
@@ -148,6 +150,7 @@ class ItemController extends Controller
|
||||
'specific' => $request->specific ,
|
||||
'note' => $request->note ,
|
||||
'udi' => $request->udi ,
|
||||
'status' => StatusTypeEnum::SUSPENDED ,
|
||||
'user_id' => auth( 'api' )->user()->id ,
|
||||
'creator_id' => auth( 'api' )->user()->id
|
||||
] );
|
||||
@@ -183,14 +186,13 @@ class ItemController extends Controller
|
||||
return MessageResponse::success( trans( 'messages.success' ) );
|
||||
}
|
||||
|
||||
public function changeStatus( Item $Item )
|
||||
public function changeStatus( ChangeStatusRequest $request , Item $Item )
|
||||
{
|
||||
if ( auth( 'api' )->user()->cant( 'changeStatus' , Item::class ) ) {
|
||||
return MessageResponse::error( trans( 'messages.access_denied' ) );
|
||||
}
|
||||
$Item->status = ! $Item->status;
|
||||
$Item->save();
|
||||
return ItemResource::make( $Item );
|
||||
$Item->update( [ "status" => $request->status ] );
|
||||
return MessageResponse::success( trans( 'messages.success' ) );
|
||||
}
|
||||
|
||||
public function changeRepair( Item $Item )
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Constants\StatusTypeEnum;
|
||||
use App\Http\Requests\ChangeStatusRequest;
|
||||
use App\Http\Requests\StorePackageRequest;
|
||||
use App\Http\Resources\PackageResource;
|
||||
use App\Item;
|
||||
@@ -32,7 +34,11 @@ class PackageController extends Controller
|
||||
] );
|
||||
|
||||
$user = auth( 'api' )->user();
|
||||
if ( $user->hasRole( 'User' ) or $user->hasRole( 'Supervisor' ) ) {
|
||||
if ( $user->hasRole( 'User' ) ) {
|
||||
$Packages = $Packages->whereHas( 'user' , function ( $query ) use ( $user ) {
|
||||
$query->where( 'medical_center_id' , $user->medical_center_id );
|
||||
} )->where( "status" , StatusTypeEnum::APPROVED );
|
||||
} elseif ( $user->hasRole( 'Supervisor' ) ) {
|
||||
$Packages = $Packages->whereHas( 'user' , function ( $query ) use ( $user ) {
|
||||
$query->where( 'medical_center_id' , $user->medical_center_id );
|
||||
} );
|
||||
@@ -89,7 +95,9 @@ class PackageController extends Controller
|
||||
|
||||
public function getPackages()
|
||||
{
|
||||
$Packages = Package::orderByDesc( 'id' )->get();
|
||||
$Packages = Package::where( "status" , StatusTypeEnum::APPROVED )
|
||||
->orderByDesc( 'id' )
|
||||
->get();
|
||||
return PackageResource::collection( $Packages );
|
||||
}
|
||||
|
||||
@@ -120,7 +128,7 @@ class PackageController extends Controller
|
||||
$PackageData = [
|
||||
'name' => $request->name ,
|
||||
'note' => $request->note ,
|
||||
'verified' => 'NotVerified' ,
|
||||
'status' => StatusTypeEnum::SUSPENDED ,
|
||||
'user_id' => auth( 'api' )->user()->id ,
|
||||
'creator_id' => auth( 'api' )->user()->id
|
||||
];
|
||||
@@ -179,4 +187,13 @@ class PackageController extends Controller
|
||||
$Package->delete();
|
||||
return MessageResponse::success( trans( 'messages.success' ) );
|
||||
}
|
||||
|
||||
public function changeStatus( ChangeStatusRequest $request , Package $Package )
|
||||
{
|
||||
if ( auth( 'api' )->user()->cant( 'changeStatus' , Package::class ) ) {
|
||||
return MessageResponse::error( trans( 'messages.access_denied' ) );
|
||||
}
|
||||
$Package->update( [ "status" => $request->status ] );
|
||||
return MessageResponse::success( trans( 'messages.success' ) );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\StoreTransferChangeStatusRequest;
|
||||
use App\Constants\StatusTypeEnum;
|
||||
use App\Http\Requests\ChangeStatusRequest;
|
||||
use App\Http\Requests\StoreTransferRequest;
|
||||
use App\Http\Resources\TransferResource;
|
||||
use App\Item;
|
||||
@@ -15,7 +16,7 @@ class TransferItemController extends Controller
|
||||
public function getSuspendedTransfer()
|
||||
{
|
||||
$data = Transfer::where( "transferable_type" , "App\\Item" )
|
||||
->where( "status" , "suspended" )
|
||||
->where( "status" , StatusTypeEnum::SUSPENDED )
|
||||
->with( [ "user" , "transferable" , "transferable.user" ] );
|
||||
|
||||
$user = auth( 'api' )->user();
|
||||
@@ -32,13 +33,13 @@ class TransferItemController extends Controller
|
||||
return TransferResource::collection($data);
|
||||
}
|
||||
|
||||
public function changeStatus( StoreTransferChangeStatusRequest $request , Transfer $Transfer )
|
||||
public function changeStatus( ChangeStatusRequest $request , Transfer $Transfer )
|
||||
{
|
||||
if ( auth( 'api' )->user()->cant( 'changeStatus' , [ Transfer::class , $Transfer ] ) ) {
|
||||
return MessageResponse::error( trans( 'messages.access_denied' ) );
|
||||
}
|
||||
if ( $Transfer->status == "suspended" ) {
|
||||
if ( $request->status == "approved" ) {
|
||||
if ( $Transfer->status == StatusTypeEnum::SUSPENDED ) {
|
||||
if ( $request->status == StatusTypeEnum::APPROVED ) {
|
||||
$item = $Transfer->transferable;
|
||||
if ( $item->transferActive ) $item->transferActive()->update( [ "to_date" => Carbon::now() ] );
|
||||
$Transfer->update( [ "status" => $request->status ] );
|
||||
@@ -61,7 +62,7 @@ class TransferItemController extends Controller
|
||||
$Item->transfers()->create( [
|
||||
"user_id" => $request->user_id ,
|
||||
"from_date" => Carbon::now() ,
|
||||
"status" => "suspended"
|
||||
"status" => StatusTypeEnum::SUSPENDED
|
||||
] );
|
||||
} else {
|
||||
return MessageResponse::error( trans( 'messages.user_denied_transfer' ) );
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\StoreTransferChangeStatusRequest;
|
||||
use App\Constants\StatusTypeEnum;
|
||||
use App\Http\Requests\ChangeStatusRequest;
|
||||
use App\Http\Requests\StoreTransferRequest;
|
||||
use App\Http\Resources\TransferResource;
|
||||
use App\Package;
|
||||
@@ -15,7 +16,7 @@ class TransferPackageController extends Controller
|
||||
public function getSuspendedTransfer()
|
||||
{
|
||||
$data = Transfer::where( "transferable_type" , "App\\Package" )
|
||||
->where( "status" , "suspended" )
|
||||
->where( "status" , StatusTypeEnum::SUSPENDED )
|
||||
->with( [ "user" , "transferable" , "transferable.user" ] );
|
||||
|
||||
$user = auth( 'api' )->user();
|
||||
@@ -32,13 +33,13 @@ class TransferPackageController extends Controller
|
||||
return TransferResource::collection($data);
|
||||
}
|
||||
|
||||
public function changeStatus( StoreTransferChangeStatusRequest $request , Transfer $Transfer )
|
||||
public function changeStatus( ChangeStatusRequest $request , Transfer $Transfer )
|
||||
{
|
||||
if ( auth( 'api' )->user()->cant( 'changeStatus' , [ Transfer::class , $Transfer ] ) ) {
|
||||
return MessageResponse::error( trans( 'messages.access_denied' ) );
|
||||
}
|
||||
if ( $Transfer->status == "suspended" ) {
|
||||
if ( $request->status == "approved" ) {
|
||||
if ( $Transfer->status == StatusTypeEnum::SUSPENDED ) {
|
||||
if ( $request->status == StatusTypeEnum::APPROVED ) {
|
||||
$package = $Transfer->transferable;
|
||||
if ( $package->transferActive ) $package->transferActive()->update( [ "to_date" => Carbon::now() ] );
|
||||
$Transfer->update( [ "status" => $request->status ] );
|
||||
@@ -64,7 +65,7 @@ class TransferPackageController extends Controller
|
||||
$Package->transfers()->create( [
|
||||
"user_id" => $request->user_id ,
|
||||
"from_date" => Carbon::now() ,
|
||||
"status" => "suspended"
|
||||
"status" => StatusTypeEnum::SUSPENDED
|
||||
] );
|
||||
} else {
|
||||
return MessageResponse::error( trans( 'messages.user_denied_transfer' ) );
|
||||
|
||||
+3
-3
@@ -2,10 +2,10 @@
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use App\Item;
|
||||
use App\Constants\StatusTypeEnum;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreTransferChangeStatusRequest extends FormRequest
|
||||
class ChangeStatusRequest extends FormRequest
|
||||
{
|
||||
public function authorize()
|
||||
{
|
||||
@@ -15,7 +15,7 @@ class StoreTransferChangeStatusRequest extends FormRequest
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'status' => 'required|in:approved,rejected'
|
||||
'status' => 'required|in:'. StatusTypeEnum::APPROVED .','. StatusTypeEnum::REJECTED
|
||||
];
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class PackageResource extends JsonResource
|
||||
'id' => $this->id,
|
||||
'name' => $this->name,
|
||||
'note' => $this->note,
|
||||
'verified' => $this->verified,
|
||||
'status' => $this->status,
|
||||
'creator_id' => $this->creator_id,
|
||||
'creator' => UserResource::make($this->whenLoaded('creator')),
|
||||
'user_id' => $this->user_id,
|
||||
|
||||
+3
-2
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App;
|
||||
|
||||
use App\Constants\StatusTypeEnum;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Spatie\MediaLibrary\HasMedia\HasMedia;
|
||||
use App\Services\Media\HasMediaTrait;
|
||||
@@ -30,12 +31,12 @@ class Item extends Model implements HasMedia
|
||||
|
||||
public function transfers()
|
||||
{
|
||||
return $this->morphMany( 'App\Transfer' , "transferable" )->where( "status" , "approved" );
|
||||
return $this->morphMany( 'App\Transfer' , "transferable" )->where( "status" , StatusTypeEnum::APPROVED );
|
||||
}
|
||||
|
||||
public function transferActive()
|
||||
{
|
||||
return $this->morphMany( 'App\Transfer' , "transferable" )->where( "status" , "approved" )->whereNull( "to_date" );
|
||||
return $this->morphMany( 'App\Transfer' , "transferable" )->where( "status" , StatusTypeEnum::APPROVED )->whereNull( "to_date" );
|
||||
}
|
||||
|
||||
public function registerMediaCollections(): void
|
||||
|
||||
+4
-3
@@ -2,11 +2,12 @@
|
||||
|
||||
namespace App;
|
||||
|
||||
use App\Constants\StatusTypeEnum;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Package extends Model
|
||||
{
|
||||
public $fillable = [ 'name' , 'user_id' , 'note' , 'verified' , 'creator_id' ];
|
||||
public $fillable = [ 'name' , 'user_id' , 'note' , 'status' , 'creator_id' ];
|
||||
|
||||
public function user()
|
||||
{
|
||||
@@ -30,11 +31,11 @@ class Package extends Model
|
||||
|
||||
public function transfers()
|
||||
{
|
||||
return $this->morphMany( 'App\Transfer' , "transferable" )->where( "status" , "approved" );
|
||||
return $this->morphMany( 'App\Transfer' , "transferable" )->where( "status" , StatusTypeEnum::APPROVED );
|
||||
}
|
||||
|
||||
public function transferActive()
|
||||
{
|
||||
return $this->morphMany( 'App\Transfer' , "transferable" )->where( "status" , "approved" )->whereNull( "to_date" );
|
||||
return $this->morphMany( 'App\Transfer' , "transferable" )->where( "status" , StatusTypeEnum::APPROVED )->whereNull( "to_date" );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,9 +29,9 @@ class PackagePolicy
|
||||
return true;
|
||||
}
|
||||
|
||||
public function verifyPackage(User $User, Package $Package)
|
||||
public function changeStatus( User $User )
|
||||
{
|
||||
if($User->hasRole('Admin') || ($User->hasRole('Supervisor') && $Package->user->medical_center_id == $User->medical_center_id))
|
||||
if ( $User->hasRole( 'Admin|Supervisor' ) )
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace App\Policies;
|
||||
|
||||
use App\User;
|
||||
use App\TestResult;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class TestResultPolicy
|
||||
{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use App\Constants\StatusTypeEnum;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
@@ -21,7 +22,7 @@ class CreateTransfersTable extends Migration
|
||||
$table->foreign('user_id')->references('id')->on('users');
|
||||
$table->dateTime('from_date')->nullable();
|
||||
$table->dateTime('to_date')->nullable();
|
||||
$table->enum('status', ['approved','rejected','suspended'])->default('suspended');
|
||||
$table->enum( 'status' , [ StatusTypeEnum::APPROVED , StatusTypeEnum::REJECTED , StatusTypeEnum::SUSPENDED ] )->default( StatusTypeEnum::SUSPENDED );
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
use App\Constants\StatusTypeEnum;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddStatusToItemsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table( 'items' , function ( Blueprint $table ) {
|
||||
$table->dropColumn( 'status' );
|
||||
} );
|
||||
Schema::table( 'items' , function ( Blueprint $table ) {
|
||||
$table->enum( 'status' , [ StatusTypeEnum::APPROVED , StatusTypeEnum::REJECTED , StatusTypeEnum::SUSPENDED ] )->default( StatusTypeEnum::SUSPENDED );
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table( 'items' , function ( Blueprint $table ) {
|
||||
$table->dropColumn( 'status' );
|
||||
} );
|
||||
Schema::table( 'items' , function ( Blueprint $table ) {
|
||||
$table->tinyInteger( 'status' )->default( 0 );
|
||||
} );
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
use App\Constants\StatusTypeEnum;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddStatusToPackagesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table( 'packages' , function ( Blueprint $table ) {
|
||||
$table->dropColumn( 'verified' );
|
||||
} );
|
||||
Schema::table( 'packages' , function ( Blueprint $table ) {
|
||||
$table->enum( 'status' , [ StatusTypeEnum::APPROVED , StatusTypeEnum::REJECTED , StatusTypeEnum::SUSPENDED ] )->default( StatusTypeEnum::SUSPENDED );
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table( 'packages' , function ( Blueprint $table ) {
|
||||
$table->dropColumn( 'status' );
|
||||
} );
|
||||
Schema::table( 'packages' , function ( Blueprint $table ) {
|
||||
$table->enum('verified', ['Verified', 'NotVerified']);
|
||||
} );
|
||||
}
|
||||
}
|
||||
@@ -75,6 +75,7 @@ Route::middleware('auth:api')->group(function () {
|
||||
Route::resource('Packages', 'PackageController');
|
||||
Route::get('/MyPackages', 'PackageController@myPackages');
|
||||
Route::get('/GetPackages', 'PackageController@getPackages');
|
||||
Route::post('Packages/ChangeStatus/{Package}', 'PackageController@changeStatus');
|
||||
|
||||
//transfer package
|
||||
Route::get('suspended-transfer-packages', 'TransferPackageController@getSuspendedTransfer');
|
||||
|
||||
Reference in New Issue
Block a user