* fix(reports): exclude transfers from dashboard summary cards
The income and expense summary cards were incorrectly including transfer transactions, which inflated the displayed values.
Added 'payee.transfer_acct': null filter to the AQL queries to exclude transfers.
Fixes#6258
* Add release notes for PR #6263
* Revert "fix(reports): exclude transfers from dashboard summary cards"
This reverts commit ba9baa5c6d.
* fix(reports): exclude transfers from summary cards in the default dashboard
* Update release notes for PR #6263
* Add mobile schedules pages and fix routing issues
- Add MobileSchedulesPage with list view and search functionality
- Add MobileScheduleEditPage for creating/editing schedules
- Add supporting components: SchedulesList, SchedulesListItem, AddScheduleButton
- Fix MobileNavTabs routing to include /schedules route
- Fix wide view routing: wrap schedule edit route with WideNotSupported
- Update MobileNavTabs to enable schedules navigation
- Add responsive exports for mobile schedules components
* Refactor MobileScheduleEditPage and SchedulesListItem for improved layout and navigation
- Remove modal dispatch for editing rules, replacing it with direct navigation to the rule edit page.
- Update SchedulesListItem to streamline the display of payee and account information using SpaceBetween for better alignment.
- Enhance ScheduleEditForm with responsive design adjustments for narrow widths, ensuring a more flexible layout.
- Replace Account and Payee autocomplete components with a more generic input approach for better reusability.
* Enhance MobileScheduleEditPage and ScheduleEditForm with improved footer and optional callbacks
- Add a footer to MobileScheduleEditPage with a Save button for better user interaction.
- Update ScheduleEditForm to make onSave and onCancel props optional, allowing for more flexible usage.
- Adjust layout and styling for better responsiveness and user experience.
* Improve error message styling in ScheduleEditForm by adding margin for better visibility
* Refactor ScheduleEditForm and MobileScheduleEditPage for improved layout and functionality
- Simplify the structure of ScheduleEditForm by removing unnecessary wrapper elements and enhancing responsiveness.
- Update MobileScheduleEditPage to include padding adjustments for better visual consistency.
- Introduce a footer with Save and Cancel buttons in ScheduleEditModal for improved user interaction.
- Ensure optional callbacks for onSave and onCancel in ScheduleEditForm for greater flexibility.
* Add aria-label for accessibility in PayeeAutocomplete component
- Introduced translation support for the 'Payee' label using useTranslation.
- Enhanced accessibility by adding an aria-label to the input field in PayeeAutocomplete.
* [autofix.ci] apply automated fixes
* Refactor MobileScheduleEditPage and related components for improved functionality and structure
- Simplified the MobileScheduleEditPage by removing unnecessary imports and restructuring state management with the new useScheduleEdit hook.
- Extracted updateScheduleConditions logic into a separate utility file for better reusability and clarity.
- Enhanced ScheduleEditModal to utilize the new form dispatch mechanism, improving state management and error handling.
- Updated ScheduleEditForm to streamline field management and improve overall responsiveness.
* Enhance AccountAutocomplete component with accessibility improvements
- Added aria-label for the input field in AccountAutocomplete using translation support for better accessibility.
* Refactor imports in MobileScheduleEditPage, ScheduleEditModal, and useScheduleEdit for consistency
- Reintroduced the ScheduleEditForm import in MobileScheduleEditPage and ScheduleEditModal for clarity.
- Moved the updateScheduleConditions import in useScheduleEdit to maintain a consistent import structure across components.
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6158
* Refactor MobileScheduleEditPage and useScheduleEdit for improved loading state management
- Removed local loading state from MobileScheduleEditPage and integrated it into the useScheduleEdit hook for better state handling.
- Enhanced error handling by displaying a "Schedule not found" message when the schedule is null.
- Streamlined the loading state check in the component to improve user experience.
* Remove unused import of 't' from ScheduleEditModal.tsx
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6158
* Refactor schedule edit dispatch handling in MobileScheduleEditPage and ScheduleEditModal
- Replace formDispatch with a unified dispatch in MobileScheduleEditPage and ScheduleEditModal for handling form errors and transaction switches.
- Update useScheduleEdit hook to remove the formDispatch wrapper, simplifying the dispatch mechanism.
- Change the type of the date field in DiscoverScheduleEntity from ScheduleEntity['_date'] to RecurConfig for better type accuracy.
* Refactor ScheduleEditModal and useScheduleEdit for improved schedule initialization
- Utilize useMemo in ScheduleEditModal to streamline initial schedule creation based on transaction data.
- Introduce useEffectEvent in useScheduleEdit to enhance schedule loading logic on component mount.
- Simplify the handling of initial schedule conditions and actions, improving code readability and maintainability.
* Add mobile schedules functionality with comprehensive tests
- Introduced Mobile Schedules page and navigation integration.
- Created end-to-end tests for various functionalities including visual checks, empty state handling, schedule creation, editing, and search/filter capabilities.
- Added necessary page model classes to support the new features.
- Updated existing components to accommodate new mobile schedules functionality and ensure proper layout and user experience.
- Included visual regression test snapshots for the new features.
* Refactor navigation method in MobileNavigation class for improved readability
- Simplified the goToSchedulesPage method by removing unnecessary await, enhancing code clarity.
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6158
* Remove deprecated test for schedule creation and associated visual regression test snapshots
* Add Schedules Page Menu Modal and enhance Mobile Schedules Page
- Introduced SchedulesPageMenuModal to the modals system.
- Updated MobileSchedulesPage to include a button that opens the new Schedules Page Menu.
- Refactored schedule filtering logic to incorporate a local preference for showing completed schedules.
- Added local preference for 'schedules.showCompleted' to manage completed schedule visibility.
- Updated SchedulesTable to utilize the new local preference for completed schedules.
* Update VRT screenshots
Auto-generated by VRT workflow
PR: #6158
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix(core): handle unicode minus in number parsing
Fixes#6206. Added support for Unicode minus (U+2212) in looselyParseAmount, currencyToAmount, and stringToInteger. Added unit tests.
* Refactor: Improve currency parsing logic
Co-authored-by: matiss <matiss@mja.lv>
* Refactor: Simplify currency parsing logic
Co-authored-by: matiss <matiss@mja.lv>
* [autofix.ci] apply automated fixes
* fix: Handle Unicode minus inside parentheses correctly
Fixed bug where amounts with both parentheses and Unicode minus (e.g.,
(−3.45)) were parsed as null instead of negative numbers. The Unicode minus
is now removed from within parentheses before the parentheses-to-minus
conversion, preventing double minus signs that caused parseFloat to return NaN.
Added test cases for parenthesized amounts containing Unicode minus.
* Add release notes for PR #6247
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* feat(currency): add currency support to templates and goals
* fix: linting
* fix: add weekly guard as per coderabbit suggestion
* fix: add decimalPlaces to removeFraction
* test: add tests for JPY
* simplify currency usage in template
* Add Crossover Report
* Fix lint and typecheck
* Use useFormat hook for formatting, make spreadsheet always return cents
* Change defaults to all categories and accounts. Return 0 when no categories selected
* Change error handling to use addNotification
* Detect if crossover has already happened before projecting
* [autofix.ci] apply automated fixes
* lint:fix. Only get first crossoverIdx
* Annualize historical return via compounding, not multiplication
Use effective monthly rate from annual return
Guard against undefined starting balance
* Optional guard in median helper for future-proofing
Use consistent rounding when checking the projected crossover
Avoid O(n^2) lookups when aggregating balances by month
* Add Crossover Report Feature Flag
* Add option to show hidden categories
* Remove estimated return placeholder text since the formatting was unclear
* Initialize defaults when widget meta is absent
* Hidden categories remain in expense totals
* [autofix.ci] apply automated fixes
* Update packages/loot-core/src/types/prefs.ts
Fix merge conflict semi-colon
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update prefs.ts
Try again to fix merge conflict.
* Fix percentage inputs showing trailing zeros for some numbers
* Fix projection not happening if crossover happens historically but then reverts
* some tweaks for consideration. Remove if undesired
* go back to original math
* Fix change in percentage formatting for CrossoverCard
* Optimize date range calculation and add cleanup to CrossoverCard
Use format utility for years to retire
Replaced hardcoded color with theme token
* [autofix.ci] apply automated fixes
* Try again to standardize display and storage of percentages without repeating decimals
* Add tooltips with descriptions to crossover chart inputs
* Refactor Crossover component to use translation for 'N/A' strings and simplify estimatedReturn assignment
* Refactor Crossover components to improve date range calculations and ensure proper handling of the latest month
* Fix typo in Crossover component: corrected "retirment" to "retirement" in user instructions
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Adds balance variable to rule templates
Enables access to the account balance within rule templates. This allows for more complex rule creation based on the current account balance.
Calculates the account balance up to the transaction being processed, including transactions on the same date with lower sort order.
Handles cases where the balance is undefined gracefully, defaulting to 0 to prevent errors.
## AI disclaimer
This PR contains code that was partially or fully generated by AI and may contain errors. All suggestions for improvement are welcome.
* Add release notes
* indexed sql params not supported
* [autofix.ci] apply automated fixes
* Skip parent transactions of splits
* Uses aql for account balance
Updates transaction rule preparation to use aql instead of sql calculating it from past transactions.
The balance is defaulted to 0 if no account is set.
Refactor account balance calculation to build a proper query with date and sort_order filters
* Add block scoping to switch cases and ensure correct fallthrough handling in Action type conversions
* Corrects transaction rule sorting order
Reverses the sort order comparison in transaction rules
to ensure correct identification of prior transactions with the same date.
This ensures that the correct balance is used when
calculating balance-based rule conditions.
fixup! Corrects transaction rule sorting order
* Improves transaction rule balance calculation
Uses a more efficient query for calculating the account balance
up to a transaction when applying rules, improving performance.
This change reduces the complexity of the balance calculation.
* Apply coderabbit lessons learned
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>