99 lines
4.9 KiB
PHP
99 lines
4.9 KiB
PHP
@extends('layouts.app')
|
|
@section('title', __('shopfloor::lang.downtime'))
|
|
@section('content')
|
|
@include('shopfloor::layouts.nav')
|
|
<section class="content">
|
|
<div class="box box-primary">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title">@lang('shopfloor::lang.downtime')</h3>
|
|
</div>
|
|
<div class="box-body table-responsive">
|
|
<table class="table table-bordered table-striped">
|
|
<thead><tr>
|
|
<th>@lang('shopfloor::lang.work_center')</th>
|
|
<th>@lang('shopfloor::lang.reason_code')</th>
|
|
<th>@lang('shopfloor::lang.reason_category')</th>
|
|
<th>@lang('shopfloor::lang.started_at')</th>
|
|
<th>@lang('shopfloor::lang.ended_at')</th>
|
|
<th>@lang('shopfloor::lang.duration_minutes')</th>
|
|
<th>@lang('shopfloor::lang.notes')</th>
|
|
<th>@lang('shopfloor::lang.actions')</th>
|
|
</tr></thead>
|
|
<tbody>
|
|
@forelse($events as $event)
|
|
<tr>
|
|
<td>{{ $event->workCenter?->name ?? '—' }}</td>
|
|
<td>{{ $event->reason_code }}</td>
|
|
<td>@lang('shopfloor::lang.'.$event->reason_category)</td>
|
|
<td>{{ $event->started_at?->format('Y-m-d H:i') }}</td>
|
|
<td>{{ $event->ended_at?->format('Y-m-d H:i') ?? '—' }}</td>
|
|
<td>{{ $event->duration_minutes ?? '—' }}</td>
|
|
<td>{{ \Illuminate\Support\Str::limit($event->notes, 40) }}</td>
|
|
<td>
|
|
@if(!$event->ended_at)
|
|
@can('shopfloor.downtime.create')
|
|
<form action="{{ action([\Modules\ShopFloor\Http\Controllers\DowntimeController::class, 'end'], $event->id) }}" method="POST" style="display:inline;">
|
|
@csrf
|
|
<button type="submit" class="btn btn-xs btn-warning">@lang('shopfloor::lang.end_downtime')</button>
|
|
</form>
|
|
@endcan
|
|
@else
|
|
—
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
@empty
|
|
<tr><td colspan="8" class="text-center">—</td></tr>
|
|
@endforelse
|
|
</tbody>
|
|
</table>
|
|
{{ $events->links() }}
|
|
</div>
|
|
</div>
|
|
|
|
@can('shopfloor.downtime.create')
|
|
<div class="box box-solid">
|
|
<div class="box-header"><h3 class="box-title">@lang('shopfloor::lang.record') @lang('shopfloor::lang.downtime')</h3></div>
|
|
<form action="{{ action([\Modules\ShopFloor\Http\Controllers\DowntimeController::class, 'store']) }}" method="POST" class="box-body">
|
|
@csrf
|
|
<div class="row">
|
|
<div class="col-md-3 form-group">
|
|
<label>@lang('shopfloor::lang.work_center')</label>
|
|
<select name="work_center_id" class="form-control select2" required>
|
|
<option value="">—</option>
|
|
@foreach($workCenters as $id => $label)
|
|
<option value="{{ $id }}">{{ $label }}</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
<div class="col-md-2 form-group">
|
|
<label>@lang('shopfloor::lang.reason_code')</label>
|
|
<input type="text" name="reason_code" class="form-control" required placeholder="BREAKDOWN">
|
|
</div>
|
|
<div class="col-md-2 form-group">
|
|
<label>@lang('shopfloor::lang.reason_category')</label>
|
|
<select name="reason_category" class="form-control" required>
|
|
<option value="unplanned">@lang('shopfloor::lang.unplanned')</option>
|
|
<option value="planned">@lang('shopfloor::lang.planned')</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-2 form-group">
|
|
<label>@lang('shopfloor::lang.started_at')</label>
|
|
<input type="datetime-local" name="started_at" class="form-control" value="{{ now()->format('Y-m-d\TH:i') }}" required>
|
|
</div>
|
|
<div class="col-md-2 form-group">
|
|
<label>@lang('shopfloor::lang.ended_at')</label>
|
|
<input type="datetime-local" name="ended_at" class="form-control">
|
|
</div>
|
|
<div class="col-md-6 form-group">
|
|
<label>@lang('shopfloor::lang.notes')</label>
|
|
<textarea name="notes" class="form-control" rows="2"></textarea>
|
|
</div>
|
|
</div>
|
|
<button type="submit" class="btn btn-primary">@lang('shopfloor::lang.record')</button>
|
|
</form>
|
|
</div>
|
|
@endcan
|
|
</section>
|
|
@endsection
|