FEATURE · Employee Attendance

Apply, approve, deduct — हर leave, एक queue। Half-day, WFH, on-duty included।

Hindi PGT की same-day Casual Leave से Maths PGT की 20-day Maternity तक, हर staff leave application एक queue में flow करती है — department per multi-level approvers, half-day support, work-from-home और on-duty modes, medical certificates के लिए attachment uploads, और हर CBSE inspector recognise करने वाला audit trail। Approved leaves सही balance deduct करती हैं, daily attendance mark करती हैं और salary register feed करती हैं — उसी second, कोई spreadsheet नहीं।

BG PICCOZONE

आज ज़्यादातर Indian schools leave applications कैसे handle करते हैं

Hindi PGT Tuesday subah 7:42 पर office में हाथ से लिखी leave application लेकर आती हैं: '2 days CL, please, saas hospital admit hain'। Head clerk slip लेती हैं, 9:15 पर principal को देती हैं। Principal sign करते हैं, slip head clerk के पास वापस आती है, head clerk Wednesday और Thursday के against teacher के नाम पर register में 'L' लिखती हैं — और बस। कोई leave balance update नहीं, reason का कोई record slip के बाहर नहीं, salary calculation 2 हफ्तों में right amount deduct करेगी या नहीं — head clerk को yaad raha to।

Mathematics PGT Sunday को email से 10 days Earned Leave apply करती हैं। Principal Monday morning email open करते हैं, trust office को forward, trust office 4 days में reply, teacher इस बीच train tickets cancel करती हैं क्योंकि answer नहीं है। Approval आता है तो head clerk को उनकी remaining EL balance manually compute करनी पड़ती है — 21 allocated, 3 पहले used, October में half-day, अब 10 — answer half-day गलत क्योंकि October की half-day किसी को yaad नहीं।

ज़्यादातर school ERPs 'leave application' module offer करते हैं जो paper slip का digital version होता है — fill, submit, कोई approve, data पड़ा रहता है। वो multi-level approvers per department handle नहीं करते, half-day handle नहीं करते, WFH को leave mode की तरह handle नहीं करते, balance से उसी second deduct नहीं करते, और daily attendance को approval पर auto-mark नहीं करते। Result: approvals का queue जिस पर कोई trust नहीं, balances out of sync, और F&F 3 हफ्ते का क्योंकि leave history emails से reconstruct होती है।

Inkwelly employee leaves dashboard showing PENDING APPROVED REJECTED CANCELLED applications for CBSE school
एक queue — हर staff leave application, हर state, live balance के साथ।

Inkwelly Leaves कैसे काम करता है — apply, approve, deduct, एक flow में

Employee Attendance → Leaves open करिए और leave-application queue state-segmented tabs के साथ मिलती है: PENDING, APPROVED, REJECTED, CANCELLED। Department, leave type, date range, short-leave, work mode (ON_SITE, WFH, HYBRID, ON_DUTY) से filter करिए। Principal usually पूरा दिन PENDING पर page रखते हैं; head clerk REJECTED filter करके follow up करती हैं; accountant 1st पर APPROVED with date-range = previous month payroll computation के लिए।

Leave apply करना one-page form है। Teacher department और gender जिसके लिए qualify करती हैं उनमें से leave type pick करती हैं — Leave Types catalogue यह list drive करता है। startDate और endDate pick, reason type, form duration compute (full या partial day count)। halfDayType — FIRST_HALF (morning) या SECOND_HALF (afternoon) — अगर सिर्फ half day चाहिए। isShortLeave with shortLeaveFrom और shortLeaveTo (e.g., 11:00 से 13:00 passport-office visit) — system time-bound short leave record करता है balance से half-day consume किए बिना।

Planned absences के लिए, workMode: ON_SITE (default — actual leave), WFH (working from home, payroll पर working day count), HYBRID, ON_DUTY (CBSE workshop / sports trip / external examination duty — still 'present' on payroll)। alternateEmployeeId — colleague जो classes cover करेंगी/गे — और contactDuringLeave phone number। attachmentMediaId पर medical certificate या Form 21 attach करने का option अगर Leave Type पर requiresDocument = true

Submit पर application status PENDING। Inkwelly का EmployeeLeaveBalance.totalPending उसी second tick up — teacher जो balance देखती है application reflect करने के लिए drop हो जाता है approval से पहले ही। Application उसके department के LeaveApprovalAuthority table के हिसाब से सही approver को route। Department में approvalLevel = 1 Coordinator पर set हो तो application Coordinator के PENDING queue में पहले। Coordinator approve करे तो status APPROVED (या अगले level पर अगर multi-level configured)। Coordinator reject करे तो REJECTED के साथ rejectionReason recorded।

Approval में fine-grained permission flags हैं। Coordinator के canApproveLeave = true, canApproveShortLeave = true, canApproveWFH = false, canApproveOnDuty = false — short leaves और regular leaves sign off करसकती हैं, पर WFH और On-Duty applications Principal तक route होती हैं।

APPROVED पर 3 चीज़ें उसी second होती हैं। एक, EmployeeLeaveBalance.totalUsed duration से tick up; totalPending tick down। दो, leave window के हर day के लिए EmployeeDailyAttendance row create (या update) status = LEAVE (या half-days के लिए HALF_DAY_LEAVE) और leaveApplicationId link के साथ। तीन, audit log approver, timestamp, IP record करता है। Teacher को push notification + WhatsApp message; head clerk के PENDING queue में एक drop; month का salary register real time में adjust।

Cancel cleanup path है। Approval से पहले plans change हों — application open करके Cancel hit करिए — status CANCELLED, totalPending drop, balance restored। Approval के बाद cancel — totalUsed reverse, daily attendance row roll back। दोनों paths audit-logged।

पहले दिन से Inkwelly Leaves जो ship करता है

  • 4 states first-class — PENDING, APPROVED, REJECTED, CANCELLED — हर transition audit-logged
  • startDate और endDate के साथ computed duration — system weekends और holidays academic sessions calendar से handle करता है
  • halfDayType — FIRST_HALF या SECOND_HALF — 0.5 days balance deduct, day half-LEAVE attendance पर
  • isShortLeave with shortLeaveFrom / shortLeaveTo — 2-hour passport-office visit half-day consume नहीं करती
  • workMode — ON_SITE / WFH / HYBRID / ON_DUTY — हर एक payroll और attendance पर correctly treated
  • Multi-level approver chain LeaveApprovalAuthority से — Level 1 Coordinator, Level 2 Principal — per department
  • Approver permission flags — canApproveLeave, canApproveShortLeave, canApproveWFH, canApproveOnDuty — fine-grained per role
  • alternateEmployeeId — colleague जो classes cover करेगा/गी — approver review में visible
  • contactDuringLeave — emergencies के लिए phone number
  • attachmentMediaId — medical certificate, Form 21 (Maternity), या कोई supporting document upload
  • reason field — required, recorded, approvals और rejections में searchable
  • Leave types जिनमें requiresApproval = false के लिए auto-approve — typically On-Duty
  • Approval daily attendance को उसी second feed करती है — leave days LEAVE या HALF_DAY_LEAVE
  • Approval Leave Allocation balance feed करती है — totalUsed up, available down, instantly
  • Cancellation सब cleanly reverse — audit-logged, balance restored, attendance rolled back

Walkthrough — Indian-school leave application के 4 screens

BG PICCOZONE
Apply for leave — leave type, dates, half-day option, work mode, reason, alternate employee, attachment।
BG PICCOZONE
Approver queue — हर PENDING application employee, leave type, duration, balance, attachment के साथ।
BG PICCOZONE
Approval detail — application review, live balance, approve / reject with reason।
BG PICCOZONE
Approved — leave daily attendance पर reflected, balance debited, audit trail captured।

Half-day support — absence type जो paper registers हमेशा गलत करते थे

Hindi PGT को morning off चाहिए अपने बेटे के school के PTM के लिए पर lunch के बाद school पहुंचेंगी। Paper पर यह 'half day' बन जाता है ambiguous — morning थी या afternoon? Second half present थीं? Inkwelly halfDayType = FIRST_HALF (या SECOND_HALF) से capture करता है। System 0.5 days CL balance से deduct, daily attendance row HALF_DAY_LEAVE के साथ mark, और afternoon punches second half present register करती हैं। Salary register 0.5 days leave balance deduction और full day attendance reflect करता है — क्योंकि वो second half show up हुईं।

Inkwelly leave application form showing FIRST_HALF half-day for Indian school PGT teacher
Inkwelly Work-From-Home work mode application for Coordinator approved by Principal at Indian school

Work-From-Home और On-Duty — modes जो paper registers के पास नहीं

Coordinator CBSE submission deadline खत्म करती हैं जिसे deep focus चाहिए; 2 days workMode = WFH request करती हैं। Maths PGT school cricket team के साथ state-level tournament जाते हैं; principal 3-day absence को workMode = ON_DUTY mark करते हैं। Hindi teacher Lucknow में CBSE workshop attend करती हैं; same। WFH और On-Duty payroll पर 'present' treated — salary deduction नहीं, leave balance consume नहीं — पर attendance reports पर distinctly appear ताकि auditor देख सके कि हर day का किस तरह का presence था। Regular leave से different, absent से different, first-class fields की तरह captured।

Multi-level approvers, department per configured

Mathematics department में Coordinator teacher leave handle करता है; Coordinator की अपनी leaves Principal तक। Bus Crew department में सिर्फ Transport In-Charge; उनकी leaves directly Principal को। Administration department में Head Clerk casual leaves approve करती हैं और 3+ days कुछ भी Principal। Inkwelly की LeaveApprovalAuthority table तीनों patterns capture करती है। हर row (departmentId, approvalLevel, approverId, canApproveLeave, canApproveShortLeave, canApproveWFH, canApproveOnDuty)। Application approval levels में sequence में move करती है; कोई level reject करे, chain रुक जाती है। Exact configuration school की actual reporting structure के साथ match — textbook generic 'employee → manager' assumption नहीं।

Inkwelly LeaveApprovalAuthority configuration showing multi-level approvers per department for Indian school
Inkwelly leave application audit trail showing every state transition with approver timestamp IP for CBSE school

Complete audit trail, Gmail thread नहीं

हर leave application पर हर state transition logged: किसने किस date और IP से submit किया, किस level पर किसने approve या reject, rejection reason क्या था, cancellation कब हुई। Audit log Identity & Access Management audit में है — CBSE inspection या trust review के दौरान single 'who approved this leave' query एक continuous record return करती है। ऐसा कोई scenario नहीं कि leave approver row के बिना approved हो; balance state transition के बिना deduct हो; teacher के exit पर leave history daily attendance record से different दिखे।

Mere school mein leaf-letter waala system tha. Ab teacher phone se apply karti hai, mujhe approve karne mein 30 second lagte hain, balance turant update ho jata hai. F&F bhi 10 minute mein nikal jata hai — pehle 3 hafte lagte the.
Anil Kumar Pandey · Principal · AVM Bazar Atariya, Bahraich, UP

Real-world leave-application scenarios जो Inkwelly handle करता है

1. Same-day Casual Leave। Hindi PGT subah 7:30 पर office पहुंचती हैं news के साथ कि saas Lucknow hospital admit हैं। 7:35 पर Inkwelly mobile app open, Casual Leave pick, dates 5 और 6 March, halfDayType = null (full days), 'Saas hospital admit' type, alternateEmployeeId = assistant Hindi teacher। Submit। Coordinator का phone ping; 7:39 पर approve। Status APPROVED, balance debited, daily attendance LEAVE mark। Hindi PGT 8 AM पर office पहुंचे बिना Lucknow निकल जाती हैं। Total elapsed time: 9 minutes।

2. Maternity Leave with Form 21 attachment। Mathematics PGT 12 May से 26 weeks Maternity Leave apply करती हैं। Maternity pick (सिर्फ उन्हें visible क्योंकि applicableGender = FEMALE), startDate = 2026-05-12, endDate = 2026-11-09, attachmentMediaId पर Form 21 attach, reason में doctor का नाम type। Submit। Principal attachment review करते हैं, dates academic calendar के against, और approve। Status APPROVED, सारे 182 days MATERNITY_LEAVE daily attendance पर, salary Maternity Benefit Act 1961 per full rate continue, payroll उन्हें paid leave की तरह treat। Teaching responsibilities substitution से automatically reassign।

3. Half-day for parent-teacher meeting। English PGT के बेटे का PTM Wednesday 11 AM पर। वो उस day halfDayType = FIRST_HALF apply, Casual Leave pick। Coordinator approve। Daily attendance day को HALF_DAY_LEAVE के साथ mark halfDayType = FIRST_HALF। वो 1:30 PM पर school पहुंचती हैं, biometric से punch in — afternoon attendance preserved। Salary register 0.5 CL balance deduction और full day attendance reflect।

4. CBSE board paper-correction week के लिए WFH। Senior English PGT CBSE Board paper checker appoint। 5 days central evaluation centre पर। workMode = WFH के साथ apply, date range pick, 'CBSE Board evaluation duty' type। Principal (जिनके canApproveWFH = true) approve। 5 days WFH attendance पर — कोई balance deduction नहीं, salary deduction नहीं, पर attendance record दिखाता है वो कहां थीं। Auditor satisfied।

5. Passport-office visit के लिए short leave। Junior PRT को 2 hours off passport-office appointment के लिए। isShortLeave = true, shortLeaveFrom = 11:00, shortLeaveTo = 13:00 के साथ apply। Coordinator approve। Day daily attendance पर PRESENT mark — short leave half-day consume नहीं करती। 2 hours working hours report पर 'short leave' की तरह; salary register day full present की तरह treat।

Common leave operations जो Inkwelly Leaves cover करता है

  • Full-day leave 30 seconds से कम में mobile app से apply करिए — reason, attachment, alternate cover के साथ
  • FIRST_HALF या SECOND_HALF के साथ half-day leave apply — 0.5 days deduct, दूसरे half की attendance preserved
  • Start और end times के साथ short leave apply — balance consume नहीं, day PRESENT
  • Leave को Work-From-Home mark करिए — attendance WFH reflect, payroll full present day count
  • Leave को On-Duty mark करिए CBSE workshop / sports trip / external examination के लिए
  • Medical certificate या Form 21 attach करिए — requiresDocument = true वाले leaves के लिए mandatory
  • Alternate teacher name करिए classes cover के लिए — approver और substitution flow में visible
  • Principal के mobile app से transit में approve / reject — status flip, balance update, laptop नहीं चाहिए
  • On-Duty applications auto-approve — principal already initiated leaves पर extra approval cycle नहीं
  • Pending application approval से पहले cancel — balance restored, audit-logged
  • Approved application leave start से पहले cancel — balance reverse, attendance row roll back
  • Department, leave type, status, date range, work mode से queue filter — 64 staff एक screen पर
  • Calendar month की approved-leave list export — salary register CSV import के लिए ready

एक teacher की actual leave history के साथ Leaves live देखिए

Last month का leave register — names, dates, leave types — 25-minute demo में लाइए। हम उनमें से 3 applications recreate करेंगे (full-day, half-day, WFH), approve करेंगे, और balance updates और daily attendance changes real time में flow करते दिखाएंगे।

Leave Types पहले configure करेंEmployee Attendance module देखें

Limits, safety और small print

Approval sequential है, parallel नहीं। Multi-level approval chain Level 1 → Level 2 → Level 3 order में run होती है। Higher level approvals lower levels bypass नहीं करती; हर approver application को पिछले levels approve होने के बाद ही देखता है। किसी भी level पर rejection chain रोकती है और applicant को notify करती है। v1 में approval-quorum mechanism (e.g., '3 में 2 approvers') नहीं।

Cancellation after approval balance और attendance reverse करती है — एक बार। Teacher approved leave cancel करे तो system totalUsed एक बार reverse और daily attendance row roll back करता है। दूसरी cancellation attempt reject क्योंकि application पहले से cancelled है। Audit log original approval और cancellation दोनों capture।

Half-day multiple days span नहीं कर सकती। halfDayType सिर्फ तब set हो सकता है जब startDate = endDate। Teacher को एक day morning और दूसरे day afternoon चाहिए तो 2 separate applications submit करनी होंगी। Intentional — daily attendance row per day एक halfDayType store करती है।

requiresDocument = true application form पर enforced, approval पर नहीं। Form submission block करता है अगर leave type document require करे और attachmentMediaId missing हो। Approver document upload verify करने की जरूरत नहीं — form ने पहले कर दिया। Approver document read करके invalid होने पर reject कर सकते हैं rejection reason के साथ।

Permission gating. Leave application submit करने के लिए iam:school:create-leave-applications (सभी staff को default grant)। Approve करने के लिए iam:school:approve-leave-applications AND applicant के department के right level पर LeaveApprovalAuthority row। सभी applications view करने के लिए iam:school:view-all-leave-applications — typically Principal, Head Clerk, Accountant। Audit log हर action capture करता है।

Multi-language ready. Leave application form, dropdown labels, status badges — सब next-intl से wired। Hindi-medium teachers form Hindi में देखते हैं; head clerk queue English में। Same record दोनों audiences को correctly display बिना duplicate storage के।

किस मॉड्यूल का हिस्सा

1 module

अक्सर पूछे गए सवाल

8 सवाल
Inkwelly mobile app पर leave apply करने में teacher को actually कितना time लगता है?

Full-day Casual Leave बिना attachment 30 seconds — dropdown से leave type pick, dates pick, one-line reason type, submit। Sick Leave with medical certificate attachment या Maternity Leave with Form 21 में 1-2 minutes। Form one scrolling page है; balance date picker के ऊपर live दिखता है ताकि teacher form complete करने से पहले ही जान सके कि days हैं या नहीं।

Principal travel पर हों और office से approve न कर पाएं तो?

Principal अपने phone पर same Inkwelly app open करते हैं। PENDING queue laptop जैसी ही है — हर application, हर leave type, हर attachment। One tap से approve; status APPROVED, teacher का balance update, daily attendance mark, audit log timestamp और IP record। Principal लंबे time के लिए out हों तो LeaveApprovalAuthority table से delegate approver configure कर सकते हैं — typically Vice Principal — जो absence में queue pick करते हैं।

Same teacher same day morning में half-day और afternoon में short leave apply कर सकती है?

नहीं — half-day पहले से day के एक half का account ले लेती है, दूसरा half by definition full attendance है। अगर दोनों चाहिए (unusual scenario — morning court visit और 3 PM passport visit), 2 options: full-day Casual Leave submit करके afternoon punching skip, या सिर्फ morning half-day submit करके lunch hour में afternoon visit। Model intentional — हर day की attendance row exactly एक leave-state carry करती है।

Insufficient balance के साथ leave apply करने पर क्या होता है?

Application form approver तक पहुंचने से पहले ही submission reject करता है — 'Insufficient balance: 4 CL available, application 6 days की है'। Teacher submit नहीं कर सकती jab तक duration कम न करे, sufficient balance वाला leave type न pick करे, या head clerk LOP manually grant न करे। System negative balance result करने वाली leave application को approver के queue में कभी sit नहीं होने देता — clean payroll का critical guardrail।

WFH और On-Duty days salary register पर regular leaves से कैसे different हैं?

WFH और On-Duty salary register पर 'present' treated — leave balance से कोई day deduct नहीं, salary से कोई day deduct नहीं। daily attendance पर distinct status values (`WFH`, `ON_DUTY`) store होते हैं ताकि [monthly attendance report](/modules/employees-attendance) regular present days से अलग दिखाए। Trust audit पर काम आता है 'Teacher X school में actually कितने days थीं' versus 'कितने days पे मिला'। दोनों numbers correct, दोनों queryable।

Emergencies के लिए school leave approval chain override कर सकता है?

हाँ — Principal (या `iam:school:approve-leave-applications` वाला कोई role) directly approve करके multi-level chain override कर सकते हैं, चाहे वो किसी भी level पर हों। Override 'approved at Level X by override' audit log में capture, reason field principal का override note record करता है। उपयोगी जब approve करने वाले Coordinator खुद leave पर हों।

Leave approve होने पर daily attendance कैसे दिखाती है?

Leave approve होने के same minute, leave window के हर day के लिए `EmployeeDailyAttendance` row create (या update अगर day पर punch record पहले से था)। Status `LEAVE` (full-day), `HALF_DAY_LEAVE` (half-day), `WFH` या `ON_DUTY` application के work mode के hisaab से। Row `leaveApplicationId` carry करती है original application से link, इसलिए audit query 'teacher 12 March को LEAVE क्यों' one click से full application detail return करती है। Daily attendance और leave history हमेशा in sync — reconciliation से नहीं, design से।

Emergency leaves जहाँ teacher ने pre-apply नहीं किया हो?

2 patterns। एक, teacher absence की same morning apply करती हैं (Sick Leave `minDaysNotice = 0` के साथ) और Coordinator 30 minutes में approve करती हैं। दो, head clerk उनकी तरफ से apply करती हैं (`iam:school:create-leave-applications-for-others` role के साथ) jab teacher unreachable हों; फिर application principal approve करते हैं और actual absence date पर back-date। दोनों flows audit-logged 'applied by' versus 'applied for' distinction preserve करके।

आपको ये भी पसंद आ सकता है

2 लेख

Inkwelly आपके स्कूल पर — खुद देखें

30 मिनट का डेमो। आपके मौजूदा ERP को आपके साथ खोलकर, कॉल पर ही आपका डेटा Inkwelly में लोड करते हैं। कॉल ख़त्म होते-होते एक तय तारीख़ का गो-लाइव प्लान आपके हाथ में।