qr-bills 0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/locales/qrbills.fr.yml +2 -2
- data/lib/qr-bills/qr-creditor-reference.rb +3 -0
- data/lib/qr-bills/qr-generator.rb +1 -1
- data/lib/qr-bills/qr-html-layout.rb +4 -3
- data/lib/qr-bills/qr-params.rb +37 -5
- data/lib/qr-bills.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5858d9367a9a2242c2470ecbf9a78049bc10d204a49879cf56f5b3a030260547
|
4
|
+
data.tar.gz: 9c84b71d8f5dfb153dc30c9f708d5d85e029bf3a9044989d1681e1614d4a61a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0693596f364c324de432e87d79bea1b95f5d080ecfc7829cf37dfaf179940162ad56bc867b3adc2b8922c05e2c0f9c2cda2173f209a25dee27bc25a0efa1865b'
|
7
|
+
data.tar.gz: ba6f6ce3d2942ec51424324d9ace9c1e6c1cf2f50f091b9361c5b60fe3560dccb76e3e1864df28f5e2a360d5067ef8b57be4ee48f6d77dc86e397902ce734963
|
@@ -9,9 +9,9 @@ fr:
|
|
9
9
|
currency: monnaie
|
10
10
|
amount: montant
|
11
11
|
receipt: récépissé
|
12
|
-
acceptance_point:
|
12
|
+
acceptance_point: point de dépôt
|
13
13
|
separate_before_paying_in: à détacher avant le versement
|
14
14
|
payable_by: payable par
|
15
15
|
payable_by_name_addr: payable par (nom/adresse)
|
16
16
|
in_favour_of: en faveur de
|
17
|
-
name: name
|
17
|
+
name: name
|
@@ -4,6 +4,7 @@ require 'qr-bills/qr-exceptions'
|
|
4
4
|
module QRCreditorReference
|
5
5
|
PREFIX = "RF"
|
6
6
|
|
7
|
+
# chars values to calculate the check code
|
7
8
|
@char_values = {
|
8
9
|
"A": 10,
|
9
10
|
"B": 11,
|
@@ -56,6 +57,8 @@ module QRCreditorReference
|
|
56
57
|
reference_val += @char_values["R".to_sym].to_s + @char_values["F".to_sym].to_s + "00"
|
57
58
|
|
58
59
|
# get check code
|
60
|
+
# when performing the validation of the check code (n % 97)
|
61
|
+
# the remainder must be equal to 1, thus the 98
|
59
62
|
check_code = 98 - (reference_val.to_i % 97)
|
60
63
|
|
61
64
|
if check_code < 10
|
@@ -69,7 +69,7 @@ module QRGenerator
|
|
69
69
|
payload += "#{params[:bill_params][:additionally_information]}\r\n"
|
70
70
|
payload += "EPD\r\n"
|
71
71
|
payload += "#{params[:bill_params][:bill_information_coded]}\r\n"
|
72
|
-
payload += "#{params[:bill_params][:
|
72
|
+
payload += "#{params[:bill_params][:alternative_scheme_parameters]}\r\n"
|
73
73
|
|
74
74
|
qrcode = RQRCode::QRCode.new(payload)
|
75
75
|
|
@@ -8,6 +8,7 @@ module QRHTMLLayout
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.html_layout(params)
|
11
|
+
I18n.locale = params[:bill_params][:language]
|
11
12
|
layout = "<div class=\"bill_container\">\n"
|
12
13
|
layout += " <div class=\"receipt_section\">\n"
|
13
14
|
layout += " <div class=\"title\">#{I18n.t("qrbills.receipt").capitalize}</div>\n"
|
@@ -74,8 +75,8 @@ module QRHTMLLayout
|
|
74
75
|
layout += " <span class=\"finfo_header\">#{I18n.t("qrbills.name").capitalize} AV1:</span> #{params[:bill_params][:bill_information_coded]}\n"
|
75
76
|
end
|
76
77
|
|
77
|
-
if !params[:bill_params][:
|
78
|
-
layout += " <span class=\"finfo_header\">#{I18n.t("qrbills.name").capitalize} AV2:</span> #{params[:bill_params][:
|
78
|
+
if !params[:bill_params][:alternative_scheme_parameters].nil? && !params[:bill_params][:alternative_scheme_parameters].empty?
|
79
|
+
layout += " <span class=\"finfo_header\">#{I18n.t("qrbills.name").capitalize} AV2:</span> #{params[:bill_params][:alternative_scheme_parameters]}\n"
|
79
80
|
end
|
80
81
|
|
81
82
|
layout += " </div>\n"
|
@@ -232,4 +233,4 @@ module QRHTMLLayout
|
|
232
233
|
|
233
234
|
return layout
|
234
235
|
end
|
235
|
-
end
|
236
|
+
end
|
data/lib/qr-bills/qr-params.rb
CHANGED
@@ -24,7 +24,7 @@ module QRParams
|
|
24
24
|
reference: "", # qr reference or creditor reference (iso-11649)
|
25
25
|
additionally_information: "",
|
26
26
|
bill_information_coded: "",
|
27
|
-
|
27
|
+
alternative_scheme_parameters: "",
|
28
28
|
creditor: {
|
29
29
|
address: {
|
30
30
|
type: "S",
|
@@ -72,22 +72,54 @@ module QRParams
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def self.base_params_valid?(params)
|
75
|
-
|
75
|
+
if params[:bill_type] == "" || params[:bill_type] == nil
|
76
|
+
raise ArgumentError, "#{QRExceptions::INVALID_PARAMETERS}: bill type cannot be blank"
|
77
|
+
end
|
78
|
+
|
79
|
+
if params[:qrcode_filepath] == "" || params[:qrcode_filepath] == nil
|
80
|
+
raise ArgumentError, "#{QRExceptions::INVALID_PARAMETERS}: qrcode_filepath cannot be blank"
|
81
|
+
end
|
82
|
+
|
83
|
+
if params[:bill_params][:currency] == "" || params[:bill_params][:currency] == nil
|
84
|
+
raise ArgumentError, "#{QRExceptions::INVALID_PARAMETERS}: currency cannot be blank"
|
85
|
+
end
|
86
|
+
|
76
87
|
true
|
77
88
|
end
|
78
89
|
|
79
90
|
def self.qr_bill_with_qr_reference_valid?(params)
|
80
|
-
|
91
|
+
if params[:bill_params][:reference_type] != "QRR"
|
92
|
+
raise ArgumentError, "#{QRExceptions::INVALID_PARAMETERS}: reference type must be 'QRR' for QR bill with standard reference"
|
93
|
+
end
|
94
|
+
|
95
|
+
if params[:bill_params][:reference] == "" || params[:bill_params][:reference] == nil
|
96
|
+
raise ArgumentError, "#{QRExceptions::INVALID_PARAMETERS}: reference cannot be blank for QR bill with standard reference"
|
97
|
+
end
|
98
|
+
|
81
99
|
true
|
82
100
|
end
|
83
101
|
|
84
102
|
def self.qr_bill_with_creditor_reference_valid?(params)
|
85
|
-
|
103
|
+
if params[:bill_params][:reference_type] != "SCOR"
|
104
|
+
raise ArgumentError, "#{QRExceptions::INVALID_PARAMETERS}: reference type must be 'SCOR' for QR bill with (new) creditor reference"
|
105
|
+
end
|
106
|
+
|
107
|
+
if params[:bill_params][:reference] == "" || params[:bill_params][:reference] == nil
|
108
|
+
raise ArgumentError, "#{QRExceptions::INVALID_PARAMETERS}: reference cannot be blank for QR bill with (new) creditor reference"
|
109
|
+
end
|
110
|
+
|
86
111
|
true
|
87
112
|
end
|
88
113
|
|
89
114
|
def self.qr_bill_without_reference_valid?(params)
|
90
|
-
|
115
|
+
if params[:bill_params][:reference_type] != "NON"
|
116
|
+
raise ArgumentError, "#{QRExceptions::INVALID_PARAMETERS}: reference type must be 'NON' for QR bill without reference"
|
117
|
+
end
|
118
|
+
|
119
|
+
if params[:bill_params][:reference] != ""
|
120
|
+
raise ArgumentError, "#{QRExceptions::INVALID_PARAMETERS}: reference must be blank for QR bill without reference"
|
121
|
+
end
|
122
|
+
|
91
123
|
true
|
92
124
|
end
|
93
125
|
end
|
data/lib/qr-bills.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qr-bills
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Damiano Radice
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04
|
11
|
+
date: 2021-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|