Invoice Importer
Derek Atkins
warlord at MIT.EDU
Tue Mar 27 04:27:37 EDT 2012
Reuben Cummings <reubano at gmail.com> writes:
>>> I figured it out. The invoices from the entries table were never entered
>>> into the invoices table. I wrote a script to match the invoices with the
>>> transaction guids and insert them into the invoices table.
>>
>> I don't think I understand this issue. What do you mean by "The
>> invoices from the entries table were never entered into the invoices
>> table"?
>
> I'm referring to tables in the backend database. There are two tables
> that relate to invoices, i.e., entries and invoices. The two tables
> are related by the fields entries.invoice = invoice.guid.
Umm, let's ignore the database and talk about the GnuCash objects,
please? You shouldn't be modifying the database, you should be using
the GnuCash APIs to enter your data.
>> In particular I don't understand what you mean by "invoices
>> from the entries table",
>
> This refers to the invoice field of the entries database table, i.e.,
> entries.invoice.
So you mean the gncEntryGetInvoice() result?
>> and I don't understand what you mean by
>> "[entries] were never entered into the invoices table."
>
> I guess 'record' is more appropriate. The invoice field of each record
> in the entries table should have a corresponding record in the
> invoices table (joined at the guid field).
Again, please consider using the object model instead of table. So you
are saying that the gncEntryGetInvoice() is NULL? Is this a customer
Invoice or a Vendor Bill? What about gncEntryGetBill()?
>> Are you saying that the Entries on an invoice were never added to the
>> Invoice?
>
> So, I am saying that the importer created records in the entries table
> that had no corresponding record in the invoices table. You can view
> them with the following sql statement.
What API did the Importer use to add the entry to the Invoice (or Bill)?
> SELECT
> entries.invoice
>
> FROM entries
> LEFT OUTER JOIN invoices ON entries.invoice = invoices.guid
> WHERE invoices.guid IS NULL
> GROUP BY entries.invoice
Do you really need the join here? What about the entry bill?
> What I did was match these orphan invoices with the appropriate
> transactions in the transactions table (the invoices and transaction
> tables are related by the transaction guid) to create the records that
> needed to be inserted into the invoices table.
I still don't understand what you mean by "Orphan Invoices" here. I
think it's a terminology issue here. It sounds to me like you have
"Orphan Entries", not "Orphan Invoices", and I'm trying to understand
how these could be orphaned unless there is a bug in the importer.
-derek
--
Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
Member, MIT Student Information Processing Board (SIPB)
URL: http://web.mit.edu/warlord/ PP-ASEL-IA N1NWH
warlord at MIT.EDU PGP key available
More information about the gnucash-devel
mailing list