From bbbc6527a0fec3330092a7f044009863913be29e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Fri, 3 Jan 2025 11:34:18 +0100 Subject: [PATCH] Ensure proper amount format and prepare for generating QR code. --- src/qr-payment.scm | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/qr-payment.scm b/src/qr-payment.scm index ed59c4f..be79b50 100644 --- a/src/qr-payment.scm +++ b/src/qr-payment.scm @@ -30,6 +30,7 @@ ( make-qrp make-brmlab-qrp + make-brmlab-qrp-svg-string ) (import scheme @@ -49,9 +50,19 @@ (string-intersperse (reverse qrp) "*")) (define (ensure-amount-format amt) - (if (string? amt) - amt - amt)) + (let* ((n (if (string? amt) + (string->number amt) + amt)) + (s (number->string n)) + (f (string-split str ".")) + (i? (null? (cdr f)))) + (format "~A.~A" + (car f) + (if i? + ".00" + (substring + (string-append (cadr f) "0") + 0 2))))) (define (make-qrp iban amt cc vs msg) (let loop ((keys '(ACC AM CC MSG X-CS)) @@ -71,6 +82,12 @@ (error "Invalid currency!"))))) (make-qrp iban amt cc vs "Brmlab"))) - (print (make-brmlab-qrp 1000 "CZK" 1234)) + (define (qrp-create-svg-string qrps) + ;; qrencode -t svg -o - -l M + "TODO") + + (define (make-brmlab-qrp-svg-string amt cc vs) + (qrp-create-svg-string + (make-brmlab-qrp amt cc vs))) )