Commit Graph

26420 Commits

Author SHA1 Message Date
John Ralls
1a906b00aa [price-quotes] Enable gnucash-cli to retrieve preferences on macOS.
By embedding a minimal Info.plist with a bundle ID into the executable.
This necessitated a change to binreloc because the unix-style install
depended on there being a bundle ID only when the program was run from
an application bundle.
2022-10-17 10:06:21 -07:00
Christopher Lam
d27de50c35 [assistant-stock-transaction] input positive capgains for Credit income acct
In a long position, a positive capital gain indicates the unit price
has increased from Buy to Sell.

In a short position, a positive capital gain indicates the unit price
has decreased from Short Sell to Cover Buy.

i.e. when inputting capital gains, the UI amount being positive
indicates the income account has a credit value. i.e. the investor has
enjoyed a 'profit' on their transaction.
2022-10-16 23:40:10 +08:00
John Ralls
2767587874 [price-quotes] Fix setting alphavantage API key. 2022-10-14 15:47:07 -07:00
John Ralls
939a77407c Merge branch 'price-quotes-cpp' 2022-10-14 11:25:14 -07:00
John Ralls
7f2a09a69f [price-quotes] Handle short error strings from finance-quote-wrapper.
This keeps the translation work in GnuCash and improves the error
signalling in gnc-quotes.
2022-10-14 10:26:51 -07:00
John Ralls
fe9b23ff2b [price quotes] Pass short errors to gnc-quotes.
And wordier but not translated messages when STDERR is a tty.
2022-10-14 10:26:51 -07:00
John Ralls
88d658fef0 [price-quotes] Date::Manip is no longer required. 2022-10-13 14:58:27 -07:00
John Ralls
50c72b4f88 [price-quotes] Remove m_ready and usable() from GncQuoteSource.
GncQuoteSource ctor throws if something is wrong so usable is always true.
2022-10-13 14:28:17 -07:00
John Ralls
7d93774dd2 [price-quotes] Throw instead of returning if there aren't any commodities to quote.
So that the user gets sees an error instead of silent failure.
2022-10-13 13:51:37 -07:00
John Ralls
81d4ea9550 [price-quotes] Remove F::Q version format check.
We don't care what the version string looks like as long as there is one.
2022-10-13 12:58:09 -07:00
John Ralls
c78fe37ff7 [price-quotes] General typo fixes and code cleanup. 2022-10-13 12:52:36 -07:00
John Ralls
99dffa7120 [price-quotes] Use c++ syntax for PricesDialog decl. 2022-10-13 12:51:48 -07:00
John Ralls
90bcde2cfb [price-quotes] Rename Gnucash::quotes_info to Gnucash::check_finance_quote. 2022-10-13 12:37:54 -07:00
John Ralls
70c9d4c9e3 [price-quotes] Fix version retrieval.
Plus there's no need for a "not found" version string because GncQuotes
construction will throw if Finance::Quote isn't correctly installed. No
object, nothing to call version() on.
2022-10-13 12:20:59 -07:00
John Ralls
97e730b8d8 [price-quotes] Reformat test quote response strings to one line per quote. 2022-10-13 11:24:49 -07:00
Philippe Lamare
95a8814034
Translation update by Philippe Lamare <ph.lamare@free.fr> using Weblate
po/fr.po: 100.0% (5401 of 5401 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Program (French)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/fr/

Co-authored-by: Philippe Lamare <ph.lamare@free.fr>
2022-10-12 13:25:47 +02:00
Pablo Fernandez
5b7932dfb5
Translation update by Pablo Fernandez <pfernandez@theansweris27.com> using Weblate
po/glossary/es.po: 100.0% (222 of 222 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Spanish)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/es/

Co-authored-by: Pablo Fernandez <pfernandez@theansweris27.com>
2022-10-12 04:52:06 +02:00
Guille Lopez
14dee67011
Translation update by Guille Lopez <willelopz@gmail.com> using Weblate
po/es.po: 100.0% (5401 of 5401 strings; 0 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Program (Spanish)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/es/

Co-authored-by: Guille Lopez <willelopz@gmail.com>
2022-10-12 04:52:06 +02:00
John Ralls
f24c2c8bdd Instrument failure to set the account when creating a split. 2022-10-11 14:05:45 -07:00
Mike Alexander
3c306eae65 Merge branch 'maint' 2022-10-09 22:27:55 -04:00
Mike Alexander
2d3e80ea08 Compatibility with XCode's "new build system"
With XCode 14 or newer CMake tries to use the "new build system" which has a
requirement that if two targets depend on the same generated file one of them
must depend on the other.  This commit adds reduntant dependencies to satisfy
this requirement.
2022-10-09 01:10:06 -04:00
이정희
5ed45e081c
Translation update by 이정희 <daemul72@gmail.com> using Weblate
po/ko.po: 64.3% (3473 of 5401 strings; 996 fuzzy)
249 failing checks (4.6%)
Translation: GnuCash/Program (Korean)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ko/

Translation update  by 이정희 <daemul72@gmail.com> using Weblate

po/ko.po: 63.9% (3454 of 5401 strings; 1012 fuzzy)
263 failing checks (4.8%)
Translation: GnuCash/Program (Korean)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ko/

Co-authored-by: 이정희 <daemul72@gmail.com>
2022-10-07 16:11:20 +02:00
Christopher Lam
14fe4d862f Bug 798629 - gnucash crashes attempting to import OFX file
It's not correct to g_free id if the g_hash_table_insert returns
FALSE; returning FALSE means the key/value pair was replaced. The key
will automatically be freed by glib thanks to the new_hash having a
GDestroyNotify g_free:

        GHashTable* new_hash = g_hash_table_new_full
            (g_str_hash, g_str_equal, g_free, NULL);
2022-10-07 22:10:30 +08:00
ovari
8193d7f23a
Translation update by ovari <ovari123@zoho.com> using Weblate
po/hu.po: 60.5% (3271 of 5401 strings; 1280 fuzzy)
506 failing checks (9.3%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/

Co-authored-by: ovari <ovari123@zoho.com>
2022-10-05 03:24:57 +02:00
John Ralls
c7d1b6ab26 Bug 798633 - 4.12 build failure on 32-bit Linux: "No code for module" 2022-10-04 09:12:10 -04:00
John Ralls
673a925554 [price-quotes] Remove superseded gnc-fq-dump and Quotes-example.pl 2022-10-02 11:50:26 -07:00
John Ralls
e817091de1 [price-quotes] Warn only once if the AlphaVantage Key isn't set.
And check the environment if it's not in preferences.
2022-10-02 11:50:26 -07:00
John Ralls
7eaa0eb292 [price-quotes] Add dump command to gnucash-cli. 2022-10-02 11:50:26 -07:00
John Ralls
d97ea77762 [price quotes] Add report member function to display quote information to stdout.
Instead of creating price instances in the database.
2022-10-02 11:50:26 -07:00
John Ralls
6ffb0bb633 [price-quotes] Report quote fetch failures to the user. 2022-10-02 11:50:26 -07:00
John Ralls
4c47e91180 [price-quotes] Implement error codes for currency and quote failures. 2022-10-02 11:50:26 -07:00
John Ralls
6db7800ca5 [price-quotes] Doxygen docs. 2022-10-02 11:50:26 -07:00
John Ralls
29ce925646 [price-quotes] Test the other fetch overloads and quote values. 2022-10-02 11:50:26 -07:00
John Ralls
b5bc6463a3 [price-quotes] Rework date-time handling.
A check of the F::Q modules found that the only ones that return a quote
time return a bogus one and do so only to mollify GnuCash.

Since there's no good way to determine the TZ of the exchange originating
the quote there's no good way to decide if the quote is current or from
a previous market session, so we just punt and use a time of 16:00 for
all quotes.
2022-10-02 11:50:26 -07:00
John Ralls
19064093d2 [price-quotes] Remove m_comm_vec and m_fq_answer.
Passing the intermediate values comm_vec and quote_str on the stack instead.
2022-10-02 11:50:26 -07:00
John Ralls
734fb6ce2a [price-quotes] Switch error handling to exceptions.
Allows for cleaner code with less state, less coupling of the GncQuotes
class, and better transfer of error messages to client code.

Also translates some error messages for presentation to users.
2022-10-02 11:50:26 -07:00
John Ralls
d307295076 [price-quotes] Paramaterize GncMockQuoteSource construction.
So we can have different results passed back for different tests.
2022-10-02 11:50:26 -07:00
John Ralls
2b87066687 [price-quotes] Extract some static functions.
To get  GncQuoteImpl::parse_one_quote to a reasonable size.
2022-10-02 11:50:26 -07:00
John Ralls
a82c72cfb9 [price-quotes] Remove level of indirection when parsing quote data. 2022-10-02 11:50:26 -07:00
John Ralls
37dfab7f31 [price-quotes] Convert long quote parsing lambda to a regular function.
To begin separating price parsing from inserting in the price db.
2022-10-02 11:50:26 -07:00
John Ralls
dd8316714b [price-quotes] Extract function GncQuotesImpl::comm_vec_to_json_string. 2022-10-02 11:50:26 -07:00
John Ralls
e3ab384504 [price-quotes] Log messages instead of writing them to std::streams. 2022-10-02 11:50:26 -07:00
John Ralls
b8642e55d9 [price-quotes] Implement mock quote source.
Note that because the non-default constructor exists only on GncQuotesImpl
we must use that directly and violate the pimpl.
2022-10-02 11:50:26 -07:00
John Ralls
4dd3922871 [price-quotes] Make wiggle test conditional on F::Q being installed. 2022-10-02 11:50:26 -07:00
John Ralls
784aca5a4c [price-quotes] Extract class GncQuoteSource.
Provide a specialization GncFQQuoteSource and move the F::Q command
construction and query functions to GncFQQuoteSource.

This allows for dependency injection to provide testing that doesn't
need F::Q to be installed.
2022-10-02 11:50:26 -07:00
John Ralls
e9577b7996 [price-quotes] Basic wiggle test. 2022-10-02 11:50:26 -07:00
Geert Janssens
277f299ad6 GncQuotes - cleanups
- make more use of auto
- mark user visible strings as translatable
- return early on input errors
- fix date conversion fallback to actually fall back to today
2022-10-02 11:50:26 -07:00
Geert Janssens
585de5d134 GncQuotes - break actual interaction with Finance::Quote out into a separate function query_fq
That allows for later reuse and easier testing.
2022-10-02 11:50:26 -07:00
Geert Janssens
70ab8a8a46 GncQuotes - drop parameterized constructor
The book parameter is only needed while fetching quotes.
In case the user passes one or more commodities to process
the book can be readily derived from the commodity/commodities.
In the other case (fetch all quotes) the user now is
required to pass a book to the call.
2022-10-02 11:50:26 -07:00
Geert Janssens
4c2863966b GncQuotes - rename fetch_all to be an overload of fetch
And add a third overload to fetch only a single quote
2022-10-02 11:50:26 -07:00