소스 검색

added generate template

Alexander Musikhin 7 달 전
부모
커밋
8d1403e246

+ 7 - 0
app/Http/Controllers/OrderController.php

@@ -3,6 +3,7 @@
 namespace App\Http\Controllers;
 
 use App\Http\Requests\Order\StoreOrderRequest;
+use App\Jobs\GenerateInstallationPack;
 use App\Models\Dictionary\Area;
 use App\Models\Dictionary\District;
 use App\Models\File;
@@ -313,4 +314,10 @@ class OrderController extends Controller
         return redirect()->route('order.show', $order);
     }
 
+    public function generateInstallationPack(Order $order)
+    {
+        GenerateInstallationPack::dispatch($order);
+        return redirect()->route('order.show', $order)->with(['success' => 'Задача генерации документов создана!']);
+    }
+
 }

+ 28 - 0
app/Jobs/GenerateInstallationPack.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Jobs;
+
+use App\Models\Order;
+use Illuminate\Contracts\Queue\ShouldQueue;
+use Illuminate\Foundation\Queue\Queueable;
+
+class GenerateInstallationPack implements ShouldQueue
+{
+    use Queueable;
+
+    /**
+     * Create a new job instance.
+     */
+    public function __construct(private readonly Order $order)
+    {
+        //
+    }
+
+    /**
+     * Execute the job.
+     */
+    public function handle(): void
+    {
+        // generate pack
+    }
+}

+ 15 - 0
app/Models/Order.php

@@ -54,6 +54,21 @@ class Order extends Model
         self::STATUS_PROBLEM => 'Проблема',
     ];
 
+    const STATUS_COLOR = [
+        self::STATUS_NEW => 'dark',
+        self::STATUS_NOT_READY => 'dark',
+        self::STATUS_READY_NO_MAF => '',
+        self::STATUS_READY_TO_MOUNT => 'primary',
+        self::STATUS_IN_MOUNT => 'info',
+        self::STATUS_DUTY => 'warning',
+        self::STATUS_READY_TO_HAND_OVER => 'primary',
+        self::STATUS_NOT_HANDED_OVER_WITH_NOTES => 'warning',
+        self::STATUS_HANDED_OVER_WITH_NOTES => 'info',
+        self::STATUS_HANDED_OVER => 'success',
+        self::STATUS_NO_MAF => 'secondary',
+        self::STATUS_PROBLEM => 'danger',
+    ];
+
 
     // set year attribute to current selected year
     protected static function boot(): void

+ 5 - 3
resources/views/orders/show.blade.php

@@ -17,10 +17,12 @@
                         @method('DELETE')
                     </form>
                 @endif
+                <a href="{{ route('order.generate-installation-pack', $order) }}">Документы для монтажа</a>
+
             </div>
         </div>
         <div class="row">
-            <div class="col-xl-3">
+            <div class="col-xl-3 border-end">
                 <h4>Общая информация об объекте</h4>
                 <div>Название: {{ $order->name }}</div>
                 <div>ID площадки: {{ $order->id }}</div>
@@ -29,7 +31,7 @@
                 </div>
 
                 <div>Тип объекта: {{ $order->objectType->name }}</div>
-                <div>Статус объекта: {{ $order->orderStatus->name }}</div>
+                <div class="text-{{ \App\Models\Order::STATUS_COLOR[$order->order_status_id] }}" >Статус объекта: {{ $order->orderStatus->name }}</div>
                 <div>Комментарий: {{ $order->comment }}</div>
                 <div>Дата выхода на монтаж: {{ $order->installation_date }}</div>
                 <div>Дата готовности площадки: {{ $order->ready_date }}</div>
@@ -153,7 +155,7 @@
                                     </td>
                                     <td>
                                         @if($p->product->image)
-                                            <a href="{{ $p->product->image }}" data-toggle="lightbox" data-gallery="photos" data-size="fullscreen">
+                                            <a href="{{ $p->product->image }}" data-toggle="lightbox" data-gallery="maf" data-size="fullscreen">
                                                 <img src="{{ $p->product->image }}" alt="" class="img-thumbnail maf-img">
                                             </a>
                                         @endif

+ 23 - 6
resources/views/products_sku/edit.blade.php

@@ -5,8 +5,11 @@
     <div class="px-3">
 
         <form class="row" action="{{ route('product_sku.update', $product_sku) }}" method="post">
-            <div class="col-xxl-6">
+            <div class="col-12">
                 <h4>МАФ на складе</h4>
+            </div>
+            <div class="col-xxl-6">
+
                 @csrf
 
                 <input type="hidden" id="product_id" name="product_id" value="{{ $product_sku->product_id }}">
@@ -21,14 +24,28 @@
                 @include('partials.input', ['name' => 'certificate_date', 'title' => 'Дата сертификата', 'type' => 'date', 'required' => true, 'value' => $product_sku->certificate_date])
                 @include('partials.input', ['name' => 'certificate_issuer', 'title' => 'Орган сертификации', 'required' => true, 'value' => $product_sku->certificate_issuer])
                 @include('partials.input', ['name' => 'certificate_type', 'title' => 'Вид сертификации', 'required' => true, 'value' => $product_sku->certificate_type])
-                @include('partials.input', ['name' => 'statement_number', 'title' => 'Номер ведомости', 'required' => true, 'value' => $product_sku->statement_number])
-                @include('partials.input', ['name' => 'statement_date', 'title' => 'Дата ведомости', 'type' => 'date', 'required' => true, 'value' => $product_sku->statement_date])
-                @include('partials.input', ['name' => 'upd_number', 'title' => 'Номер УПД', 'required' => true, 'value' => $product_sku->upd_number])
-                @include('partials.textarea', ['name' => 'comment', 'title' => 'Примечания', 'required' => false, 'size' => 10, 'value' => $product_sku->comment])
+                @include('partials.input', ['name' => 'statement_number', 'title' => 'Номер ведомости', 'value' => $product_sku->statement_number])
+                @include('partials.input', ['name' => 'statement_date', 'title' => 'Дата ведомости', 'type' => 'date', 'value' => $product_sku->statement_date])
+                @include('partials.input', ['name' => 'upd_number', 'title' => 'Номер УПД', 'value' => $product_sku->upd_number])
+            </div>
+            <div class="col-xxl-6">
+                <div class="row mb-2">
+                    <label for="comment" class="col-form-label my-1">
+                        Примечание
+                    </label>
+                    <div>
+                        <textarea name="comment" id="comment" rows="15" class="form-control @error('comment') is-invalid @enderror">{{ old('note', $product_sku->comment ?? '') }}</textarea>
+                        @error('comment')
+                        <span class="invalid-feedback" role="alert"><strong>{{ $message }}</strong></span>
+                        @enderror
+                    </div>
+                </div>
 
 
                 <input type="hidden" name="redirect_url" value="{{ url()->previous() }}">
-                @include('partials.submit', ['name' => 'Сохранить'])
+            </div>
+            <div class="col-12">
+                @include('partials.submit', ['name' => 'Сохранить', 'offset' => 5])
             </div>
         </form>
 @endsection

+ 2 - 0
routes/web.php

@@ -96,6 +96,8 @@ Route::middleware('auth:web')->group(function () {
         Route::delete('order/delete-statement/{order}/{file}', [OrderController::class, 'deleteStatement'])->name('order.delete-statement');
     });
 
+    Route::get('order/generate-installation-pack/{order}', [OrderController::class, 'generateInstallationPack'])->name('order.generate-installation-pack');
+
     // Склад (МАФ)
     Route::get('product_sku', [ProductSKUController::class, 'index'])->name('product_sku.index');
     Route::get('product_sku/{product_sku}', [ProductSKUController::class, 'show'])->name('product_sku.show');