Преглед изворни кода

member - modificata associazione gruppi utente -> unique con eliminazione se rimozione dal corso

ferrari пре 2 месеци
родитељ
комит
deedda73c6
1 измењених фајлова са 26 додато и 8 уклоњено
  1. 26 8
      app/Http/Livewire/Member.php

+ 26 - 8
app/Http/Livewire/Member.php

@@ -788,7 +788,14 @@ class Member extends Component
 
     public function loadMemberCategories()
     {
-        $this->member_categories = \App\Models\MemberCategory::where('member_id', $this->dataId)->get();
+        $this->member_categories = [];
+        $categories = \App\Models\MemberCategory::with('category')->where('member_id', $this->dataId)->get();
+        foreach ($categories as $category) {
+            $this->member_categories[$category->category_id] = $category;
+        }
+        usort($this->member_categories, function($a, $b){
+            return strcmp($a->category->getTree(), $b->category->getTree());
+        });
     }
 
     public function loadMemberCertificates()
@@ -1656,11 +1663,13 @@ class Member extends Component
             $c = \App\Models\Course::findOrFail($this->course_course_id);
             if ($c) {
                 if ($c->category_id > 0) {
-                    \App\Models\MemberCategory::create([
-                        'member_id' => $this->dataId,
-                        'category_id' => $c->category_id,
-                        'date' => \Carbon\Carbon::now()
-                    ]);
+                    if (!\App\Models\MemberCategory::where('member_id', $this->dataId)->where('category_id', $c->category_id)->first()) {
+                        \App\Models\MemberCategory::create([
+                            'member_id' => $this->dataId,
+                            'category_id' => $c->category_id,
+                            'date' => \Carbon\Carbon::now()
+                        ]);
+                    }
                 }
             }
 
@@ -1828,7 +1837,16 @@ class Member extends Component
     public function deleteCourse($id)
     {
         try {
-            \App\Models\MemberCourse::find($id)->delete();
+            $member_course = \App\Models\MemberCourse::find($id);
+            
+            $category = \App\Models\Course::findOrFail($member_course->course_id);
+            if ($category) {
+                if ($category->category_id > 0) {
+                    \App\Models\MemberCategory::where('member_id', $this->dataId)->where('category_id', $category->category_id)->delete();
+                }
+            }
+
+            $member_course->delete();
             session()->flash('success', "Corso eliminato");
         } catch (\Exception $e) {
             session()->flash('error', 'Errore (' . $e->getMessage() . ')');
@@ -1990,7 +2008,7 @@ class Member extends Component
         $this->groupMsg = '';
         try {
             if (\App\Models\MemberCategory::where('member_id', $this->dataId)->where('category_id', $id)->first()) {
-                $this->groupMsg = '<br>Attenzione, questo corso è stato già inserito';
+                $this->groupMsg = '<br>Attenzione, l\'utente fa già parte di questo gruppo';
             } else {
                 \App\Models\MemberCategory::create([
                     'member_id' => $this->dataId,