ultimatepos/Modules/Maintenance/Resources/views/materials/repair_tab.blade.php

176 lines
9.3 KiB
PHP

@php
$dispatchService = app(\Modules\Maintenance\Services\RepairDispatchService::class);
@endphp
<div class="row" style="margin-bottom:10px;">
<div class="col-md-12">
<p class="text-muted">@lang('maintenance::lang.rd_tab_help')</p>
@if(!empty($can_repair_view))
<a href="{{ action([\Modules\Maintenance\Http\Controllers\RepairDispatchController::class, 'index']) }}" class="btn btn-default btn-sm">
<i class="fa fa-list"></i> @lang('maintenance::lang.rd_all_dispatches')
</a>
@endif
</div>
</div>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>@lang('maintenance::lang.spare_part')</th>
<th>@lang('maintenance::lang.mat_qty_required')</th>
<th>@lang('maintenance::lang.rd_route')</th>
<th>@lang('maintenance::lang.rd_destination')</th>
<th>@lang('maintenance::lang.status')</th>
<th>@lang('maintenance::lang.actions')</th>
</tr>
</thead>
<tbody>
@forelse($repair_lines ?? [] as $line)
@php $rd = $line->activeRepairDispatch; @endphp
<tr>
<td>
<strong>{{ $line->displayName() }}</strong>
@if($line->part_number)<br><small class="text-muted">{{ $line->part_number }}</small>@endif
</td>
<td>{{ $line->quantity_required }}</td>
<td>
@if($rd)
{{ $route_type_labels[$rd->route_type] ?? $rd->route_type }}
<br><small><code>{{ $rd->dispatch_number }}</code></small>
@else
<span class="text-muted"></span>
@endif
</td>
<td>{{ $rd?->destinationLabel() ?? '—' }}</td>
<td>
@if($rd)
<span class="label label-info">{{ $repair_status_labels[$rd->status] ?? $rd->status }}</span>
@else
<span class="label label-default">@lang('maintenance::lang.rd_no_route')</span>
@endif
</td>
<td>
@if($rd && !empty($can_repair_view))
<a href="{{ action([\Modules\Maintenance\Http\Controllers\RepairDispatchController::class, 'show'], [$rd->id]) }}" class="btn btn-xs btn-info">
<i class="fa fa-eye"></i> @lang('maintenance::lang.view')
</a>
@elseif(empty($rd) && !empty($can_repair_dispatch))
<button type="button" class="btn btn-xs btn-warning mm_open_repair_route" data-line-id="{{ $line->id }}" data-part-name="{{ $line->displayName() }}">
<i class="fa fa-route"></i> @lang('maintenance::lang.rd_define_route')
</button>
@endif
@can('maintenance.materials.manage')
@if(! $rd)
<button type="button" class="btn btn-xs btn-danger mm_delete_line" data-line-id="{{ $line->id }}"><i class="fa fa-trash"></i></button>
@endif
@endcan
</td>
</tr>
@empty
<tr><td colspan="6" class="text-center text-muted">@lang('maintenance::lang.rd_no_repair_lines')</td></tr>
@endforelse
</tbody>
</table>
</div>
@if(!empty($repair_dispatches) && $repair_dispatches->isNotEmpty())
<h5>@lang('maintenance::lang.rd_recent_dispatches')</h5>
<div class="table-responsive">
<table class="table table-condensed table-bordered">
<thead>
<tr>
<th>@lang('maintenance::lang.rd_dispatch_number')</th>
<th>@lang('maintenance::lang.spare_part')</th>
<th>@lang('maintenance::lang.rd_route')</th>
<th>@lang('maintenance::lang.status')</th>
<th>@lang('maintenance::lang.rd_sent_at')</th>
</tr>
</thead>
<tbody>
@foreach($repair_dispatches->take(10) as $d)
<tr>
<td><a href="{{ action([\Modules\Maintenance\Http\Controllers\RepairDispatchController::class, 'show'], [$d->id]) }}">{{ $d->dispatch_number }}</a></td>
<td>{{ $d->materialLine?->displayName() }}</td>
<td>{{ $route_type_labels[$d->route_type] ?? $d->route_type }}</td>
<td>{{ $repair_status_labels[$d->status] ?? $d->status }}</td>
<td>{{ $util->formatDateTime($d->sent_at) ?? '—' }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@endif
@if(!empty($can_repair_dispatch))
<div class="modal fade" id="mm_repair_route_modal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">@lang('maintenance::lang.rd_define_route')</h4>
</div>
{!! Form::open(['url' => '#', 'method' => 'post', 'id' => 'mm_repair_route_form']) !!}
<div class="modal-body">
<p><strong id="mm_repair_part_name"></strong></p>
<div class="form-group">
{!! Form::label('route_type', __('maintenance::lang.rd_route') . ':') !!}
{!! Form::select('route_type', $route_type_labels ?? [], 'internal', ['class' => 'form-control', 'id' => 'mm_route_type']) !!}
</div>
<div id="mm_route_internal_fields">
<div class="form-group">
{!! Form::label('holding_entity_id', __('maintenance::lang.rd_holding_unit') . ':') !!}
{!! Form::select('holding_entity_id', $holding_entities ?? [], null, ['class' => 'form-control select2', 'placeholder' => __('maintenance::lang.select'), 'style' => 'width:100%', 'id' => 'mm_holding_entity']) !!}
</div>
<div class="form-group">
{!! Form::label('org_unit_id', __('maintenance::lang.rd_workshop_unit') . ':') !!}
{!! Form::select('org_unit_id', [], null, ['class' => 'form-control select2', 'placeholder' => __('maintenance::lang.select'), 'style' => 'width:100%', 'id' => 'mm_org_unit']) !!}
</div>
</div>
<div id="mm_route_external_fields" style="display:none;">
<div class="form-group">
{!! Form::label('service_provider_id', __('maintenance::lang.service_provider') . ':') !!}
{!! Form::select('service_provider_id', $external_providers ?? [], null, ['class' => 'form-control select2', 'placeholder' => __('maintenance::lang.select'), 'style' => 'width:100%']) !!}
</div>
<div class="form-group">
{!! Form::label('external_party_name', __('maintenance::lang.rd_external_name') . ':') !!}
{!! Form::text('external_party_name', null, ['class' => 'form-control', 'placeholder' => __('maintenance::lang.rd_or_external_name')]) !!}
</div>
<div class="form-group">
{!! Form::label('external_address', __('maintenance::lang.rd_external_address') . ':') !!}
{!! Form::textarea('external_address', null, ['class' => 'form-control', 'rows' => 2]) !!}
</div>
</div>
<div class="form-group">
{!! Form::label('expected_return_at', __('maintenance::lang.rd_expected_return') . ':') !!}
{!! Form::text('expected_return_at', null, ['class' => 'form-control holding-date-picker', 'autocomplete' => 'off']) !!}
</div>
<div class="form-group">
{!! Form::label('send_notes', __('maintenance::lang.rd_send_notes') . ':') !!}
{!! Form::textarea('send_notes', null, ['class' => 'form-control', 'rows' => 2]) !!}
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
{!! Form::label('tracking_number_out', __('maintenance::lang.rd_tracking_out') . ':') !!}
{!! Form::text('tracking_number_out', null, ['class' => 'form-control']) !!}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{!! Form::label('carrier', __('maintenance::lang.rd_carrier') . ':') !!}
{!! Form::text('carrier', null, ['class' => 'form-control']) !!}
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">@lang('maintenance::lang.close')</button>
<button type="submit" class="btn btn-primary">@lang('maintenance::lang.rd_create_route')</button>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
@endif