|
|
@@ -1,5 +1,5 @@
|
|
|
@php
|
|
|
-use App\Models\Order;
|
|
|
+ use App\Models\Order;
|
|
|
@endphp
|
|
|
|
|
|
@extends('layouts.app')
|
|
|
@@ -11,11 +11,12 @@ use App\Models\Order;
|
|
|
<div class="col-md-6">
|
|
|
<h3>
|
|
|
Площадка {{ $order->object_address }}
|
|
|
- <div class="badge text-bg-{{ Order::STATUS_COLOR[$order->order_status_id] }}" >{{ $order->orderStatus->name }}</div>
|
|
|
+ <div class="badge text-bg-{{ Order::STATUS_COLOR[$order->order_status_id] }}">{{ $order->orderStatus->name }}</div>
|
|
|
</h3>
|
|
|
</div>
|
|
|
<div class="col-md-6 text-end">
|
|
|
- <a href="{{ route('order.edit', ['order' => $order, 'previous_url' => $previous_url]) }}" class="btn btn-sm mb-1 btn-primary">Редактировать</a>
|
|
|
+ <a href="{{ route('order.edit', ['order' => $order, 'previous_url' => $previous_url]) }}"
|
|
|
+ class="btn btn-sm mb-1 btn-primary">Редактировать</a>
|
|
|
@if(hasRole('admin') && ($order->order_status_id == Order::STATUS_NEW))
|
|
|
<a href="#" onclick="if(confirm('Удалить площадку?')) $('form#destroy').submit();"
|
|
|
class="btn btn-sm mb-1 btn-danger">Удалить</a>
|
|
|
@@ -25,12 +26,15 @@ use App\Models\Order;
|
|
|
</form>
|
|
|
@endif
|
|
|
@if(in_array($order->order_status_id, [Order::STATUS_READY_TO_MOUNT, Order::STATUS_IN_MOUNT]) && $order->isAllMafConnected())
|
|
|
- <a href="{{ route('order.generate-installation-pack', $order) }}" class="btn btn-sm mb-1 btn-primary">Документы для монтажа</a>
|
|
|
+ <a href="{{ route('order.generate-installation-pack', $order) }}"
|
|
|
+ class="btn btn-sm mb-1 btn-primary">Документы для монтажа</a>
|
|
|
@endif
|
|
|
@if($order->canCreateHandover())
|
|
|
- <a href="{{ route('order.generate-handover-pack', $order) }}" class="btn btn-sm mb-1 btn-primary">Документы для сдачи</a>
|
|
|
+ <a href="{{ route('order.generate-handover-pack', $order) }}" class="btn btn-sm mb-1 btn-primary">Документы
|
|
|
+ для сдачи</a>
|
|
|
@endif
|
|
|
- <a href="{{ $previous_url ?? route('order.index', session('gp_orders')) }}" class="btn btn-sm mb-1 btn-outline-secondary">Назад</a>
|
|
|
+ <a href="{{ $previous_url ?? route('order.index', session('gp_orders')) }}"
|
|
|
+ class="btn btn-sm mb-1 btn-outline-secondary">Назад</a>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -44,7 +48,8 @@ use App\Models\Order;
|
|
|
</div>
|
|
|
|
|
|
<div>Тип объекта: {{ $order->objectType->name }}</div>
|
|
|
- <div class="text-{{ Order::STATUS_COLOR[$order->order_status_id] }}" >Статус объекта: {{ $order->orderStatus->name }}</div>
|
|
|
+ <div class="text-{{ 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>
|
|
|
@@ -65,10 +70,15 @@ use App\Models\Order;
|
|
|
</div>
|
|
|
<hr>
|
|
|
<div class="documents">
|
|
|
- Документы <button class="btn btn-sm text-success" onclick="$('#upl-documents').trigger('click');"><i class="bi bi-plus-circle-fill"></i> Загрузить</button>
|
|
|
- <form action="{{ route('order.upload-document', $order) }}" enctype="multipart/form-data" method="post" class="visually-hidden">
|
|
|
+ Документы
|
|
|
+ <button class="btn btn-sm text-success" onclick="$('#upl-documents').trigger('click');"><i
|
|
|
+ class="bi bi-plus-circle-fill"></i> Загрузить
|
|
|
+ </button>
|
|
|
+ <form action="{{ route('order.upload-document', $order) }}" enctype="multipart/form-data"
|
|
|
+ method="post" class="visually-hidden">
|
|
|
@csrf
|
|
|
- <input required type="file" id="upl-documents" onchange="$(this).parent().submit()" multiple name="document[]" class="form-control form-control-sm">
|
|
|
+ <input required type="file" id="upl-documents" onchange="$(this).parent().submit()" multiple
|
|
|
+ name="document[]" class="form-control form-control-sm">
|
|
|
</form>
|
|
|
<div class="row my-2 g-1">
|
|
|
@foreach($order->documents as $document)
|
|
|
@@ -81,7 +91,8 @@ use App\Models\Order;
|
|
|
onclick="if(confirm('Удалить?')) $('#document-{{ $document->id }}').submit()"
|
|
|
title="Удалить"></i>
|
|
|
@endif
|
|
|
- <form action="{{ route('order.delete-document', [$order, $document]) }}" method="POST" id="document-{{ $document->id }}" class="visually-hidden">
|
|
|
+ <form action="{{ route('order.delete-document', [$order, $document]) }}" method="POST"
|
|
|
+ id="document-{{ $document->id }}" class="visually-hidden">
|
|
|
@csrf
|
|
|
@method('DELETE')
|
|
|
</form>
|
|
|
@@ -91,10 +102,15 @@ use App\Models\Order;
|
|
|
</div>
|
|
|
<hr>
|
|
|
<div class="statements">
|
|
|
- Ведомости <button class="btn btn-sm text-success" onclick="$('#upl-statements').trigger('click');"><i class="bi bi-plus-circle-fill"></i> Загрузить</button>
|
|
|
- <form action="{{ route('order.upload-statement', $order) }}" enctype="multipart/form-data" method="post" class="visually-hidden">
|
|
|
+ Ведомости
|
|
|
+ <button class="btn btn-sm text-success" onclick="$('#upl-statements').trigger('click');"><i
|
|
|
+ class="bi bi-plus-circle-fill"></i> Загрузить
|
|
|
+ </button>
|
|
|
+ <form action="{{ route('order.upload-statement', $order) }}" enctype="multipart/form-data"
|
|
|
+ method="post" class="visually-hidden">
|
|
|
@csrf
|
|
|
- <input required type="file" id="upl-statements" onchange="$(this).parent().submit()" multiple name="statement[]" class="form-control form-control-sm">
|
|
|
+ <input required type="file" id="upl-statements" onchange="$(this).parent().submit()" multiple
|
|
|
+ name="statement[]" class="form-control form-control-sm">
|
|
|
</form>
|
|
|
<div class="row my-2 g-1">
|
|
|
@foreach($order->statements as $statement)
|
|
|
@@ -107,7 +123,8 @@ use App\Models\Order;
|
|
|
onclick="if(confirm('Удалить?')) $('#statement-{{ $statement->id }}').submit()"
|
|
|
title="Удалить"></i>
|
|
|
@endif
|
|
|
- <form action="{{ route('order.delete-statement', [$order, $statement]) }}" method="POST" id="statement-{{ $statement->id }}" class="visually-hidden">
|
|
|
+ <form action="{{ route('order.delete-statement', [$order, $statement]) }}" method="POST"
|
|
|
+ id="statement-{{ $statement->id }}" class="visually-hidden">
|
|
|
@csrf
|
|
|
@method('DELETE')
|
|
|
</form>
|
|
|
@@ -119,17 +136,21 @@ use App\Models\Order;
|
|
|
<hr>
|
|
|
<div class="photo">
|
|
|
<a href="#photos" data-bs-toggle="collapse">Фотографии ({{ $order->photos->count() }})</a>
|
|
|
- <button class="btn btn-sm text-success" onclick="$('#upl-photo').trigger('click');"><i class="bi bi-plus-circle-fill"></i> Загрузить</button>
|
|
|
+ <button class="btn btn-sm text-success" onclick="$('#upl-photo').trigger('click');"><i
|
|
|
+ class="bi bi-plus-circle-fill"></i> Загрузить
|
|
|
+ </button>
|
|
|
|
|
|
@if($order->photos->count())
|
|
|
- <a href="{{ route('order.generate-photos-pack', $order) }}" class="btn btn-sm text-primary" ><i
|
|
|
+ <a href="{{ route('order.generate-photos-pack', $order) }}" class="btn btn-sm text-primary"><i
|
|
|
class="bi bi-download"></i> Скачать все
|
|
|
</a>
|
|
|
@endif
|
|
|
|
|
|
- <form action="{{ route('order.upload-photo', $order) }}" enctype="multipart/form-data" method="post" class="visually-hidden">
|
|
|
+ <form action="{{ route('order.upload-photo', $order) }}" enctype="multipart/form-data" method="post"
|
|
|
+ class="visually-hidden">
|
|
|
@csrf
|
|
|
- <input required type="file" id="upl-photo" onchange="$(this).parent().submit()" multiple name="photo[]" class="form-control form-control-sm" accept=".jpg,.jpeg,.png">
|
|
|
+ <input required type="file" id="upl-photo" onchange="$(this).parent().submit()" multiple
|
|
|
+ name="photo[]" class="form-control form-control-sm" accept=".jpg,.jpeg,.png">
|
|
|
</form>
|
|
|
<div class="row my-2 g-1 collapse" id="photos">
|
|
|
@foreach($order->photos as $photo)
|
|
|
@@ -143,7 +164,8 @@ use App\Models\Order;
|
|
|
onclick="if(confirm('Удалить фото?')) $('#photo-{{ $photo->id }}').submit()"
|
|
|
title="Удалить"></i>
|
|
|
@endif
|
|
|
- <form action="{{ route('order.delete-photo', [$order, $photo]) }}" method="POST" id="photo-{{ $photo->id }}" class="visually-hidden">
|
|
|
+ <form action="{{ route('order.delete-photo', [$order, $photo]) }}" method="POST"
|
|
|
+ id="photo-{{ $photo->id }}" class="visually-hidden">
|
|
|
@csrf
|
|
|
@method('DELETE')
|
|
|
</form>
|
|
|
@@ -153,88 +175,105 @@ use App\Models\Order;
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
- <div class="col-xl-9 overflow-x-scroll">
|
|
|
+ <div class="col-xl-9">
|
|
|
<h4>МАФы заказа</h4>
|
|
|
|
|
|
<div id="selected_maf">
|
|
|
@if(isset($order) && $order->products_sku)
|
|
|
- <table class="table">
|
|
|
- <thead>
|
|
|
- <tr>
|
|
|
- <th><input type="checkbox" class="form-check" id="check-all-maf"></th>
|
|
|
- <th>Картинка</th>
|
|
|
- <th>МАФ</th>
|
|
|
- <th>Тип</th>
|
|
|
- <th>Статус</th>
|
|
|
- <th>Номер заказа МАФ</th>
|
|
|
- <th>RFID</th>
|
|
|
- <th>Заводской номер</th>
|
|
|
- <th>Дата производства</th>
|
|
|
- <th>Склад</th>
|
|
|
- <th>Паспорт</th>
|
|
|
- </tr>
|
|
|
- </thead>
|
|
|
- <tbody>
|
|
|
- @php
|
|
|
- $needs = $order->getNeeds();
|
|
|
- @endphp
|
|
|
- @foreach($order->products_sku as $p)
|
|
|
+ <div class="col-12 overflow-x-scroll mb-3">
|
|
|
+ <table class="table">
|
|
|
+ <thead>
|
|
|
<tr>
|
|
|
- <td>
|
|
|
- <input type="checkbox" class="form-check check-maf" data-maf-id="{{ $p->id }}">
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- @if($p->product->image)
|
|
|
- <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">
|
|
|
+ <th><input type="checkbox" class="form-check" id="check-all-maf"></th>
|
|
|
+ <th>Картинка</th>
|
|
|
+ <th>МАФ</th>
|
|
|
+ <th>Тип</th>
|
|
|
+ <th>Статус</th>
|
|
|
+ <th>Номер заказа МАФ</th>
|
|
|
+ <th>RFID</th>
|
|
|
+ <th>Заводской номер</th>
|
|
|
+ <th>Дата производства</th>
|
|
|
+ <th>Склад</th>
|
|
|
+ <th>Паспорт</th>
|
|
|
+ </tr>
|
|
|
+ </thead>
|
|
|
+ <tbody>
|
|
|
+ @php
|
|
|
+ $needs = $order->getNeeds();
|
|
|
+ @endphp
|
|
|
+ @foreach($order->products_sku as $p)
|
|
|
+ <tr>
|
|
|
+ <td>
|
|
|
+ <input type="checkbox" class="form-check check-maf"
|
|
|
+ data-maf-id="{{ $p->id }}">
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ @if($p->product->image)
|
|
|
+ <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
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <a href="{{ route('product_sku.show', ['product_sku' =>$p, 'previous_url' => url()->current()]) }}">
|
|
|
+ {!! $p->product->article !!}
|
|
|
</a>
|
|
|
- @endif
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- <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)
|
|
|
- <a href="{{ route('maf_order.show', $p->maf_order) }}">{{ $p->maf_order->order_number }}</a>
|
|
|
- @endif
|
|
|
- </td>
|
|
|
- <td>{{ $p->rfid }}</td>
|
|
|
- <td>{{ $p->factory_number }}</td>
|
|
|
- <td>{{ $p->manufacture_date }}</td>
|
|
|
- <td class="text-center">
|
|
|
- @if($p->maf_order?->order_number)
|
|
|
- <i class="bi bi-check-all text-success fw-bold"></i>
|
|
|
- @else
|
|
|
- @if($needs[$p->product_id]['sku']-- > 0)
|
|
|
+ <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)
|
|
|
+ <a href="{{ route('maf_order.show', $p->maf_order) }}">{{ $p->maf_order->order_number }}</a>
|
|
|
+ @endif
|
|
|
+ </td>
|
|
|
+ <td>{{ $p->rfid }}</td>
|
|
|
+ <td>{{ $p->factory_number }}</td>
|
|
|
+ <td>{{ $p->manufacture_date }}</td>
|
|
|
+ <td class="text-center">
|
|
|
+ @if($p->maf_order?->order_number)
|
|
|
+ <i class="bi bi-check-all text-success fw-bold"></i>
|
|
|
+ @else
|
|
|
+ @if($needs[$p->product_id]['sku']-- > 0)
|
|
|
+ <i class="bi bi-check text-success fw-bold"></i>
|
|
|
+ @else
|
|
|
+ <i class="bi bi-x text-danger fw-bold"></i>
|
|
|
+ @endif
|
|
|
+ @endif
|
|
|
+ </td>
|
|
|
+ <td class="text-center">
|
|
|
+ @if($p->passport)
|
|
|
<i class="bi bi-check text-success fw-bold"></i>
|
|
|
@else
|
|
|
<i class="bi bi-x text-danger fw-bold"></i>
|
|
|
@endif
|
|
|
- @endif
|
|
|
- </td>
|
|
|
- <td class="text-center">
|
|
|
- @if($p->passport)
|
|
|
- <i class="bi bi-check text-success fw-bold"></i>
|
|
|
- @else
|
|
|
- <i class="bi bi-x text-danger fw-bold"></i>
|
|
|
- @endif
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- @endforeach
|
|
|
- </tbody>
|
|
|
- </table>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ @endforeach
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
<div>
|
|
|
- <a href="{{ route('order.get-maf', $order) }}" class="btn btn-primary btn-sm mb-1 @disabled($order->ready_to_mount == 'Нет' )">Привязать все МАФы</a>
|
|
|
- <a href="{{ route('order.revert-maf', $order) }}" class="btn btn-primary btn-sm mb-1">Отвязать все МАФы</a>
|
|
|
- <button class="btn btn-primary btn-sm mb-1" data-bs-toggle="modal" data-bs-target="#moveModal">Перенести МАФы</button>
|
|
|
- <button class="btn btn-sm mb-1 btn-warning" id="create-reclamation-button">Создать рекламацию</button>
|
|
|
- <form action="{{ route('reclamations.create', $order) }}" method="post" class="visually-hidden" id="create-reclamation-form">
|
|
|
+ <a href="{{ route('order.get-maf', $order) }}"
|
|
|
+ class="btn btn-primary btn-sm mb-1 @disabled($order->ready_to_mount == 'Нет' )">Привязать
|
|
|
+ все МАФы</a>
|
|
|
+ <br class="d-md-none">
|
|
|
+ <a href="{{ route('order.revert-maf', $order) }}" class="btn btn-primary btn-sm mb-1">Отвязать
|
|
|
+ все МАФы</a>
|
|
|
+ <br class="d-md-none">
|
|
|
+ <button class="btn btn-primary btn-sm mb-1" data-bs-toggle="modal"
|
|
|
+ data-bs-target="#moveModal">Перенести МАФы
|
|
|
+ </button>
|
|
|
+ <br class="d-md-none">
|
|
|
+ <button class="btn btn-sm mb-1 btn-warning" id="create-reclamation-button">Создать
|
|
|
+ рекламацию
|
|
|
+ </button>
|
|
|
+ <form action="{{ route('reclamations.create', $order) }}" method="post"
|
|
|
+ class="visually-hidden" id="create-reclamation-form">
|
|
|
@csrf
|
|
|
</form>
|
|
|
</div>
|
|
|
@@ -259,7 +298,8 @@ use App\Models\Order;
|
|
|
@csrf
|
|
|
<div id="select_maf_form">
|
|
|
<input type="text" class="form-control mb-2" placeholder="Поиск площадки" id="search_order">
|
|
|
- <select id="select_order" name="new_order_id" class="form-select mb-3" size="30" multiple required></select>
|
|
|
+ <select id="select_order" name="new_order_id" class="form-select mb-3" size="30" multiple
|
|
|
+ required></select>
|
|
|
<a href="#" class="btn btn-primary" id="moveMaf">Перенести</a>
|
|
|
</div>
|
|
|
</form>
|
|
|
@@ -287,7 +327,6 @@ use App\Models\Order;
|
|
|
}).trigger('keyup');
|
|
|
|
|
|
|
|
|
-
|
|
|
$('#check-all-maf').on('change', function () {
|
|
|
$('input:checkbox.check-maf').not(this).prop('checked', this.checked);
|
|
|
});
|
|
|
@@ -318,11 +357,11 @@ use App\Models\Order;
|
|
|
$('.check-maf').each(function () {
|
|
|
if ($(this).prop('checked')) {
|
|
|
ids.push($(this).attr('data-maf-id'));
|
|
|
- $('#create-reclamation-form').append('<input type="hidden" name="skus[]" value="'+$(this).attr('data-maf-id')+'">');
|
|
|
+ $('#create-reclamation-form').append('<input type="hidden" name="skus[]" value="' + $(this).attr('data-maf-id') + '">');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- if(ids.length) {
|
|
|
+ if (ids.length) {
|
|
|
$('#create-reclamation-form').submit();
|
|
|
}
|
|
|
|