Haftalik grid dolulugu
{{ formatDashboardPercent(dashboardStats.weekOccupancyPercent) }}
Yukleniyor...
Hafta: {{ dashboardStats.weekStart }} – {{ dashboardStats.weekEnd }} · Saat bandi {{ dashboardStats.scheduleStartHour }}–{{ dashboardStats.scheduleEndHour }} · Gec giris: ders baslangicina +{{ dashboardStats.lateGraceMinutes }} dk tolerans
Ders programi sekmesindeki hafta ile ayni Pazartesi tarihi kullanilir ({{ scheduleWeekStart || dashboardStats.weekStart }}).
Yukleniyor...
{{ formatDashboardPercent(dashboardStats.weekOccupancyPercent) }}
{{ dashboardStats.totalEntries }}
{{ formatDashboardFixed(dashboardStats.avgPeoplePerInstructor, 2) }}
{{ formatDashboardPercent(dashboardStats.qrCoveragePercent) }}
{{ formatDashboardPercent(dashboardStats.lateEntryPercentOfTotal) }}
{{ formatDashboardFixed(dashboardStats.avgStayToAllocatedHourRatio, 2) }}
{{ formatDashboardFixed(dashboardStats.avgFirstScanOffsetMinutes, 1) }} dk
{{ formatDashboardFixed(dashboardStats.avgQrScansPerQrEntry, 2) }}
Veri yok veya yuklenemedi.
Yukleniyor...
Yukleniyor...
Ortalama {{ formatAnalyticsNumber(analyticsSnapshot.membershipOrtalama) }}
| Tip | Kisi | Sozlesme | Tutar | KDV haric | Toplam |
|---|---|---|---|---|---|
| {{ r.item }} | {{ r.kisiSayisi ?? '-' }} | {{ r.sozlesmeSayisi ?? '-' }} | {{ formatAnalyticsNumber(r.tutar) }} | {{ formatAnalyticsNumber(r.kdvHaricTutar) }} | {{ formatAnalyticsNumber(r.toplam) }} |
Uyelik satiri yok.
| Hizmet | Adet | Tutar | KDV haric | Paket ort. | Ders basi ort. | Toplam |
|---|---|---|---|---|---|---|
| {{ r.hizmetItem }} | {{ r.adet ?? '-' }} | {{ formatAnalyticsNumber(r.tutar) }} | {{ formatAnalyticsNumber(r.kdvHaricTutar) }} | {{ formatAnalyticsNumber(r.kdvHaricPaketOrtalamaFiyat) }} | {{ formatAnalyticsNumber(r.kdvHaricPaketOrtalamaDersBasi) }} | {{ formatAnalyticsNumber(r.toplam) }} |
Hizmet satiri yok.
Bu ay icin snapshot yok. Job calistirin veya Simdi calistir ile veri olusturun.
Yukleniyor...
| {{ col.label }} | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ c.status === 'open' ? 'Devam ediyor' : 'Kapatildi' }} |
{{ whatsAppContactLabel(c) }}
|
{{ c.operatorName || '-' }} | {{ c.messageCount }} | {{ formatDurationSeconds(c.durationSeconds) }} | {{ c.status === 'open' ? '-' : formatDurationSeconds(c.firstReplySeconds) }} | {{ c.status === 'open' ? '-' : formatDurationSeconds(c.avgReplySeconds) }} | {{ c.status === 'open' ? '-' : formatDurationSeconds(c.maxReplySeconds) }} | {{ c.status === 'open' ? '-' : waCategoryLabel(c.category) }} | - - |
-
AI
Op
{{ c.satisfactionMismatchNote }}
|
- |
|
{{ c.aiSummary }}
|
Secilen tarih araliginda kapatilmis konusma yok.
Rapor yuklenemedi.
{{ overnightStayReportRunning ? 'Snapshot olusturuluyor...' : 'Yukleniyor...' }}
Eksik snapshot: {{ overnightStayRecentReport.missingDates.join(', ') }}. Simdi calistir ile tamamlayabilirsiniz.
| Isim | Son giris | Cikis | Durum |
|---|---|---|---|
| {{ member.memberName || '-' }} | {{ member.lastGirisAt ? formatDate(member.lastGirisAt) : '-' }} | {{ overnightStayCikisLabel(member) }} | {{ overnightStayIssueLabel(t) }} |
Secilen aralikta kayit bulunamadi.
Rapor yuklenemedi. Simdi calistir ile snapshot olusturabilirsiniz.
Yukleniyor...
| Kullanici | Telefon | Son konum | Dogruluk | Harita |
|---|---|---|---|---|
| {{ row.displayName || row.username || '-' }} | {{ row.phone ? formatWhatsAppPhone(row.phone) : '-' }} | {{ formatCompanionRecordedAt(row.recordedAt || row.RecordedAt) }} | {{ row.accuracyM != null ? ('+/- ' + Math.round(row.accuracyM) + ' m') : '-' }} | Ac |
Secilen surede konum kaydi bulunamadi.
Rapor yuklenemedi.
Yukleniyor...
{{ assignmentTimelineEventLine(assignmentTimelineFocusEvent) }}
Bu ana kadar atama yok.
Rapor yuklenemedi.
| Job | Cron | Son calisma | |
|---|---|---|---|
| {{ j.name }} | {{ j.cronExpression }} | {{ j.lastRunUtc ? formatDate(j.lastRunUtc) : '-' }} |
|
{{ busy ? 'Yukleniyor...' : 'Kayitli job yok.' }}
Yukleniyor...
| Ad | Soyad | Telefon | Kullanici adi | Rol | Sicil | WA Op. | Durum | |
|---|---|---|---|---|---|---|---|---|
| {{ u.firstName }} | {{ u.lastName }} | {{ u.phone || '-' }} | {{ u.username }} | {{ portalUserRolesLabel(u) }} | {{ u.erpMemberId || '-' }} | {{ u.isWhatsappOperator ? 'Evet' : '-' }} | {{ u.isActive === false ? 'Pasif' : 'Aktif' }} |
|
|
|
||||||||
Kullanici yok veya liste alinamadi.
{{ scheduleWeekRangeLabel }} · {{ scheduleWeekHolidaysLabel }}
{{ mobileSelectedDay.dayName }} {{ mobileSelectedDay.shortDate }}
|
{{ d.dayName }}
{{ d.shortDate }}
{{ d.holiday.localName }}
|
|
|---|---|
| {{ formatHour(h) }} |
|
Yukleniyor... Saat araligi bos veya veri yok. Hafta saat bandi sunucu ayarlarindan (yonetici) tanimlanir. Saat araligi bos. Ayarlar -> Ders programi sekmesinden baslangic ve bitis saatlerini ayarlayin.
Bu haftaki ders programi kayitlari aranir ({{ doorAccessWeekStart || '—' }} haftasi).
Araniyor...
Sonuc bulunamadi.
Aramak icin en az 2 karakter yazin.
{{ whatsAppStatusLabel }}
QR bekleniyor...
Telefonda WhatsApp > Bagli cihazlar > Cihaz bagla ile QR kodu tarayin.
Soldan bir konusma secin.
APK modu
{{ portalRolesLabel }}
Telegram ayna AI, WhatsApp AI agent ve diger AI cagrilari icin varsayilan model.
Kayitli. Acik metin gosterilmez; degistirmek icin dugmeye basin.
Dogrudan AI telefonlarindan bunu ogren: ... yazinca AI bunu_ogren araci ile bilgiyi kalici prompta ekler.
Henuz kayit yok.
Listedeki numaralar round-robin atlanir, dogrudan AI'ya atanir ve AI yanit verir (genel AI kapali olsa da). Numara yazip Enter'a basin.
Giris OTP ve ders katilim linki SMS, sunucudaki SmsProviderApiKeys ve
DcsExternalServices (SOAP send_sms) uzerinden gonderilir; katilim SMS ile ayni yol.
Asagidaki AjansSMS alanlari gonderimde kullanilmaz; yalnizca settings.json icinde saklanmaya devam eder.
Bos birakilirsa https://g.ajanswebsms.com/ kullanilir.
AjansSMS panelindeki kullanici adi ve bayi kodu; kullanici-bayi biciminde.
Kayitli. Acik metin gosterilmez; degistirmek icin dugmeye basin.
Alicida gorunen baslik; en fazla 11 karakter, AjansSMS kurallarina uygun.
Kayitli. Acik metin gosterilmez; degistirmek icin dugmeye basin.
Bos ortamda Gmail__ClientId / Gmail__ClientSecret kullanilabilir.
Bos birakirsaniz ortam degiskeni Gmail__ClientId ve Gmail__ClientSecret kullanilir.
Kayitli. Acik metin gosterilmez; degistirmek icin dugmeye basin veya Gmail ile tekrar baglayin.
OAuth ile yetkilendirilen hesap; otomatik baglanti sonrasi doldurulur.
Google Cloud OAuth istemcisi turu Web uygulamasi ise "Yetkili yonlendirme URI" olarak sunucu adresiniz + /api/gmail/oauth/callback ekleyin.
Kayitli. Acik metin gosterilmez; degistirmek icin dugmeye basin.
Veritabani: dotnet run -- db-migrate veya Database:AutoMigrate=true (Data/Sql/migrations).
Veritabani: dotnet run -- db-migrate veya Database:AutoMigrate=true (Data/Sql/migrations).
QR tarama sonrasi consent_sessions (dcs_service) kontrolu icin.
QR tarama sonrasi consent_sessions (dcs_service) kontrolu icin.
Tablo bu araliktaki saatleri gosterir (bitis saati dahil degildir).
Kapi Ac ekraninda secilen varsayilan kapiya POST istegi /open-door adresine gider.
Kayitli. ERP uzerinde yalnizca SELECT; sonuclar MySQL snapshot tablolarina yazilir.
ERP uzerinde yalnizca SELECT; ApplicationIntent=ReadOnly uygulanir. Sonuclar MySQL snapshot tablolarina yazilir.
Hangfire kuyrugu hangfire.sqlite dosyasina yazilir (varsayilan storage Memory; degistirmek icin appsettings.json -> HiveSkypeak:HangfireStorage).
Telegram ayna AI kaydettigi notlar; her Telegram sohbeti (chat id) ayri listelenir. Veri dosyasi: telegram-ai-learned.json
Yukleniyor...
| Kayit (UTC) | Not |
|---|---|
| {{ formatDate(n.savedAtUtc) }} | {{ n.text }} |
Kayit yok veya dosya henuz olusturulmadi.
Bu sure icinde karsilayici yanit vermezse konusma operator round-robin'e duser.
Yukleniyor...
Aktif Greeter kullanicisi yok.
Aktif WhatsApp operatoru yok.
Yukleniyor...
Siradaki atama: {{ whatsAppRoundRobin.nextLabel }}
Operator round-robin onizlemesi yok.
{{ whatsAppPushStatusLabel }}
Kapali iken Chrome penceresi acilir; QR kodu icin kullanilir. Linux sunucuda DISPLAY yoksa xvfb-run kullanilir veya asagida DISPLAY girin. Degisiklik icin Node servisini yeniden baslatin.
Yerel: :99. Uzak X sunucusu: ip:99 veya host:99. Uzak makinede xhost/xauth ve TCP (6000+display) acik olmali.
whatsapp-service icine goreli veya mutlak yol. Varsayilan: .wwebjs_auth. Degisiklik icin Node servisini yeniden baslatin.
QR ve eslestirme kodu bu numaraya yoneltilir.
Model ve API anahtari Ayarlar > OpenAI sekmesinden kullanilir.
{{ whatsAppStatusLabel }}
API, arka plan servisleri, WhatsApp Node ve diger sistem loglari. Son 2000 kayit bellekte tutulur.
Loglar yukleniyor...