blob: d0beef2b9a8339735806fe5b669e80c39e80bcd8 [file] [log] [blame]
Marc Kupietz9879bc22023-03-09 08:21:11 +01001<?php
2
Marc Kupietzce676312023-03-10 08:29:41 +01003include_once 'User.php';
4use \User as User;
5
6require 'vendor/autoload.php';
Marc Kupietz9879bc22023-03-09 08:21:11 +01007
8use Konekt\PdfInvoice\InvoicePrinter;
9
Marc Kupietzce676312023-03-10 08:29:41 +010010#include_once '../src/InvoicePrinter.php';
11include 'config.php';
Marc Kupietz9879bc22023-03-09 08:21:11 +010012
Marc Kupietzce676312023-03-10 08:29:41 +010013function create_invoice(User $user)
14{
Marc Kupietz8701abd2023-03-16 17:33:43 +010015 global $SERVICE_ACRONYM, $SERVICE_NAME, $SERVICE_LOGO, $REGULAR_CONFERENCE_FEE, $EARLYBIRD_CONFERENCE_FEE, $STUDENT_DISCOUNT, $CONFERENCE_DINNER, $LUNCH;
Marc Kupietz9879bc22023-03-09 08:21:11 +010016
Marc Kupietzce676312023-03-10 08:29:41 +010017 $invoice = new InvoicePrinter("A4", "€", "en");
18 $invoice->lang['product'] = "Item";
19 /* Header Settings */
20 $invoice->setLogo(str_replace(".svg", ".png", $SERVICE_LOGO));
21 $invoice->setColor('#4bb044');
22 $invoice->setType('Invoice');
23 $invoice->setReference('ICLC-10-' . $user->id);
24 $invoice->setDate(date('Y-m-d', time()));
25 $invoice->setFrom(['', 'Leibniz-Institute for the German Language', 'R5 6-13', '68181 Mannheim', 'Germany']);
26 $invoice->setTo([$user->first_name . ' ' . $user->last_name, $user->organization, $user->street, $user->zip . ' ' . $user->city, $user->country]);
27 $invoice->setDue(date('Y-m-d', strtotime('+2 weeks')));
28 // $invoice->hide_tofrom();
29 /* Adding Items in table */
30 if ($user->earlybird_registration) {
31 $invoice->addItem( $SERVICE_ACRONYM . ' Early Bird Registration', $SERVICE_NAME, 1, false, $EARLYBIRD_CONFERENCE_FEE, false, $EARLYBIRD_CONFERENCE_FEE);
32 } else
33 $invoice->addItem( $SERVICE_ACRONYM . ' Registration', $SERVICE_NAME, 1, false, $REGULAR_CONFERENCE_FEE, false, $REGULAR_CONFERENCE_FEE);
34 if($user->student) $invoice->addItem('Student Discount', 'Student discount', 1, false, "", $STUDENT_DISCOUNT, -$STUDENT_DISCOUNT);
35 if($user->conference_dinner)
36 $invoice->addItem('Conference Dinner', 'The conference dinner will take place on 20 July.', 1, false, $CONFERENCE_DINNER, false, $CONFERENCE_DINNER);
37 /* Add totals */
38 $invoice->addTotal('Total', $user->total_due);
Marc Kupietz8701abd2023-03-16 17:33:43 +010039 $lunch_count = 0;
40 $lunch_details = "";
41 $i = 0;
42 if ($user->lunch_day_1) {
43 if ($i > 0)
44 $lunch_details .= ", ";
45 $lunch_count++;
46 $lunch_details .= "Day 1: " . $user->lunch_day_1;
47 $i++;
48 }
49 if ($user->lunch_day_2) {
50 if ($i > 0)
51 $lunch_details .= ", ";
52 $lunch_count++;
53 $lunch_details .= "Day 2: " . $user->lunch_day_2;
54 $i++;
55 }
56 if ($user->lunch_day_3) {
57 if ($i > 0)
58 $lunch_details .= ", ";
59 $lunch_count++;
60 $lunch_details .= "Day 3: " . $user->lunch_day_3;
61 $i++;
62 }
63
64 if ($lunch_count > 0)
65 $invoice->addItem('Lunch', $lunch_details, $lunch_count, false, $LUNCH, false, $lunch_count * $LUNCH);
Marc Kupietzce676312023-03-10 08:29:41 +010066 // $invoice->addTotal('Discount', $STUDENT_DISCOUNT);
67 $invoice->addTotal('Total due', $user->total_due, true);
Marc Kupietz9879bc22023-03-09 08:21:11 +010068
Marc Kupietzce676312023-03-10 08:29:41 +010069 $invoice->addTitle("Payment Details");
Marc Kupietz9879bc22023-03-09 08:21:11 +010070
Marc Kupietzb9763622023-03-10 13:54:21 +010071 $invoice->addParagraph("Please transfer the total amount due to our account: ");
Marc Kupietzce676312023-03-10 08:29:41 +010072
73 $invoice->addParagraph("Leibniz-Institute for the German Language
Marc Kupietz9879bc22023-03-09 08:21:11 +010074IBAN: DE70 6708 0050 0694 9411 00
75BIC: DRESDEFF670
76Commerzbank Mannheim
Marc Kupietzce676312023-03-10 08:29:41 +010077
78Reference: ICLC-10-" . $user->id . "
Marc Kupietz9879bc22023-03-09 08:21:11 +010079");
Marc Kupietzce676312023-03-10 08:29:41 +010080 //$invoice->setFooterNote("xx");
81
82 /* Render */
Marc Kupietzce676312023-03-10 08:29:41 +010083 $ret = $invoice->render('example4.pdf', 'S'); /* I => Display on browser, D => Force Download, F => local path save, S => return document path */
84 return $ret;
85}
86
87/*
88$user = new User();
89$user->id = 107;
90$user->first_name = "John";
91$user->last_name = "Урсула";
92$user->organization = "Урсула ACME Inc.";
93$user->street = "123 Main St.";
94$user->zip = "12345";
95$user->city = "Mannheim";
96$user->country = "Germany";
97$user->total_due = 260.0;
98$user->student = true;
99$user->conference_dinner = true;
100create_invoice($user);
101*/
102?>