Kaynağa Gözat

Grafica Company completata

ferrari 4 ay önce
ebeveyn
işleme
dc7e04a351

+ 2 - 2
app/Helpers/helpers.php

@@ -9,7 +9,7 @@ if (! function_exists('setTenant')) {
             Log::info('Setting database connection', [
                 'database' => $user->tenant_database,
                 'username' => $user->tenant_username,
-                'password' => $user->tenant_password
+                // 'password' => $user->tenant_password
             ]);
 
             $connection = [
@@ -18,7 +18,7 @@ if (! function_exists('setTenant')) {
                 'port' => '3306',
                 'database' => $user->tenant_database,
                 'username' => $user->tenant_username,
-                'password' => $user->tenant_password,
+                // 'password' => $user->tenant_password,
             ];
 
             config(['database.connections.tenant' => $connection]);

+ 4 - 0
app/Livewire/CompanyRate.php

@@ -87,6 +87,8 @@ class CompanyRate extends Component
             session()->flash('success','Dati salvati con successo');
             $this->resetFields();
             $this->is_edit = false;
+
+            $this->dispatch("update");
         } catch (\Exception $ex) {
             session()->flash('error','Errore (' . $ex->getMessage() . ')');
         }
@@ -97,6 +99,8 @@ class CompanyRate extends Component
         $this->resetFields();
         $this->is_edit = false;
         $this->current_company_rate = null;
+
+        $this->dispatch("update");
     }
 
 }

+ 4 - 0
app/Livewire/CompanyService.php

@@ -77,6 +77,8 @@ class CompanyService extends Component
             session()->flash('success','Dati salvati con successo');
             $this->resetFields();
             $this->is_edit = false;
+
+            $this->dispatch("update");
         } catch (\Exception $ex) {
             session()->flash('error','Errore (' . $ex->getMessage() . ')');
         }
@@ -87,6 +89,8 @@ class CompanyService extends Component
         $this->resetFields();
         $this->is_edit = false;
         $this->current_company_service = null;
+
+        $this->dispatch("update");
     }
 
 }

+ 3 - 38
app/Models/Company.php

@@ -16,7 +16,7 @@ class Company extends Model
 
     public function __construct()
     {
-        $this->setTenant();
+        setTenant();
     }
 
     protected $fillable = [
@@ -56,46 +56,11 @@ class Company extends Model
 
     public function rates()
     {
-        return $this->hasMany(\App\Models\CompanyActivity::class);
+        return $this->hasMany(\App\Models\CompanyRate::class);
     }
 
     public function services()
     {
-        return $this->hasMany(\App\Models\CompanyActivity::class);
-    }
-
-    function setTenant()
-    {
-        $user = auth()->user();
-
-        if ($user) {
-            Log::info('Setting database connection', [
-                'database' => $user->tenant_database,
-                'username' => $user->tenant_username,
-                // 'password' => $user->tenant_password
-            ]);
-
-            $connection = [
-                'driver' => 'mysql',
-                'host' => '127.0.0.1',
-                'port' => '3306',
-                'database' => $user->tenant_database,
-                'username' => $user->tenant_username,
-                // 'password' => $user->tenant_password,
-            ];
-
-            config(['database.connections.tenant' => $connection]);
-
-            config(['database.default' => 'tenant']);
-            DB::purge('tenant');
-            DB::reconnect('tenant');
-
-            session(['currentClient' => $user->tenant_database]);
-
-            session(['db_connection' => $connection]);
-
-            Log::info('Current database after setup: ' . DB::connection()->getDatabaseName());
-            Log::info('Current default connection: ' . DB::getDefaultConnection());
-        }
+        return $this->hasMany(\App\Models\CompanyService::class);
     }
 }

+ 18 - 6
public/assets/css/custom.css

@@ -42,6 +42,10 @@ ul.standard-list li {
     border-color: var(--white);
     box-shadow: none;
 }
+textarea.form-control {
+    min-height: 70px;
+    line-height: 1.2em;
+}
 .theme-form .form-control.input-white::placeholder {
     color: var(--white);
     opacity: 0.75;
@@ -264,6 +268,9 @@ a#prevBtn {
     font-weight: 300;
     height: 35px;
 }
+.theme-form textarea {
+    padding: 9.7px 14px;
+}
 @media (max-width: 991.98px) {
     .login-card .login-main {
         width: 550px;
@@ -372,6 +379,9 @@ a#prevBtn {
     font-weight: 400;
     padding: 15px 26px;
 }
+.page-sidebar .sidebar-menu .sidebar-list:has(.active) .arrow {
+    transform: rotate(180deg);
+}
 /* END - sidebar */
 
 .row.w-100 {
@@ -499,7 +509,7 @@ a#prevBtn {
 
 /* Table */
 div.dt-container div.dt-layout-row {
-margin: 24px 0 0 0;
+    margin: 24px 0 0 0;
 }
 div.dt-container div.dt-layout-row.dt-layout-table {
     margin-top: 0;
@@ -577,7 +587,7 @@ table.dataTable.display > tbody > tr:not(:hover):nth-child(odd) > * {
 
 table.dataTable > thead > tr > th,
 table.dataTable > thead > tr > td {
-    padding: 24px  24px 16px 24px;
+    padding: 24px 24px 16px 24px;
 }
 
 table.dataTable > tbody > tr > th,
@@ -666,7 +676,9 @@ div.dt-container .dt-paging .dt-paging-button.last.disabled:hover {
 }
 
 div.dt-container .dt-paging .dt-paging-button.first:not(.disabled):hover:after,
-div.dt-container .dt-paging .dt-paging-button.previous:not(.disabled):hover:after,
+div.dt-container
+    .dt-paging
+    .dt-paging-button.previous:not(.disabled):hover:after,
 div.dt-container .dt-paging .dt-paging-button.next:not(.disabled):hover:after,
 div.dt-container .dt-paging .dt-paging-button.last:not(.disabled):hover:after {
     opacity: 0.66;
@@ -691,13 +703,13 @@ div.dt-container .dt-paging .dt-paging-button.last:after {
     opacity: 0.33;
 }
 
-div.dt-container .dt-paging .dt-paging-button.first:after{
+div.dt-container .dt-paging .dt-paging-button.first:after {
     content: url(/assets/images/pagination/first.svg);
 }
-div.dt-container .dt-paging .dt-paging-button.previous:after{
+div.dt-container .dt-paging .dt-paging-button.previous:after {
     content: url(/assets/images/pagination/previous.svg);
 }
-div.dt-container .dt-paging .dt-paging-button.next:after{
+div.dt-container .dt-paging .dt-paging-button.next:after {
     content: url(/assets/images/pagination/next.svg);
 }
 div.dt-container .dt-paging .dt-paging-button.last:after {

+ 23 - 14
public/assets/js/sidebar.js

@@ -51,26 +51,35 @@ const sidebarListItems = document.querySelectorAll(".sidebar-link");
 // Add onclick event listener to each sidebar-list item
 sidebarListItems.forEach((item) => {
   item.addEventListener("click", () => {
+    let active_subEl = item.parentElement.querySelector(".sidebar-submenu .active");
+    console.log("active_subEl", active_subEl);
+    if (active_subEl) return false;
+
     item.classList.toggle("active");
     const submenu = item
       .closest(".sidebar-list")
       .querySelector(".sidebar-submenu");
     if (submenu) {
-      submenu.style.display = item.classList.contains("active")
-        ? "block"
-        : "none";
-    }
-    sidebarListItems.forEach((otherList) => {
-      if (otherList !== item) {
-        otherList.classList.remove("active");
-        const otherSubmenu = otherList
-          .closest(".sidebar-list")
-          .querySelector(".sidebar-submenu");
-        if (otherSubmenu) {
-          otherSubmenu.style.display = "none";
-        }
+      // submenu.style.display = item.classList.contains("active")
+      //   ? "block"
+      //   : "none";
+      if (item.classList.contains("active")) {
+        $(submenu).slideDown()
+      } else {
+        $(submenu).slideUp()
       }
-    });
+    }
+    // sidebarListItems.forEach((otherList) => {
+    //   if (otherList !== item) {
+    //     otherList.classList.remove("active");
+    //     const otherSubmenu = otherList
+    //       .closest(".sidebar-list")
+    //       .querySelector(".sidebar-submenu");
+    //     if (otherSubmenu) {
+    //       otherSubmenu.style.display = "none";
+    //     }
+    //   }
+    // });
   });
 });
 

+ 3 - 3
resources/views/livewire/company.blade.php

@@ -190,10 +190,10 @@
     </div>
 
     <div class="section-content" data-name="attività">
-        <livewire:company-rate :company="$current_company" />
+        <livewire:company-activity :company="$current_company" />
     </div>
-
+    
     <div class="section-content" data-name="tariffario">
-        <livewire:company-activity :company="$current_company" />
+        <livewire:company-rate :company="$current_company" />
     </div>
 </div>

+ 2 - 2
resources/views/livewire/company_activity.blade.php

@@ -13,7 +13,7 @@
     <div class="col-md-6 col-xs-12 mb-4">
         <div class="form-group">
             <label for="description">Descrizione</label>
-            <input class="form-control @error('description') is-invalid @enderror" id="description" name="description" type="text" placeholder="Inserisci" wire:model="description">
+            <textarea class="form-control @error('description') is-invalid @enderror" id="description" name="description" type="text" placeholder="Inserisci" wire:model="description"></textarea>
             @error('description')
             <div class="invalid-feedback">{{ $message }}</div>
             @enderror
@@ -70,7 +70,7 @@
                     <td>{{$c->description}}</td>
                     <td class="text-center dt-actions">
                         <a class="dt-action" wire:click="edit({{$c->id}})"><i class="icli iconly-Edit-Square"></i></a>
-                        <a class="dt-action" {{--wire:click="delete({{$c->id}})" --}}><i class="icli iconly-Delete"></i></a>
+                        <a class="dt-action" {{-- wire:click="delete({{$c->id}})" --}}><i class="icli iconly-Delete"></i></a>
                     </td>
                 </tr>
                 @endforeach

+ 63 - 8
resources/views/livewire/company_rate.blade.php

@@ -1,5 +1,58 @@
 <div class="row">
-    {{-- @if($is_edit)
+    @if($is_edit)
+    <div class="col-md-6 col-xs-12 mb-4">
+        <div class="form-group">
+            <label for="amount">Tariffa</label>
+            <input class="form-control @error('amount') is-invalid @enderror" id="amount" name="amount" type="number" placeholder="Inserisci" wire:model="amount" required>
+            @error('amount')
+            <div class="invalid-feedback">{{ $message }}</div>
+            @enderror
+        </div>
+    </div>
+
+    <div class="col-md-6 col-xs-12 mb-4">
+        <div class="form-group">
+            <label for="type">Tipo</label>
+            <input class="form-control @error('type') is-invalid @enderror" id="type" name="type" type="text" placeholder="Inserisci" wire:model="type" required>
+            @error('type')
+            <div class="invalid-feedback">{{ $message }}</div>
+            @enderror
+        </div>
+    </div>
+
+    <div class="col-md-6 col-xs-12 mb-4">
+        <div class="form-group">
+            <label for="group">Gruppo</label>
+            <input class="form-control @error('group') is-invalid @enderror" id="group" name="group" type="text" placeholder="Inserisci" wire:model="group" required>
+            @error('group')
+            <div class="invalid-feedback">{{ $message }}</div>
+            @enderror
+        </div>
+    </div>
+
+    <div class="col-md-6 col-xs-12 mb-4">
+        <div class="form-group">
+            <label for="description">Descrizione</label>
+            <textarea class="form-control @error('description') is-invalid @enderror" id="description" name="description" type="text" placeholder="Inserisci" wire:model="description"></textarea>
+            @error('description')
+            <div class="invalid-feedback">{{ $message }}</div>
+            @enderror
+        </div>
+    </div>
+
+    <div class="col-md-12 col-xs-12 mb-4">
+        <div class="form-group has-switch">
+            <label for="enabled">Abilitato</label>
+            <label class="switch">
+                <input class="form-control @error('enabled') is-invalid @enderror" id="enabled" name="enabled" type="checkbox" wire:model="enabled" @if ($enabled) checked @endif>
+                @error('enabled')
+                <div class="invalid-feedback">{{ $message }}</div>
+                @enderror
+                <span class="switch-state bg-primary"></span>
+            </label>
+        </div>
+    </div>
+
     <div class="col-md-12 mb-4"></div>
 
     <div class="col-auto mb-4">
@@ -13,7 +66,7 @@
         </div>
     </div>
 
-    @else --}}
+    @else
 
     <div class="col-md-12 col-xs-12">
         <div class="form-group text-end">
@@ -24,29 +77,31 @@
         <table class="dataTable display" id="company-rates">
             <thead>
                 <tr>
-                    <th>Gruppo</th>
                     <th>Tariffa</th>
                     <th>Tipo</th>
+                    <th>Gruppo</th>
                     <th>Descrizione</th>
                     <th class="no-sort text-center dt-actions-th">Azioni</th>
                 </tr>
             </thead>
             <tbody>
-                {{-- @foreach($company_rates as $c)
+                @foreach($company_rates as $c)
                 <tr>
-                    <td>{{$c->name}}</td>
+                    <td>{{$c->amount}}</td>
+                    <td>{{$c->type}}</td>
+                    <td>{{$c->group}}</td>
                     <td>{{$c->description}}</td>
                     <td class="text-center dt-actions">
                         <a class="dt-action" wire:click="edit({{$c->id}})"><i class="icli iconly-Edit-Square"></i></a>
-                        <a class="dt-action" {{--wire:click="delete({{$c->id}})" --/}}><i class="icli iconly-Delete"></i></a>
+                        <a class="dt-action" {{-- wire:click="delete({{$c->id}})" --}}><i class="icli iconly-Delete"></i></a>
                     </td>
                 </tr>
-                @endforeach --}}
+                @endforeach
             </tbody>
         </table>
     </div>
 
-    {{-- @endif --}}
+    @endif
 </div>
 
 @push('scripts')

+ 40 - 6
resources/views/livewire/company_service.blade.php

@@ -1,5 +1,38 @@
 <div class="row">
-    {{-- @if($is_edit)
+    @if($is_edit)
+    <div class="col-md-6 col-xs-12 mb-4">
+        <div class="form-group">
+            <label for="name">Servizio</label>
+            <input class="form-control @error('name') is-invalid @enderror" id="name" name="name" type="text" placeholder="Inserisci" wire:model="name" required>
+            @error('name')
+            <div class="invalid-feedback">{{ $message }}</div>
+            @enderror
+        </div>
+    </div>
+
+    <div class="col-md-6 col-xs-12 mb-4">
+        <div class="form-group">
+            <label for="description">Descrizione</label>
+            <textarea class="form-control @error('description') is-invalid @enderror" id="description" name="description" type="text" placeholder="Inserisci" wire:model="description"></textarea>
+            @error('description')
+            <div class="invalid-feedback">{{ $message }}</div>
+            @enderror
+        </div>
+    </div>
+
+    <div class="col-md-12 col-xs-12 mb-4">
+        <div class="form-group has-switch">
+            <label for="enabled">Abilitato</label>
+            <label class="switch">
+                <input class="form-control @error('enabled') is-invalid @enderror" id="enabled" name="enabled" type="checkbox" wire:model="enabled" @if ($enabled) checked @endif>
+                @error('enabled')
+                <div class="invalid-feedback">{{ $message }}</div>
+                @enderror
+                <span class="switch-state bg-primary"></span>
+            </label>
+        </div>
+    </div>
+
     <div class="col-md-12 mb-4"></div>
 
     <div class="col-auto mb-4">
@@ -13,7 +46,7 @@
         </div>
     </div>
 
-    @else --}}
+    @else
 
     <div class="col-md-12 col-xs-12">
         <div class="form-group text-end">
@@ -31,21 +64,22 @@
                 </tr>
             </thead>
             <tbody>
-                {{-- @foreach($company_services as $c)
+                @foreach($company_services as $c)
                 <tr>
                     <td>{{$c->name}}</td>
                     <td>{{$c->description}}</td>
+                    <td>{{-- {{$c->description}} --}}</td>
                     <td class="text-center dt-actions">
                         <a class="dt-action" wire:click="edit({{$c->id}})"><i class="icli iconly-Edit-Square"></i></a>
-                        <a class="dt-action" {{--wire:click="delete({{$c->id}})" --/}}><i class="icli iconly-Delete"></i></a>
+                        <a class="dt-action" {{-- wire:click="delete({{$c->id}})" --}}><i class="icli iconly-Delete"></i></a>
                     </td>
                 </tr>
-                @endforeach --}}
+                @endforeach
             </tbody>
         </table>
     </div>
 
-    {{-- @endif --}}
+    @endif
 </div>
 
 @push('scripts')