qr-bills 1.0.10 → 1.0.11
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/lib/qr-bills.rb +31 -0
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1e85a0928abfb125572539a4fbf99b331c789e2c21fd425b9c94736cb4fe8d8
|
4
|
+
data.tar.gz: 59788940942a55e4f30cf13a17c9ae8a20aeab4a925633bb8967cf2cc8c59fc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9549f75f73c43ec82593358bb088454ce462eef5aa6ad71b2b83f95d432918dd30733abe0818435fe077797b1b9a01c7c9a5f2712bfd47a59596800789ae49b
|
7
|
+
data.tar.gz: 522b9bc62b6f80de240080390ca7a62a1ea116731bc2046d0339706c08b90f5a1be257bf31f5414bcb8a53529ada4cd410a3d7edf7195f958a22608551b2442e
|
data/lib/qr-bills.rb
CHANGED
@@ -26,10 +26,41 @@ module QRBills
|
|
26
26
|
{ params: qr_params, output: output }
|
27
27
|
end
|
28
28
|
|
29
|
+
# Given a creditor's IBAN number, this method checks whether an IBAN is of the new qr or the legacy esr type.
|
30
|
+
# When generating a bill with a reference number, that number must be generated using the following method if this helper returns:
|
31
|
+
# - :qr => create_creditor_reference
|
32
|
+
# - :esr => create_esr_creditor_reference
|
33
|
+
def self.iban_type(iban)
|
34
|
+
return nil if iban.blank?
|
35
|
+
iban_institute_identifier = iban.strip.gsub(' ', '')[4..8].to_i
|
36
|
+
return iban_institute_identifier.between?(30_000, 31_999) ? :qr : :esr
|
37
|
+
end
|
38
|
+
|
29
39
|
def self.create_creditor_reference(reference)
|
30
40
|
QRCreditorReference.create(reference)
|
31
41
|
end
|
32
42
|
|
43
|
+
# ESR reference should be considered "deprecated" and is here for backward compatibility
|
44
|
+
# This is based on: http://sahits.ch/blog/blog/2007/11/08/uberprufen-esr-referenz-nummer/
|
45
|
+
def self.create_esr_creditor_reference(reference)
|
46
|
+
raise ArgumentError, "#{QRExceptions::INVALID_PARAMETERS}: You must provide a 26 digit reference for ESR." unless reference.size == 26
|
47
|
+
raise ArgumentError, "#{QRExceptions::INVALID_PARAMETERS}: You must provide a valid digit for ESR." unless reference.to_i.to_s == reference
|
48
|
+
|
49
|
+
esr = "#{reference}0"
|
50
|
+
lookup_table = [0, 9, 4, 6, 8, 2, 7, 1, 3, 5]
|
51
|
+
next_val = 0
|
52
|
+
|
53
|
+
(0...esr.length - 1).each do |i|
|
54
|
+
ch = esr[i]
|
55
|
+
n = ch.to_i
|
56
|
+
index = (next_val + n) % 10
|
57
|
+
next_val = lookup_table[index]
|
58
|
+
end
|
59
|
+
|
60
|
+
result = (10 - next_val) % 10
|
61
|
+
return result
|
62
|
+
end
|
63
|
+
|
33
64
|
def self.get_qr_params
|
34
65
|
QRParams.get_qr_params
|
35
66
|
end
|
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: 1.0.
|
4
|
+
version: 1.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Damiano Radice
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -134,7 +134,7 @@ files:
|
|
134
134
|
- web/assets/images/swiss_cross.svg
|
135
135
|
homepage: https://github.com/damoiser/qr-bills
|
136
136
|
licenses:
|
137
|
-
-
|
137
|
+
- BSD-3-Clause
|
138
138
|
metadata:
|
139
139
|
bug_tracker_uri: https://github.com/damoiser/qr-bills/issues
|
140
140
|
changelog_uri: https://github.com/damoiser/qr-bills/CHANGELOG.md
|
@@ -150,14 +150,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
150
150
|
requirements:
|
151
151
|
- - ">="
|
152
152
|
- !ruby/object:Gem::Version
|
153
|
-
version: 2.
|
153
|
+
version: 3.2.2
|
154
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
156
|
- - ">="
|
157
157
|
- !ruby/object:Gem::Version
|
158
158
|
version: '0'
|
159
159
|
requirements: []
|
160
|
-
rubygems_version: 3.
|
160
|
+
rubygems_version: 3.4.10
|
161
161
|
signing_key:
|
162
162
|
specification_version: 4
|
163
163
|
summary: QR-bills support for swiss payments
|