Skip to content
Snippets Groups Projects
  1. Apr 29, 2023
  2. Apr 23, 2023
  3. Apr 22, 2023
    • Davis Silverman's avatar
      Add experimental new OFX importer (#921) · a1d321d6
      Davis Silverman authored
      Hi there, 
      
      I try to tackle #798 here. It was suggested to throw this behind a
      feature flag, so here it is!
      
      this does its best to import the problem file in #767. 
      
      I am working on this because it would make my work on #918 easier :)
      
      Feel free to set the feature flag to true and try the new importer. The
      date parser is not as sophisticated as the one in `node-libofx`, but I
      tried 3 different OFX files, one from my bank, one from the mocks, and
      one from #767. They all seem to work well enough on that front, but this
      is definitely the weak point of the new implementation.
      
      Let me know what you think!
      Unverified
      a1d321d6
    • shall0pass's avatar
      [Feature] Initial concept for adding percentage based goals (#858) · 3ceb2d92
      shall0pass authored
      This is an initial concept for adding percent based goal targets.
      
      This version works by using a string in the form of: 
      #template 10% of Income <- Income is an income category name. Only
      income category names will work here currently.
      or
      #template 10% of all income<- 'all income' is a keyword in this context
      and will base the calculation on the total income for the month.
      
      Some of the nicer touches like Jed's polite notification that the syntax
      isn't correct is not implemented here yet.
      Unverified
      3ceb2d92
    • 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
  4. Apr 20, 2023
  5. Apr 16, 2023
  6. Apr 13, 2023
  7. Apr 12, 2023
  8. 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
  9. Apr 09, 2023
  10. 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
  11. Apr 06, 2023
  12. Apr 04, 2023
  13. Apr 03, 2023
    • Jed Fox's avatar
      Update to latest stable date-fns version (#849) · 5d921f7a
      Jed Fox authored
      Previously, we were using an alpha version of date-fns v2. Now we’re
      using the latest stable v2.
      Unverified
      5d921f7a
    • 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
  14. Mar 29, 2023
  15. Mar 28, 2023
  16. Mar 27, 2023
  17. Mar 26, 2023
  18. Mar 24, 2023
  19. Mar 21, 2023
  20. Mar 20, 2023
  21. Mar 18, 2023
  22. Mar 17, 2023
  23. Mar 16, 2023
  24. Mar 14, 2023
Loading