diff options
Diffstat (limited to 'src/pdf-invoice/pdf-invoice-interface.vala')
-rw-r--r-- | src/pdf-invoice/pdf-invoice-interface.vala | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/pdf-invoice/pdf-invoice-interface.vala b/src/pdf-invoice/pdf-invoice-interface.vala new file mode 100644 index 0000000..d2c04d9 --- /dev/null +++ b/src/pdf-invoice/pdf-invoice-interface.vala @@ -0,0 +1,54 @@ +/* Copyright 2013, Sebastian Reichel <sre@ring0.de> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +[DBus (name = "io.mainframe.shopsystem.InvoicePDFError")] +public errordomain InvoicePDFError { + /* missing invoice data */ + NO_INVOICE_DATA, + NO_INVOICE_DATE, + NO_INVOICE_ID, + NO_INVOICE_RECIPIENT, + + /* data not supported by renderer */ + ARTICLE_NAME_TOO_LONG, + PRICE_TOO_HIGH, + TOO_FAR_IN_THE_FUTURE +} + +public struct InvoiceRecipient { + public string firstname; + public string lastname; + public string street; + public string postal_code; + public string city; + public string gender; +} + +public struct InvoiceEntry { + int timestamp; + string article; + Price price; +} + +[DBus (name = "io.mainframe.shopsystem.InvoicePDF")] +public interface PDFInvoice : Object { + public abstract string invoice_id { set; owned get; } + public abstract int64 invoice_date { set; owned get; } + public abstract InvoiceRecipient invoice_recipient { set; owned get; } + public abstract InvoiceEntry[] invoice_entries { set; owned get; } + + public abstract uint8[] generate() throws IOError, InvoicePDFError; + public abstract void clear() throws IOError; +} |