ultimatepos/Modules/SupplyChain/Resources/views/dashboard/index.blade.php

147 lines
7.5 KiB
PHP

@extends('layouts.app')
@section('title', __('supplychain::lang.dashboard'))
@section('content')
@include('supplychain::layouts.nav')
<section class="content-header">
<h1>@lang('supplychain::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">&times;</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-star"></i></span>
<div class="info-box-content">
<span class="info-box-text">@lang('supplychain::lang.stats_scorecards')</span>
<span class="info-box-number">{{ $stats['scorecards'] }}</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-line-chart"></i></span>
<div class="info-box-content">
<span class="info-box-text">@lang('supplychain::lang.stats_forecasts')</span>
<span class="info-box-number">{{ $stats['forecasts'] }}</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-file-text"></i></span>
<div class="info-box-content">
<span class="info-box-text">@lang('supplychain::lang.stats_open_rfqs')</span>
<span class="info-box-number">{{ $stats['open_rfqs'] }}</span>
</div>
</div>
</div>
<div class="col-md-3 col-sm-6">
<div class="info-box bg-red">
<span class="info-box-icon"><i class="fa fa-exclamation-triangle"></i></span>
<div class="info-box-content">
<span class="info-box-text">@lang('supplychain::lang.stats_high_risk')</span>
<span class="info-box-number">{{ $stats['high_risk_suppliers'] }}</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('supplychain::lang.recent_scorecards')</h3>
@can('supplychain.scorecard.view')
<a href="{{ action([\Modules\SupplyChain\Http\Controllers\SupplierScorecardController::class, 'index']) }}" class="btn btn-default btn-xs pull-right">@lang('supplychain::lang.supplier_scorecards')</a>
@endcan
</div>
<div class="box-body table-responsive">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>@lang('supplychain::lang.supplier')</th>
<th>@lang('supplychain::lang.overall_score')</th>
<th>@lang('supplychain::lang.risk_level')</th>
</tr>
</thead>
<tbody>
@forelse($recentScorecards as $sc)
<tr>
<td>{{ $sc->contact?->name ?? '—' }}</td>
<td>{{ number_format($sc->overall_score, 1) }}</td>
<td><span class="label {{ $supplyChainUtil->riskBadgeClass($sc->risk_level) }}">@lang('supplychain::lang.risk_'.$sc->risk_level)</span></td>
</tr>
@empty
<tr><td colspan="3" class="text-center text-muted">@lang('supplychain::lang.no_records')</td></tr>
@endforelse
</tbody>
</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('supplychain::lang.recent_rfqs')</h3>
@can('supplychain.rfq.view')
<a href="{{ action([\Modules\SupplyChain\Http\Controllers\RfqController::class, 'index']) }}" class="btn btn-default btn-xs pull-right">@lang('supplychain::lang.rfq')</a>
@endcan
</div>
<div class="box-body table-responsive">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>@lang('supplychain::lang.ref_no')</th>
<th>@lang('supplychain::lang.title')</th>
<th>@lang('supplychain::lang.status')</th>
</tr>
</thead>
<tbody>
@forelse($recentRfqs as $rfq)
<tr>
<td><a href="{{ action([\Modules\SupplyChain\Http\Controllers\RfqController::class, 'show'], $rfq->id) }}">{{ $rfq->ref_no }}</a></td>
<td>{{ $rfq->title }}</td>
<td><span class="label {{ $supplyChainUtil->rfqStatusBadgeClass($rfq->status) }}">@lang('supplychain::lang.rfq_status_'.$rfq->status)</span></td>
</tr>
@empty
<tr><td colspan="3" class="text-center text-muted">@lang('supplychain::lang.no_records')</td></tr>
@endforelse
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="box box-default">
<div class="box-header with-border">
<h3 class="box-title">@lang('supplychain::lang.quick_actions')</h3>
</div>
<div class="box-body">
@can('supplychain.scorecard.create')
<form method="POST" action="{{ action([\Modules\SupplyChain\Http\Controllers\SupplierScorecardController::class, 'calculate']) }}" style="display:inline-block;margin-right:8px;">
@csrf
<button type="submit" class="btn btn-primary btn-sm"><i class="fa fa-calculator"></i> @lang('supplychain::lang.calculate_scorecards')</button>
</form>
@endcan
@can('supplychain.forecast.create')
<form method="POST" action="{{ action([\Modules\SupplyChain\Http\Controllers\DemandForecastController::class, 'generate']) }}" style="display:inline-block;margin-right:8px;">
@csrf
<input type="hidden" name="months_ahead" value="3">
<button type="submit" class="btn btn-success btn-sm"><i class="fa fa-line-chart"></i> @lang('supplychain::lang.generate_forecasts')</button>
</form>
@endcan
@can('supplychain.rfq.create')
<a href="{{ action([\Modules\SupplyChain\Http\Controllers\RfqController::class, 'create']) }}" class="btn btn-warning btn-sm"><i class="fa fa-plus"></i> @lang('supplychain::lang.create_rfq')</a>
@endcan
</div>
</div>
</section>
@endsection