FabioFratini преди 9 месеца
родител
ревизия
9b62b58ad6

+ 29 - 4
app/Http/Livewire/PaymentMethod.php

@@ -1,13 +1,13 @@
 <?php
 
 namespace App\Http\Livewire;
-
+use App\Http\Livewire\Auth;
 use Livewire\Component;
 
 class PaymentMethod extends Component
 {
     public $records, $name, $enabled, $money, $type, $corrispettivo_fiscale, $dataId, $bank_id, $update = false, $add = false;
-
+    public $paymentMethods = [];
     public $banks = array();
 
     protected $rules = [
@@ -47,8 +47,10 @@ class PaymentMethod extends Component
         if(\Auth::user()->level != env('LEVEL_ADMIN', 0))
             return redirect()->to('/dashboard');
 
-        $this->banks = \App\Models\Bank::select('id', 'name')->get();
-    }
+            $this->banks = \App\Models\Bank::select('id', 'name')->get();
+
+            // Load predefined payment methods from database
+            $this->loadPaymentMethodOptions();    }
 
     public function render()
     {
@@ -149,4 +151,27 @@ class PaymentMethod extends Component
             session()->flash('error','Errore (' . $ex->getMessage() . ')');
         }
     }
+
+    protected function loadPaymentMethodOptions()
+    {
+        $this->paymentMethods = [
+            ['name' => 'Contanti', 'code' => 'MP01'],
+            ['name' => 'Assegno', 'code' => 'MP02'],
+            ['name' => 'Assegno circolare', 'code' => 'MP03'],
+            ['name' => 'Contanti presso Tesoreria', 'code' => 'MP04'],
+            ['name' => 'Bonifico', 'code' => 'MP05'],
+            ['name' => 'Vaglia cambiario', 'code' => 'MP06'],
+            ['name' => 'Bollettino bancario', 'code' => 'MP07'],
+            ['name' => 'Carta di credito', 'code' => 'MP08'],
+            ['name' => 'RID', 'code' => 'MP09'],
+            ['name' => 'RID utenze', 'code' => 'MP10'],
+            ['name' => 'RID veloce', 'code' => 'MP11'],
+            ['name' => 'Riba', 'code' => 'MP12'],
+            ['name' => 'MAV', 'code' => 'MP13'],
+            ['name' => 'Quietanza erario stato', 'code' => 'MP14'],
+            ['name' => 'Giroconto su conti di contabilità speciale', 'code' => 'MP15'],
+            ['name' => 'Domiciliazione bancaria', 'code' => 'MP16'],
+            ['name' => 'Domiciliazione postale', 'code' => 'MP17']
+        ];
+    }
 }

+ 261 - 0
database/migrations/2025_04_07_132625_add_code_to_payment_methods_and_insert_data.php

@@ -0,0 +1,261 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Support\Facades\DB;
+
+class AddCodeToPaymentMethodsAndInsertData extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        if (!Schema::hasColumn('payment_methods', 'code')) {
+            Schema::table('payment_methods', function (Blueprint $table) {
+                $table->string('code', 10)->nullable()->after('type');
+            });
+        }
+
+        $typeValue = 'ALL';
+
+        $paymentMethods = [
+            [
+                'bank_id' => null,
+                'name' => 'Contanti',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP01'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Assegno',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP02'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Assegno circolare',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP03'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Contanti presso Tesoreria',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP04'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Bonifico',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP05'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Vaglia cambiario',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP06'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Bollettino bancario',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP07'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Carta di credito',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP08'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'RID',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP09'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'RID utenze',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP10'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'RID veloce',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP11'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Riba',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP12'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'MAV',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP13'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Quietanza erario stato',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP14'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Giroconto su conti di contabilità speciale',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP15'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Domiciliazione bancaria',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP16'
+            ],
+            [
+                'bank_id' => null,
+                'name' => 'Domiciliazione postale',
+                'money' => 0,
+                'enabled' => 1,
+                'deleted_at' => null,
+                'created_at' => now(),
+                'updated_at' => now(),
+                'corrispettivo_fiscale' => null,
+                'type' => $typeValue,
+                'code' => 'MP17'
+            ],
+        ];
+
+        foreach ($paymentMethods as $method) {
+            $exists = DB::table('payment_methods')->where('code', $method['code'])->exists();
+
+            if ($exists) {
+                DB::table('payment_methods')
+                    ->where('code', $method['code'])
+                    ->update($method);
+            } else {
+                // Insert new payment method
+                DB::table('payment_methods')->insert($method);
+            }
+        }
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        if (Schema::hasColumn('payment_methods', 'code')) {
+            Schema::table('payment_methods', function (Blueprint $table) {
+                $table->dropColumn('code');
+            });
+        }
+
+
+    }
+}

+ 7 - 2
resources/views/livewire/payment_method.blade.php

@@ -111,8 +111,13 @@
                         <div class="row mb-3">
                             <div class="col">
                                 <div class="form--item">
-                                    <label for="inputName" class="form-label">Nome</label>
-                                    <input class="form-control js-keyupTitle @error('name') is-invalid @enderror" type="text" id="name" placeholder="Nome" wire:model="name">
+                                    <label for="name" class="form-label">Nome</label>
+                                    <select class="form-control @error('name') is-invalid @enderror" id="name" wire:model="name">
+                                        <option value="">Seleziona un metodo di pagamento</option>
+                                        @foreach($paymentMethods as $method)
+                                            <option value="{{ $method['name'] }}">{{ $method['name'] }} ({{ $method['code'] }})</option>
+                                        @endforeach
+                                    </select>
                                     @error('name')
                                         <div class="invalid-feedback">{{ $message }}</div>
                                     @enderror