kaza namazı hesaplama düzeltildi.
This commit is contained in:
+44
-12
@@ -149,13 +149,14 @@ export function renderKaza(pb) {
|
||||
new CustomEvent("navigate", { detail: "kaza" }),
|
||||
);
|
||||
} catch (err) {
|
||||
alert("Profil kaydedilemedi.");
|
||||
alert(
|
||||
"Profil kaydedilemedi. PocketBase alan adlarını kontrol edin.",
|
||||
);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
refreshKazaStats(container, pb);
|
||||
|
||||
// Hesapla & Kaydet Butonu Tıklanması
|
||||
container
|
||||
.querySelector("#calcAndSaveBtn")
|
||||
?.addEventListener("click", async () => {
|
||||
@@ -164,13 +165,21 @@ export function renderKaza(pb) {
|
||||
"Kaza borçlarınız doğum tarihinize göre yeniden hesaplanıp veritabanına sabitlenecek. Onaylıyor musunuz?",
|
||||
)
|
||||
) {
|
||||
await initAndSaveInitialKaza(pb, birthDate, gender);
|
||||
const res = await initAndSaveInitialKaza(pb, birthDate, gender);
|
||||
if (res.success) {
|
||||
await refreshKazaStats(container, pb);
|
||||
showKazaMsg(
|
||||
container.querySelector("#kazaMsg"),
|
||||
"Kaza borçları hesaplandı ve PocketBase'e kaydedildi!",
|
||||
`✓ Kaza borçları hesaplandı (${res.days} gün = ${res.fajr} vakit) ve PocketBase'e kaydedildi!`,
|
||||
true,
|
||||
);
|
||||
} else {
|
||||
showKazaMsg(
|
||||
container.querySelector("#kazaMsg"),
|
||||
`Hata: ${res.error}`,
|
||||
false,
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -190,17 +199,28 @@ export function renderKaza(pb) {
|
||||
};
|
||||
}
|
||||
|
||||
// Otomatik hesaplayıp PocketBase'e toplam borç olarak kaydetme
|
||||
async function initAndSaveInitialKaza(pb, birthDate, gender) {
|
||||
try {
|
||||
const calc = calculateMissedPrayers(birthDate, gender, 12);
|
||||
const userId = pb.authStore.model.id;
|
||||
|
||||
if (!calc || calc.fajr === 0) {
|
||||
return {
|
||||
success: false,
|
||||
error:
|
||||
"Hesaplanan gün sayısı 0 çıktı. Doğum tarihinizin doğrulunu kontrol edin.",
|
||||
};
|
||||
}
|
||||
|
||||
const userId = pb.authStore.model.id;
|
||||
let userRecord = null;
|
||||
|
||||
try {
|
||||
userRecord = await pb
|
||||
.collection("kaza_logs")
|
||||
.getFirstListItem(`user = "${userId}"`);
|
||||
} catch {}
|
||||
} catch (e) {
|
||||
// Kayıt bulunamazsa sorun yok, yenisini oluşturacağız
|
||||
}
|
||||
|
||||
const initialData = {
|
||||
user: userId,
|
||||
@@ -223,6 +243,17 @@ async function initAndSaveInitialKaza(pb, birthDate, gender) {
|
||||
} else {
|
||||
await pb.collection("kaza_logs").create(initialData);
|
||||
}
|
||||
|
||||
return { success: true, days: calc.days, fajr: calc.fajr };
|
||||
} catch (err) {
|
||||
console.error("PocketBase Kayıt Hatası:", err);
|
||||
return {
|
||||
success: false,
|
||||
error:
|
||||
err?.message ||
|
||||
"PocketBase kayıt yaparken hata oluştu. kaza_logs koleksiyon izinlerini (API Rules) ve alan adlarını kontrol edin.",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
async function updateKazaCount(container, pb, direction) {
|
||||
@@ -239,8 +270,10 @@ async function updateKazaCount(container, pb, direction) {
|
||||
.getFirstListItem(`user = "${userId}"`);
|
||||
|
||||
if (!userRecord) {
|
||||
alert(
|
||||
"Önce 'Kaza Borçlarını Otomatik Hesapla & Kaydet' butonuna basmalısınız.",
|
||||
showKazaMsg(
|
||||
msg,
|
||||
"Önce yukarıdaki 'Hesapla & Kaydet' butonuna tıklamalısınız.",
|
||||
false,
|
||||
);
|
||||
return;
|
||||
}
|
||||
@@ -264,7 +297,7 @@ async function updateKazaCount(container, pb, direction) {
|
||||
await refreshKazaStats(container, pb);
|
||||
} catch (err) {
|
||||
console.error("Güncelleme hatası:", err);
|
||||
showKazaMsg(msg, "Güncelleme başarısız. Lütfen kontrol edin.", false);
|
||||
showKazaMsg(msg, "Güncelleme başarısız.", false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -279,7 +312,6 @@ async function refreshKazaStats(container, pb) {
|
||||
} catch (err) {}
|
||||
|
||||
if (!userRecord) {
|
||||
// Kayıt yoksa kartları sıfır göster
|
||||
PRAYERS.forEach((p) => {
|
||||
const remainEl = container.querySelector(`#remaining-${p.id}`);
|
||||
const completedEl = container.querySelector(`#completed-${p.id}`);
|
||||
@@ -341,6 +373,6 @@ async function refreshKazaStats(container, pb) {
|
||||
function showKazaMsg(el, text, success) {
|
||||
if (!el) return;
|
||||
el.textContent = text;
|
||||
el.className = `text-xs mt-3 ${success ? "text-emerald-400 font-medium" : "text-rose-400"}`;
|
||||
el.className = `text-xs mt-3 ${success ? "text-emerald-400 font-medium" : "text-rose-400 font-medium"}`;
|
||||
el.classList.remove("hidden");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user