Release Notes for v3.0.0 (405 changes)
Features (51)
- Add return amount column in employee advance summary report !1898
- Organizational Chart: Add Employee role to page permissions !1860
- Number cards for leaves workspace !1855
- Timesheet: Handle partial billing in sales invoice !1852
- Salary structure assignmet: Leave encashment amount field added !1851
- Holiday List Assignment !1843
- Job opening template: Auto fetch template values !1810
- Attendance: Show mark attendance based on permission !1780
- Export workspace sidebars !1757
- Export new desktop icons for the desktop !1755
- Multi-Currency support in Employee Advance, Expense Claim !1754
- Earned Leave: Earned Leave Schedule !1750
- Create attendance request from attendance !1727
- Monthly Attendance Sheet: Date range filter !1726
- Handle salary structure arrears !1695
- feat:payroll correction for lwp reversal !1692
- Redesign employee benefit !1691
- Leave Adjustment !1686
- Calculate & Show Income tax breakup section in Salary Slip if it is overwritten from Additional salary !1672
- Overtime !1657
- Filter unmarked attendance by shift in employee attendance tool #3362 !1654
- PWA: Enable PDF download option via showDownloadPDFButton prop !1653
- Added checkbox to exclude specific salary component amount from Journal Entry !1636
- Minor: Prevent self approval for expense claims !1629
- Minor: Allow setting shift through bulk attendance option !1589
- New logo for v5 !1586
- Minor: Fetch only 10 notifications at a time !1552
- Show team attendance requests under team requests !1523
- Half day lite in Payroll !1502
- Tax relief or rebate configuration !1486
- Update half day attendance from employee tool !1484
- Minor: Show option to expire carried forward leaves !1409
- Translate roster page !1398
- Process leave encashment via payment entry !1358
- Shift Type: Auto update Last Sync of Checkin !1356
- Allow setting From Date while manually allocating extra leaves !1163
- PWA: Attendance Dashboard !972
- Earned Leave: Allocate leaves manually !956
- Base Roster Management !855
- Add Frappe HR logo !850
- Add HR app to apps page !775
- Salary Withholding !709
- Leave Ledger Report !437
- Pass doctype as context when translating label !318
- Add new doctype for Job offer Term Template !191
- Interview: Add setting for sender in interview & interview feedback reminder emails !188
- Add Amount Based on Formula to list view & fix UX !164
- Job Portal Enhancements !162
- Option to enable/disable multiple Shift Assignments for same dates !159
- PWA: Workflow support + other enhancements !155
- Expense doctype !144
Fixes (330)
- Missing fr translations !1942
- Salary Structure Assignment: Add currency options to max benefits field !1941
- Translations for expenses and new logo !1940
- Sync translations from crowdin !1939
- Sync translations from crowdin !1938
- Shift type: Filter half-day attendance by last_sync_of_checkin !1937
- Fetch holiday list of an employee based on month end date filter… !1936
- Payroll: Add type hints for whitelist functions !1935
- Use get_list in get_all_employees !1933
- Get employee from session user in get_shifts, get_leave_balance_map !1932
- Get employee from session user in get_expense_claim_summary, get_employee_advance_balance, get_attendance_calendar_events !1931
- Sync translations from crowdin !1930
- Sync translations from crowdin !1928
- Sync translations from crowdin !1927
- Export type annotations !1926
- Leaves,Shift & Attendance,Expenses: Missing type hints for whilelisted methods !1923
- Sync translations from crowdin !1922
- Overrides: Missing type hints for whilelisted methods !1921
- Performance: Missing type hints for whilelisted methods !1920
- Tenure: Missing type hints for whilelisted methods !1919
- Recruitment: Missing type hints for whilelisted methods !1918
- Sync translations from crowdin !1917
- Sync translations from crowdin !1915
- Better api endpoint !1913
- Patch: Check user type existence !1912
- Test: Correct test setup !1911
- Sync translations from crowdin !1910
- Sync translations from crowdin !1909
- Roster: Use frappe client api to get employee values in Roster !1907
- Expense claim: Remove create payment button on rejected claims !1906
- Sync translations from crowdin !1904
- Sync translations from crowdin !1903
- Correct datetime in fnf test setup !1902
- Sync translations from crowdin !1901
- Check if user type exists before running patch !1900
- Attendance: Use valuewrapper for doctype in calendar view !1896
- Show date for which the holiday list is missing !1895
- Sync translations from crowdin !1894
- Apply user permission on attendance records !1893
- Apply user permission on attendance records while querying for report #3937 !1892
- Employee onboaring: Use boarding_status instead of status !1891
- Sync translations from crowdin !1890
- User type: Update patch with ignore links !1889
- Sync translations from crowdin !1888
- Bulk Salary Structure Assignment: Use untranslated id to filter for column being updated !1887
- Naming: Use function appropriately to avoid double naming !1886
- Allow any host in vite dev servers for frontends !1885
- Sync translations from crowdin !1884
- Sync translations from crowdin !1882
- Validate dates in additional salary !1879
- Consider holiday list assignments while marking attendance in bulk !1878
- Salary register: Show Loan Repayment column only when Lending app is installed !1877
- Gratuity: Consider default amount !1876
- Update leave balance while cancelling the compensatory leave request !1875
- Check_app_permission returns False for Website Users !1874
- Sync translations from crowdin !1872
- Update v15 patch for add_leave_type_permission_for_ess !1871
- User type: Add leave type read permission for employee self service !1870
- Employee advance account's account type should be receivable !1869
- Fetch only the enabled tax components !1868
- Use boarding_status instead of status in Employee Separation !1867
- Leave approver shouldn't have amend permission on leave application !1866
- Sync translations from crowdin !1865
- Convert to float !1863
- Expense claim: Inclusion of tax and charges in allocated amount !1862
- Enforce permission check for employee doctype fields !1861
- Multicurrency employee advance & expense claim bugs !1859
- Sync translations from crowdin !1858
- New sidebar item !1857
- Link to holiday list assignment in the message !1854
- Remove quick lists !1848
- Leaves workspace settings link should point to Leaves tab of HR Settings !1847
- Re-export people !1846
- Rename HR workspace to People !1844
- Reexport desktop icons !1842
- Add missing translation !1841
- Create reverse ledger entry for backdated leave applications !1840
- Sync translations from crowdin !1839
- Allow backdated leave application after creating expiry ledger entries !1838
- Sync translations from crowdin !1837
- Reexport all desktop icons with new schema !1836
- Fixing bad test setups !1835
- Salary slip: Overwrite structure value with zero value !1834
- Sync translations from crowdin !1832
- Additional salary: Validate salary component part of salary structure !1831
- Show income tax computation report for employees of all statuses !1830
- Delete redundant desktop icon !1829
- Sync translations from crowdin !1828
- Rename desktop icons !1827
- Unsupported string alias in get_all !1826
- Sync translations from crowdin !1824
- Sync translations from crowdin !1822
- Consider overtime for default shift !1821
- Sync translations from crowdin !1819
- Set correct total positions in staffing plan !1818
- Allow double digit precision for working hours threshold !1817
- Add patch to delete old workspaces !1816
- Add patch to delete old workspaces !1815
- Sync translations from crowdin !1813
- Sync translations from crowdin !1812
- Expense claim: Add accounting dimension for payment gl !1811
- Desktop icons !1809
- Sync translations from crowdin !1808
- Update status on discard !1807
- Remove Invalid salary_component Query Filter from Employee Advance !1806
- Set default dimension in expense claim !1805
- Employee Analytics: Replace frappe.db.sql !1804
- Sync translations from crowdin !1803
- Sync translations from crowdin !1802
- Additional Salary: Change
validate_update_after_submit hook to before_update_after_submit !1801
- Use singular/plural forms for 'years' in employee reminders !1800
- French translations !1799
- Sync translations from crowdin !1798
- Sync translations from crowdin !1795
- Overtime bugs, remove filter from additional salary & null value if it depends on other fields !1794
- Sync translations from crowdin !1793
- Expense claim: Update voucher type to expense claim in it's ledger entries !1792
- Structure misspelling !1791
- Add fallback for exchange rate !1790
- Sidebar: Organization chart in HR sidebar !1789
- Sync translations from crowdin !1788
- Leave policy assignment: Skip leave allocation when New Leaves … !1787
- Sync translations from crowdin !1786
- Sync translations from crowdin !1784
- Monthly attendance sheet: Compare using day !1783
- Sync translations from crowdin !1782
- Sync translations from crowdin !1779
- Sync translations from crowdin !1778
- Salary slip: Do not default amount as amount !1776
- Serialize latitude longitude update and geolocation refresh !1775
- Sync translations from crowdin !1774
- Re-export all sidebars !1773
- Sync translations from crowdin !1772
- Sync translations from crowdin !1771
- Sync translations from crowdin !1769
- Sync translations from crowdin !1768
- Remove 5th no-op parameter from filter JSON !1767
- Maintain correct field order in company in v16 !1766
- Sync translations from crowdin !1765
- Earned Leaves: No schedule is created for non earned leave type !1764
- Sync translations from crowdin !1762
- Workspaces: Workspace fixes !1761
- Expense claim: Update status after payment unreconcillation !1760
- Sync translations from crowdin !1759
- Sync translations from crowdin !1756
- Sync translations from crowdin !1752
- Sync translations from crowdin !1749
- Ignore translations from frappe and erpnext !1748
- Sync translations from crowdin !1747
- Sync translations from crowdin !1746
- Sync translations from crowdin !1745
- Variable name spelling error !1744
- Sync translations from crowdin !1742
- Sync translations from crowdin !1741
- Earned Leave: Correct date object !1740
- Sync translations from crowdin !1739
- Salary register: Include loan repayment in total deduction !1737
- Prevent calling are_opening_entries_required when salary_structure is not set !1736
- Additional salary: Remove component type from component filter !1735
- Attendance Count: Set correct default value for mandatory filters !1734
- Sync translations from crowdin !1733
- Sync translations from crowdin !1731
- Sync translations from crowdin !1730
- Sync translations from crowdin !1728
- Sync translations from crowdin !1725
- Gross pay calculation to update total in it if component added manually !1724
- Sync translations from crowdin !1723
- Set Payroll payable account to Payable & cancel linked payment ledgers entry of payroll & journal entry !1721
- Sync translations from crowdin !1720
- Set half day status when leave is not found !1719
- Sync translations from crowdin !1718
- Report: Reorder column in salary register !1717
- Leave encashment: Add payable filter to payable account field !1716
- Validate updated paid amount !1715
- Sync translations from crowdin !1714
- Arrears and benefit claim !1713
- Job Applicant: Add-missing-translation-function !1711
- Employee Advance: Add missing translation function !1710
- Sync translations from crowdin !1709
- Sync translations from crowdin !1707
- Incorrect expense calculation in vehicle log !1706
- Sync translations from crowdin !1705
- Use number of stars specified in options to calculate score !1704
- Sync translations from crowdin !1703
- Update amount on advance payment ledger entry !1700
- User: Ensure approver roles even with role profile set !1699
- Income tax computation: Include deductions_before_tax_calculatio… !1698
- Include filters for link field !1697
- Exclude cancelled leave ledger entries !1696
- Shift assignment tool: Fetch employees with with user permission !1694
- Check perms in number card methods !1690
- Add flag to skip receivable/payable account validation in payroll entry !1689
- Add company_currency to currencies list to fix issue where multi currency is disabled if company currecy is differnent from component currencies !1681
- Check multi currency when salary slip currency differs from company currency" !1680
- Avoid setting salary slip naming series via class method only if custom naming series exists !1678
- Check multi currency when salary slip currency differs from company currency !1675
- Salary Component: Add missing translation function !1674
- Update attendance status condition !1673
- Link field: Pass modelValue on load !1671
- Payroll entry: Submit payroll entry while creating salary slips in background job !1670
- Fetch component details from salary component !1669
- Earned Leave: Fix earned allocation for quaterly, half yearly and yearly leave types !1668
- Round with field precision !1666
- Roster: Do not get value for link fields !1665
- Show attendance summary after joining date !1664
- Update employee tax exemption category link in workspace !1663
- Update amount on advance payment ledger entry !1662
- Employee Grievance: Add missing translation function !1660
- Leave balance when allocations are manually expired !1658
- Fix employee advance bugs !1656
- Validate employee advance account to be receivable !1649
- Allocate correct quarterly earned leaves !1648
- Set correct condition for paid and returned amount !1647
- Filter query default employee advance account by account type !1646
- Use Advanced Payment Ledger Entry for advance payment doctypes !1645
- Fix translations !1643
- Add expenses table for reposting !1642
- Show company currency in Employee advance summary report instead of default currency !1640
- Show remaining amount of approved state in case of sanction amou… !1639
- Rejected expense claim amount to be shown in Rejected section of Expense Claim Summary !1638
- Gratuity years and experience field precision !1637
- Warn for allocated earned leaves while changing max leaves allowed !1635
- Better half day status in attendance sheet !1634
- Donot show rejected job applicant in job offer !1633
- Refetch attendance calender events on update !1632
- Reconciliation filters for HRMS !1631
- Currency fields formatting to NaN !1630
- Avoid setting salary slip naming series via class method !1627
- Fix half day status in attendance request !1620
- Remove redundant translation file !1616
- Validate existing shift assignments for schedule !1614
- Timesheet: Add patch to update wrong status !1613
- Improve leave approval email !1611
- Sync translations from crowdin !1608
- Only fetch data if field grouped by fields are permitted !1604
- The double headline in employee checkin on first save !1601
- Employee advance allocated total as per sanctioned amount in Expense Claim !1600
- PWA: Set leave approver only if empty !1598
- Make labels in error message translatable !1597
- Re-fetch team requests for session user !1594
- Status not found while fetching attendance requests !1593
- Fieldnames in get_value !1590
- Company wise filtering for recruitment analytics report !1588
- Provident fund report error !1587
- Attendance Request: Publish update on update and after delete !1584
- Calculation of future recurring periods for recurring additional salary which affects annual income/ctc amount !1583
- Auto update last sync for extra long shifts !1581
- Inaccurate lwp calculation in salary slip when partially paid leave exists for employee !1580
- Roster: Use link field to fetch options on search !1578
- Move employee advance account validation to before_submit hook !1577
- Prompt user to set Default Employee Advance Account when submitting Employee Advance doc !1576
- Prioritise attendance record over holiday for calendar view !1575
- Loan demand processing and lending tests !1571
- Add lending version-1 compatability !1564
- Sync amount_based_on_formula field while syncing formula field of a component with linked salary structure !1558
- Recurring additional salary creation error and payroll date overlaps !1557
- Add department, branch and designaiton filters to salary register report !1555
- Restored marginal relief patch which got deleted ny mistake !1547
- Salary creation error !1546
- Shift assignment calendar !1539
- Merge branch 'fix-attendance-planning-view' into 'v4-dev' !1536
- Auto pre-approve amount !1532
- Include today's date while bulk marking attendance !1527
- Use ESM instead of CommonJS !1518
- Fixed incorrect condition !1507
- Patch for marginal relief field !1496
- Marking attendance if status is set but employees are not selected !1492
- A reliable test suite !1491
- Auto update last sync for shifts overflowing into next day due to checkout buffer !1487
- Auto update last sync for night shifts !1457
- Ux: Set from_date or to_date automatically in Leave Application if to_date < from_date !1447
- Roster path in Shift & Attendance workspace !1446
- Update yarn.lock !1417
- Translations for roster !1412
- App display rules !1397
- Update payable leave encashment doc handling in full and final statement !1378
- Sync translations from crowdin !1367
- Show better alert on fetch shift if no shift is found !1290
- Disable 'User Cannot Search' for bulk tools !1226
- Make checkin button click once to prevent submitting multiple logs !1214
- Resolve html rendering issue for holidays in roster view !1210
- Remove auto_update_last_sync field !1162
- Missing field in shift assignment and small UX fixes !1153
- Sync translations from crowdin !1145
- Sync translations from crowdin !1118
- PWA translation in employee checkin and attendance request !1099
- PWA: Remove unused setupDayjs function call from translations plugin !1033
- Remove duplicate method !1003
- Roster: Align with copy-html-entry constant !928
- Update translations !892
- Minor: Add app hooks !889
- Remove ESS user type by default !832
- Update translations !818
- Fix PWA icon !755
- Regenerate yarn.lock file !752
- Update website url in readme !699
- Sync translations from crowdin !599
- Patch: Set/update user type limit while updating lending perm config !514
- Update project URLs in pyproject !511
- Format and lint !458
- Employee filter in list view of employee checkin !424
- Leave Application: Calendar view !372
- Expense claim taxes calculation !193
- Expense doctype issues !192
- #1226 local variable "days_to_add" referenced before assignment !189
- Org Chart: Check if company is set before loading children !185
- Avoid assigning undefined !184
- Duplicate Overwritten Salary error for other employee !183
- Payroll: Accrual entry creation fails if any employee has no earnings !182
- Retention Bonus doc cancellation. !181
- Rewrite attendance query in qb & add test for half-day attendance overwritten by leave application !180
- France: Don't overwrite Leave Type if modified between migrations !179
- Migrate: Update custom fields after migration !178
- Half Day Leave Application Link To Half Day Attendance !177
- Journals as invoice throwing validation error" !175
- French translations !174
- Payroll entry fixes !173
- Rerun France setup !172
- Remove failing patch !170
- Journals as invoice throwing validation error !169
- Consider previous Leave Applications while enforcing Maximum Consecutive Leaves Allowed !168
- PWA: Validate mandatory fields in form view on client-side !167
- Interview reminder settings not respected !166
- Leave Application: Resolved leave type missing for accurate payroll processing !165
- Disable Same Date Multiple Shift Assignments by default !160
- Creation of duplicate Additional Salary with Overwrite Salary Structure Amount enabled !158
- Check the leave type name instead of leave_type_name !157
- PWA fixes !156
- Translation in msg !153
- Package.json !152
Refactors (12)
- HR Settings: Split HR settings according to workspaces !1833
- Adjust for query builder changes !1763
- Half day payment calculation handling in payroll processing !1615
- Use get_single_value to get value from single doctypes !1602
- Re-introduced checkbox grid for intuitive UI !1544
- Flattened sidebar !1268
- Shift Assignment Schedule !1169
- Roster: Enforce selection of company !1081
- Use IntegrationTestCase instead of FrappeTestCase !992
- Switch default sort order to creation !404
- Cleanup interviews !195
- PWA: Realtime updates, caching & invalidation !176
Performance Improvements (1)
- Auto Attendance: Use background job to process auto attendance !1796
Other Changes (1)
- Show Username/Password Login only if not disabled !1873
Tests and CI/CD (10)
- Bump required frappe & erpnext version !1853
- Set mandatory field in loan product !1850
- Fix failing test !1683
- Pass correct value for link fields !1568
- Run semgrep before tests !1444
- Configure language mapping for crowdin !1395
- Fix: Configure test time type checking !1124
- Upgrade frappe-ui & related packages between both the workspaces !1064
- Pin frappe & erpnext requirements to ^16.0.0 !327
- Additional Salary: Overwrite Salary Structure Amount !163
Contributors
- Charles-Henri Decultot (28)
- Corentin Forler (6)
Tag: v3.0.0
The original content collected in merge requests has been automatically enhanced by Claude Sonnet