ultimatepos/Modules/Tms/Resources/views/shipments/show.blade.php

130 lines
9.1 KiB
PHP

@extends('layouts.app')
@section('title', $shipment->ref_no)
@section('content')
@include('tms::layouts.nav')
<section class="content no-print mt-page">
<div class="mt-page-header">
<h1><i class="fas fa-box" style="color:#3b82f6;margin-left:8px;"></i> {{ $shipment->ref_no }}</h1>
<div>
@can('tms.shipments.update')
<a href="{{ action([\Modules\Tms\Http\Controllers\ShipmentController::class,'edit'],[$shipment->id]) }}" class="btn btn-primary"><i class="fa fa-edit"></i> @lang('tms::lang.edit')</a>
@endcan
@if($shipment->transaction_id)
<a href="{{ action([\App\Http\Controllers\SellController::class,'show'],[$shipment->transaction_id]) }}" class="btn btn-info" target="_blank"><i class="fa fa-file-invoice"></i> @lang('tms::lang.linked_transaction')</a>
@endif
@can('tms.tracking.view')
<a href="{{ action([\Modules\Tms\Http\Controllers\TrackingController::class,'shipmentMap'],[$shipment->id]) }}" class="btn btn-default"><i class="fa fa-map"></i> @lang('tms::lang.shipment_tracking')</a>
@endcan
@can('tms.customs.view')
@if($shipment->customsClearance)
<a href="{{ action([\Modules\Tms\Http\Controllers\CustomsClearanceController::class,'show'],[$shipment->customsClearance->id]) }}" class="btn btn-warning"><i class="fa fa-passport"></i> @lang('tms::lang.view_customs')</a>
@elseif(auth()->user()->can('tms.customs.create'))
<a href="{{ action([\Modules\Tms\Http\Controllers\CustomsClearanceController::class,'createFromShipment'],[$shipment->id]) }}" class="btn btn-warning" onclick="event.preventDefault(); document.getElementById('tms_create_customs_form').submit();"><i class="fa fa-plus"></i> @lang('tms::lang.create_customs_from_shipment')</a>
<form id="tms_create_customs_form" method="POST" action="{{ action([\Modules\Tms\Http\Controllers\CustomsClearanceController::class,'createFromShipment'],[$shipment->id]) }}" style="display:none;">@csrf</form>
@endif
@endcan
</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('tms::lang.shipments')</h3>
<span class="label label-info">{{ $statuses[$shipment->status] ?? $shipment->status }}</span>
</div>
<div class="mt-card-body">
<table class="table table-bordered">
<tr><th width="30%">@lang('tms::lang.shipment_type')</th><td>{{ $shipment_types[$shipment->shipment_type] ?? $shipment->shipment_type }}</td></tr>
<tr><th>@lang('tms::lang.customer')</th><td>{{ $shipment->contact?->name ?? '—' }}</td></tr>
<tr><th>@lang('tms::lang.carrier')</th><td>{{ $shipment->carrier?->name ?? '—' }}</td></tr>
<tr><th>@lang('tms::lang.driver')</th><td>{{ $shipment->driver?->name ?? '—' }}</td></tr>
<tr><th>@lang('tms::lang.vehicle')</th><td>{{ $shipment->vehicle?->plate_number ?? '—' }}</td></tr>
<tr><th>@lang('tms::lang.origin')</th><td>{{ $shipment->originLocation?->name ?? $shipment->origin_address ?? '—' }}</td></tr>
<tr><th>@lang('tms::lang.destination')</th><td>{{ $shipment->destination_address ?? '—' }}</td></tr>
<tr><th>@lang('tms::lang.scheduled_at')</th><td>{{ $shipment->scheduled_at?->format('Y-m-d H:i') ?? '—' }}</td></tr>
<tr><th>@lang('tms::lang.freight_cost')</th><td>{{ @num_format($shipment->freight_cost) }}</td></tr>
<tr><th>@lang('tms::lang.cargo_description')</th><td>{{ $shipment->cargo_description ?? '—' }}</td></tr>
@if($shipment->pjt_project_id && $shipment->project)
<tr><th>@lang('tms::lang.linked_project')</th><td><a href="{{ action([\Modules\Project\Http\Controllers\ProjectController::class,'show'],[$shipment->pjt_project_id]) }}">{{ $shipment->project->name }}</a></td></tr>
@endif
@if($shipment->isFieldMissionShipment() && $shipment->fieldMission)
<tr><th>@lang('tms::lang.linked_field_mission')</th><td><a href="{{ action([\Modules\Maintenance\Http\Controllers\FieldMissionController::class,'show'],[$shipment->source_id]) }}">{{ $shipment->fieldMission->mission_number }} {{ $shipment->fieldMission->title }}</a></td></tr>
@endif
<tr><th>@lang('tms::lang.notes')</th><td>{{ $shipment->notes ?? '—' }}</td></tr>
@if($shipment->accounting_journal_mapping_id)
<tr><th>@lang('tms::lang.accounting_journal')</th><td><span class="label label-success">@lang('tms::lang.journal_posted') #{{ $shipment->accounting_journal_mapping_id }}</span></td></tr>
@endif
@if($shipment->route_id && $shipment->route)
<tr><th>@lang('tms::lang.routes')</th><td><a href="{{ action([\Modules\Tms\Http\Controllers\RouteController::class,'show'],[$shipment->route_id]) }}">{{ $shipment->route->ref_no }}</a></td></tr>
@endif
</table>
</div>
</div>
</div>
<div class="col-md-4">
@can('tms.shipments.update')
<div class="mt-card">
<div class="mt-card-header"><h3 class="mt-card-title">@lang('tms::lang.update_status')</h3></div>
<div class="mt-card-body">
{!! Form::open(['url'=>action([\Modules\Tms\Http\Controllers\ShipmentController::class,'updateStatus'],[$shipment->id]),'method'=>'post','id'=>'tms_status_form']) !!}
<div class="form-group">
{!! Form::select('status', $statuses, $shipment->status, ['class'=>'form-control','required']) !!}
</div>
@if($shipment->customsClearance && !in_array($shipment->customsClearance->status, ['cleared','released']))
<p class="help-block text-warning"><i class="fa fa-exclamation-triangle"></i> @lang('tms::lang.customs_transit_warning')</p>
@endif
<div class="form-group">
{!! Form::text('location', null, ['class'=>'form-control','placeholder'=>__('tms::lang.location')]) !!}
</div>
<div class="form-group">
{!! Form::textarea('note', null, ['class'=>'form-control','rows'=>2,'placeholder'=>__('tms::lang.notes')]) !!}
</div>
<button type="submit" class="btn btn-primary btn-block">@lang('tms::lang.update_status')</button>
{!! Form::close() !!}
</div>
</div>
@endcan
@if($shipment->customsClearance)
<div class="mt-card">
<div class="mt-card-header">
<h3 class="mt-card-title">@lang('tms::lang.customs')</h3>
<span class="label label-warning">{{ $customs_statuses[$shipment->customsClearance->status] ?? $shipment->customsClearance->status }}</span>
</div>
<div class="mt-card-body">
<p><strong>{{ $shipment->customsClearance->ref_no }}</strong></p>
<p class="text-muted small">@lang('tms::lang.total_duties'): {{ @num_format($shipment->customsClearance->total_duties) }}</p>
<a href="{{ action([\Modules\Tms\Http\Controllers\CustomsClearanceController::class,'show'],[$shipment->customsClearance->id]) }}" class="btn btn-warning btn-block btn-sm">
<i class="fa fa-passport"></i> @lang('tms::lang.view_customs')
</a>
</div>
</div>
@endif
<div class="mt-card">
<div class="mt-card-header"><h3 class="mt-card-title">@lang('tms::lang.tracking_log')</h3></div>
<div class="mt-card-body">
<ul class="tms-timeline">
@foreach($shipment->statusLogs as $log)
<li>
<strong>{{ $statuses[$log->status] ?? $log->status }}</strong>
<div class="text-muted small">{{ $log->logged_at?->format('Y-m-d H:i') }}</div>
@if($log->note)<div>{{ $log->note }}</div>@endif
@if($log->location)<div class="text-muted"><i class="fa fa-map-marker"></i> {{ $log->location }}</div>@endif
</li>
@endforeach
</ul>
</div>
</div>
</div>
</div>
</section>
@endsection
@section('javascript')
<script>
$('#tms_status_form').on('submit', function(e){
e.preventDefault();
$.post($(this).attr('action'), $(this).serialize(), function(r){
if(r.success){ toastr.success(r.msg); location.reload(); } else { toastr.error(r.msg); }
}, 'json');
});
</script>
@endsection