blob: 5ca3e342d67b58450ef9a3489691110fd030311e [file] [log] [blame]
Marc Kupietzb411f462023-03-09 08:21:11 +01001<?php
2
Marc Kupietz49f677c2023-03-10 08:29:41 +01003include_once 'User.php';
4use \User as User;
5
6require 'vendor/autoload.php';
Marc Kupietzb411f462023-03-09 08:21:11 +01007
8use Konekt\PdfInvoice\InvoicePrinter;
9
Marc Kupietz49f677c2023-03-10 08:29:41 +010010#include_once '../src/InvoicePrinter.php';
11include 'config.php';
Marc Kupietz7081be92023-03-20 19:46:55 +010012$FULL_VAT=0.19;
Marc Kupietz49f677c2023-03-10 08:29:41 +010013function create_invoice(User $user)
14{
Marc Kupietz8b80c7a2023-03-28 21:41:39 +020015 global $FULL_VAT, $SERVICE_ACRONYM, $SERVICE_NAME, $SERVICE_LOGO, $REGULAR_CONFERENCE_FEE, $EARLYBIRD_CONFERENCE_FEE, $STUDENT_DISCOUNT, $CONFERENCE_DINNER, $LUNCH, $EXCURSION;
Marc Kupietz7081be92023-03-20 19:46:55 +010016 $vat_sum = 0;
Marc Kupietz49f677c2023-03-10 08:29:41 +010017 $invoice = new InvoicePrinter("A4", "€", "en");
18 $invoice->lang['product'] = "Item";
Marc Kupietz7081be92023-03-20 19:46:55 +010019 $invoice->lang['discount'] = "VAT " . $FULL_VAT * 100 . "%";
Marc Kupietz49f677c2023-03-10 08:29:41 +010020 /* Header Settings */
21 $invoice->setLogo(str_replace(".svg", ".png", $SERVICE_LOGO));
22 $invoice->setColor('#4bb044');
23 $invoice->setType('Invoice');
24 $invoice->setReference('ICLC-10-' . $user->id);
25 $invoice->setDate(date('Y-m-d', time()));
Marc Kupietz17b2e5f2023-04-01 17:51:48 +020026 $invoice->flipflop();
27 $invoice->lang['to'] = "to";
28 $invoice->lang['from'] = "from";
29 $invoice->setFrom(['ICLC-conference / Administration', 'Leibniz Institute for the German Language', 'R5 6-13', '68181 Mannheim', 'Germany']);
30 $invoice->setTo([($user->title? $user->title . ' ' : ''). $user->first_name . ' ' . $user->last_name, $user->organization, $user->street, $user->zip . ' ' . $user->city, $user->country]);
Marc Kupietz49f677c2023-03-10 08:29:41 +010031 $invoice->setDue(date('Y-m-d', strtotime('+2 weeks')));
32 // $invoice->hide_tofrom();
33 /* Adding Items in table */
34 if ($user->earlybird_registration) {
35 $invoice->addItem( $SERVICE_ACRONYM . ' Early Bird Registration', $SERVICE_NAME, 1, false, $EARLYBIRD_CONFERENCE_FEE, false, $EARLYBIRD_CONFERENCE_FEE);
36 } else
37 $invoice->addItem( $SERVICE_ACRONYM . ' Registration', $SERVICE_NAME, 1, false, $REGULAR_CONFERENCE_FEE, false, $REGULAR_CONFERENCE_FEE);
Marc Kupietz7081be92023-03-20 19:46:55 +010038 if($user->student) $invoice->addItem('Student Discount', 'Student discount', 1, false, - $STUDENT_DISCOUNT, false, -$STUDENT_DISCOUNT);
39 if($user->conference_dinner) {
Marc Kupietz041d0ac2023-04-18 11:45:57 +020040 $net = $CONFERENCE_DINNER / (1 + $FULL_VAT);
41 $vat = $CONFERENCE_DINNER - $net;
42 $invoice->addItem('Conference Dinner' . ($user->vegetarian_dinner ? " (vegetarian option)" : ""), 'The conference dinner takes place on 20 July.', 1, false, $net, $vat, $CONFERENCE_DINNER);
43 $vat_sum += $vat;
Marc Kupietz7081be92023-03-20 19:46:55 +010044 }
Marc Kupietz79eaa0b2023-03-16 17:33:43 +010045 $lunch_count = 0;
46 $lunch_details = "";
47 $i = 0;
Marc Kupietz487abfe2023-04-15 14:00:56 +020048 if ($user->lunch_day_1 && $user->lunch_day_1 != "--") {
Marc Kupietz79eaa0b2023-03-16 17:33:43 +010049 if ($i > 0)
50 $lunch_details .= ", ";
51 $lunch_count++;
52 $lunch_details .= "Day 1: " . $user->lunch_day_1;
53 $i++;
54 }
Marc Kupietz487abfe2023-04-15 14:00:56 +020055 if ($user->lunch_day_2 && $user->lunch_day_2 != "--") {
Marc Kupietz79eaa0b2023-03-16 17:33:43 +010056 if ($i > 0)
57 $lunch_details .= ", ";
58 $lunch_count++;
59 $lunch_details .= "Day 2: " . $user->lunch_day_2;
60 $i++;
61 }
Marc Kupietz487abfe2023-04-15 14:00:56 +020062 if ($user->lunch_day_3 && $user->lunch_day_3 != "--") {
Marc Kupietz79eaa0b2023-03-16 17:33:43 +010063 if ($i > 0)
64 $lunch_details .= ", ";
65 $lunch_count++;
66 $lunch_details .= "Day 3: " . $user->lunch_day_3;
67 $i++;
68 }
69
Marc Kupietz041d0ac2023-04-18 11:45:57 +020070 if ($lunch_count > 0) {
71 $net = $lunch_count * $LUNCH / (1 + $FULL_VAT);
72 $vat = $lunch_count * $LUNCH - $net;
73 $vat_sum += $vat;
74 $invoice->addItem('Lunch', $lunch_details, $lunch_count, false, $net, $vat, $lunch_count * $LUNCH);
75
76 }
Marc Kupietza104b602023-03-20 21:29:34 +010077
Marc Kupietz8b80c7a2023-03-28 21:41:39 +020078 if ($user->excursion) {
Marc Kupietz041d0ac2023-04-18 11:45:57 +020079 $net = $EXCURSION / (1 + $FULL_VAT);
80 $vat = $EXCURSION - $net;
Marc Kupietz5fb0ac12023-04-19 10:26:39 +020081 $vat_sum += $vat;
82 $invoice->addItem('Guided City Walk', 'The Guided City Walk takes place in the late afternoon of 21 July.', 1, false, $net, $vat, $EXCURSION);
Marc Kupietz8b80c7a2023-03-28 21:41:39 +020083 }
84
Marc Kupietza104b602023-03-20 21:29:34 +010085 /* Add totals */
Marc Kupietz42a6fb52023-04-18 12:29:23 +020086 $invoice->addTotal('Net Sum', $user->total_due-$vat_sum);
Marc Kupietza104b602023-03-20 21:29:34 +010087
88 if ($vat_sum > 0) {
Marc Kupietz42a6fb52023-04-18 12:29:23 +020089 $invoice->addTotal("+" . $FULL_VAT * 100 . "% VAT", $vat_sum, false);
Marc Kupietza104b602023-03-20 21:29:34 +010090 }
Marc Kupietz49f677c2023-03-10 08:29:41 +010091 $invoice->addTotal('Total due', $user->total_due, true);
Marc Kupietzb411f462023-03-09 08:21:11 +010092
Marc Kupietz49f677c2023-03-10 08:29:41 +010093 $invoice->addTitle("Payment Details");
Marc Kupietzb411f462023-03-09 08:21:11 +010094
Marc Kupietz81065d32023-03-10 13:54:21 +010095 $invoice->addParagraph("Please transfer the total amount due to our account: ");
Marc Kupietz49f677c2023-03-10 08:29:41 +010096
Marc Kupietzf7b68eb2023-04-19 10:26:22 +020097 $invoice->addParagraph("Leibniz Institute for the German Language
Marc Kupietzb411f462023-03-09 08:21:11 +010098IBAN: DE70 6708 0050 0694 9411 00
99BIC: DRESDEFF670
100Commerzbank Mannheim
Marc Kupietz49f677c2023-03-10 08:29:41 +0100101Reference: ICLC-10-" . $user->id . "
Marc Kupietz728885c2023-03-20 19:45:34 +0100102
Marc Kupietz42f0c8f2023-03-20 19:47:25 +0100103If you have any questions about this invoice, please contact us via buchhaltung@ids-mannheim.de.
Marc Kupietzb411f462023-03-09 08:21:11 +0100104");
Marc Kupietz144d82e2023-03-26 15:55:42 +0200105 $invoice->setFooterNote("Leibniz Institute for the German Language, Civil Law Foundation, VAT ID: DE 143 845 359");
Marc Kupietz49f677c2023-03-10 08:29:41 +0100106
107 /* Render */
Marc Kupietz49f677c2023-03-10 08:29:41 +0100108 $ret = $invoice->render('example4.pdf', 'S'); /* I => Display on browser, D => Force Download, F => local path save, S => return document path */
109 return $ret;
110}
111
112/*
113$user = new User();
114$user->id = 107;
115$user->first_name = "John";
116$user->last_name = "Урсула";
117$user->organization = "Урсула ACME Inc.";
118$user->street = "123 Main St.";
119$user->zip = "12345";
120$user->city = "Mannheim";
121$user->country = "Germany";
Marc Kupietze9bcbc02023-03-20 21:29:59 +0100122$user->total_due = 285.0;
Marc Kupietz49f677c2023-03-10 08:29:41 +0100123$user->student = true;
Marc Kupietz7081be92023-03-20 19:46:55 +0100124$user->lunch_day_1 = "vegan";
125$user->lunch_day_2 = "non-vegetarian";
Marc Kupietz49f677c2023-03-10 08:29:41 +0100126$user->conference_dinner = true;
127create_invoice($user);
128*/
129?>