Ensure proper amount format and prepare for generating QR code.

This commit is contained in:
Dominik Pantůček 2025-01-03 11:34:18 +01:00
parent 306b9cb20e
commit bbbc6527a0

View file

@ -30,6 +30,7 @@
( (
make-qrp make-qrp
make-brmlab-qrp make-brmlab-qrp
make-brmlab-qrp-svg-string
) )
(import scheme (import scheme
@ -49,9 +50,19 @@
(string-intersperse (reverse qrp) "*")) (string-intersperse (reverse qrp) "*"))
(define (ensure-amount-format amt) (define (ensure-amount-format amt)
(if (string? amt) (let* ((n (if (string? amt)
amt (string->number amt)
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) (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-CS))
@ -71,6 +82,12 @@
(error "Invalid currency!"))))) (error "Invalid currency!")))))
(make-qrp iban amt cc vs "Brmlab"))) (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)))
) )