mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-11 03:31:06 +03:30
fix deleting
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\UpdateInfoUserRequest;
|
||||
use App\InputValue;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\StoreUserRequest;
|
||||
use App\MedicalCenter;
|
||||
@@ -17,7 +18,7 @@ class UserController extends Controller
|
||||
{
|
||||
$user = auth( 'api' )->user();
|
||||
|
||||
if ( $user->hasRole( 'User' ) or $user->hasRole( 'Supervisor' ) ) {
|
||||
if ( $user->hasRole( 'User' ) or $user->hasRole( 'Supervisor' ) ) {
|
||||
$medical_center_id = $user->medical_center_id;
|
||||
} elseif ( $request->has( 'medical_center_id' ) && $request->medical_center_id ) {
|
||||
$medical_center_id = $request->medical_center_id;
|
||||
@@ -90,8 +91,72 @@ class UserController extends Controller
|
||||
if ( auth( 'api' )->user()->cant( 'delete' , $User ) ) {
|
||||
return MessageResponse::error( trans( 'messages.access_denied' ) );
|
||||
}
|
||||
$User->delete();
|
||||
return MessageResponse::success( trans( 'messages.success' ) );
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
|
||||
// delete test_results
|
||||
foreach ( $User->test_results as $test_result ) {
|
||||
if ( count( $test_result->input_values ) ) {
|
||||
InputValue::where( 'test_result_id' , $test_result->id )->get()->each->delete();
|
||||
}
|
||||
$test_result->delete();
|
||||
}
|
||||
|
||||
// delete test_types
|
||||
foreach ( $User->test_types as $test_type ) {
|
||||
$UniqueID = substr( base_convert( sha1( uniqid( mt_rand() ) ) , 16 , 36 ) , 0 , 10 );
|
||||
$test_type->unique_code = $test_type->unique_code . '--' . $UniqueID;
|
||||
$test_type->save();
|
||||
$test_type->delete();
|
||||
}
|
||||
|
||||
// delete items
|
||||
foreach ( $User->items as $item ) {
|
||||
$item->transfersAll()->delete();
|
||||
$item->delete();
|
||||
}
|
||||
|
||||
// delete packages
|
||||
foreach ( $User->packages as $package ) {
|
||||
if ( count( $package->items ) ) {
|
||||
foreach ( $package->items as $item ) {
|
||||
$item->update( [
|
||||
"package_id" => null
|
||||
] );
|
||||
}
|
||||
}
|
||||
if ( count( $package->labels ) ) {
|
||||
$package->labels()->delete();
|
||||
}
|
||||
$package->transfersAll()->delete();
|
||||
$package->delete();
|
||||
}
|
||||
|
||||
// delete labels
|
||||
foreach ( $User->labels as $label ) {
|
||||
if ( count( $label->cycles ) ) {
|
||||
$label->cycles()->detach();
|
||||
}
|
||||
$label->delete();
|
||||
}
|
||||
|
||||
// delete cycles
|
||||
foreach ( $User->cycles as $cycle ) {
|
||||
if ( count( $cycle->labels ) ) {
|
||||
$cycle->labels()->detach();
|
||||
}
|
||||
$cycle->delete();
|
||||
}
|
||||
|
||||
// delete user
|
||||
$User->delete();
|
||||
|
||||
DB::commit();
|
||||
return MessageResponse::success(trans('messages.success'));
|
||||
}catch (\Exception $exception){
|
||||
DB::rollBack();
|
||||
return MessageResponse::error($exception->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public function getByMedicalCenter( MedicalCenter $MedicalCenter )
|
||||
|
||||
Reference in New Issue
Block a user