diff --git a/gnucash/report/html-fonts.scm b/gnucash/report/html-fonts.scm index 5a18afcb0b..1ba759de4d 100644 --- a/gnucash/report/html-fonts.scm +++ b/gnucash/report/html-fonts.scm @@ -188,5 +188,7 @@ "td.centered-label-cell { text-align: center; " centered-label-cell-info " }\n" "sub { top: 0.4em; }\n" "sub, sup { vertical-align: baseline; position: relative; top: -0.4em; }\n" + ".qr-code-error { color: white; background-color: red }\n" + "@media print { .qr-code-error { display:none; }}\n" "@media print { html, body { height: unset; }}\n" (or (gnc:html-document-style-text doc) ""))))) diff --git a/gnucash/report/reports/standard/invoice.scm b/gnucash/report/reports/standard/invoice.scm index f04560313f..c3ad31a23d 100644 --- a/gnucash/report/reports/standard/invoice.scm +++ b/gnucash/report/reports/standard/invoice.scm @@ -295,6 +295,18 @@ for styling the invoice. Please see the exported report for the CSS class names. "u" (N_ "Extra notes to put on the invoice.") (G_ "Thank you for your patronage!")) + (gnc-register-multichoice-callback-option + options + (N_ "Display") (N_ "QR Code") + "te" "QR Code" + "none" + (list + (vector 'none (N_ "None") (N_ "None")) + (vector 'epc (N_ "EPC QR Code") (N_ "EPC QR Code"))) + (lambda _ + (gnc-optiondb-set-option-selectable-by-name + options "Display" "QR Code" (gnc-qrcode-available)))) + (gnc-register-multichoice-option options (N_ "Layout") (N_ "Row 1 Left") "1a" "1st row, left" @@ -738,6 +750,7 @@ for styling the invoice. Please see the exported report for the CSS class names. (else (G_ "Invoice")))) (title (if (string-null? custom-title) default-title custom-title)) + (opt-qrcode (opt-val "Display" "QR Code")) ;; Translators: This is the format of the invoice ;; title. The first ~a is one of "Invoice", "Credit ;; Note", and so on and the second the number. Replace @@ -828,6 +841,17 @@ for styling the invoice. Please see the exported report for the CSS class names. (multiline-to-html-text (string-append contact-str ": " contact))))))) + (cond + ((eq? opt-qrcode 'none) #f) + ((not (gnc-qrcode-available)) + (gnc:warn "invoice QR: libqrencode not available")) + ((eq? opt-qrcode 'epc) + (gnc:html-table-append-row! + main-table + (gnc:make-html-table-cell/size + 1 2 (apply gnc:make-html-div/markup (gnc:make-epc-qrcode invoice))))) + (else (gnc:warn "QR option invalid"))) + (gnc:html-table-append-row! main-table (gnc:make-html-table-cell/size 1 2 (gnc:make-html-div/markup