Repetitor uchun jurnal: baholar, davomat, o'quvchilar to'lovi va oylik daromad. Baho pasaysa, to'lov ikki barobar bo'ladi.
O'qituvchi uchun jurnal: baholar, davomat, o'quvchilar, to'lov, hisobotlar va oylik daromad.
Eng o'ziga xos qismi — ikkilantirish qoidasi: o'quvchining oylik o'rtacha bahosi belgilangan chegaradan pastga tushsa, oylik to'lov avtomatik ikki barobar bo'ladi va hisob-kitob bilan xabar yuboriladi.
Oy to'liq hisoblanadi — o'quvchi kelgan yoki kelmaganidan qat'i nazar.
Toza HTML, CSS va JavaScript'da bitta sahifa qilib yozilgan: yig'ish ham, kutubxonalar ham kerak emas, internetsiz ishlaydi.
Loyihaning haqiqiy kodidan parcha — ichida nima borligini ko'rish uchun.
function calcPay(stu){ const avg = monthAvg(stu.id); const r = state.settings.doubling; let mult = 1, why = "обычная"; if(stu.mult !== "auto"){ mult = Number(stu.mult); why = mult > 1 ? "вручную учителем" : "зафиксирована учителем"; } else if(r.enabled && avg !== null && avg <= r.threshold){ mult = r.multiplier; why = `ср. балл ${fmtAvg(avg)} ≤ ${fmtAvg(r.threshold)}`; } return { avg, base: stu.basePay, mult, total: Math.round(stu.basePay * mult), why };}/* Месячная оплата: месяц считается целиком, ходил ученик или нет. В начале нового месяца тариф списывается автоматически. */function totalCharges(stu){ let start = stu.startMonth || CUR_MONTH; if(start > CUR_MONTH) start = CUR_MONTH; const months = monthsBetween(start, CUR_MONTH); let total = 0; months.forEach(m => { total += Math.round(stu.basePay * monthMult(stu, m)); }); return { total, months: months.length };}Loyiha uchun ariza
Shaklni to'ldiring — tafsilotlar va muddatlarni muhokama qilamiz.
Stol band qilish boti
