@extends('layouts.app') @section('content')

{{ $spare_part ? 'Редактирование запчасти' : 'Создание запчасти' }}

@if($spare_part && hasRole('admin'))
@csrf
@endif
@csrf @if($spare_part) @method('PUT') @endif
{{-- Левая колонка --}}
@if($spare_part && $spare_part->image)
{{ $spare_part->article }}
@endif
{{-- Правая колонка --}}
@if(hasRole('admin'))
@endif
@php $existingCodes = old('pricing_codes', $spare_part ? $spare_part->pricingCodes->pluck('code')->toArray() : []); @endphp @forelse($existingCodes as $index => $code)
@if(hasRole('admin')) @endif
@empty
@if(hasRole('admin')) @endif
@endforelse
@if(hasRole('admin')) @endif
@if(hasRole('admin')) @endif Назад @if($spare_part && hasRole('admin')) @endif
@if($spare_part)
{{-- Остатки --}}

Остатки

@if($spare_part->min_stock > 0) @endif
Без документов С документами Всего
Физический остаток {{ $spare_part->physical_stock_without_docs }} {{ $spare_part->physical_stock_with_docs }} {{ $spare_part->total_physical_stock }}
Зарезервировано {{ $spare_part->reserved_without_docs }} {{ $spare_part->reserved_with_docs }} {{ $spare_part->total_reserved }}
Свободный остаток {{ $spare_part->free_stock_without_docs }} {{ $spare_part->free_stock_with_docs }} {{ $spare_part->total_free_stock }}
Минимальный остаток {{ $spare_part->min_stock }}
{{-- Активные резервы --}} @php $activeReservations = $spare_part->reservations() ->where('status', \App\Models\Reservation::STATUS_ACTIVE) ->with('reclamation', 'sparePartOrder') ->orderByDesc('created_at') ->get(); @endphp @if($activeReservations->count() > 0)

Активные резервы {{ $activeReservations->count() }}

@foreach($activeReservations as $reservation) @endforeach
Рекламация Партия Кол-во С док. Дата
@if($reservation->reclamation) #{{ $reservation->reclamation->id }} @else - @endif @if($reservation->sparePartOrder) #{{ $reservation->sparePartOrder->id }} @else - @endif {{ $reservation->reserved_qty }} @if($reservation->with_documents) @else @endif {{ $reservation->created_at->format('d.m.Y H:i') }}
@endif {{-- Открытые дефициты --}} @php $openShortages = $spare_part->shortages() ->where('status', \App\Models\Shortage::STATUS_OPEN) ->with('reclamation') ->orderByDesc('created_at') ->get(); @endphp @if($openShortages->count() > 0)

Открытые дефициты {{ $openShortages->count() }}

@foreach($openShortages as $shortage) @endforeach
Рекламация Требуется Зарезервировано Не хватает С док. Дата
@if($shortage->reclamation) #{{ $shortage->reclamation->id }} @else - @endif {{ $shortage->required_qty }} {{ $shortage->reserved_qty }} {{ $shortage->missing_qty }} @if($shortage->with_documents) @else @endif {{ $shortage->created_at->format('d.m.Y H:i') }}
@endif {{-- Партии (заказы) на складе --}} @php $ordersInStock = $spare_part->orders() ->where('status', \App\Models\SparePartOrder::STATUS_IN_STOCK) ->where('available_qty', '>', 0) ->orderByDesc('created_at') ->get(); @endphp @if($ordersInStock->count() > 0)

Партии на складе {{ $ordersInStock->count() }}

@foreach($ordersInStock as $order) @endforeach
ID Источник Остаток С док. Дата поступления
#{{ $order->id }} {{ $order->source_text ?: '-' }} {{ $order->available_qty }} @if($order->with_documents) @else @endif {{ $order->updated_at->format('d.m.Y') }}
@endif {{-- История движений --}} @php $movements = $spare_part->movements() ->with('user', 'sparePartOrder') ->orderByDesc('created_at') ->limit(50) ->get(); @endphp

История движений {{ $spare_part->movements()->count() }}

@if($movements->count() > 0)
@foreach($movements as $movement) @endforeach
Дата Тип Партия Кол-во С док. Примечание Пользователь
{{ $movement->created_at->format('d.m.Y H:i') }} {{ $movement->type_name }} @if($movement->sparePartOrder) #{{ $movement->sparePartOrder->id }} @else - @endif {{ $movement->qty }} @if($movement->with_documents) @else @endif {{ $movement->note }} @if($movement->source_type === 'reclamation' && $movement->source_id)
Рекламация #{{ $movement->source_id }} @endif
{{ $movement->user->name ?? '-' }}
@if($spare_part->movements()->count() > 50)

Показаны последние 50 движений из {{ $spare_part->movements()->count() }}

@endif @else

Движений пока нет

@endif
@endif
@if($spare_part && hasRole('admin')) {{-- Модальное окно удаления --}} @endif @push('scripts') @endpush @endsection