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

151 lines
7.8 KiB
PHP

@extends('layouts.app')
@section('title', __('assetexchange::lang.dashboard'))
@section('content')
@include('assetexchange::layouts.nav')
<section class="content no-print mt-page">
<div class="mt-page-header">
<h1><i class="fas fa-tachometer-alt" style="color:#3b82f6;margin-left:8px;"></i> @lang('assetexchange::lang.dashboard')</h1>
</div>
<div class="mt-kpi-grid">
<div class="mt-kpi-card">
<i class="fas fa-list kpi-icon"></i>
<div class="kpi-label">@lang('assetexchange::lang.kpi_active_listings')</div>
<div class="kpi-value">{{ $stats['listings']['active'] ?? 0 }}</div>
</div>
<div class="mt-kpi-card">
<i class="fas fa-search kpi-icon"></i>
<div class="kpi-label">@lang('assetexchange::lang.kpi_in_appraisal')</div>
<div class="kpi-value">{{ $stats['listings']['in_appraisal_pipeline'] ?? 0 }}</div>
</div>
<div class="mt-kpi-card">
<i class="fas fa-check-circle kpi-icon"></i>
<div class="kpi-label">@lang('assetexchange::lang.kpi_appraised')</div>
<div class="kpi-value">{{ $stats['listings']['appraised'] ?? 0 }}</div>
</div>
<div class="mt-kpi-card">
<i class="fas fa-shopping-cart kpi-icon"></i>
<div class="kpi-label">@lang('assetexchange::lang.kpi_sold')</div>
<div class="kpi-value">{{ $stats['listings']['sold'] ?? 0 }}</div>
</div>
<div class="mt-kpi-card">
<i class="fas fa-handshake kpi-icon"></i>
<div class="kpi-label">@lang('assetexchange::lang.kpi_open_deals')</div>
<div class="kpi-value">{{ $stats['deals']['open'] ?? 0 }}</div>
</div>
<div class="mt-kpi-card">
<i class="fas fa-coins kpi-icon"></i>
<div class="kpi-label">@lang('assetexchange::lang.kpi_pending_commissions')</div>
<div class="kpi-value">{{ $stats['commissions']['pending_count'] ?? 0 }}</div>
</div>
<div class="mt-kpi-card">
<i class="fas fa-money-bill-wave kpi-icon"></i>
<div class="kpi-label">@lang('assetexchange::lang.kpi_pending_commission_amount')</div>
<div class="kpi-value">{{ $stats['commissions']['pending_amount_formatted'] ?? $aexUtil->formatMoney(0) }}</div>
</div>
<div class="mt-kpi-card">
<i class="fas fa-exclamation-triangle kpi-icon" style="color:#dc3545;"></i>
<div class="kpi-label">@lang('assetexchange::lang.sla_breached')</div>
<div class="kpi-value text-danger">{{ $slaSnapshot['inquiry_breached'] ?? 0 }}</div>
</div>
<div class="mt-kpi-card">
<i class="fas fa-clock kpi-icon" style="color:#ffc107;"></i>
<div class="kpi-label">@lang('assetexchange::lang.sla_warning')</div>
<div class="kpi-value text-warning">{{ $slaSnapshot['inquiry_warning'] ?? 0 }}</div>
</div>
</div>
@if(!empty($slaSnapshot['urgent_items']))
<div class="mt-card" style="margin-bottom:20px;">
<div class="mt-card-header">
<h3 class="mt-card-title"><i class="fas fa-flag text-danger"></i> @lang('assetexchange::lang.sla_urgent_panel')</h3>
<a href="{{ action([\Modules\AssetExchange\Http\Controllers\PriceInquiryController::class, 'index'], ['filter' => 'urgent']) }}" class="btn btn-xs btn-danger pull-left">@lang('assetexchange::lang.view_all_urgent')</a>
</div>
<div class="mt-card-body">
<table class="table table-condensed">
<thead><tr><th>@lang('assetexchange::lang.inquiry_code')</th><th>@lang('assetexchange::lang.title')</th><th>@lang('assetexchange::lang.sla_status')</th><th></th></tr></thead>
<tbody>
@foreach($slaSnapshot['urgent_items'] as $item)
<tr>
<td>{{ $item['code'] }}</td>
<td>{{ $item['title'] }} @if(!empty($item['listing']))<small class="text-muted">({{ $item['listing'] }})</small>@endif</td>
<td>
@if($item['sla_status'] === 'breached')
<span class="label label-danger">@lang('assetexchange::lang.sla_breached')</span>
@elseif($item['sla_status'] === 'overdue')
<span class="label label-danger">@lang('assetexchange::lang.sla_overdue_due')</span>
@else
<span class="label label-warning">@lang('assetexchange::lang.sla_warning')</span>
@endif
</td>
<td><a href="{{ $item['url'] }}" class="btn btn-xs btn-default">@lang('assetexchange::lang.view')</a></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endif
<div class="row">
<div class="col-md-4">
<div class="mt-card">
<div class="mt-card-header"><h3 class="mt-card-title">@lang('assetexchange::lang.listings_by_status')</h3></div>
<div class="mt-card-body">
@forelse($stats['listings']['by_status'] ?? [] as $item)
<div class="clearfix" style="margin-bottom:8px;">
<span>{{ $item['label'] }}</span>
<span class="pull-left badge bg-blue">{{ $item['count'] }}</span>
</div>
@empty
<p class="text-muted">@lang('assetexchange::lang.no_records')</p>
@endforelse
</div>
</div>
</div>
<div class="col-md-4">
<div class="mt-card">
<div class="mt-card-header"><h3 class="mt-card-title">@lang('assetexchange::lang.deals_by_type')</h3></div>
<div class="mt-card-body">
@forelse($stats['deals']['by_type'] ?? [] as $item)
<div class="clearfix" style="margin-bottom:8px;">
<span>{{ $item['label'] }}</span>
<span class="pull-left badge bg-green">{{ $item['count'] }}</span>
</div>
@empty
<p class="text-muted">@lang('assetexchange::lang.no_records')</p>
@endforelse
</div>
</div>
</div>
<div class="col-md-4">
<div class="mt-card">
<div class="mt-card-header"><h3 class="mt-card-title">@lang('assetexchange::lang.quick_links')</h3></div>
<div class="mt-card-body">
<div class="mm-quick-links">
@can('aex.listings.create')
<a href="{{ action([\Modules\AssetExchange\Http\Controllers\ListingController::class, 'create']) }}">
<i class="fas fa-plus"></i> @lang('assetexchange::lang.new_listing')
</a>
@endcan
@can('aex.appraisals.create')
<a href="{{ action([\Modules\AssetExchange\Http\Controllers\AppraisalController::class, 'create']) }}">
<i class="fas fa-search-dollar"></i> @lang('assetexchange::lang.new_appraisal')
</a>
@endcan
@can('aex.pipeline.view')
<a href="{{ action([\Modules\AssetExchange\Http\Controllers\PipelineController::class, 'index']) }}">
<i class="fas fa-project-diagram"></i> @lang('assetexchange::lang.pipeline')
</a>
@endcan
</div>
</div>
</div>
</div>
</div>
</section>
@endsection