Hi John, I got it to work, but one challenge remains. The load-from-path seems to crash Gnucash. But copying the app-utils.scm to the fin.scm folder solves the problem, but it's sloppy.
I'll need to play around with it. Secondly, I it didn't like the name "days-in-prev-mon" But I shortened it and took out the dashes and that seems ok. Here is what I inserted in fin.scm: ;; Return number of days in the previous month (load-from-path "C:\Program Files (x86)\gnucash\share\gnucash\scm\gnucash\app-utils") (define (gnc:numdayslastmon) (/ (+ 1 (- (gnc:get-end-prev-month) (gnc:get-start-prev-month))) 86400) ) Thanks again for your help! Michael On Fri, Nov 1, 2019 at 3:25 PM Fross, Michael <mich...@fross.org> wrote: > Thanks John. I'll give is a shot and report back. > > Michael > > On Fri, Nov 1, 2019 at 2:34 PM John Ralls <jra...@ceridwen.us> wrote: > >> >> >> > On Nov 1, 2019, at 9:36 AM, Fross, Michael <mich...@fross.org> wrote: >> > >> > Hello all, >> > >> > I have a scheduled transaction that I pay monthly which is a fixed >> amount >> > per day. I'd love to be able to have is automatically entrer based on >> the >> > number of days per month. I pay on the 1st (or the first business day >> > after that) so basically I'd like to use the following formula: >> > >> > Amount = NumDaysInPreviousMonth * AmountPerDay >> > >> > I looked through the guide >> > <https://wiki.gnucash.org/wiki/Scheduled_Transactions> and didn't see >> > anything. It references fin.scm (link throws a 404 by the way) but I >> > didn't see anything here that calculated the number of days in the >> previous >> > month (but perhaps I missed it in the SCM code.) >> > >> > This seems like a simple use case, am I missing something? Perhaps I'll >> > need to write a function in fin.scm that can return the number of days >> in a >> > provided month. No idea how to use scheme, but I'm sure I can figure it >> > out. >> > >> > Thoughts? >> >> I fixed the link. >> >> The closest functions in GnuCash would be gnc:get-start-prev-month and >> gnc:get-end-prev-month. They return time64 so you'd divide the difference >> by 86400 (the number of seconds in a day) after adding in 1 second to >> compensate for gnc:get-start-prev-month's returning the first second of the >> month rather than the last second of the month before. >> >> You could try adding this to fin.scm: >> >> (load-from-path "gnucash/app-utils") >> (define (gnc:days-in-prev-month) (/ ( + 1 (- (gnc:get-end-prev-month) >> (gnc:get-start-prev-month)))) 86400)) >> >> Then use >> days-in-prev-month() * AmountPerDay >> in your scheduled transaction. Replace "AmountPerDay" with the actual >> numeric amount or the Since Last Run dialog will ask for the amount every >> month. >> >> I've never actually tried doing anything like that, but it might work. >> >> Regards, >> John Ralls >> >> >> >> _______________________________________________ gnucash-user mailing list gnucash-user@gnucash.org To update your subscription preferences or to unsubscribe: https://lists.gnucash.org/mailman/listinfo/gnucash-user If you are using Nabble or Gmane, please see https://wiki.gnucash.org/wiki/Mailing_Lists for more information. ----- Please remember to CC this list on all your replies. You can do this by using Reply-To-List or Reply-All.