When I was independent consulting, GnuCash managed my invoicing and accounts-receivable well enough.
I tracked my hours for a billing period by starting a new invoice in GnuCash, and just adding a line item to it per day. Each line item was updated throughout the day, with very quick notes to myself of what I did.
At the end of each day, I'd print a draft invoice of the unbilled hours thus far, as backup.
When it came time to invoice, GnuCash supports/ed custom invoice scripts, so I'd copied&modified a stock invoice script to do what I want, including hiding the notes to myself, and complying with the occasional format change requests from client. I'd print to PDF or paper.
For a client that also wanted a separate summary of what I did, I'd copy&paste the hidden notes into an editor, and then rewrite that as a concise one-to-few sentences.
As soon as I emailed/mailed the invoice, the GnuCash accounts-receivable functionality would take over. The complexity in how it represented the data was a little scary, but it worked.
I tracked my hours for a billing period by starting a new invoice in GnuCash, and just adding a line item to it per day. Each line item was updated throughout the day, with very quick notes to myself of what I did.
At the end of each day, I'd print a draft invoice of the unbilled hours thus far, as backup.
When it came time to invoice, GnuCash supports/ed custom invoice scripts, so I'd copied&modified a stock invoice script to do what I want, including hiding the notes to myself, and complying with the occasional format change requests from client. I'd print to PDF or paper.
For a client that also wanted a separate summary of what I did, I'd copy&paste the hidden notes into an editor, and then rewrite that as a concise one-to-few sentences.
As soon as I emailed/mailed the invoice, the GnuCash accounts-receivable functionality would take over. The complexity in how it represented the data was a little scary, but it worked.