107 lines
5.8 KiB
PHP
107 lines
5.8 KiB
PHP
@extends('layouts.app')
|
||
|
||
@section('title', $work_order->work_order_number)
|
||
|
||
@section('content')
|
||
@include('maintenance::layouts.nav')
|
||
|
||
@php $util = app(\Modules\Maintenance\Utils\MaintenanceUtil::class); @endphp
|
||
|
||
<section class="content no-print mt-page">
|
||
<div class="mt-page-header">
|
||
<h1>{{ $work_order->work_order_number }} <small class="text-muted">{{ $work_order->equipment?->name }}</small></h1>
|
||
<div>
|
||
@can('maintenance.work_orders.update')
|
||
<a href="{{ action([\Modules\Maintenance\Http\Controllers\WorkOrderController::class, 'edit'], [$work_order->id]) }}" class="btn btn-primary">@lang('maintenance::lang.edit')</a>
|
||
@endcan
|
||
<a href="{{ action([\Modules\Maintenance\Http\Controllers\WorkOrderController::class, 'index']) }}" class="btn btn-default">@lang('maintenance::lang.back')</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="col-md-8">
|
||
<div class="mt-card">
|
||
<div class="mt-card-header"><h3 class="mt-card-title">@lang('maintenance::lang.basic_info')</h3></div>
|
||
<div class="mt-card-body">
|
||
<table class="table table-bordered">
|
||
<tr><th>@lang('maintenance::lang.status')</th><td>{{ $util->statusLabel($work_order->status) }}</td></tr>
|
||
<tr><th>@lang('maintenance::lang.priority')</th><td>{{ $util->priorityLabel($work_order->priority) }}</td></tr>
|
||
<tr><th>@lang('maintenance::lang.assigned_technician')</th><td>{{ $work_order->assignedTechnician ? trim($work_order->assignedTechnician->first_name.' '.($work_order->assignedTechnician->last_name ?? '')) : '—' }}</td></tr>
|
||
<tr><th>@lang('maintenance::lang.scheduled_at')</th><td>{{ $util->formatDateTime($work_order->scheduled_at) ?? '—' }}</td></tr>
|
||
<tr><th>@lang('maintenance::lang.completed_at')</th><td>{{ $util->formatDateTime($work_order->completed_at) ?? '—' }}</td></tr>
|
||
<tr><th>@lang('maintenance::lang.labor_hours')</th><td>{{ $work_order->labor_hours ?? '—' }}</td></tr>
|
||
<tr><th>@lang('maintenance::lang.cost')</th><td>{{ $util->formatMoney($work_order->cost) }}</td></tr>
|
||
@if($work_order->accounting_journal_mapping_id)
|
||
<tr><th>@lang('maintenance::lang.journal_entry')</th><td><span class="label label-success">@lang('maintenance::lang.journal_posted')</span> #{{ $work_order->accounting_journal_mapping_id }}</td></tr>
|
||
@endif
|
||
</table>
|
||
@if($work_order->description)<p><strong>@lang('maintenance::lang.description'):</strong> {{ $work_order->description }}</p>@endif
|
||
@if($work_order->completion_report)<p><strong>@lang('maintenance::lang.completion_report'):</strong> {{ $work_order->completion_report }}</p>@endif
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-4">
|
||
<div class="mt-card">
|
||
<div class="mt-card-header"><h3 class="mt-card-title">@lang('maintenance::lang.spare_parts')</h3></div>
|
||
<div class="mt-card-body">
|
||
@forelse($work_order->parts as $part)
|
||
<div style="padding:8px 0;border-bottom:1px solid #eee;">
|
||
{{ $part->sparePart?->name ?? '—' }} × {{ $part->quantity ?? 1 }}
|
||
@if($part->total_cost)
|
||
<small class="text-muted">({{ $util->formatMoney($part->total_cost) }})</small>
|
||
@endif
|
||
</div>
|
||
@empty
|
||
<p class="text-muted">@lang('maintenance::lang.no_records')</p>
|
||
@endforelse
|
||
|
||
@can('maintenance.work_orders.update')
|
||
@if(!empty($spare_parts) && !in_array($work_order->status, ['completed', 'cancelled']))
|
||
<hr>
|
||
{!! Form::open(['url' => action([\Modules\Maintenance\Http\Controllers\WorkOrderController::class, 'consumePart'], [$work_order->id]), 'method' => 'post', 'class' => 'form-inline']) !!}
|
||
<div class="form-group" style="width:55%;margin-left:4px;">
|
||
{!! Form::select('spare_part_id', $spare_parts, null, ['class' => 'form-control select2', 'required', 'placeholder' => __('maintenance::lang.select_spare_part'), 'style' => 'width:100%']) !!}
|
||
</div>
|
||
<div class="form-group" style="width:20%;margin-left:4px;">
|
||
{!! Form::number('quantity', 1, ['class' => 'form-control', 'min' => '0.001', 'step' => '0.001', 'required']) !!}
|
||
</div>
|
||
<button type="submit" class="btn btn-sm btn-warning">@lang('maintenance::lang.consume_part')</button>
|
||
{!! Form::close() !!}
|
||
@endif
|
||
@endcan
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
@if(!empty($materialPanel))
|
||
<div class="row" style="margin-top:20px;">
|
||
<div class="col-md-12">
|
||
@include('maintenance::materials.panel', $materialPanel)
|
||
</div>
|
||
</div>
|
||
@endif
|
||
|
||
@if(!empty($missionPanel))
|
||
<div class="row" style="margin-top:20px;">
|
||
<div class="col-md-12">
|
||
@include('maintenance::field_missions.panel', $missionPanel)
|
||
</div>
|
||
</div>
|
||
@endif
|
||
</section>
|
||
@endsection
|
||
|
||
@section('javascript')
|
||
<script>
|
||
$(function(){
|
||
$('.select2').select2();
|
||
$('#fm_mission_panel .fm_item_type').on('change', function() {
|
||
var t = $(this).val();
|
||
$('#fm_mission_panel .fm_field_spare').toggle(t === 'spare_part');
|
||
$('#fm_mission_panel .fm_field_tool').toggle(t === 'tool');
|
||
});
|
||
});
|
||
</script>
|
||
@endsection
|