π New Features
- feat: Mobile App Starter (PWA) β @ruchamahabal (#595)
- feat(PWA): Leaves, Expense Claims, & Employee Advances β @ruchamahabal (#807)
- feat(PWA): view & download Salary Slips β @ruchamahabal (#822)
- feat(PWA): add Install prompts β @ruchamahabal (#823)
- feat(PWA): Notifications β @ruchamahabal (#836)
- feat(PWA): Profile Page β @ruchamahabal (#973)
- feat(PWA): Bottom Tabs for navigation + consistent icons β @ruchamahabal (#984)
- feat(PWA): misc improvements & fixes β @ruchamahabal (#1032)
- feat(PWA): File previews & better file/attachment handling β @ruchamahabal (#1037)
- feat: add persian language β @barredterra (#1479)
- feat: Linked interview doctype with interview summary in job applicant doctype β @speedhs (#2014)
- feat: allow fractional values for "Current Work Experience" field in gratuity doctype (backport #2340) β @mergify (#2341)
- feat: process leave encashment via payment entry β @AyshaHakeem (#2775)
- feat: Show invalid logs β @asmitahase (#2782)
- feat: overtime β @AyshaHakeem (#2886)
- feat(Payroll):payroll correction for lwp reversal β @shinil-cloud (#2942)
- feat!: redesign employee benefit β @AyshaHakeem (#3047)
- feat(minor): allow setting shift through bulk attendance option β @asmitahase (#3265)
- feat(PWA): enable PDF download option via showDownloadPDFButton prop β @KerollesFathy (#3321)
- feat!: Leave Adjustment β @asmitahase (#3336)
- feat: filter unmarked attendance by shift in employee attendanceΒ toolΒ #3362 β @anwarpatelnoori (#3363)
- feat(Earned Leave): Earned Leave Schedule β @asmitahase (#3509)
- feat: handle salary structure arrears β @AyshaHakeem (#3560)
- feat: Multi-Currency support in Employee Advance, Expense Claim β @iamkhanraheel (#3609)
- feat: create attendance request from attendance β @Vishnu7025 (#3643)
- feat: export workspace sidebars β @sokumon (#3710)
- feat: export new desktop icons for the desktop β @sokumon (#3736)
- feat(attendance): show mark attendance based on permission β @SowmyaArunachalam (#3779)
- feat: Holiday List Assignment β @asmitahase (#3928)
π Performance
- perf: batch and commit auto attendance processing β @ruchamahabal (#1022)
- perf: faster Employee Leave Balance report β @ruchamahabal (#1077)
- perf(PWA): infinite scroll for list views + other fixes β @ruchamahabal (#1095)
- perf(Roster): improve get_holidays function β @krantheman (#2281)
- perf(Auto Attendance): Use background job to process auto attendance β @asmitahase (#3806)
π Refactor
- refactor(PWA): upgrade frappe-ui to espresso β @ruchamahabal (#849)
- refactor: cleanup interviews β @krantheman (#924)
- refactor(PWA): better login β @ruchamahabal (#968)
- refactor(Report): Employee working on a holiday β @niraj2477 (#977)
- refactor(PWA): better routing β @ruchamahabal (#1043)
- refactor: allow repost for
Expense Claimβ @ruthra-kumar (#1046) - refactor(PWA): navigation guards + List view & Link field performance fixes β @ruchamahabal (#1051)
- refactor: permissions not applied in Income Tax Deductions report β @ruchamahabal (#1069)
- refactor(PWA): realtime updates, caching & invalidation β @ruchamahabal (#1191)
- refactor(HR Dashboard): show current quarter for Employees Joining and Employees Relieving cards β @krantheman (#1268)
- refactor: improve onboarding β @krantheman (#1472)
- refactor(Employee Advance): update Pending Amount on validation β @krantheman (#1478)
- refactor: update exchange rate of reference document supplied by reconciliation tool β @ruthra-kumar (#1489)
- refactor: allow payment entry as a valid reference β @ruthra-kumar (#1492)
- refactor: additional parameter in get_matching_queries β @ruthra-kumar (#1510)
- refactor: replace
in_list(array, member)witharray.includes(member)β @barredterra (#1513) - refactor(UX): show leave application links in leave allocation cancellation message β @creative-paramu (#1520)
- refactor!: Switch default sort order to creation β @ankush (#1590)
- refactor(PWA): setup frappe-ui git submodule & upgrade frappe-ui β @ruchamahabal (#1855)
- refactor: validate total weightage in all appraisal forms β @ruchamahabal (#1976)
- refactor: use IntegrationTestCase instead of FrappeTestCase β @krantheman (#2277)
- refactor(Salary Structure Assignment): opening balances setup warning + section visibility β @ruchamahabal (#2309)
- refactor(Roster): enforce selection of company β @krantheman (#2395)
- refactor: Shift Assignment Schedule β @krantheman (#2454)
- refactor: Flattened sidebar β @asmitahase (#2642)
- refactor: fetch all employees that may have shift type as active shift β @asmitahase (#2683)
- refactor: multiple checkin logs β @asmitahase (#2773)
- refactor: Use web view for job opening β @asmitahase (#2779)
- refactor: invalid logs for better readability β @asmitahase (#2791)
- refactor: remove unused "status" field in appraisal β @asmitahase (#2795)
- refactor: document share message β @asmitahase (#3112)
- refactor: re-introduced checkbox grid for intuitive UI β @asmitahase (#3167)
- refactor: use get_single_value to get value from single doctypes β @asmitahase (#3325)
- refactor: half day payment calculation handling in payroll processing β @iamkhanraheel (#3330)
- refactor: adjust for query builder changes β @akhilnarang (#3741)
- refactor(HR Settings): Split HR settings according to workspaces β @asmitahase (#3887)
π Already Backported
- feat: Job Portal Enhancements β @krantheman (#835)
- feat: Add title field in Employee Onboarding Template and Employee Separation Template β @niraj2477 (#950)
- feat(Payroll): Add employee grade filter in payroll entry β @niraj2477 (#960)
- feat: Goal enhancements β @krantheman (#979)
- feat: Add sender in Payroll Settings & HR Settings β @niraj2477 (#988)
- feat: Add Select/Unselect All options in Mark Attendance Dialog β @creative-paramu (#1005)
- feat(util): add provision to get holidays except weekly offs from holiday list β @ruchamahabal (#1011)
- feat(Interview): Add setting for sender in interview & interview feedback reminder emails β @niraj2477 (#1033)
- feat(Attendance Request): add 'Include Holidays' checkbox β @Vishnu7025 (#1040)
- feat: Progressive Web App - Leaves, Claims, Advances & Salary Slips β @ruchamahabal (#1041)
- feat: 'Email Salary Slips' bulk action in salary slip list view β @ruchamahabal (#1063)
- feat: Add new doctype for Job offer Term Template β @niraj2477 (#1089)
- feat: option to enable/disable multiple Shift Assignments for same dates β @krantheman (#1100)
- feat(PWA): Workflow support + other enhancements β @ruchamahabal (#1105)
- feat: add Amount Based on Formula to list view & fix UX β @krantheman (#1113)
- feat: make Bulk Assign Structure a primary button and add Branch filter β @krantheman (#1197)
- feat: Salary Component & Structure enhancements β @krantheman (#1204)
- feat(Payroll): improve flow through buttons β @krantheman (#1310)
- feat: mobile friendly Job Portal β @krantheman (#1332)
- feat(Payroll): Option to use Email Template when send Salary Slip email β @kittiu (#1350)
- feat: Bulk Salary Structure Assignment β @krantheman (#1367)
- feat(minor): Show leave allocation table in Leave Application on refresh hook β @niraj2477 (#1375)
- feat: Leave Ledger Report β @ruchamahabal (#1381)
- feat(PWA): Push Notifications β @ruchamahabal (#1384)
- feat: pass doctype as context when translating label β @barredterra (#1439)
- feat(Gratuity): allow setting work experience manually β @ruchamahabal (#1541)
- feat(Job Portal): add Publish Applications Received toggle β @krantheman (#1561)
- feat: add setting to enable employee checkin for mobile app β @vinyselopal (#1569)
- feat(PWA): allow adding attachments in Leave & Advances β @ruchamahabal (#1591)
- feat: show holidays and colour code in attendance calendar β @vinyselopal (#1595)
- feat: Shift Assignment Tool β @krantheman (#1596)
- feat(Payroll): allow overwriting tax component through additional salary β @ruchamahabal (#1600)
- feat(FnF): Option to recover asset costs instead of returning β @ruchamahabal (#1611)
- feat(Desk + PWA): Geolocation in Employee Checkin β @ruchamahabal (#1642)
- feat: Formula-based Final Score calculation in Appraisals β @vinyselopal (#1670)
- feat: base Roster Management β @krantheman (#1760)
- feat(minor): allow using
roundedfunction in salary slip formulae β @ruchamahabal (#1774) - feat: Translate PWA β @cogk (#1856)
- feat: add attachment for each type of proof in income tax proof submission instead of one single attachment β @shinil-cloud (#1893)
- feat(PWA): Handle OTP in login form β @cogk (#1923)
- feat: Salary Withholding β @ruchamahabal (#1935)
- feat(Employee Checkin): geofencing β @krantheman (#1948)
- feat(Earned Leave): allocate leaves manually β @krantheman (#1950)
- feat(Salary Payments via ECS): add Net Pay column β @krantheman (#1966)
- feat(Employee Checkin): add Fetch Shift buttons in form and list view actions β @krantheman (#2071)
- feat: add HR app to apps page β @ruchamahabal (#2076)
- feat(PWA): Allow login using OAuth β @cogk (#2091)
- feat(PWA): Attendance Dashboard β @krantheman (#2170)
- feat(Monthly Attendance Sheet): add Include Company Descendants filter β @krantheman (#2177)
- feat: show In and Out Time in Attendance even if there is only one log β @krantheman (#2238)
- feat: allow get_first_day and get_last_day in salary slip eval β @krantheman (#2243)
- feat(Expense Claim): allow update of cost centre and project on submit β @krantheman (#2267)
- feat(Shift Location): add Shift Assignment connection β @krantheman (#2274)
- feat: allow creating attendance requests for future dates β @iamejaaz (#2292)
- feat: allow fractional values for "Current Work Experience" field in gratuity doctype β @asmitahase (#2340)
- feat: add Payroll Entry to Bank Account dashboard β @barredterra (#2369)
- feat: add Absent Days column to salary register β @shinil-cloud (#2485)
- feat: toggle self leave approval for employees from HR settings β @asmitahase (#2486)
- feat(Shift Type): Auto update Last Sync of Checkin β @ruchamahabal (#2513)
- feat: Allow setting From Date while manually allocating extra leaves β @ruchamahabal (#2520)
- feat: add CI for docker container build β @NagariaHussain (#2728)
- feat(minor): Show option to expire carried forward leaves β @asmitahase (#2890)
- feat(minor): allow setting shift location through employee checkin api β @asmitahase (#2900)
- feat: Half day lite in Payroll β @asmitahase (#2978)
- feat(minor): show detailed error messages on check-in failure β @abela-a (#3030)
- feat: tax relief or rebate configuration β @AyshaHakeem (#3050)
- feat: update half day attendance from employee tool β @asmitahase (#3057)
- feat: show team attendance requests under team requests β @asmitahase (#3133)
- feat(minor): fetch only 10 notifications at a time β @asmitahase (#3197)
- feat: Added checkbox to exclude specific salary component amount from Journal Entry β @iamkhanraheel (#3315)
- feat(minor): prevent self approval for expense claims β @asmitahase (#3388)
- feat: Calculate & Show Income tax breakup section in Salary Slip if it is overwritten from Additional salary β @iamkhanraheel (#3449)
- feat (Monthly Attendance Sheet) : date range filter β @asmitahase (#3597)
- feat(job-opening-template): auto fetch template values β @nareshkannasln (#3844)