Skip to content
Snippets Groups Projects
  1. Apr 22, 2023
    • shall0pass's avatar
      Change method of calculating 'by' matches to use averaging (#879) · 0bcf6ea6
      shall0pass authored
      I've changed the method of calculating the budgeted amount. There may be
      a more efficient way of writing the loop, so I'm looking forward to the
      review.
      
      This change implements the mathematics of
      (Target1+Target2+TargetN-Last_months_category_balance) / (MonthsRemaing1
      + MonthsRemaining2 + MonthsRemaingN) * N. This is an averaged approach
      for multiple templates in the same category. It will appear to
      overbudget or underbudget some months compared to multiple single
      targets in different categories, yet there should always be enough saved
      in the category to satisfy the target due.
      
      Setting a target, it's assumed that money will be spent in the
      appropriate month, When a target reaches maturity, the money in the
      category associated with that target should be spent or moved so the
      remaining targets continue to be funded. I don't see an easy way of
      fixing that, but I hope this change will be of some help.
      
      Current method:
      Notice how the Bills (flexible) category reduces each month, resulting
      in larger budgeted amounts later in the goal cycle.
      
      
      ![Templates-now](https://user-images.githubusercontent.com/20625555/230964939-d20ca72b-1055-471a-9044-7cd640f19875.gif)
      
      Proposed method:
      **Note: The fact that the initial fill in this example equals the
      expected fill is a coincidence based on the template values I chose. The
      initial fills can be different from expected fill.
      
      
      ![Templates-proposed](https://user-images.githubusercontent.com/20625555/230965265-669f996c-3112-437b-ab83-9715ea5dfc7f.gif)
      Unverified
      0bcf6ea6
  2. Apr 16, 2023
  3. Apr 13, 2023
  4. Apr 12, 2023
  5. Apr 10, 2023
    • Alberto Gasparin's avatar
      Convert commonjs to esm (#877) · cd00da76
      Alberto Gasparin authored
      This PR converts everything (aside from electron) from CommonJS to ESM.
      It is needed to reduce the changes that will happen during the migration
      to Typescript (as TS does not play nice with CJS).
      
      Basically:
      - rewrite `require()` to `import`
      - rewrite `module.exports` to `exports`
      - introduce `ts-node` to run importers so we can convert them to TS too
      
      Lastly, sorry for this larg-ish PR, not my preference but when I tried
      to reduce its scope, I would end up with mixed commons/esm that was even
      more tricky to handle.
      Unverified
      cd00da76
  6. Apr 07, 2023
    • Jakub Kuczys's avatar
      Use Unicode-aware implementations of LOWER() and UPPER() in SQL queries (#865) · 835c1a54
      Jakub Kuczys authored
      Fixes #840 by creating application-defined SQL functions
      (https://www.sqlite.org/appfunc.html) for Unicode-aware implementations
      of `LOWER()` and `UPPER()`. This uses
      `String.prototype.toLower/UpperCase()` JS method.
      
      I initially wanted to just redefine `LOWER()` and `UPPER()` but due to
      [sql.js not supporting the definition of deterministic
      functions](https://github.com/sql-js/sql.js/issues/551), I had to just
      define them as separate functions and use that in the appropriate
      places. It's probably better like that anyway...
      Unverified
      835c1a54
    • shall0pass's avatar
      Allow goal template 'by' matches to compound (#860) · adf205db
      shall0pass authored
      I believe this change allows for having multiple 'by' rules in the same
      category. It seems to be working well for my purposes, but I would
      appreciate further testing to assure there aren't regressions.
      
      Example:
      
      #template 300 by 2023-06
      #template 3000 by 2023-08
      
      Before this PR, having these two lines in the notes would only budget
      funds for the earliest of the two strings and ignore the 3000 funding
      target. With this PR, the sum of the two funding targets will be
      respected.
      Unverified
      adf205db
  7. Apr 06, 2023
  8. Apr 03, 2023
    • Alberto Gasparin's avatar
      Convert loot-core to TS p1 (#841) · 79ad04dd
      Alberto Gasparin authored
      Part 1 of the conversion. Mostly renaming js to ts and making sure
      things make still sense. Added also handy TS ESLint rules.
      
      In order to support the various .web/.electron/... I ended up adopting
      `index.d.ts` as pattern to share type definition. Let me know if that
      makes sense for you too. Right now the function type definition is
      duplicated, but the solution will be importing from `index.d.ts` and
      using `const fn: FnDef = () => ...` that way we can keep all variants in
      sync from a single type file.
      
      Such rewrite however is better done in another PR otherwise we risk
      confusing git and loosing history (rename + too many changes). Another
      thing that might do in the next PR is convert all files to ESModules, as
      things get confusing between CJS exports, ESM default/named and TS adds
      extra complains.
      Unverified
      79ad04dd
  9. Mar 29, 2023
  10. Mar 24, 2023
  11. Mar 21, 2023
  12. Mar 20, 2023
  13. Mar 17, 2023
  14. Mar 16, 2023
  15. Mar 14, 2023
  16. Mar 13, 2023
  17. Mar 12, 2023
    • James Long's avatar
      Route aggregate queries in transaction grouped mode through the correct layer... · df8f5853
      James Long authored
      Route aggregate queries in transaction grouped mode through the correct layer to remove deleted transactions (#247)
      
      I recently migrated my personal usage of Actual over to the open-source
      version and imported a bunch of transactions. I have a _lot_ of history
      in Actual, including a lot of weird edge cases like deleted split
      transactions. While reconciling I noticed that my account balance shown
      at the top was incorrect, even though the running balance was current.
      
      Digging into this, I discovered that we aren't correctly handling
      aggregate queries when querying transactions in the "grouped" mode.
      Aggregate queries don't make sense in the "grouped" mode. Grouped means
      that you want a list of transactions that include both the parent and
      child transactions (when they are split). If you are summing up all the
      amount, you only want to consider non-parent transactions. So we switch
      it back to "inline" mode, but the way we did this previously was to
      manually stitch the query together.
      
      Even though was add SQL to ignore deleted transactions, we still
      possibly include them. A child transaction may not be marked as deleted,
      even though the parent transaction is deleted. When a parent transaction
      is deleted, all child transactions should be considered deleted as well,
      regardless of their tombstone status. This is what the
      `v_transactions_internal_alive` view does. Previously we weren't going
      through this view though, so we could still potentially include split
      transactions even though they've been deleted.
      
      This is little hacky, but it fixes the immediate problem. We fall back
      to the inline mode by modifying the where clause, and we also adjust the
      view that it queries to use the correct one.
      Unverified
      df8f5853
    • Jakub Kuczys's avatar
      :bug: (nordigen) fallback to array version of remittanceInformationUnstructured if necessary (#745) · a5a1c81e
      Jakub Kuczys authored
      Try falling back to `remittanceInformationUnstructuredArray.join(', ')`
      when neither `debtor/creditorName` nor
      `remittanceInformationUnstructured` fields are present.
      
      Addresses a suggestion from
      https://github.com/actualbudget/actual/issues/724#issuecomment-1464907064
      Unverified
      a5a1c81e
    • Jakub Kuczys's avatar
      :bug: (nordigen) fix detection of -0.00 "debited" transactions (#744) · 0baccfd7
      Jakub Kuczys authored
      Check if the transaction amount is a positive 0 rather than -0.
      I went for casting the string with `Number` but I could instead replace
      the whole condition with `!trans.amount.startsWith('-')` or with
      `trans.amount > 0 || trans.amount == '0.00'` if either of these variants
      are preferred.
      
      Fix for
      https://github.com/actualbudget/actual/issues/724#issuecomment-1464907064
      Unverified
      0baccfd7
  18. Mar 06, 2023
  19. Mar 05, 2023
  20. Mar 04, 2023
    • Filip Stybel's avatar
      Nordigen integration - account sync (#457) · 5bb4f4b2
      Filip Stybel authored
      
      * Update gitignore about .idea folder
      
      The .idea folder is generated by IntelliJ IDEA
      
      * Add integration with Nordigen
      
      * Fix linter
      
      * Use longer access to the account
      
      * Move normalizatoin of accounts to the backend side
      
      * Fix possibility to force remove account
      
      * Move normalization of transactions to the backend side
      
      * Fix Settings.js after merge
      
      * fix enableing bank sync
      
      * delete old Settings component
      
      * Use camelCase for nordigen/remove-account call
      
      * WIP refactor
      
      * Fix auto-selecting existing accounts
      
      * Fix unlinking accounts
      
      * Align to backend changes for Nordigen integration
      
      * Fix AnimatedLoading
      
      * Code review changes
      
      * Fix TZ date issue
      
      * rm mobile package
      
      * rm BankSync settings section
      
      * rm console.log
      
      * rm comment
      
      * applies some alignments from code review
      
      * applies some alignments from code review
      
      * Add prefix for nordigen specific functionality
      
      * Use arrow char
      
      * Add prefix for nordigen functionalities
      
      * Fix linter
      
      * Display only open accounts
      
      * Update packages/desktop-client/src/nordigen.js
      
      Co-authored-by: default avatarJed Fox <git@jedfox.com>
      
      * Fix incorrect calc of TZ for endDate
      
      * Improved error checking
      
      * Fix throwing invalid-schema error
      
      * Fix for syncing large batches in Safari
      
      ---------
      
      Co-authored-by: default avatarFilip Stybel <filip.stybel@ynd.co>
      Co-authored-by: default avatarLeon Ebel <24588023+ebelleon@users.noreply.github.com>
      Co-authored-by: default avatarJed Fox <git@jedfox.com>
      Unverified
      5bb4f4b2
  21. Mar 02, 2023
  22. Feb 28, 2023
    • Jed Fox's avatar
      Upgrade better-sqlite3 to the latest version (#714) · a56f2951
      Jed Fox authored
      * Sort transactions by date in updateCategoryRules
      
      * Update better-sqlite3 to 7.5.0
      
      * Update better-sqlite3 to v8
      Unverified
      a56f2951
    • Jed Fox's avatar
      Remove/dedupe/upgrade several dependencies (#702) · 0688c258
      Jed Fox authored
      * Run `yarn dedupe`
      
      * Update to better-sqlite3@latest
      
      * Remove react-native
      
      * Remove a bunch more unused deps
      
      * Update mitt to 3.0
      
      * Remove a few more
      
      * Remove react-native-gesture-handler
      
      * Revert "Update to better-sqlite3@latest"
      
      This reverts commit d436bc8d73f2745f484def4e40596322d0c56458.
      
      * Dedupe better-sqlite3 versions
      
      * snapshots!
      
      * Fix jsdom error
      
      * Revert "Dedupe better-sqlite3 versions"
      
      This reverts commit f99d2ab6f9311663e3312ab5b00bc81c068f040d.
      
      * Add back jest-watch-typeahead
      
      * Fix conflicting Jest version
      
      (The jest-environment-jsdom package that is magically available seems to only be compatible with Jest 27)
      Unverified
      0688c258
    • Matiss Janis Aboltins's avatar
  23. Feb 24, 2023
    • Jed Fox's avatar
      Updates to the @actual-budget/api package (#464) · 93a1f8a9
      Jed Fox authored
      * Make it easier to build the bundle.api.js for the API
      
      * Remove budgetId parameter, move config to top level of API
      
      * that’s a breaking change
      
      * Add support for signing into the server in init()
      
      * Add api.downloadBudget(syncId, { password }) method
      
      * Fix lint errors
      
      * Refactor: extract out getSyncError
      
      * api/download-budget: sync if possible instead of downloading
      
      * Don’t bother with fetching remote files and installing key if the file is local
      
      * *groupId
      
      * FIx lint issues
      
      * Remove extra close+reopen
      
      * Refactor out duplicate load-budget logic
      
      * Trailing commas
      Unverified
      93a1f8a9
  24. Feb 21, 2023
    • Jed Fox's avatar
      Allow the server to auto-configure the server URL for the client (#649) · fc308ece
      Jed Fox authored
      * Allow the server to auto-configure the server URL for the client
      
      * Extract server URL/version logic out to ensure consistent updates
      
      * ()
      
      * Be more explicit about when the server version is re-fetched
      
      * Use a single layer of context provider
      
      * Move the bootstrap route to /account/needs-bootstrap
      
      * No more `isActual`
      
      * Refactor to call subscribe-needs-bootstrap instead of fetch()
      
      * Dedupe calls to subscribe-needs-bootstrap
      
      * Don’t revalidate the server when we just validated it
      
      * simplify
      
      * Fix setServerURL
      Unverified
      fc308ece
    • Jed Fox's avatar
      Log more debugging information for an invalid-schema sync error (#671) · 2bc61463
      Jed Fox authored
      * Provide more debugging information when throwing an invalid-schema sync error
      
      * Don’t log the errors directly
      
      * Update dynamic cell warning to be clearer
      
      * rebuild
      Unverified
      2bc61463
  25. Feb 15, 2023
  26. Feb 12, 2023
    • Jed Fox's avatar
      Updates to the template/goal feature (#588) · a8656162
      Jed Fox authored
      * Dedupe loot-core webpack configs
      
      * Swap to parsing using Peggy
      
      * Actually record syntax errors
      
      * Refactor template types
      
      * Add notifications after applying the templates
      
      * “Successfully”
      
      * Try a Nearley grammar
      
      * Revert "Try a Nearley grammar"
      
      This reverts commit 1e11c07b855a492b905f1291c3eadd93f78ac3de.
      
      Not going with this approach since the error messages are inscrutable.
      
      * switch to PEG.js which has slightly better tooling support
      
      * fix parser
      
      * Fix error reporting
      
      * Adjust grammar for better error messages
      
      Also allow spaces between currency symbol and number
      
      * Fix grammar
      
      * Make #template prefix case insensitive
      
      * Trailing commas
      
      * Remove patch-package from loot-core
      Unverified
      a8656162
  27. Feb 10, 2023
  28. Feb 05, 2023
  29. Feb 04, 2023
Loading