kaza namazı hesaplama düzeltildi.
This commit is contained in:
+74
-42
@@ -149,13 +149,14 @@ export function renderKaza(pb) {
|
|||||||
new CustomEvent("navigate", { detail: "kaza" }),
|
new CustomEvent("navigate", { detail: "kaza" }),
|
||||||
);
|
);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
alert("Profil kaydedilemedi.");
|
alert(
|
||||||
|
"Profil kaydedilemedi. PocketBase alan adlarını kontrol edin.",
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
refreshKazaStats(container, pb);
|
refreshKazaStats(container, pb);
|
||||||
|
|
||||||
// Hesapla & Kaydet Butonu Tıklanması
|
|
||||||
container
|
container
|
||||||
.querySelector("#calcAndSaveBtn")
|
.querySelector("#calcAndSaveBtn")
|
||||||
?.addEventListener("click", async () => {
|
?.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?",
|
"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);
|
||||||
await refreshKazaStats(container, pb);
|
if (res.success) {
|
||||||
showKazaMsg(
|
await refreshKazaStats(container, pb);
|
||||||
container.querySelector("#kazaMsg"),
|
showKazaMsg(
|
||||||
"Kaza borçları hesaplandı ve PocketBase'e kaydedildi!",
|
container.querySelector("#kazaMsg"),
|
||||||
true,
|
`✓ 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,38 +199,60 @@ export function renderKaza(pb) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otomatik hesaplayıp PocketBase'e toplam borç olarak kaydetme
|
|
||||||
async function initAndSaveInitialKaza(pb, birthDate, gender) {
|
async function initAndSaveInitialKaza(pb, birthDate, gender) {
|
||||||
const calc = calculateMissedPrayers(birthDate, gender, 12);
|
|
||||||
const userId = pb.authStore.model.id;
|
|
||||||
|
|
||||||
let userRecord = null;
|
|
||||||
try {
|
try {
|
||||||
userRecord = await pb
|
const calc = calculateMissedPrayers(birthDate, gender, 12);
|
||||||
.collection("kaza_logs")
|
|
||||||
.getFirstListItem(`user = "${userId}"`);
|
|
||||||
} catch {}
|
|
||||||
|
|
||||||
const initialData = {
|
if (!calc || calc.fajr === 0) {
|
||||||
user: userId,
|
return {
|
||||||
target_fajr: calc.fajr,
|
success: false,
|
||||||
target_dhuhr: calc.dhuhr,
|
error:
|
||||||
target_asr: calc.asr,
|
"Hesaplanan gün sayısı 0 çıktı. Doğum tarihinizin doğrulunu kontrol edin.",
|
||||||
target_maghrib: calc.maghrib,
|
};
|
||||||
target_isha: calc.isha,
|
}
|
||||||
target_vitr: calc.vitr,
|
|
||||||
fajr: userRecord?.fajr || 0,
|
|
||||||
dhuhr: userRecord?.dhuhr || 0,
|
|
||||||
asr: userRecord?.asr || 0,
|
|
||||||
maghrib: userRecord?.maghrib || 0,
|
|
||||||
isha: userRecord?.isha || 0,
|
|
||||||
vitr: userRecord?.vitr || 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (userRecord) {
|
const userId = pb.authStore.model.id;
|
||||||
await pb.collection("kaza_logs").update(userRecord.id, initialData);
|
let userRecord = null;
|
||||||
} else {
|
|
||||||
await pb.collection("kaza_logs").create(initialData);
|
try {
|
||||||
|
userRecord = await pb
|
||||||
|
.collection("kaza_logs")
|
||||||
|
.getFirstListItem(`user = "${userId}"`);
|
||||||
|
} catch (e) {
|
||||||
|
// Kayıt bulunamazsa sorun yok, yenisini oluşturacağız
|
||||||
|
}
|
||||||
|
|
||||||
|
const initialData = {
|
||||||
|
user: userId,
|
||||||
|
target_fajr: calc.fajr,
|
||||||
|
target_dhuhr: calc.dhuhr,
|
||||||
|
target_asr: calc.asr,
|
||||||
|
target_maghrib: calc.maghrib,
|
||||||
|
target_isha: calc.isha,
|
||||||
|
target_vitr: calc.vitr,
|
||||||
|
fajr: userRecord?.fajr || 0,
|
||||||
|
dhuhr: userRecord?.dhuhr || 0,
|
||||||
|
asr: userRecord?.asr || 0,
|
||||||
|
maghrib: userRecord?.maghrib || 0,
|
||||||
|
isha: userRecord?.isha || 0,
|
||||||
|
vitr: userRecord?.vitr || 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (userRecord) {
|
||||||
|
await pb.collection("kaza_logs").update(userRecord.id, initialData);
|
||||||
|
} 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.",
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,8 +270,10 @@ async function updateKazaCount(container, pb, direction) {
|
|||||||
.getFirstListItem(`user = "${userId}"`);
|
.getFirstListItem(`user = "${userId}"`);
|
||||||
|
|
||||||
if (!userRecord) {
|
if (!userRecord) {
|
||||||
alert(
|
showKazaMsg(
|
||||||
"Önce 'Kaza Borçlarını Otomatik Hesapla & Kaydet' butonuna basmalısınız.",
|
msg,
|
||||||
|
"Önce yukarıdaki 'Hesapla & Kaydet' butonuna tıklamalısınız.",
|
||||||
|
false,
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -264,7 +297,7 @@ async function updateKazaCount(container, pb, direction) {
|
|||||||
await refreshKazaStats(container, pb);
|
await refreshKazaStats(container, pb);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Güncelleme hatası:", 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) {}
|
} catch (err) {}
|
||||||
|
|
||||||
if (!userRecord) {
|
if (!userRecord) {
|
||||||
// Kayıt yoksa kartları sıfır göster
|
|
||||||
PRAYERS.forEach((p) => {
|
PRAYERS.forEach((p) => {
|
||||||
const remainEl = container.querySelector(`#remaining-${p.id}`);
|
const remainEl = container.querySelector(`#remaining-${p.id}`);
|
||||||
const completedEl = container.querySelector(`#completed-${p.id}`);
|
const completedEl = container.querySelector(`#completed-${p.id}`);
|
||||||
@@ -341,6 +373,6 @@ async function refreshKazaStats(container, pb) {
|
|||||||
function showKazaMsg(el, text, success) {
|
function showKazaMsg(el, text, success) {
|
||||||
if (!el) return;
|
if (!el) return;
|
||||||
el.textContent = text;
|
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");
|
el.classList.remove("hidden");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user