164 lines
8.4 KiB
PHP
164 lines
8.4 KiB
PHP
@extends('layouts.app')
|
|
@section('title', __('advancedplanning::lang.dashboard'))
|
|
@section('content')
|
|
@include('advancedplanning::layouts.nav')
|
|
@php $util = app(\Modules\AdvancedPlanning\Utils\AdvancedPlanningUtil::class); @endphp
|
|
<section class="content-header">
|
|
<h1><i class="fa fa-calendar-check"></i> @lang('advancedplanning::lang.dashboard')</h1>
|
|
</section>
|
|
<section class="content">
|
|
@if(session('status'))
|
|
<div class="alert alert-{{ session('status.success') ? 'success' : 'warning' }} alert-dismissible">
|
|
<button type="button" class="close" data-dismiss="alert">×</button>
|
|
{{ session('status.msg') }}
|
|
</div>
|
|
@endif
|
|
|
|
<div class="row">
|
|
<div class="col-md-3 col-sm-6">
|
|
<div class="info-box bg-aqua">
|
|
<span class="info-box-icon"><i class="fa fa-cogs"></i></span>
|
|
<div class="info-box-content">
|
|
<span class="info-box-text">@lang('advancedplanning::lang.capacity_resources')</span>
|
|
<span class="info-box-number">{{ $stats['resources'] }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3 col-sm-6">
|
|
<div class="info-box bg-green">
|
|
<span class="info-box-icon"><i class="fa fa-calendar"></i></span>
|
|
<div class="info-box-content">
|
|
<span class="info-box-text">@lang('advancedplanning::lang.schedule_runs')</span>
|
|
<span class="info-box-number">{{ $stats['schedule_runs'] }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3 col-sm-6">
|
|
<div class="info-box bg-yellow">
|
|
<span class="info-box-icon"><i class="fa fa-line-chart"></i></span>
|
|
<div class="info-box-content">
|
|
<span class="info-box-text">@lang('advancedplanning::lang.sop_cycles')</span>
|
|
<span class="info-box-number">{{ $stats['sop_cycles'] }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3 col-sm-6">
|
|
<div class="info-box bg-purple">
|
|
<span class="info-box-icon"><i class="fa fa-plug"></i></span>
|
|
<div class="info-box-content">
|
|
<span class="info-box-text">@lang('advancedplanning::lang.integrations')</span>
|
|
<span class="info-box-number">
|
|
{{ collect($integrations)->filter()->count() }}/3
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="box box-primary">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title">@lang('advancedplanning::lang.integrations')</h3>
|
|
</div>
|
|
<div class="box-body">
|
|
<table class="table table-bordered">
|
|
<tr>
|
|
<td>@lang('advancedplanning::lang.ie_available')</td>
|
|
<td>
|
|
@if($integrations['industrial_engineering'])
|
|
<span class="label label-success">@lang('advancedplanning::lang.available')</span>
|
|
@else
|
|
<span class="label label-default">@lang('advancedplanning::lang.not_available')</span>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>@lang('advancedplanning::lang.shop_floor_available')</td>
|
|
<td>
|
|
@if($integrations['shop_floor'])
|
|
<span class="label label-success">@lang('advancedplanning::lang.available')</span>
|
|
@else
|
|
<span class="label label-default">@lang('advancedplanning::lang.not_available')</span>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>@lang('advancedplanning::lang.maintenance_available')</td>
|
|
<td>
|
|
@if($integrations['maintenance'])
|
|
<span class="label label-success">@lang('advancedplanning::lang.available')</span>
|
|
@else
|
|
<span class="label label-default">@lang('advancedplanning::lang.not_available')</span>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="box box-primary">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title">@lang('advancedplanning::lang.quick_actions')</h3>
|
|
</div>
|
|
<div class="box-body">
|
|
@can('ap.schedule.run')
|
|
<a href="{{ action([\Modules\AdvancedPlanning\Http\Controllers\ScheduleRunController::class, 'create']) }}" class="btn btn-success btn-sm">
|
|
<i class="fa fa-play"></i> @lang('advancedplanning::lang.run_scheduler')
|
|
</a>
|
|
@endcan
|
|
@can('ap.resources.manage')
|
|
<a href="{{ action([\Modules\AdvancedPlanning\Http\Controllers\CapacityResourceController::class, 'create']) }}" class="btn btn-primary btn-sm">
|
|
<i class="fa fa-plus"></i> @lang('advancedplanning::lang.add_resource')
|
|
</a>
|
|
@endcan
|
|
@can('ap.sop.manage')
|
|
<a href="{{ action([\Modules\AdvancedPlanning\Http\Controllers\SopCycleController::class, 'create']) }}" class="btn btn-warning btn-sm">
|
|
<i class="fa fa-line-chart"></i> @lang('advancedplanning::lang.new_sop_cycle')
|
|
</a>
|
|
@endcan
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="box box-solid">
|
|
<div class="box-header"><h3 class="box-title">@lang('advancedplanning::lang.latest_schedule')</h3></div>
|
|
<div class="box-body">
|
|
@if($stats['latest_run'])
|
|
<p><strong>@lang('advancedplanning::lang.ref_no'):</strong> {{ $stats['latest_run']->ref_no }}</p>
|
|
<p><strong>@lang('advancedplanning::lang.status'):</strong> {{ $util->statusLabel($stats['latest_run']->status) }}</p>
|
|
<p><strong>@lang('advancedplanning::lang.horizon_start'):</strong> {{ $stats['latest_run']->horizon_start?->format('Y-m-d') }}</p>
|
|
<p><strong>@lang('advancedplanning::lang.horizon_end'):</strong> {{ $stats['latest_run']->horizon_end?->format('Y-m-d') }}</p>
|
|
<a href="{{ action([\Modules\AdvancedPlanning\Http\Controllers\ScheduleRunController::class, 'show'], $stats['latest_run']->id) }}" class="btn btn-default btn-xs">
|
|
@lang('advancedplanning::lang.view')
|
|
</a>
|
|
@else
|
|
<p class="text-muted">@lang('advancedplanning::lang.no_records')</p>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="box box-solid">
|
|
<div class="box-header"><h3 class="box-title">@lang('advancedplanning::lang.latest_sop')</h3></div>
|
|
<div class="box-body">
|
|
@if($stats['latest_sop'])
|
|
<p><strong>@lang('advancedplanning::lang.cycle_month'):</strong> {{ $stats['latest_sop']->cycle_month?->format('Y-m') }}</p>
|
|
<p><strong>@lang('advancedplanning::lang.status'):</strong> {{ $util->statusLabel($stats['latest_sop']->status) }}</p>
|
|
<a href="{{ action([\Modules\AdvancedPlanning\Http\Controllers\SopCycleController::class, 'show'], $stats['latest_sop']->id) }}" class="btn btn-default btn-xs">
|
|
@lang('advancedplanning::lang.view')
|
|
</a>
|
|
@else
|
|
<p class="text-muted">@lang('advancedplanning::lang.no_records')</p>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
@endsection
|