Przeglądaj źródła

updated maf orders

Alexander Musikhin 7 miesięcy temu
rodzic
commit
186e556912

+ 6 - 0
app/Http/Controllers/MafOrderController.php

@@ -78,4 +78,10 @@ class MafOrderController extends Controller
         $maf_order->delete();
         return redirect()->route('maf_order.index');
     }
+
+    public function setInStock(MafOrder $maf_order)
+    {
+        $maf_order->update(['in_stock' => $maf_order->quantity, 'status' => 'на складе']);
+        return redirect()->route('maf_order.show', $maf_order);
+    }
 }

+ 6 - 0
app/Models/MafOrder.php

@@ -6,6 +6,7 @@ use App\Models\Scopes\YearScope;
 use Illuminate\Database\Eloquent\Attributes\ScopedBy;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
+use Illuminate\Database\Eloquent\Relations\HasMany;
 use Illuminate\Database\Eloquent\SoftDeletes;
 
 #[ScopedBy([YearScope::class])]
@@ -44,4 +45,9 @@ class MafOrder extends Model
         return $this->belongsTo(Product::class);
     }
 
+    public function products_sku(): HasMany
+    {
+        return $this->hasMany(ProductSKU::class);
+    }
+
 }

+ 51 - 18
resources/views/maf_orders/edit.blade.php

@@ -2,26 +2,59 @@
 
 @section('content')
 
-    <div class="px-3">
-
-        <form class="row" action="{{ route('maf_order.update', $maf_order) }}" method="post">
-            <div class="col-xxl-6">
-                <h4>Заказ МАФ</h4>
-                @csrf
-
-                <input type="hidden" id="product_id" name="product_id" value="{{ $maf_order->product_id }}">
-                @include('partials.input', ['name' => 'product_name', 'title' => 'МАФ', 'disabled' => true, 'value' => $maf_order->product->common_name])
-                @include('partials.input', ['name' => 'order_number', 'title' => 'Номер заказа', 'required' => false, 'value' => $maf_order->order_number])
-                @include('partials.select', ['name' => 'status', 'title' => 'Статус', 'options' => ['заказан', 'на складе'], 'key_as_val' => true, 'value' => $maf_order->status])
-                @include('partials.input', ['name' => 'quantity', 'title' => 'Количество', 'type' => 'number', 'required' => true, 'value' => $maf_order->quantity, 'required' => true])
-                @if($maf_order->status == 'заказан')
-                    @include('partials.input', ['name' => 'in_stock', 'title' => 'Остаток', 'type' => 'number', 'required' => true, 'value' => $maf_order->in_stock, 'required' => true])
-                @endif
-                @include('partials.submit', ['name' => 'Сохранить', 'delete' => ['form_id' => 'destroy', 'title' => 'Удалить']])
-            </div>
-        </form>
+    <div class="px-3 row">
+        <div class="col-xl-6">
+            <form class="row" action="{{ route('maf_order.update', $maf_order) }}" method="post">
+                <div class="">
+                    <h4>Заказ МАФ</h4>
+                    @csrf
+
+                    <input type="hidden" id="product_id" name="product_id" value="{{ $maf_order->product_id }}">
+                    @include('partials.input', ['name' => 'product_name', 'title' => 'МАФ', 'disabled' => true, 'value' => $maf_order->product->common_name])
+                    @include('partials.input', ['name' => 'order_number', 'title' => 'Номер заказа', 'required' => false, 'value' => $maf_order->order_number, 'disabled' => $maf_order->products_sku->count()])
+                    @include('partials.select', ['name' => 'status', 'title' => 'Статус', 'options' => ['заказан', 'на складе'], 'key_as_val' => true, 'value' => $maf_order->status, 'disabled' => $maf_order->products_sku->count()])
+                    @include('partials.input', ['name' => 'quantity', 'title' => 'Количество', 'type' => 'number', 'required' => true, 'value' => $maf_order->quantity, 'required' => true, 'disabled' => $maf_order->products_sku->count()])
+                    @include('partials.input', ['name' => 'in_stock', 'title' => 'Остаток', 'type' => 'number', 'required' => true, 'value' => $maf_order->in_stock, 'required' => true, 'disabled' => $maf_order->products_sku->count()])
+
+                    @if($maf_order->products_sku->count())
+                        <div class="row">
+                            <div class="buttons offset-md-4 col-md-8 ">
+                                <a href="{{ url()->previous() }}" class="btn btn-primary">Назад</a>
+                            </div>
+                        </div>
+                    @else
+                        @include('partials.submit', ['name' => 'Сохранить', 'deleteDisabled' => $maf_order->products_sku->count(), 'delete' => ['form_id' => 'destroy', 'title' => 'Удалить']])
+                        @if($maf_order->status == 'заказан')
+                            <div class="row mt-3">
+                                <div class="buttons offset-md-4 col-md-8 ">
+                                    <a href="#" class="btn btn-primary" onclick="$('#set-status').submit();">На складе</a>
+                                </div>
+                            </div>
+                        @endif
+
+
+                    @endif
+                </div>
+            </form>
+        </div>
+
+        <div class="col-xl-6">
+            <h3>Площадки, куда отгружен МАФ</h3>
+            @foreach($maf_order->products_sku as $product_sku)
+                <div>
+                    <a href="{{ route('order.edit', $product_sku->order) }}">
+                        {{ $product_sku->order->common_name }}
+                    </a>
+                </div>
+            @endforeach
+        </div>
+
     </div>
+
     <div class="visually-hidden d-none">
+        <form action="{{ route('maf_order.set_in_stock', $maf_order) }}" method="post" id="set-status">
+            @csrf
+        </form>
         <form action="{{ route('maf_order.delete', $maf_order) }}" id="destroy" method="post">
             @csrf
             @method('DELETE')

+ 1 - 1
resources/views/partials/submit.blade.php

@@ -1,7 +1,7 @@
 <div class="row">
     <div class="@if(!($right ?? null)) offset-md-{{ $offset ?? 4 }} col-md-8 @endif buttons">
         <button type="submit" class="btn btn-primary text-white">{{ $name ?? 'Сохранить' }}</button>
-        @if(isset($delete))
+        @if(isset($delete) && !($deleteDisabled ?? false))
             <a href="#" class="btn btn-danger delete">{{ $delete['title'] }}</a>
         @endif
     </div>

+ 1 - 1
routes/web.php

@@ -86,7 +86,7 @@ Route::middleware('auth:web')->group(function () {
     Route::post('maf_orders/store', [MafOrderController::class, 'store'])->name('maf_order.store');
     Route::post('maf_orders/update/{maf_order}', [MafOrderController::class, 'update'])->name('maf_order.update');
     Route::delete('maf_orders/delete/{maf_order}', [MafOrderController::class, 'destroy'])->name('maf_order.delete');
-
+    Route::post('maf_orders/set_in_stock/{maf_order}', [MafOrderController::class, 'setInStock'])->name('maf_order.set_in_stock');
     // ajax search products
     Route::get('product/search', [ProductController::class, 'search'])->name('product.search');