| 1 |
(in-package :bos.m2) |
|---|
| 2 |
|
|---|
| 3 |
;;;; Generierung von Spender-Zertifikaten. |
|---|
| 4 |
|
|---|
| 5 |
;; Die Spender-Zertifikate werden als PDF-Vorlagen erzeugt und fÃŒr die |
|---|
| 6 |
;; unterschiedlichen Sprachversionen als Dateien auf dem Server |
|---|
| 7 |
;; hinterlegt. Sie enthalten fÃŒr die variablen Daten Formularfelder, |
|---|
| 8 |
;; die bestimmte Namen haben mÃŒssen. Das LISP-System erzeugt |
|---|
| 9 |
;; FDF-Dateien mit den entsprechenden Formulardaten, die mit Hilfe des |
|---|
| 10 |
;; Tools "pdftk" in die PDF-Vorlage eingetragen und so zu einer |
|---|
| 11 |
;; fertigen Urkunde fÃŒr den Download kombiniert werden. |
|---|
| 12 |
|
|---|
| 13 |
;; Falls das Spendenvolumen eine konfigurierbare Summe ÃŒbersteigt, |
|---|
| 14 |
;; wird ein ansonsten leeres PDF ausgefÃŒllt, welches vom Personal des |
|---|
| 15 |
;; Betreibers auf entsprechende Urkunden-Papierformulare ausgedruckt |
|---|
| 16 |
;; und per Post an den Sponsor geschickt wird. FÃŒr geringe |
|---|
| 17 |
;; Spenden-Volumina wird eine komplette Urkunde als PDF erzeugt und |
|---|
| 18 |
;; zum Download durch den Spender bereitgehalten. |
|---|
| 19 |
|
|---|
| 20 |
;; Der Versand der Urkunde per Post kann vom Spender unterdrÃŒckt |
|---|
| 21 |
;; werden, wenn er die Kosten sparen möchte. |
|---|
| 22 |
|
|---|
| 23 |
;; Das Erzeugen der Urkunden und der Versand per Email erfolgt |
|---|
| 24 |
;; ausserhalb des LISP-Systems. Dieses legt die erzeugten FDF-Dateien |
|---|
| 25 |
;; in einem Spool-Verzeichnis ab, wo sie von einer externen Software |
|---|
| 26 |
;; eingesammelt, mit den Vorlagen kombiniert und per Mail verschickt |
|---|
| 27 |
;; bzw. im Dateisystem fÃŒr den Download durch den Spender abgelegt |
|---|
| 28 |
;; werden. |
|---|
| 29 |
|
|---|
| 30 |
(defun make-certificate (contract name &key print (address "") (language "en")) |
|---|
| 31 |
"Erzeugen einer FDF-Datei fÃŒr das AusfÃŒllen der Urkunde. Wenn das |
|---|
| 32 |
optionale address-Argument ÃŒbergeben wird, wird die Urkunde per Post |
|---|
| 33 |
verschickt und entsprechend eine andere Vorlage ausgewÀhlt als fÌr den |
|---|
| 34 |
Download der Urkunde" |
|---|
| 35 |
(let ((sponsor (contract-sponsor contract))) |
|---|
| 36 |
(make-m2-pdf contract |
|---|
| 37 |
:print print |
|---|
| 38 |
:template (make-pathname :name (format nil "urkunde-~A-~A" |
|---|
| 39 |
(if print "print" "download") |
|---|
| 40 |
language) |
|---|
| 41 |
:type "pdf" |
|---|
| 42 |
:defaults *pdf-base-directory*)) |
|---|
| 43 |
(make-fdf-file (contract-fdf-pathname contract |
|---|
| 44 |
:language language |
|---|
| 45 |
:print print) |
|---|
| 46 |
:datum (format-date-time (contract-date contract) :show-time nil) |
|---|
| 47 |
:name name |
|---|
| 48 |
:address address |
|---|
| 49 |
:sponsor-id (sponsor-id sponsor) |
|---|
| 50 |
:master-code (sponsor-master-code sponsor) |
|---|
| 51 |
:sqm-count (length (contract-m2s contract))))) |
|---|