فهرست منبع

Inserimento rate

Luca Parisio 9 ماه پیش
والد
کامیت
4ee81428f4

+ 63 - 0
app/Http/Livewire/Rate.php

@@ -23,6 +23,13 @@ class Rate extends Component
     public $members = [];
     public $detail = '';
 
+    public $course_subscription_id;
+    public $price;
+    public $date;
+    public $months = [];
+    public $couse_subscriptions = [];
+    public $price_list = [];
+
     public function mount()
     {
         // Load members for the dropdown
@@ -32,7 +39,21 @@ class Rate extends Component
         {
             $this->mc = \App\Models\MemberCourse::findOrFail($this->member_course_id);
             $this->detail = 'Riepilogo rate ' . $this->mc->course->name . ' di ' . $this->mc->member->first_name . " " . $this->mc->member->last_name;
+
+            $this->price_list = [];
+            $c = $this->mc->course;
+            if ($c->prices != null)
+            {
+                foreach(json_decode($c->prices) as $z)
+                {
+                    $this->price_list[$z->course_subscription_id] = $z->price;
+                }
+            }
+            
         }
+        $this->course_subscriptions = \App\Models\CourseSubscription::select('*')->where('enabled', true)->get();
+
+        
     }
 
     public function render()
@@ -62,6 +83,36 @@ class Rate extends Component
         return view('livewire.rate');
     }
 
+    public function updatedCourseSubscriptionId()
+    {
+        $this->price = 0;
+        if (isset($this->price_list[$this->course_subscription_id]))
+            $this->price = $this->price_list[$this->course_subscription_id];
+    }
+
+    public function add()
+    {
+
+        $rate = new \App\Models\Rate();
+        $rate->member_id = $this->member_id;
+        $rate->member_course_id = $this->member_course_id;
+        $rate->course_subscription_id = $this->course_subscription_id;
+        $rate->price = currencyToDouble($this->price);
+        $rate->date = $this->date;
+        $rate->months = json_encode($this->months);
+        $rate->note = '';
+        $rate->status = 0;
+        $rate->save();
+
+        $this->course_subscription_id = null;
+        $this->price = 0;
+        $this->date = null;
+        $this->months = [];
+
+        $this->emit('close-popup');
+
+    }
+
     public function printReceipt($id)
     {
         $this->emit('load-data-table');
@@ -97,4 +148,16 @@ class Rate extends Component
         }
     }
 
+    public function addDeleteMonth($m)
+    {
+        if (!in_array($m, $this->months))
+        {
+            $this->months[] = $m;
+        }
+        else
+        {
+
+        }
+    }
+
 }

+ 1 - 1
app/Providers/AppServiceProvider.php

@@ -24,6 +24,6 @@ class AppServiceProvider extends ServiceProvider
      */
     public function boot()
     {
-            URL::forceScheme('https');
+            //URL::forceScheme('https');
     }
 }

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

@@ -111,11 +111,11 @@
                 pagingType: 'numbers',
                 "language": {
                     "url": "/assets/js/Italian.json"
-                },
+                }/*,
                 "fnInitComplete": function (oSettings, json) {
                     var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
-                }
+                }*/
             });
             $('#tablesaw-350 thead tr th').addClass('col');
             $('#tablesaw-350 thead tr th').css("background-color", "#f6f8fa");

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

@@ -133,11 +133,11 @@
                 pagingType: 'numbers',
                 "language": {
                     "url": "/assets/js/Italian.json"
-                },
+                }/*,
                 "fnInitComplete": function (oSettings, json) {
                     var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
-                }
+                }*/
             });
             $('#tablesaw-350 thead tr th').addClass('col');
             $('#tablesaw-350 thead tr th').css("background-color", "#f6f8fa");

+ 79 - 10
resources/views/livewire/rate.blade.php

@@ -6,15 +6,6 @@
             <i class="ico--ui title_section utenti me-2"></i>
             <h2 class="primary">Rate</h2>
         </div>
-
-        <!--
-        <div class="title--section_addButton"  wire:click="add()" style="cursor: pointer;">
-            <div class="btn--ui entrata d-flex justify-items-between">
-                <a href="#" wire:click="add()" style="color:white">Aggiungi</a>
-            </div>
-        </div>
-        -->
-
     </header>
 
     <a class="btn--ui lightGrey" href="/course_member?id={{$mc->course_id}}"><i class="fa-solid fa-arrow-left"></i></a><br>
@@ -144,6 +135,62 @@
 
     </section>
 
+    <div  wire:ignore.self class="modal fade" id="rateModal" tabindex="-1" aria-labelledby="rateModalLabel" aria-hidden="true">
+        <div class="modal-dialog">
+            <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title" id="rateModalLabel">Inserimento nuova rata</h5>
+                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
+            </div>
+            <div class="modal-body">
+                <div class="row">
+                    <div class="col-md-6">
+                        <label for="course_subscription_id" class="form-label">Abbonamento</label>
+                        <select id="course_subscription_id" class="form-select  @error('course_subscription_id') is-invalid @enderror" aria-label="Abbonamento" wire:model="course_subscription_id">
+                            <option value="">
+                            @foreach($course_subscriptions as $t)
+                                <option value="{{$t["id"]}}">{{$t["name"]}}
+                            @endforeach
+                        </select>
+                    </div>
+                    <div class="col-md-6">
+                        <label for="price" class="form-label">Prezzo</label>
+                        <input class="form-control" type="text" id="price" placeholder="Costo mensile" wire:model="price" onkeyup="onlyNumberAmount(this)">
+                    </div>
+                </div>
+                <div class="row mt-2">
+                    <div class="col-md-6">
+                        <label for="date" class="form-label">Scadenza</label>
+                        <input class="form-control @error('date') is-invalid @enderror" type="date" id="date" placeholder="Email" wire:model="date">
+                    </div>
+                <div>
+                <div class="row mt-2">
+                    <div class="col-md-12">
+                        <label for="months" class="form-label">Mesi</label><br>
+                        <input type="checkbox" value="1" class="chkMonth">&nbsp;Gennaio
+                        <input type="checkbox"  value="2" class="chkMonth">&nbsp;Febbraio
+                        <input type="checkbox"  value="3" class="chkMonth">&nbsp;Marzo
+                        <input type="checkbox"  value="4" class="chkMonth">&nbsp;Aprile<br>
+                        <input type="checkbox"  value="5" class="chkMonth">&nbsp;Maggio
+                        <input type="checkbox"  value="6" class="chkMonth">&nbsp;Giugno
+                        <input type="checkbox"  value="7" class="chkMonth">&nbsp;Luglio
+                        <input type="checkbox"  value="8" class="chkMonth">&nbsp;Agosto<br>
+                        <input type="checkbox"  value="9" class="chkMonth">&nbsp;Settembre
+                        <input type="checkbox"  value="10" class="chkMonth">&nbsp;Ottobre
+                        <input type="checkbox"  value="11" class="chkMonth">&nbsp;Novembre
+                        <input type="checkbox"  value="12" class="chkMonth">&nbsp;Dicembre
+                    </div>
+                </div>
+                
+            </div>
+            <div class="modal-footer">
+                <button class="btn--ui lightGrey" onclick="annulla()">annulla</a>
+                <button type="button" class="btn--ui btn-primary" wire:click.prevent="add()">Inserisci</button>
+            </div>
+            </div>
+        </div>
+    </div>
+
 </div>
 
 
@@ -247,18 +294,40 @@
 @push('scripts')
     <script>
 
+        function annulla()
+        {
+            $('.btn-close').trigger('click') ;
+            setTimeout(() => {
+                location.reload();    
+            }, 200);                
+        }
+
         function confirmDelete(id)
         {
             if (confirm('Confermi di voler eliminare la rata?'))
             {
                 @this.delete(id);
+                setTimeout(() => {
+                    location.reload();    
+                }, 200);                
             }
         }
 
         $(document).ready(function() {
             loadDataTable();
+
+            $('.chkMonth').change(function() {
+                let val = ($(this).val());
+                @this.addDeleteMonth(val);
+                
+            });
+
         } );
 
+        Livewire.on('close-popup', () => {
+            annulla();            
+        });
+
         Livewire.on('load-data-table', () => {
             loadDataTable();
         });
@@ -319,7 +388,7 @@
                     "url": "/assets/js/Italian.json"
                 },
                 "fnInitComplete": function (oSettings, json) {
-                    var html = '&nbsp;<a href="#" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
+                    var html = '&nbsp;<a href="#" data-bs-toggle="modal" data-bs-target="#rateModal" class="addData btn--ui"><i class="fa-solid fa-plus"></i></a>';
                     $(".dt-search").append(html);
                 }
             });