Parcourir la source

presenze - controllo non bloccante nome/cognome utente

ferrari il y a 1 mois
Parent
commit
75b355b2bb
2 fichiers modifiés avec 49 ajouts et 8 suppressions
  1. 36 0
      app/Http/Livewire/Presence.php
  2. 13 8
      resources/views/livewire/presence.blade.php

+ 36 - 0
app/Http/Livewire/Presence.php

@@ -19,6 +19,7 @@ class Presence extends Component
     public $save_court_id, $save_instructor_id, $save_notes;
 
     public $newMemberFirstName, $newMemberLastName, $newMemberEmail, $newMemberToComplete, $newMemberFiscalCode, $newMemberFiscalCodeExist, $newMemberMotivationId;
+    public $newMemberExists = false;
 
     public $userName, $userEmail;
 
@@ -91,6 +92,8 @@ class Presence extends Component
         $this->course_names = [];
         $this->course_levels = [];
         $this->course_frequencies = [];
+
+        $this->newMemberExists = false;
     }
 
     public function updatedAddMemberId()
@@ -202,6 +205,39 @@ class Presence extends Component
         $this->emit('reload');
     }
 
+    public function updatedNewMemberFirstName()
+    {
+        $this->checkUserExists();
+    }
+
+    public function updatedNewMemberLastName()
+    {
+        $this->checkUserExists();
+    }
+
+    private function checkUserExists(): void
+    {
+        $first = trim((string) $this->newMemberFirstName);
+        $last = trim((string) $this->newMemberLastName);
+
+        if ($first === '' || $last === '') {
+            $this->newMemberExists = false;
+            return;
+        }
+
+        $first = mb_strtolower($first);
+        $last  = mb_strtolower($last);
+
+        $this->newMemberExists = \App\Models\Member::query()
+            ->where(function ($q) {
+                $q->where('is_deleted', false)
+                ->orWhereNull('is_deleted');
+            })
+            ->whereRaw('LOWER(TRIM(first_name)) = ?', [$first])
+            ->whereRaw('LOWER(TRIM(last_name))  = ?', [$last])
+            ->exists();
+    }
+
     public function render()
     {
 

+ 13 - 8
resources/views/livewire/presence.blade.php

@@ -311,24 +311,29 @@
                         @if($newMemberFiscalCodeExist)
                         <span style="color:red">Attenzione, utente esistente</span>
                         @endif
+                        @if($newMemberExists)
+                        <div class="alert alert-warning" role="alert">
+                            Un utente con lo stesso nome e cognome è già presente a database
+                        </div>
+                        @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">
+                                <input class="form-control @error('newMemberFirstName') is-invalid @enderror" type="text" id="newMemberFirstName" placeholder="Nome" wire:model.lazy="newMemberFirstName">
                             </div>
                             <div class="col-md-6">
                                 <label for="newMemberLastName" class="form-label">Cognome</label>
-                                <input class="form-control @error('newMemberLastName') is-invalid @enderror" type="text" id="newMemberLastName" placeholder="Cognome">
+                                <input class="form-control @error('newMemberLastName') is-invalid @enderror" type="text" id="newMemberLastName" placeholder="Cognome" wire:model.lazy="newMemberLastName">
                             </div>
                         </div>
                         <div class="row mt-2">
                             <div class="col-md-6">
                                 <label for="newMemberEmail" class="form-label">Email</label>
-                                <input class="form-control @error('newMemberEmail') is-invalid @enderror" type="text" id="newMemberEmail" placeholder="Email">
+                                <input class="form-control @error('newMemberEmail') is-invalid @enderror" type="text" id="newMemberEmail" placeholder="Email" wire:model.lazy="newMemberEmail">
                             </div>
                             <div class="col-md-6">
                                 <label for="newMemberFiscalCode" class="form-label">Codice fiscale</label>
-                                <input class="form-control @error('newMemberFiscalCode') is-invalid @enderror" type="text" id="newMemberFiscalCode" placeholder="Codice fiscale" maxlength="16">
+                                <input class="form-control @error('newMemberFiscalCode') is-invalid @enderror" type="text" id="newMemberFiscalCode" placeholder="Codice fiscale" maxlength="16" wire:model.lazy="newMemberFiscalCode">
                             </div>
                         </div>
                         <div class="row mt-2 ">
@@ -708,10 +713,10 @@
             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('newMemberFirstName', $("#newMemberFirstName").val());
+                // @this.set('newMemberLastName', $("#newMemberLastName").val());
+                // @this.set('newMemberEmail', $("#newMemberEmail").val());
+                // @this.set('newMemberFiscalCode', $("#newMemberFiscalCode").val());
             }