ultimatepos/Modules/ShopFloor/Resources/views/downtime/index.blade.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