Jelajahi Sumber

limit 5 files (docs) upload
custom alert
show buttons to all

Alexander Musikhin 2 minggu lalu
induk
melakukan
e61110675e

+ 6 - 2
app/Http/Controllers/OrderController.php

@@ -311,10 +311,12 @@ class OrderController extends Controller
     public function uploadDocument(Request $request, Order $order, FileService $fileService)
     {
         $data = $request->validate([
-            'document.*' => 'file',
+            'document.*'    => 'file',
         ]);
         $f = [];
+        $i = 0;
         foreach ($data['document'] as $document) {
+            if($i++ >= 5) break;
             $f[] = $fileService->saveUploadedFile( 'orders/' . $order->id . '/document', $document);
         }
         $order->documents()->syncWithoutDetaching($f);
@@ -333,10 +335,12 @@ class OrderController extends Controller
     public function uploadStatement(Request $request, Order $order, FileService $fileService)
     {
         $data = $request->validate([
-            'statement.*' => 'file',
+            'statement.*'   => 'file',
         ]);
         $f = [];
+        $i = 0;
         foreach ($data['statement'] as $statement) {
+            if($i++ >= 5) break;
             $f[] = $fileService->saveUploadedFile( 'orders/' . $order->id . '/statement', $statement);
         }
         $order->statements()->syncWithoutDetaching($f);

+ 4 - 0
app/Http/Controllers/ReclamationController.php

@@ -163,7 +163,9 @@ class ReclamationController extends Controller
             'document.*' => 'file',
         ]);
         $f = [];
+        $i = 0;
         foreach ($data['document'] as $document) {
+            if($i++ >= 5) break;
             $f[] = $fileService->saveUploadedFile('reclamations/' . $reclamation->id . '/document', $document);
         }
         $reclamation->documents()->syncWithoutDetaching($f);
@@ -185,7 +187,9 @@ class ReclamationController extends Controller
             'acts.*' => 'file',
         ]);
         $f = [];
+        $i = 0;
         foreach ($data['acts'] as $document) {
+            if($i++ >= 5) break;
             $f[] = $fileService->saveUploadedFile('reclamations/' . $reclamation->id . '/act', $document);
         }
         $reclamation->acts()->syncWithoutDetaching($f);

+ 13 - 0
resources/views/layouts/app.blade.php

@@ -110,7 +110,19 @@
         </main>
     </div>
 
+    @include('partials.customAlert')
+
+    <script>
+        // Функция для замены стандартного alert
+        function customAlert(message) {
+            $('#customAlertModalBody').text(message); // Устанавливаем текст сообщения
+            let myModal = new bootstrap.Modal(document.getElementById('customAlertModal'), {});
+            myModal.show();
+        }
+    </script>
+
     @stack('scripts')
+
     <script type="module">
         let user = {{ auth()->user()?->id ?? 0}};
         let socketAddress = '{{ config('app.ws_addr') }}';
@@ -148,6 +160,7 @@
 
         });
 
+
     </script>
 
 </body>

+ 11 - 15
resources/views/orders/show.blade.php

@@ -230,21 +230,17 @@
                                             @endif
                                         </td>
                                         <td>
-                                            @if(hasRole('admin'))
-                                                <a href="{{ route('product_sku.show', ['product_sku' =>$p, 'previous_url' => url()->current()]) }}">
-                                                    {!! $p->product->article !!}
-                                                </a>
-                                                <br>
-                                                <a class="small"
-                                                   href="{{ route('catalog.show', ['product' => $p->product, 'previous_url' => request()->fullUrl()]) }}">каталог</a>
-                                            @endif
+                                            <a href="{{ route('product_sku.show', ['product_sku' =>$p, 'previous_url' => url()->current()]) }}">
+                                                {!! $p->product->article !!}
+                                            </a>
+                                            <br>
+                                            <a class="small" href="{{ route('catalog.show', ['product' => $p->product, 'previous_url' => request()->fullUrl()]) }}">каталог</a>
+
                                         </td>
                                         <td>{!! $p->product->nomenclature_number !!}</td>
                                         <td>{{ $p->status }}</td>
                                         <td>
-                                            @if($p->maf_order_id && hasRole('admin'))
-                                                <a href="{{ route('maf_order.show', $p->maf_order) }}">{{ $p->maf_order->order_number }}</a>
-                                            @endif
+                                            <a href="{{ route('maf_order.show', $p->maf_order) }}">{{ $p->maf_order->order_number }}</a>
                                         </td>
                                         <td>{{ $p->rfid }}</td>
                                         <td>{{ $p->factory_number }}</td>
@@ -273,7 +269,7 @@
                             </table>
                         </div>
                         <div>
-                            @if(hasRole('admin'))
+                            @if(hasRole('admin,manager'))
                                 <a href="{{ route('order.get-maf', $order) }}"
                                    class="btn btn-primary btn-sm mb-1 @disabled($order->ready_to_mount == 'Нет' )">Привязать
                                     все МАФы</a>
@@ -441,7 +437,7 @@
             if (ids.length) {
                 $('#create-reclamation-form').submit();
             } else {
-                alert('Нужно выбрать МАФ для рекламации!');
+                customAlert('Нужно выбрать МАФ для рекламации!');
             }
         });
 
@@ -464,7 +460,7 @@
                 let myModalTtn = new bootstrap.Modal(document.getElementById("createTtnModal"), {});
                 myModalTtn.show();
             } else {
-                alert('Нужно выбрать МАФ для ТН!');
+                customAlert('Нужно выбрать МАФ для ТН!');
             }
         });
 
@@ -480,7 +476,7 @@
             if (ids.length) {
                 $('#ttnForm').submit();
             } else {
-                alert('Нужно выбрать МАФ для ТН!');
+                customAlert('Нужно выбрать МАФ для ТН!');
             }
         });
 

+ 16 - 0
resources/views/partials/customAlert.blade.php

@@ -0,0 +1,16 @@
+<div class="modal fade" id="customAlertModal" tabindex="-1" aria-labelledby="customAlertModalLabel" aria-hidden="true">
+    <div class="modal-dialog">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title" id="customAlertModalLabel">Внимание</h5>
+                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
+            </div>
+            <div class="modal-body" id="customAlertModalBody">
+                <!-- Текст сообщения будет вставлен сюда -->
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-primary" data-bs-dismiss="modal">ОК</button>
+            </div>
+        </div>
+    </div>
+</div>