From 6a5767e4f169e25c69023aba9f8147d1decc5cc5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andrej=20Rama=C5=A1euski?= <andrej@x2.cz>
Date: Mon, 27 Mar 2023 22:01:50 +0200
Subject: [PATCH] QR dle pretix kodu

---
 .gitlab-ci.yml                  |  2 +-
 lib/CF2022/Controller/Orders.pm | 22 +++++++++++++++++-----
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3b84be9..9080fd4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,7 +2,7 @@ image: docker:20.10.9
 
 variables:
   DOCKER_TLS_CERTDIR: "/certs"
-  IMAGE_VER: 0.15.2
+  IMAGE_VER: 0.16.0
 
 services:
   - docker:20.10.9-dind
diff --git a/lib/CF2022/Controller/Orders.pm b/lib/CF2022/Controller/Orders.pm
index c2fd808..328d053 100644
--- a/lib/CF2022/Controller/Orders.pm
+++ b/lib/CF2022/Controller/Orders.pm
@@ -5,7 +5,7 @@ use Mojo::Asset::File;
 use Image::PNG::QRCode 'qrpng';
 
 use constant TPL_VS      => '%d%07d';
-use constant TPL_PAYMENT => 'SPD*1.0*ACC:%s*AM:%f*MSG:%s, %s*X-ID:%s*X-VS:%d*X-SS:%d*X-KS:%d';
+use constant TPL_PAYMENT => 'SPD*1.0*ACC:%s*AM:%.2f*MSG:%s, %s*X-ID:%s*X-VS:%d*X-SS:%d*X-KS:%d';
 
 use feature 'signatures';
 no warnings qw{ experimental::signatures };
@@ -235,10 +235,20 @@ sub get ($c ) {
 }
 
 sub qr ($c) {
-    my $order = $c->schema->resultset('Order')->find({
-        id  => $c->stash->{id},
-        deleted  => undef,
-    });
+    my $order;
+
+    if ( $c->stash->{id} =~ /\D/) {
+        $order = $c->schema->resultset('Order')->search({
+            order_id  => {ilike => $c->stash->{id}},
+            deleted  => undef,
+        })->first;
+    }
+    else {
+        $order = $c->schema->resultset('Order')->find({
+            id  => $c->stash->{id},
+            deleted  => undef,
+        });
+    }
 
     return $c->error(404, 'NOT FOUND') if ! $order;
 
@@ -255,6 +265,8 @@ sub qr ($c) {
         $pr->{ks},
     );
 
+    $c->trace($payment);
+
     my $png = qrpng (text => $payment, level => 4);
 
     $c->res->headers->content_type('image/png');
-- 
GitLab