@extends('layout.app') @section('title', 'Dashboard - Sistem Manajemen ISP') @section('content') @php // Get theme color from controller or database $themeColor = $themeColor ?? DB::table('settings')->where('key', 'theme_color')->value('value') ?? 'primary'; $themeGradient = 'bg-gradient-' . $themeColor; $themeShadow = 'shadow-' . $themeColor; @endphp

NB: Klik panah kanannya

Pelanggan
{{ number_format($totalPelanggan, 0, ',', '.') }}
visibility arrow_forward
Belum Bayar
{{ number_format($tagihanStats['belum_bayar'] ?? 0, 0, ',', '.') }}
visibility arrow_forward
Lunas Bayar
{{ number_format($tagihanStats['lunas'] ?? 0, 0, ',', '.') }}
visibility arrow_forward
Transaksi Cash
{{ number_format($tagihanStats['cash'] ?? 0, 0, ',', '.') }}
visibility arrow_forward
Transaksi Online
{{ number_format($tagihanStats['online'] ?? 0, 0, ',', '.') }}
visibility arrow_forward
PELANGGAN BARU
{{ number_format($pelangganBaru ?? 0, 0, ',', '.') }}
TELAT
{{ number_format($tagihanStats['telat'] ?? 0, 0, ',', '.') }}
NUNGGAK
{{ number_format($tagihanStats['jatuh_tempo'] ?? 0, 0, ',', '.') }}
CUTI / ISOLIR
{{ number_format($pelangganSuspend ?? 0, 0, ',', '.') }}
TRANSAKSI ISOLIR
{{ number_format($tagihanStats['isolir'] ?? 0, 0, ',', '.') }}
PELANGGAN BERHENTI
{{ number_format($pelangganBerhenti ?? 0, 0, ',', '.') }}
person_add TAMBAH PELANGGAN search CARI PELANGGAN filter_list FILTER AREA package FILTER BY PAKET
@php $pelangganList = \App\Models\Pelanggan::with(['paket', 'area']) ->orderBy('created_at', 'DESC') ->limit(10) ->get(); @endphp @forelse($pelangganList as $index => $pelanggan) @empty @endforelse
No. Nama PPOE Paket Area Biaya Tgl Register Aksi
{{ $index + 1 }}
({{ $pelanggan->id }}) {{ $pelanggan->nama }} @if($pelanggan->no_telepon)
{{ $pelanggan->no_telepon }} @endif
@if($pelanggan->latitude && $pelanggan->longitude) location_on @endif
{{ $pelanggan->username_pppoe ?? '-' }} {{ optional($pelanggan->paket)->nama_paket ?? '-' }} {{ optional($pelanggan->area)->nama_area ?? '-' }}
Rp {{ number_format(optional($pelanggan->paket)->harga ?? 0, 0, ',', '.') }} info
{{ $pelanggan->created_at->format('d F Y') }}
visibility edit
@csrf @method('DELETE')
people
Tidak ada data pelanggan
Revenue Overview
arrow_forward See all
Recent Activity
check_circle
New customer registered

2 minutes ago

payments
Payment received

5 minutes ago

schedule
Invoice overdue

10 minutes ago

Tagihan Terbaru
@forelse($recentTagihan as $tagihan) @empty @endforelse
No. Invoice Pelanggan Tanggal Total Status
{{ $tagihan->nomor_invoice }}

{{ optional($tagihan->pelanggan)->nama ?? '-' }}

{{ $tagihan->tanggal_tagihan->format('d/m/Y') }} Rp {{ number_format($tagihan->total_tagihan, 0, ',', '.') }} {{ $tagihan->status_tagihan }}
receipt
Tidak ada data
@if(!empty($librenmsTopologyUrl))
LibreNMS Topology
@endif
Tagihan Jatuh Tempo
@if($tagihanJatuhTempo->isEmpty())
check_circle Tidak ada tagihan jatuh tempo
@else
@foreach($tagihanJatuhTempo as $tagihan) @php $customerName = optional($tagihan->pelanggan)->nama ?? '-'; $dueDate = $tagihan->tanggal_jatuh_tempo; $daysDistance = now()->diffInDays($dueDate, false); if ($daysDistance < 0) { $badgeClass = 'late'; $badgeLabel = abs($daysDistance) . ' hari lewat'; } elseif ($daysDistance === 0) { $badgeClass = 'today'; $badgeLabel = 'Jatuh tempo hari ini'; } elseif ($daysDistance <= 3) { $badgeClass = 'soon'; $badgeLabel = 'H-' . $daysDistance; } else { $badgeClass = 'safe'; $badgeLabel = 'H-' . $daysDistance; } @endphp
{{ $customerName }}
{{ $tagihan->nomor_invoice }}
{{ $badgeLabel }}
Jatuh tempo {{ $dueDate?->format('d/m/Y') ?? '-' }}
@endforeach
@endif
LibreNMS Alerts
{{ $librenmsAlerts->count() }}
@forelse($librenmsAlerts as $alert)
@php $color = match(strtolower($alert->severity)) { 'critical' => 'danger', 'major' => 'warning', 'minor' => 'info', 'warning' => 'warning', default => 'secondary', }; @endphp {{ $alert->severity }}
{{ $alert->hostname ?? 'Device #' . $alert->device_id }}
{{ $alert->message }}
Mulai: {{ optional($alert->started_at)->format('d/m/Y H:i') ?? '-' }}
@if($alert->ended_at)
Selesai: {{ $alert->ended_at->format('d/m/Y H:i') }}
@endif
@empty
notifications_off Belum ada alert
@endforelse
@endsection @section('scripts') @endsection