2c26630001b193353abb5d38589d3ed3cb1ecbba
bernd Kunden können Ihre Rechnung...

bernd authored 16 years ago

1) <?php
Bernd Wurst Added license tags for CC0,...

Bernd Wurst authored 12 years ago

2) /*
3) This file belongs to the Webinterface of schokokeks.org Hosting
4) 
Bernd Wurst Lizenzinfos in eigenes Modu...

Bernd Wurst authored 10 years ago

5) Written 2008-2014 by schokokeks.org Hosting, namely
Bernd Wurst Added license tags for CC0,...

Bernd Wurst authored 12 years ago

6)   Bernd Wurst <bernd@schokokeks.org>
7)   Hanno Böck <hanno@schokokeks.org>
8) 
9) To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
10) 
11) You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see 
12) http://creativecommons.org/publicdomain/zero/1.0/
13) 
14) Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
15) */
bernd Kunden können Ihre Rechnung...

bernd authored 16 years ago

16) 
17) require_once('session/start.php');
Bernd Wurst Neues Layout der Rechnungs-...

Bernd Wurst authored 9 years ago

18) require_once('inc/icons.php');
bernd Kunden können Ihre Rechnung...

bernd authored 16 years ago

19) 
20) require_once('invoice.php');
21) 
22) require_role(ROLE_CUSTOMER);
23) 
bernd Benutze überall title() sta...

bernd authored 13 years ago

24) title('Rechnungen');
bernd Kunden können Ihre Rechnung...

bernd authored 16 years ago

25) 
Bernd Wurst Zeige zunächst nur unbezahl...

Bernd Wurst authored 11 years ago

26) $show_paid = (isset($_GET['paid']) && $_GET['paid'] == '1');
27) 
bernd Kunden können Ihre Rechnung...

bernd authored 16 years ago

28) $invoices = my_invoices();
29) 
Bernd Wurst Neues Layout der Rechnungs-...

Bernd Wurst authored 9 years ago

30) $first = true;
Bernd Wurst Zeige zunächst nur unbezahl...

Bernd Wurst authored 11 years ago

31) $invoices_to_show = array();
32) foreach ($invoices as $i) {
Bernd Wurst Neues Layout der Rechnungs-...

Bernd Wurst authored 9 years ago

33)   if ($first || $show_paid || $i['bezahlt'] == 0) {
34)     $first = false;
Bernd Wurst Zeige zunächst nur unbezahl...

Bernd Wurst authored 11 years ago

35)     array_push($invoices_to_show, $i);
36)   }
37) }
38) 
39) if (count($invoices_to_show) == 0) {
Bernd Wurst Neues Layout der Rechnungs-...

Bernd Wurst authored 9 years ago

40)   $error = 'Keine aktuelle Rechnung gefunden.';
Bernd Wurst Zeige zunächst nur unbezahl...

Bernd Wurst authored 11 years ago

41)   if (count($invoices) == 0) {
42)     $error = 'Bisher keine Rechnungen vorhanden.';
43)   }
44)   if ($show_paid) {
45)   }
bernd Kunden können Ihre Rechnung...

bernd authored 16 years ago

46) 
Bernd Wurst Zeige zunächst nur unbezahl...

Bernd Wurst authored 11 years ago

47)   output('<p><em>'.$error.'</em></p>');
48) } else {
Bernd Wurst Offene Rechnungen fablich h...

Bernd Wurst authored 11 years ago

49)   if ($show_paid) {
50)     output('<p>Hier können Sie Ihre bisherigen Rechnungen einsehen und herunterladen.</p>');
51)   } else {
Bernd Wurst Neues Layout der Rechnungs-...

Bernd Wurst authored 9 years ago

52)     output('<p>Hier sehen Sie Ihre neueste Rechnung. Ältere, bereits bezahlte Rechnungen können sie über den untenstehenden Link einblenden.</p>');
Bernd Wurst Offene Rechnungen fablich h...

Bernd Wurst authored 11 years ago

53)   }
Bernd Wurst Neues Layout der Rechnungs-...

Bernd Wurst authored 9 years ago

54)   output('<table class="nogrid"><tr><th>Nr.</th><th>Datum</th><th>Gesamtbetrag</th><th>bezahlt?</th><th>Herunterladen</th></tr>');
Bernd Wurst Zeige zunächst nur unbezahl...

Bernd Wurst authored 11 years ago

55) 
Bernd Wurst Neues Layout der Rechnungs-...

Bernd Wurst authored 9 years ago

56)   $odd = true;
Bernd Wurst Zeige zunächst nur unbezahl...

Bernd Wurst authored 11 years ago

57)   foreach($invoices_to_show AS $invoice)
58)   {
59) 	  $bezahlt = 'Nein';
Bernd Wurst Offene Rechnungen fablich h...

Bernd Wurst authored 11 years ago

60)     $class = 'unpaid';
61)   	if ($invoice['bezahlt'] == 1) {
Bernd Wurst Zeige zunächst nur unbezahl...

Bernd Wurst authored 11 years ago

62) 	  	$bezahlt = 'Ja';
Bernd Wurst Offene Rechnungen fablich h...

Bernd Wurst authored 11 years ago

63)       $class = 'paid';
Bernd Wurst Vorgemerkte Lastschriften a...

Bernd Wurst authored 10 years ago

64)     } else {
65)       $l = get_lastschrift($invoice['id']);
66)       if ($l) {
67)         $bezahlt = 'Wird abgebucht<br/>am '.$l['buchungsdatum'];
68)         $class = 'paid';
Bernd Wurst Zeige Rechnungen zu rückgeb...

Bernd Wurst authored 9 years ago

69)         if ($l['status'] == 'rejected') {
70)           $bezahlt  = 'Abbuchung zurückgewiesen';
71)           $class = 'unpaid';
72)         }
Bernd Wurst Vorgemerkte Lastschriften a...

Bernd Wurst authored 10 years ago

73)       }
Bernd Wurst Offene Rechnungen fablich h...

Bernd Wurst authored 11 years ago

74)     }
Bernd Wurst Neues Layout der Rechnungs-...

Bernd Wurst authored 9 years ago

75)     $odd = !$odd;
76)     $class .= ($odd ? " odd" : " even");
77)   	output("<tr class=\"{$class}\"><td class=\"number\">".internal_link("html", $invoice['id'], "id={$invoice['id']}")."</td><td>{$invoice['datum']}</td><td class=\"number\">{$invoice['betrag']} €</td><td>{$bezahlt}</td><td>".internal_link("pdf", "<img src=\"{$prefix}images/pdf.png\" width=\"22\" height=\"22\" alt=\"PDF\"/>", "id={$invoice['id']}")."</td></tr>\n");
Bernd Wurst Zeige zunächst nur unbezahl...

Bernd Wurst authored 11 years ago

78)   }
79) 
Bernd Wurst Neues Layout der Rechnungs-...

Bernd Wurst authored 9 years ago

80)   output('</table>');
bernd Kunden können Ihre Rechnung...

bernd authored 16 years ago

81) }
82) 
Bernd Wurst Zeige zunächst nur unbezahl...

Bernd Wurst authored 11 years ago

83) if (! $show_paid) {
Bernd Wurst Neues Layout der Rechnungs-...

Bernd Wurst authored 9 years ago

84)   $number = count($invoices) - count($invoices_to_show);
85)   if ($number > 0) {
86)     output('<p>'.internal_link('', other_icon('control_fastforward.png')." Zeige $number ältere Rechnungen", 'paid=1').'</p>');
87)   }
Bernd Wurst Zeige zunächst nur unbezahl...

Bernd Wurst authored 11 years ago

88) }
bernd Rechnungen unterhalb von "Ü...

bernd authored 14 years ago

89) 
bernd Kunden können Ihre Rechnung...

bernd authored 16 years ago

90) 
Bernd Wurst Erste Version des SEPA-Mand...

Bernd Wurst authored 10 years ago

91) output('<h3>Bezahlung per Lastschrift</h3>');
92) 
93) output('<p>Gerne buchen wir Ihre Beiträge von Ihrem Konto ab. Bei Lastschriftzahlung werden Sie durch Zustellung einer Rechnung informiert, die Abbuchung erfolgt dann eine Woche später.</p>');
94) 
95) $mandate = get_sepamandate();
96) if ($mandate) {
97)   output('<p>Folgende Mandate sind bisher erteilt worden (momentan gültiges Mandat ist Fett dargestellt):</p>
98) <table>
99) <tr><th>Mandatsreferenz</th><th>IBAN</th><th>Gültigkeit</th></tr
100) ');
101)   foreach ($mandate as $m) {
102)     $gueltig = 'ab '.$m['gueltig_ab'];
Bernd Wurst Kleine Korrekturen Ausführu...

Bernd Wurst authored 10 years ago

103)     if ($m['gueltig_ab'] < date('Y-m-d')) {
104)       $gueltig = 'seit '.$m['gueltig_ab'];
105)     }
Bernd Wurst Erste Version des SEPA-Mand...

Bernd Wurst authored 10 years ago

106)     if ($m['gueltig_bis']) {
107)       $gueltig = $m['gueltig_ab'].' - '.$m['gueltig_bis'];
108)     }
109)     $aktiv = false;
110)     if ($m['gueltig_ab'] <= date('Y-m-d') && ($m['gueltig_bis'] == NULL || $m['gueltig_bis'] >= date('Y-m-d'))) {
111)       $aktiv = true;
112)     }
113)     output('<tr><td'.($aktiv ? ' style="font-weight: bold;"' : '').'>'.internal_link('sepamandat_detail', $m['mandatsreferenz'], 'ref='.$m['mandatsreferenz']).'</td><td>'.$m['iban'].'</td><td>'.$gueltig.'</td></tr>');
114)   }
115)   output('</table>');
116) }
117) 
118) 
Bernd Wurst Typo / Schönheitskorrektur

Bernd Wurst authored 10 years ago

119) if ($mandate) {
Bernd Wurst typo

Bernd Wurst authored 10 years ago

120)   addnew('sepamandat', 'Hat sich Ihre Bankverbindung geändert? Erteilen Sie uns ein neues Lastschrift-Mandat');
Bernd Wurst Typo / Schönheitskorrektur

Bernd Wurst authored 10 years ago

121) } else {
122)   addnew('sepamandat', 'Erteilen Sie uns ein Lastschrift-Mandat');
123) }
Bernd Wurst Erste Version des SEPA-Mand...

Bernd Wurst authored 10 years ago

124) 
125) output('<p>Sie können Ihr Mandat jederzeit widerrufen. Senden Sie uns dazu bitte eine entsprechende E-Mail.</p>');
126) 
127) 
bernd Kunden können Ihre Rechnung...

bernd authored 16 years ago

128) 
Bernd Wurst Neues Layout der Rechnungs-...

Bernd Wurst authored 9 years ago

129) output("<h3>Offene und zukünftige Rechnungsposten</h3>");
130) output('<p>Hier sehen Sie einen Überblick über Posten die in den nächsten 3 Monaten fällig werden.</p>');
131) 
132) 
133) output('<p style="margin: 1em; padding: 1em; border: 2px solid red; background: white;"><strong>Hinweis:</strong> Die hier aufgeführten Posten dienen nur Ihrer Information und erheben keinen Anspruch auf Vollständigkeit. Aus technischen Gründen sind manche Posten hier nicht aufgeführt, die dennoch berechnet werden. Zudem können, bedingt durch Rundungsfehler, die Beträge auf dieser Seite falsch dargestellt sein. Wiederkehrende Beträge werden grundsätzlich nur für den nächsten Abrechnungszeitraum angezeigt.</p>');
134) 
135) $items = upcoming_items();
136) $summe = 0;
137) 
138) $flip = true;
139) $today = date('Y-m-d');
140) $max_date = date('Y-m-d', strtotime('+3 months'));
141) output('<table><tr><th>Anzahl</th><th>Beschreibung</th><th>Zeitraum</th><th>Einzelpreis</th><th>Gesamtbetrag</th></tr>');
142) 
143) $counter = 0;
144) 
145) $more = false;
146) $odd = false;
147) 
148) foreach($items AS $item)
149) {
150)   if ($item['startdatum'] > $max_date) {
151)     $more = true;
152)     break;
153)   }
154) 	if ($flip && $item['startdatum'] > $today)
155) 	{
156)     if ($counter == 0) {
157)       output("<tr class=\"even\"><td colspan=\"5\"><em>Aktuell keine fälligen Posten</em></td></tr>");
158)     }
159) 		$flip = false;
160)     $odd = false;
161) 		output("<tr class=\"even\"><td colspan=\"4\" style=\"text-align: right; font-weight: bold; border: none;\">Summe bisher fällige Posten:</td>");
162) 		output("<td class=\"number\" style=\"font-weight: bold;\">{$summe} €</td></tr>\n");
163) 		output("<tr><td colspan=\"5\" style=\"border: none;\"> </td></tr>\n");
164) 	}
165)   $counter++;
166) 	$desc = $item['startdatum'];
167) 	if ($item['enddatum'] != NULL)
168) 		$desc = $item['startdatum'].' - '.$item['enddatum'];
169) 	$epreis = $item['betrag'];
170) 	if ($item['brutto'] == 0)
171) 		$epreis = $epreis * (1 + ($item['mwst'] / 100));
172) 	$gesamt = round($epreis * $item['anzahl'], 2);
173) 	$epreis = round($epreis, 2);
174) 	$summe += $gesamt;
175)   $einheit = ($item['einheit'] ? $item['einheit'] : '');
176)   $class = ($odd ? "odd" : "even");
177)   $odd = !$odd;
178) 	output("<tr class=\"$class\"><td class=\"number\">{$item['anzahl']} {$einheit}</td>");
179) 	output("<td>{$item['beschreibung']}</td><td>{$desc}</td>");
180) 	output("<td class=\"number\">{$epreis} €</td><td class=\"number\">{$gesamt} €</td></tr>\n");
181) }
182) 
183) if ($counter) {
184)   output("<tr class=\"even\"><td colspan=\"4\" style=\"text-align: right; font-weight: bold; border: none;\">Summe aller Posten:</td>");
185)   output("<td style=\"font-weight: bold;\" class=\"number\">{$summe} €</td></tr>\n");
186)   output('</table>');
187) } else {
188)   output("<tr class=\"even\"><td colspan=\"5\"><em>Es sind keine Posten hinterlegt, die in den nächsten 3 Monaten fällig werden.</em></td></tr></table>");
189) }
190) 
191) if ($more) {
192)   output('<p>'.internal_link('upcoming', other_icon('control_fastforward.png').' Alle zukünftigen Rechnungsposten anzeigen').'</p>');
193) }