> On Jan 5, 2020, at 11:14 PM, Mike Alexander <m...@umich.edu> wrote:
>
> On 5 Jan 2020, at 23:27, John Ralls wrote:
>
> I want you to code review and test the PR when I finish. ;-)
>
> The online_id comes from from the import source, AQBanking in this particular
> case--and we must be more careful because the code in question applies to all
> of the importers except QIF--and the import source doesn't generally contain
> any commodity information, so basing the match on that is a non-starter.
>
> Returning the first match is what we do now. I get that that was the wrong
> approach.
>
> As for GnuCash creating a new account when you've got a new TIAA security,
> does that actually work? For that matter, are you able to connect to your
> TIAA master account and import transactions for all of the securities you
> have, all in one go? I thought that GnuCash didn't support that, never mind
> creating a new security account if it fails to find a match. Mind, this isn't
> the same as the matcher letting you create a new account when you
> double-click on a yellow line, this is during the matcher setup when it
> decides what asset/liability account the transactions belong to.
>
> Yes, the online ID comes from the import source, but the OFX importer is
> dealing with two accounts for investment transactions: the cash account and
> the security account. It uses the online ID from the OFX record for the cash
> account. Then around line 635 in gnc-ofx-import.c it constructs an online ID
> for the security account by concatenating that with the security's ID.
>
> It also has a commodity for the security account. This is converted to a
> GnuCash commodity around line 624 and passed to gnc_import_select_account.
> This function is documented to use this as part of the match (although it
> actually didn't before I changed it) so I think using it as part of the match
> would be ok.
>
> I am certainly able to import a bunch of security transactions for several
> accounts from an OFX file in one go. I've been doing this every month for
> several years without much trouble. I just imported 50 or so tonight. It
> isn't perfect since the cash side of the buy and sell transactions is always
> the parent TIAA account and I have to manually enter transactions to properly
> account for this cash, but it sure helps a lot. Note that I am not connecting
> to TIAA using AQBanking. That might work, but I download an OFX file from
> their web site and import that.
>
> I don't know for sure that I can create an account during the import since
> it's been a year or two since I created one and I can't recall if I did it
> from within the import or not. I think I have done this in the past. I do
> know that selecting an existing account from the import dialog works fine and
> this, too, will store the online ID in the account. I tried to munge one of
> the OFX files I have to cause it to create a new account, but didn't manage
> to do it properly.
>
> Your solution is no doubt more complete and elegant than mine although mine
> seems to work ok. I'll be glad to give it a try when you're ready.
Unfortunately not more complete (yet) because I didn't know about and so hadn't
accounted for the libofx import case you outlined here. I'll study that code
and look for other uses of gnc_import_select_account to make sure that I
understand everything that it needs to do. That will obviously take more than a
day and I have other things I need to do this week so it will likely be the
weekend before the PR is ready.
Regards,
John Ralls
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel