Files
persegi/app/Services/NotificationService.php
T
tuxarmy 3d31f465ec feat: tambah widget statistik kas dan perbaikan alur verifikasi transaksi
- Tambah CashStatsWidget: total saldo, pemasukan/pengeluaran bulan ini, saldo bulan lalu
- Widget hanya tampil di halaman transaksi kas (bukan dashboard)
- Hanya transaksi yang sudah diverifikasi masuk ke perhitungan total kas
- Perbaiki namespace Action notifikasi (Filament v5)
- Perbaiki observer: hapus throw Exception yang menyebabkan widget hilang
- Tambah redirect setelah aksi setujui/tolak/verifikasi agar halaman refresh otomatis
- Tambah file DOKUMENTASI.md
2026-04-03 08:51:47 +07:00

37 lines
1.0 KiB
PHP

<?php
namespace App\Services;
use App\Models\User;
use Filament\Notifications\Notification;
class NotificationService
{
public static function send(User|iterable $recipients, string $title, string $body, string $color = 'info', ?string $url = null): void
{
$notification = Notification::make()
->title($title)
->body($body)
->color($color);
if ($url) {
$notification->actions([
\Filament\Actions\Action::make('lihat')
->label('Lihat')
->url($url),
]);
}
$notification->sendToDatabase(
$recipients instanceof User ? collect([$recipients]) : collect($recipients)
);
}
public static function toRole(string $role, string $title, string $body, string $color = 'info', ?string $url = null): void
{
$users = User::role($role)->get();
if ($users->isEmpty()) return;
self::send($users, $title, $body, $color, $url);
}
}