From 6b7c4b38331ec880a1bc67cf65c5f0c5e9c52add Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Thu, 16 May 2013 19:18:27 +0200 Subject: pdf-invoice: get datapath from config --- invoice/pdf-template.txt | 12 ++++++++++++ src/pdf-invoice/Makefile | 2 +- src/pdf-invoice/main.vala | 13 ++++++++++++- src/pdf-invoice/pdf-invoice.vala | 11 +++++++---- src/pdf-invoice/template.txt | 12 ------------ 5 files changed, 32 insertions(+), 18 deletions(-) create mode 100644 invoice/pdf-template.txt delete mode 100644 src/pdf-invoice/template.txt diff --git a/invoice/pdf-template.txt b/invoice/pdf-template.txt new file mode 100644 index 0000000..bb603b9 --- /dev/null +++ b/invoice/pdf-template.txt @@ -0,0 +1,12 @@ +{{{ADDRESS}}} {{{LASTNAME}}}, + +wir erlauben uns, Ihnen für den Verzehr von Speisen und Getränken {{{SUM}}}€ in Rechnung zu stellen. + +Eine detaillierte Auflistung der einzelnen Posten befindet sich, mit genauer Zeitangabe des Einkaufs, auf den folgenden Seiten. + +Umsatzsteuer wird nicht erhoben, da der Verein Kreativität trifft Technik e.V. als Kleinunternehmen unter die Regelung des § 19 Abs. 1 UStG fällt. + +Der Gesamtbetrag wird in 10 Tagen von dem angegebenen Bankkonto eingezogen. +Mit freundlichen Grüßen + +Kreativität trifft Technik e.V. diff --git a/src/pdf-invoice/Makefile b/src/pdf-invoice/Makefile index ef07ba1..0e930fd 100644 --- a/src/pdf-invoice/Makefile +++ b/src/pdf-invoice/Makefile @@ -1,6 +1,6 @@ all: pdf-invoice -pdf-invoice: main.vala pdf-invoice.vala pdf-invoice-interface.vala ../database/db-interface.vala ../price.vapi +pdf-invoice: main.vala pdf-invoice.vala pdf-invoice-interface.vala ../config/config-interface.vala ../database/db-interface.vala ../price.vapi valac -g -o $@ --pkg pangocairo --pkg librsvg-2.0 --pkg posix --pkg gdk-2.0 --pkg gio-2.0 $^ test: pdf-invoice-interface.vala test.vala ../price.vapi diff --git a/src/pdf-invoice/main.vala b/src/pdf-invoice/main.vala index 76b03c6..cbb73f2 100644 --- a/src/pdf-invoice/main.vala +++ b/src/pdf-invoice/main.vala @@ -13,7 +13,18 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +private string datadir; + public static int main(string[] args) { + try { + Config cfg = Bus.get_proxy_sync(BusType.SESSION, "io.mainframe.shopsystem.Config", "/io/mainframe/shopsystem/config"); + datadir = cfg.get_string("INVOICE", "datadir"); + } catch(IOError e) { + error("IOError: %s\n", e.message); + } catch(KeyFileError e) { + error("Config Error: %s\n", e.message); + } + Bus.own_name( BusType.SESSION, "io.mainframe.shopsystem.InvoicePDF", @@ -29,7 +40,7 @@ public static int main(string[] args) { void on_bus_aquired(DBusConnection conn) { try { - conn.register_object("/io/mainframe/shopsystem/invoicepdf", new InvoicePDF()); + conn.register_object("/io/mainframe/shopsystem/invoicepdf", new InvoicePDF(datadir)); } catch(IOError e) { stderr.printf("Could not register service\n"); } diff --git a/src/pdf-invoice/pdf-invoice.vala b/src/pdf-invoice/pdf-invoice.vala index 15f40d0..9a09ed9 100644 --- a/src/pdf-invoice/pdf-invoice.vala +++ b/src/pdf-invoice/pdf-invoice.vala @@ -43,6 +43,8 @@ public class InvoicePDF { /* internal helper */ private DateTime previous_tm; + private string datadir; + private const string[] calendermonths = { "Januar", "Februar", @@ -58,7 +60,8 @@ public class InvoicePDF { "Dezember" }; - public InvoicePDF() { + public InvoicePDF(string datadir) { + this.datadir = datadir; } private void render_svg(Cairo.Context ctx, string file) { @@ -74,14 +77,14 @@ public class InvoicePDF { ctx.save(); ctx.translate(-20, 818); ctx.scale(1.42, 1.42); - render_svg(ctx, "../../invoice/footer-line.svg"); + render_svg(ctx, datadir + "/footer-line.svg"); ctx.restore(); } private void draw_logo(Cairo.Context ctx) { ctx.save(); ctx.translate(366,25); - render_svg(ctx, "../../invoice/logo.svg"); + render_svg(ctx, datadir + "/logo.svg"); ctx.restore(); } @@ -355,7 +358,7 @@ public class InvoicePDF { /* load text template */ try { var text = ""; - FileUtils.get_contents("template.txt", out text); + FileUtils.get_contents(datadir + "/pdf-template.txt", out text); text = text.replace("{{{ADDRESS}}}", address); text = text.replace("{{{LASTNAME}}}", invoice_recipient.lastname); text = text.replace("{{{SUM}}}", @"$sum"); diff --git a/src/pdf-invoice/template.txt b/src/pdf-invoice/template.txt deleted file mode 100644 index bb603b9..0000000 --- a/src/pdf-invoice/template.txt +++ /dev/null @@ -1,12 +0,0 @@ -{{{ADDRESS}}} {{{LASTNAME}}}, - -wir erlauben uns, Ihnen für den Verzehr von Speisen und Getränken {{{SUM}}}€ in Rechnung zu stellen. - -Eine detaillierte Auflistung der einzelnen Posten befindet sich, mit genauer Zeitangabe des Einkaufs, auf den folgenden Seiten. - -Umsatzsteuer wird nicht erhoben, da der Verein Kreativität trifft Technik e.V. als Kleinunternehmen unter die Regelung des § 19 Abs. 1 UStG fällt. - -Der Gesamtbetrag wird in 10 Tagen von dem angegebenen Bankkonto eingezogen. -Mit freundlichen Grüßen - -Kreativität trifft Technik e.V. -- cgit v1.2.3