აქტიური კლიენტები
გადახდილი
ადმინი
MB
CPU: %
ინვოისი
გადაუხდელი
ტრანზაქცია
სულ
ელ.ფოსტა
გაგზავნილი
აქტიური
ამ თვეში

სერვერის რესურსები - MB მეხსიერება / GB თავისუფალი

მეხსიერება MB
CPU %
დისკი GB
თავისუფალი GB

სისტემის მომხმარებლები

prepare("SELECT id, username, email, first_name, last_name, role, is_active, created_at, last_login FROM users ORDER BY created_at DESC LIMIT 15"); $stmt->execute(); $users = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $users = []; } if (!empty($users)): foreach($users as $user): // Generate initials for avatar $initials = ''; if ($user['first_name'] && $user['last_name']) { $initials = strtoupper(substr($user['first_name'], 0, 1) . substr($user['last_name'], 0, 1)); } elseif ($user['username']) { $initials = strtoupper(substr($user['username'], 0, 2)); } else { $initials = strtoupper(substr($user['email'], 0, 2)); } // Role translation to Georgian $role_georgian = [ 'admin' => 'ადმინისტრატორი', 'manager' => 'მენეჯერი', 'user' => 'მომხმარებელი', 'client' => 'კლიენტი' ]; $role_text = isset($role_georgian[$user['role']]) ? $role_georgian[$user['role']] : $user['role']; // Status badge (using is_active instead of status) $status_class = $user['is_active'] ? 'bg-success' : 'bg-secondary'; $status_text = $user['is_active'] ? 'აქტიური' : 'არააქტიური'; // Display name $display_name = trim($user['first_name'] . ' ' . $user['last_name']) ?: $user['username']; // Last activity $last_activity = $user['last_login'] ? 'ბოლო აქტივობა: ' . date('d M Y', strtotime($user['last_login'])) : 'რეგისტრირებული: ' . date('d M Y', strtotime($user['created_at'])); ?>
·

მომხმარებლები არ მოიძებნა

სისტემაში ჯერ არ არის რეგისტრირებული მომხმარებლები.

ბოლო აქტივობა
ტიპი აღწერა თარიღი
'; switch($activity['type']) { case 'client': $iconColor = 'bg-blue'; $icon = ''; break; case 'invoice': $iconColor = 'bg-green'; $icon = ''; break; case 'transaction': $iconColor = 'bg-warning'; $icon = ''; break; } ?>
ჯერ არ არის აქტივობა

STACK Icons

ყველა იკონი მოდის Tabler Icons სეტიდან და არის MIT ლიცენზირებული. ეწვიეთ stack.ge, გამოიყენეთ 5844 იკონა SVG, PNG ან React ფორმატში თქვენს საყვარელ დიზაინ ხელსაწყოებში.

ინვოისები

მაჩვენე
ჩანაწერი
ძებნა:
prepare(" SELECT i.id AS invoice_id, i.invoice_number, i.status, i.total_amount, i.created_at, c.first_name, c.last_name, c.vat_number, ( SELECT description FROM invoice_items WHERE invoice_id = i.id LIMIT 1 ) AS invoice_subject FROM invoices i LEFT JOIN clients c ON i.client_id = c.id ORDER BY i.created_at DESC LIMIT 8 "); $stmt->execute(); $invoiceCount = 0; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $invoiceCount++; $status = strtolower($row['status']); // სტატუსების ქართული თარგმანი $statusGeorgian = match ($status) { 'paid' => 'გადახდილი', 'pending' => 'მოლოდინში', 'unpaid' => 'გადაუხდელი', 'draft' => 'ნაბოზარი', 'overdue' => 'ვადაგასული', default => 'უცნობი' }; $badge_class = match ($status) { 'paid' => 'bg-success', 'pending' => 'bg-warning', 'unpaid', 'draft' => 'bg-secondary', 'overdue' => 'bg-danger', default => 'bg-secondary' }; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } // სულ ინვოისების რაოდენობის გამოთვლა $totalStmt = $pdo->prepare("SELECT COUNT(*) as total FROM invoices"); $totalStmt->execute(); $totalInvoices = $totalStmt->fetch(PDO::FETCH_ASSOC)['total']; // თუ ინვოისები არ არის, ცარიელი რიგის ჩვენება if ($invoiceCount == 0) { echo ''; echo ''; echo ''; } ?>
ინვოისის სათაური მომხმარებელი საიდ. № შექმნილია სტატუსი თანხა
' . htmlspecialchars($row['invoice_number']) . '' . htmlspecialchars($row['invoice_subject'] ?? 'ღირსება მითითებული არ არის') . '' . htmlspecialchars($row['first_name'] . ' ' . $row['last_name']) . '' . htmlspecialchars($row['vat_number'] ?? '—') . '' . date('d M Y', strtotime($row['created_at'])) . ' ' . $statusGeorgian . '' . number_format($row['total_amount'], 2) . ' ₾
'; echo 'ინვოისები ვერ მოიძებნა'; echo '