diff --git a/app/Http/Controllers/TestResultController.php b/app/Http/Controllers/TestResultController.php index b2456bae..7e1bc5d3 100644 --- a/app/Http/Controllers/TestResultController.php +++ b/app/Http/Controllers/TestResultController.php @@ -374,16 +374,13 @@ class TestResultController extends Controller return \MessageResponse::success(null, trans('messages.success')); } - public function verifyTestResult(TestResult $TestResult) + public function verifyTestResult(TestResult $TestResult, $Value) { 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->verified = $Value; $TestResult->save(); $TestResult = $TestResult->load('user.medical_center'); return \MessageResponse::success(trans('messages.success'), null, $TestResult); diff --git a/app/Policies/TestResultPolicy.php b/app/Policies/TestResultPolicy.php index 0853c1ba..4747a092 100644 --- a/app/Policies/TestResultPolicy.php +++ b/app/Policies/TestResultPolicy.php @@ -30,7 +30,7 @@ class TestResultPolicy $TR_MID = $TestResult->user->medical_center_id; $User_MID = $User->medical_center_id; - if($User->hasRole('Admin') || ( $User->hasRole('Supervisor') && $TR_MID == $User_MID)) + if($User->hasRole('Admin') || ( $User->hasRole('Supervisor') && $TR_MID == $User_MID && $TestResult->verified == 'None')) return true; } } diff --git a/resources/js/vue/components/modal/testresult/Show.vue b/resources/js/vue/components/modal/testresult/Show.vue index fd1fecac..99e54fa5 100644 --- a/resources/js/vue/components/modal/testresult/Show.vue +++ b/resources/js/vue/components/modal/testresult/Show.vue @@ -182,18 +182,18 @@ xs12 md3 sm3 - v-if="data.verified == 'NotVerified'" - @click="verify(data.id)" + v-if="data.verified == 'None' || (data.verified == 'NotVerified' && $hasRole('Admin'))" + @click="verify(data.id, 'Verified')" > fas fa-check Verify - + fas fa-check UnVerify @@ -242,8 +242,8 @@ export default { data: () => ({}), methods: { ...mapMutations("modal", ["closeModal", "setResultModal"]), - async verify(id) { - const result = await ApiService.post(urls.verifyTestResult(id)); + async verify(id, value) { + const result = await ApiService.post(urls.verifyTestResult(id, value)); if (result && result.status == 200) { this.setResultModal(result.data.data); this.closeModal(); diff --git a/resources/js/vue/config/urls.js b/resources/js/vue/config/urls.js index f9e68830..acc7193b 100644 --- a/resources/js/vue/config/urls.js +++ b/resources/js/vue/config/urls.js @@ -53,8 +53,8 @@ const urls = { listTestResult: function(filter) { return "/TestResults" + filter; }, - verifyTestResult: function(id) { - return `/TestResults/Verify/${id}`; + verifyTestResult: function(id, value) { + return `/TestResults/Verify/${id}/${value}`; }, editTestResult: function(id) { return `/TestResults/${id}/edit`; diff --git a/resources/js/vue/views/TestResult/List.vue b/resources/js/vue/views/TestResult/List.vue index e3605b8c..7332c091 100644 --- a/resources/js/vue/views/TestResult/List.vue +++ b/resources/js/vue/views/TestResult/List.vue @@ -206,7 +206,7 @@