~kdsch/invoicer

a965d1942d74a55815055223e84104687dd5c07b — Karl Schultheisz 4 years ago b4f7581
remove unnecessary file
1 files changed, 0 insertions(+), 61 deletions(-)

D notes
D notes => notes +0 -61
@@ 1,61 0,0 @@
An invoice contains a lot of information, most of which doesn't change very
much. When writing an invoice, I should only have to focus on the part that
changes: the items, each of which consists of a description, an hourly rate,
and a duration. The tedious parts, such as the customer information, date,
invoice number, my contact info, and the total, should be handled for me
by the system. Of course, I need to specify who the customer is, but that
shouldn't require entering all the details by hand.

It should be possible to modify some of these tedious details if necessary;
for instance, changing the date.

I could use codes to identify customers. BEC Systems, LLC. could be referred
to as BEC. The part of the invoice I write might look like this:

	customer: BEC
	seller: KS
	items:
		-
			description: Preliminary research
			rate: 0
			hours: 5
		-
			description: Embedded Linux development
			rate: 100
			hours: 10

For convenience, a tool could generate incomplete YAML invoices:

	date: 2020-02-22
	number: efeb3056-9924-4a31-ba19-db0163b11767
	seller: KS
	customer:
	items:
		-
			description:
			rate:
			hours:

After I fill in the fields, I'd submit the file to the system, which would
validate and insert it in a database.

Later, I could query the system to produce reports, such as HTML or PDF
invoices to be sent to the customer. There would be no need for me to
save these documents, as the database (such as SQLite) already contains all
of their information.

Because the system is backed by a database, I can run all sorts of queries
that might be useful for accounting or planning.



In summary, the system has the following features:

- generate partially completed invoice.yaml files
- manage invoices and customers through a command-line interface
- generate beautiful HTML or PDF invoices from the database

It should be possible to pipe the invoices through a text editor:

	invoice new | vis - | invoice add