Luca Parisio hace 5 meses
padre
commit
8974fb8508
Se han modificado 2 ficheros con 87 adiciones y 21 borrados
  1. 15 3
      app/Http/Livewire/Presence.php
  2. 72 18
      resources/views/livewire/presence.blade.php

+ 15 - 3
app/Http/Livewire/Presence.php

@@ -203,12 +203,15 @@ class Presence extends Component
             $this->calendar->motivation_manual_id = $this->motivation_manual_id;
         $this->calendar->save();
 
-        \App\Models\Presence::where('calendar_id', $this->calendar->id)->where('user_id', \Auth::user()->id)->where('status', '<>', 99)->delete();
+        $x = \App\Models\Presence::where('calendar_id', $this->calendar->id)->where('user_id', \Auth::user()->id)->where('status', '<>', 99)->first();
+        $mid = $x->motivation_id;
+        $x->delete();
         foreach($ids as $id)
         {
             $p = new \App\Models\Presence();
             $p->member_id = $id;
             $p->calendar_id = $this->calendar->id;
+            $p->motivation_id = $mid;
             $p->user_id = \Auth::user()->id;
             $p->status = 0;
             $p->save();
@@ -284,8 +287,17 @@ class Presence extends Component
                     'status' => true
                 ]);
 
-                if (!in_array($member->id, $this->newMembers))
-                    $this->newMembers[] = $member->id;
+                //if (!in_array($member->id, $this->newMembers))
+                //    $this->newMembers[] = $member->id;
+
+                $p = new \App\Models\Presence();
+                $p->member_id = $member->id;
+                $p->calendar_id = $this->calendar->id;
+                $p->motivation_id = $this->newMemberMotivationId;
+                $p->user_id = \Auth::user()->id;
+                $p->status = 0;
+                $p->save();
+                
                 $this->emit('reload');
                 $this->emit('saved');
                 /*$this->newMemberFirstName = '';

+ 72 - 18
resources/views/livewire/presence.blade.php

@@ -132,7 +132,7 @@
         @if($calendar->status == 0)
             <div class="row">
                 <div class="col">    
-                    <button type="button" class="btn--ui primary btSave btAdd" data-bs-toggle="modal" data-bs-target="#userModal" >Aggiungi utente</button>
+                    <button type="button" class="btn--ui primary btSave btAdd" data-bs-toggle="modal" data-bs-target="#userModal" onclick="addUser()">Aggiungi utente</button>
                 </div>
             </div>
         @endif
@@ -184,15 +184,16 @@
         <div class="modal-dialog">
             <div class="modal-content">
                 <div class="modal-header">
-                    <h5 class="modal-title text-primary" id="userModalLabel">Inserimento nuovo utente</h5>
+                    <h5 class="modal-title text-primary" id="userModalLabel">Aggiungi persone al corso</h5>
                     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                 </div>
                 <div class="modal-body">
-                    <h3 class="text-primary">Utente già registrato</h3>
-                    <div class="row mt-2">
+                    <h3 class="text-primary"><input type="radio" name="chkType" value="1" checked onchange="change(1)"> Utente già registrato</h3>
+                    <div class="existUser">
+                    <div class="row mt-2 ">
                         <div class="col-md-6">
-                            <label for="member_id" class="form-label">Aggiunge una o più persone</label>
-                            <select name="member_id" class="form-select memberClass" aria-label="Seleziona una persona" wire:model="member_ids" multiple>
+                            <label for="member_id" class="form-label">Aggiungere una o più persone</label>
+                            <select name="member_id" class="form-select memberClass" aria-label="Seleziona una persona"  multiple>
                                 <option value="">--Seleziona--
                                 @foreach($members as $member)
                                     <option value="{{$member->id}}">{{$member->last_name}} {{$member->first_name}} ({{$member->fiscal_code}})
@@ -209,12 +210,17 @@
                             </select>
                         </div>
                     </div>
+                    </div>
                     <br>
                     <hr>
                     <br>
-                    <h3 class="text-primary">Inserimento nuovo utente</h3>
+                    <h3 class="text-primary"><input type="radio" name="chkType" value="2" onchange="change(2)"> Inserimento nuovo utente</h3>
                     <br>
-                    <div class="row">
+                    <div class="newUser">
+                    @if($newMemberFiscalCodeExist)
+                        <span style="color:red">Attenzione, utente esistente</span>
+                    @endif
+                    <div class="row ">
                         <div class="col-md-6">
                             <label for="newMemberFirstName" class="form-label">Nome</label>
                             <input class="form-control @error('newMemberFirstName') is-invalid @enderror" type="text" id="newMemberFirstName" placeholder="Nome" >
@@ -234,13 +240,23 @@
                             <input class="form-control @error('newMemberFiscalCode') is-invalid @enderror" type="text" id="newMemberFiscalCode" placeholder="Codice fiscale" maxlength="16">                        
                         </div>
                     </div>
-                    <div class="row mt-2">
+                    <div class="row mt-2 ">
                         <div class="col-md-6">
                             <input type="checkbox" id="newMemberToComplete" wire:model="newMemberToComplete">
                             <label for="newMemberToComplete" class="form-label">Tesserato</label>
                         </div>
+                        <div class="col-md-6">
+                            <label for="newMotivation" class="form-label">Motivazione</label>
+                            <select class="form-select form-select-lg me-1 " id="newMemberMotivationIdX">
+                                <option value="">
+                                @foreach($motivations_add as $m)
+                                    <option value="{{$m["id"]}}">{{$m["name"]}}</option>
+                                @endforeach
+                            </select>
+                        </div>
                     </div>
                 </div>
+                </div>
                 <div class="modal-footer">
                     <button class="btn--ui lightGrey" onclick="annulla()">annulla</a>
                     <button type="button" class="btn--ui btn-primary" onclick="createMember()">Salva</button>
@@ -351,6 +367,8 @@
 @push('scripts')
     <script>
 
+        var type = 1;
+
         var showAlert = false;
         var isSaving = false;
 
@@ -360,10 +378,10 @@
                 $('.memberClass').select2({
                     tags: false
                 });
-                $('.memberClass').on('change', function (e) {
+                /*$('.memberClass').on('change', function (e) {
                     var data = $('.memberClass').select2("val");
                     @this.addMember(data);
-                });                
+                });                */
             }, 100);
 
             $(".btAdd").click(function(){
@@ -385,10 +403,10 @@
                 $('.memberClass').select2({
                     tags: false
                 });
-                $('.memberClass').on('change', function (e) {
+                /*$('.memberClass').on('change', function (e) {
                     var data = $('.memberClass').select2("val");
                     @this.addMember(data);
-                });                
+                });                */
             }, 100);
             $(".showDelete").hide();
             $(".btSave").show();
@@ -451,12 +469,23 @@
                     ids.push(val);
                 }
             });*/
+
+            if (type == 1)
+            {
+                var data = $('.memberClass').select2("val");
+                @this.addMember(data);
+                @this.set('newMemberMotivationId', $("#newMemberMotivationId").val());
+            }
+            else
+            {
+                @this.set('newMemberMotivationId', $("#newMemberMotivationIdX").val());
+                @this.set('newMemberFirstName', $("#newMemberFirstName").val());
+                @this.set('newMemberLastName', $("#newMemberLastName").val());
+                @this.set('newMemberEmail', $("#newMemberEmail").val());
+                @this.set('newMemberFiscalCode', $("#newMemberFiscalCode").val());
+            }
+            
             
-            @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();
         }
 
@@ -491,6 +520,31 @@
                 return 'Sei sicuro';
 
         };
+
+        function addUser()
+        {
+            $("#newMemberMotivationId").val('');
+            $("#newMemberMotivationIdX").val('');
+            $("#newMemberFirstName").val('');
+            $("#newMemberLastName").val('');
+            $("#newMemberEmail").val('');
+            $("#newMemberFiscalCode").val('');   
+            $(".existUser").show();         
+            $(".newUser").hide();
+            let radioOption = jQuery("input:radio[value=1]");
+            radioOption.prop("checked", true);
+        }
+
+        function change(val) {
+            if (val == 1) {
+                $(".existUser").css("display", "block");
+                $(".newUser").css("display", "none");
+            } else if (val == 2) {
+                $(".newUser").css("display", "block");
+                $(".existUser").css("display", "none");
+            } 
+            type = val;
+        }
         
     </script>
 @endpush