Переглянути джерело

ttn begin, created force https config and env param

Alexander Musikhin 2 місяців тому
батько
коміт
5f58263bfe

+ 1 - 0
.env.example

@@ -11,6 +11,7 @@ WS_PORT=3090
 WS_ADDR=/ws
 WS_DEBUG_PORT=9229
 MINIO_DEBUG_PORT=39757
+FORCE_HTTPS=false
 
 APP_NAME="Stroyprofit CRM"
 APP_ENV=local

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

@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use App\Http\Requests\CreteTtnRequest;
 use App\Http\Requests\Order\StoreOrderRequest;
 use App\Jobs\GenerateFilesPack;
 use App\Jobs\GenerateHandoverPack;
@@ -339,4 +340,9 @@ class OrderController extends Controller
         return redirect()->back()->with(['success' => 'Задача архивации создана!']);
     }
 
+    public function createTtn(CreteTtnRequest $request)
+    {
+        dd($request->validated());
+    }
+
 }

+ 31 - 0
app/Http/Requests/CreteTtnRequest.php

@@ -0,0 +1,31 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class CreteTtnRequest extends FormRequest
+{
+    /**
+     * Determine if the user is authorized to make this request.
+     */
+    public function authorize(): bool
+    {
+        return auth()->check();
+    }
+
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
+     */
+    public function rules(): array
+    {
+        return [
+            'order_number'  => ['required', 'string'],
+            'order_date'    => ['required', 'date'],
+            'order_sum'     => ['required', 'string'],
+            'skus'          => ['required', 'array'],
+        ];
+    }
+}

+ 3 - 3
app/Models/Product.php

@@ -69,7 +69,7 @@ class Product extends Model
     protected function productPrice(): Attribute
     {
         return Attribute::make(
-            get: fn(int $value) => (float) $value / 100,
+            get: fn(int|null $value) => (float) $value / 100,
             set: fn (float $value) => (int) ($value * 100),
         );
     }
@@ -77,7 +77,7 @@ class Product extends Model
     protected function installationPrice(): Attribute
     {
         return Attribute::make(
-            get: fn(int $value) => (float) $value / 100,
+            get: fn(int|null $value) => (float) $value / 100,
             set: fn (float $value) => (int) ($value * 100),
         );
     }
@@ -86,7 +86,7 @@ class Product extends Model
     protected function totalPrice(): Attribute
     {
         return Attribute::make(
-            get: fn(int $value) => (float) $value / 100,
+            get: fn(int|null $value) => (float) $value / 100,
             set: fn (float $value) => (int) ($value * 100),
         );
     }

+ 1 - 1
app/Providers/AppServiceProvider.php

@@ -22,7 +22,7 @@ class AppServiceProvider extends ServiceProvider
     public function boot(): void
     {
         Paginator::useBootstrapFive();
-        if(app()->isProduction()) {
+        if(config('app.force_https')) {
             URL::forceScheme('https');
         }
     }

+ 2 - 0
config/app.php

@@ -28,6 +28,8 @@ return [
 
     'env' => env('APP_ENV', 'production'),
 
+    'force_https' => env('FORCE_HTTPS', false),
+
     /*
     |--------------------------------------------------------------------------
     | Application Debug Mode

+ 40 - 1
resources/views/orders/show.blade.php

@@ -276,6 +276,9 @@
                                   class="visually-hidden" id="create-reclamation-form">
                                 @csrf
                             </form>
+                            <button class="btn btn-primary btn-sm mb-1" data-bs-toggle="modal"
+                                    data-bs-target="#createTtnModal">ТТН
+                            </button>
                         </div>
                     @endif
                 </div>
@@ -284,6 +287,28 @@
         </div>
     </div>
 
+    <!-- Модальное окно ТТН -->
+    <div class="modal fade" id="createTtnModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
+        <div class="modal-dialog modal-fullscreen-sm-down modal-lg">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h1 class="modal-title fs-5" id="addModalLabel">Введите данные для ТТН</h1>
+                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
+                </div>
+                <div class="modal-body">
+                    <form action="{{ route('order.create-ttn') }}" method="post" id="ttnForm">
+                        @csrf
+                        <div>
+                            <input type="text" class="form-control mb-2" name="order_number" placeholder="Номер заказа">
+                            <input type="date" class="form-control mb-2" name="order_date" placeholder="Дата заказа" value="{{ date('Y-m-d') }}">
+                            <input type="number" class="form-control mb-2" name="order_sum" placeholder="Сумма заказа" value="0">
+                            <a href="#" class="btn btn-primary" id="createTtn">Создать ТТН</a>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
 
     <!-- Модальное окно переноса -->
     <div class="modal fade" id="moveModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
@@ -364,9 +389,23 @@
             if (ids.length) {
                 $('#create-reclamation-form').submit();
             }
-
         });
 
+        $('#createTtn').on('click', function () {
+            let ids = Array();
+            $('.check-maf').each(function () {
+                if ($(this).prop('checked')) {
+                    ids.push($(this).attr('data-maf-id'));
+                    $('#ttnForm').append('<input type="hidden" name="skus[]" value="' + $(this).attr('data-maf-id') + '">');
+                }
+            });
+
+            if (ids.length) {
+                $('#ttnForm').submit();
+            } else {
+                alert('Нужно выбрать МАФ для ТТН!');
+            }
+        });
 
     </script>
 @endpush

+ 1 - 0
routes/web.php

@@ -89,6 +89,7 @@ Route::middleware('auth:web')->group(function () {
     Route::get('order/{order}/get-maf', [OrderController::class, 'getMafToOrder'])->name('order.get-maf');
     Route::get('order/revert-maf/{order}', [OrderController::class, 'revertMaf'])->name('order.revert-maf');
     Route::post('order/move-maf', [OrderController::class, 'moveMaf'])->name('order.move-maf');
+    Route::post('order/create-ttn', [OrderController::class, 'createTtn'])->name('order.create-ttn');
 
     Route::post('order/{order}/upload-photo', [OrderController::class, 'uploadPhoto'])->name('order.upload-photo');
     Route::post('order/{order}/upload-document', [OrderController::class, 'uploadDocument'])->name('order.upload-document');