root/trunk/projects/bos/m2/make-certificate.lisp

Revision 4007, 2.6 kB (checked in by hans, 1 month ago)

Certificate generation fixes

  • Property svn:eol-style set to native
  • Property svn:keywords set to author date id revision
Line 
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)))))
Note: See TracBrowser for help on using the browser.