Luca Parisio 5 месяцев назад
Родитель
Сommit
68eacd7595

+ 22 - 0
app/Http/Livewire/Calendar.php

@@ -72,6 +72,28 @@ class Calendar extends Component
                 $data['color'] = "#808080";
             $this->records[] = $data;
         }
+
+        for ($anno = 2025; $anno <= 2040; $anno++) {
+
+            $color = "grey";
+            $this->records[] = array('id' => 0, 'title' => 'Capodanno', 'start' => "$anno-01-01 00:00:00", 'end' => "$anno-01-01 23:59:59", 'color' => $color);
+            $this->records[] = array('id' => 0, 'title' => 'Epifania', 'start' => "$anno-01-06 00:00:00", 'end' => "$anno-01-06 23:59:59", 'color' => $color);
+            $this->records[] = array('id' => 0, 'title' => 'Festa della Liberazione', 'start' => "$anno-04-25 00:00:00", 'end' => "$anno-04-25 23:59:59", 'color' => $color);
+            $this->records[] = array('id' => 0, 'title' => 'Festa del Lavoro', 'start' => "$anno-05-01 00:00:00", 'end' => "$anno-05-01 23:59:59", 'color' => $color);
+            $this->records[] = array('id' => 0, 'title' => 'Festa della Repubblica', 'start' => "$anno-06-02 00:00:00", 'end' => "$anno-06-02 23:59:59", 'color' => $color);
+            $this->records[] = array('id' => 0, 'title' => 'Ferragosto', 'start' => "$anno-08-15 00:00:00", 'end' => "$anno-08-15 23:59:59", 'color' => $color);
+            $this->records[] = array('id' => 0, 'title' => 'Ognissanti', 'start' => "$anno-11-01 00:00:00", 'end' => "$anno-11-01 23:59:59", 'color' => $color);
+            $this->records[] = array('id' => 0, 'title' => 'Immacolata Concezione', 'start' => "$anno-12-08 00:00:00", 'end' => "$anno-12-08 23:59:59", 'color' => $color);
+            $this->records[] = array('id' => 0, 'title' => 'Natale', 'start' => "$anno-12-25 00:00:00", 'end' => "$anno-12-25 23:59:59", 'color' => $color);
+            $this->records[] = array('id' => 0, 'title' => 'Santo Stefano', 'start' => "$anno-12-26 00:00:00", 'end' => "$anno-12-26 23:59:59", 'color' => $color);
+
+            $pasqua = date("Y-m-d", easter_date($anno));
+            $this->records[] = array('id' => 0, 'title' => 'Pasqua', 'start' => "$pasqua 00:00:00", 'end' => "$pasqua 23:59:59", 'color' => $color);
+            $pasquetta = date("Y-m-d", strtotime("$pasqua +1 day"));
+            $this->records[] = array('id' => 0, 'title' => 'Pasquetta', 'start' => "$pasquetta 00:00:00", 'end' => "$pasquetta 23:59:59", 'color' => $color);
+        }
+
+        
         if ($reload)
             $this->emit('reload-calendar', ["'" . json_encode($this->records) . "'"]);
         return view('livewire.calendar');

+ 25 - 22
app/Http/Livewire/Presence.php

@@ -258,12 +258,12 @@ class Presence extends Component
         if (!$this->added)
         {
             $this->newMemberFiscalCodeExist = false;
-            $this->validate([
+            /*$this->validate([
                 // 'newMemberFiscalCode'=>'required|max:16',
                 'newMemberFirstName'=>'required',
                 'newMemberLastName'=>'required',
                 //'newMemberEmail'=>'required',
-            ]);
+            ]);*/
 
             // Check fiscal code exist
             $exist = false;
@@ -287,10 +287,10 @@ class Presence extends Component
                     $this->newMembers[] = $member->id;
                 $this->emit('reload');
                 $this->emit('saved');
-                $this->newMemberFirstName = '';
+                /*$this->newMemberFirstName = '';
                 $this->newMemberLastName = '';
                 $this->newMemberEmail = '';
-                $this->newMemberFiscalCode = '';
+                $this->newMemberFiscalCode = '';*/
             }
             else
             {
@@ -300,26 +300,29 @@ class Presence extends Component
         else
         {
 
-            foreach($this->member_ids as $m)
+            if ($this->member_ids != null)
             {
-                if ($this->manual)
+                foreach($this->member_ids as $m)
                 {
-                    //\App\Models\Presence::where('calendar_id', $this->calendar->id)->where('user_id', \Auth::user()->id)->where('status', '<>', 99)->delete();
-                    //foreach($ids as $id)
-                    //{
-                        $p = new \App\Models\Presence();
-                        $p->member_id = $m;
-                        $p->calendar_id = $this->calendar->id;
-                        $p->motivation_id = $this->newMemberMotivationId;
-                        $p->user_id = \Auth::user()->id;
-                        $p->status = 0;
-                        $p->save();
-                    //}
-                }
-                else
-                {
-                    if (!in_array($m, $this->newMembers))
-                        $this->newMembers[] = $m;
+                    if ($this->manual)
+                    {
+                        //\App\Models\Presence::where('calendar_id', $this->calendar->id)->where('user_id', \Auth::user()->id)->where('status', '<>', 99)->delete();
+                        //foreach($ids as $id)
+                        //{
+                            $p = new \App\Models\Presence();
+                            $p->member_id = $m;
+                            $p->calendar_id = $this->calendar->id;
+                            $p->motivation_id = $this->newMemberMotivationId;
+                            $p->user_id = \Auth::user()->id;
+                            $p->status = 0;
+                            $p->save();
+                        //}
+                    }
+                    else
+                    {
+                        if (!in_array($m, $this->newMembers))
+                            $this->newMembers[] = $m;
+                    }
                 }
             }
 

+ 3 - 1
resources/views/livewire/calendar.blade.php

@@ -252,6 +252,7 @@
                     right: 'prevYear,prev,next,nextYear today',
                 },
                 dateClick: function(info) {
+                    
                     var x = info.dateStr.split("T");
                     $("#date").val(x[0]);
                     var y = x[1].split("+");
@@ -270,7 +271,8 @@
                     $(".date").html(eventDate.toLocaleDateString('it-IT', { weekday: 'long' }) + " " + pad(eventDate.getDate(), 2) + " " + eventDate.toLocaleDateString('it-IT', { month: 'long' }));
                     currentCalendar = info.event.id;
                     params = '?calendarId=' + info.event.id;// + "&date=" + datestring; 
-                    $('.openModal').trigger('click');
+                    if (info.event.id > 0)
+                        $('.openModal').trigger('click');
                 },
                 locale: 'it',
                 events: @json($records),

+ 17 - 2
resources/views/livewire/presence.blade.php

@@ -360,7 +360,7 @@
                 });
                 $('.memberClass').on('change', function (e) {
                     var data = $('.memberClass').select2("val");
-                    @this.addMember(data);
+                    //@this.addMember(data);
                 });                
             }, 100);
 
@@ -385,11 +385,18 @@
                 });
                 $('.memberClass').on('change', function (e) {
                     var data = $('.memberClass').select2("val");
-                    @this.addMember(data);
+                    //@this.addMember(data);
                 });                
             }, 100);
             $(".showDelete").hide();
             $(".btSave").show();
+
+            //$("#newMemberMotivationId").val('');
+            $("#newMemberFirstName").val('');
+            $("#newMemberLastName").val('');
+            $("#newMemberEmail").val('');
+            $("#newMemberFiscalCode").val('');
+
         });
 
         window.livewire.on('saved', () => {
@@ -449,13 +456,21 @@
                     ids.push(val);
                 }
             });*/
+
+            var data = $('.memberClass').select2("val");
+            if (data != null)
+            {
+                @this.addMember(data);
+            }
             
             @this.set('newMemberMotivationId', $("#newMemberMotivationId").val());
             @this.set('newMemberFirstName', $("#newMemberFirstName").val());
             @this.set('newMemberLastName', $("#newMemberLastName").val());
             @this.set('newMemberEmail', $("#newMemberEmail").val());
             @this.set('newMemberFiscalCode', $("#newMemberFiscalCode").val());
+
             @this.createMember();
+           
         }
 
         function removeSingle(id)