From 4d73afe3c5aee4c75c7eef286c7cc1cb8ce3cb17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Fri, 3 Jan 2025 16:56:59 +0100 Subject: [PATCH] Preliminary QR code embedding. --- src/Makefile | 5 +++-- src/export-web-static.scm | 11 ++++++++++- src/qr-payment.scm | 21 ++++++++++++++++----- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/Makefile b/src/Makefile index 5d5cae0..6e6d80e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -475,7 +475,8 @@ box-drawing.import.scm: $(BOX-DRAWING-SOURCES) EXPORT-WEB-STATIC-SOURCES=export-web-static.scm brmember.import.scm \ util-dir.import.scm mbase.import.scm \ members-payments.import.scm cal-day.import.scm \ - util-git.import.scm configuration.import.scm texts.import.scm + util-git.import.scm configuration.import.scm texts.import.scm \ + members-fees.import.scm qr-payment.import.scm export-web-static.o: export-web-static.import.scm export-web-static.import.scm: $(EXPORT-WEB-STATIC-SOURCES) @@ -579,7 +580,7 @@ MBASE-QUERY-SOURCES=mbase-query.scm mbase.import.scm \ mbase-query.o: mbase-query.import.scm mbase-query.import.scm: $(MBASE-QUERY-SOURCES) -QR-PAYMENT-SOURCES=qr-payment.scm +QR-PAYMENT-SOURCES=qr-payment.scm util-io.import.scm qr-payment.o: qr-payment.import.scm qr-payment.import.scm: $(QR-PAYMENT-SOURCES) diff --git a/src/export-web-static.scm b/src/export-web-static.scm index 4b0b15d..6ac3a3d 100644 --- a/src/export-web-static.scm +++ b/src/export-web-static.scm @@ -45,7 +45,9 @@ util-git configuration texts - logging) + logging + qr-payment + members-fees) ;; HTML entities (define (sanitize-html str) @@ -110,6 +112,13 @@ (print "") (print "") (print "
") + (let ((fee (member-calendar-entry->fee + (make-member-calendar-entry mr)))) + (print "Fee: " fee) + (print (make-brmlab-qrp-svg-string + fee "CZK" (brmember-id mr)))) + (print "
") + (print "
") (print "

Payments History

") (print "") (print "") diff --git a/src/qr-payment.scm b/src/qr-payment.scm index be79b50..0c28ac6 100644 --- a/src/qr-payment.scm +++ b/src/qr-payment.scm @@ -36,7 +36,8 @@ (import scheme (chicken format) (chicken string) - (chicken base)) + (chicken base) + util-io) (define (make-empty-qrp . vs) (let ((v (if (null? vs) "1.0" (car vs)))) @@ -54,7 +55,7 @@ (string->number amt) amt)) (s (number->string n)) - (f (string-split str ".")) + (f (string-split s ".")) (i? (null? (cdr f)))) (format "~A.~A" (car f) @@ -65,7 +66,7 @@ 0 2))))) (define (make-qrp iban amt cc vs msg) - (let loop ((keys '(ACC AM CC MSG X-CS)) + (let loop ((keys '(ACC AM CC MSG X-VS)) (vals (list iban (ensure-amount-format amt) cc msg vs)) (qrp (make-empty-qrp))) (if (null? keys) @@ -83,8 +84,18 @@ (make-qrp iban amt cc vs "Brmlab"))) (define (qrp-create-svg-string qrps) - ;; qrencode -t svg -o - -l M - "TODO") + (let-values + (((ec ol) + (get-process-exit+output-lines + "qrencode" + "-t" "svg" + "--inline" + "-o" "-" + "-l" "M" + qrps))) + (if (eq? ec 0) + (string-intersperse ol "\n") + #f))) (define (make-brmlab-qrp-svg-string amt cc vs) (qrp-create-svg-string
DateTypeCommentAmountCurrencyAmount [CZK]Balance