qr-bills 0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0f5417c130ea2bb955adc879dabbc2e93f470c3990bd7b79cc5c9d069a92aca
4
- data.tar.gz: 412fd936ffa901e2d83909215c5dfe5e700945d76ae0ca8b3b4e4ea3d48f8740
3
+ metadata.gz: 5858d9367a9a2242c2470ecbf9a78049bc10d204a49879cf56f5b3a030260547
4
+ data.tar.gz: 9c84b71d8f5dfb153dc30c9f708d5d85e029bf3a9044989d1681e1614d4a61a6
5
5
  SHA512:
6
- metadata.gz: a1448d54d8fddc9ae2e11fa8d900fa21f0a2c0d501360a6386636a9650200c53f3b487c0aa05d1acfb8909e2ab816ee57c1c70ce88d08f84ecfe903c1f09883e
7
- data.tar.gz: 5787cc90e6a2546736376f7268bc13e044cfd06b0783b4876e77d12ff1d8f465c02cc804377e6cfe64074ac329e3f5025837f5de221d3f2391f6d169d8820209
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: èpomt de dépôt
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][:alternative_scheme_paramters]}\r\n"
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][:alternative_scheme_paramters].nil? && !params[:bill_params][:alternative_scheme_paramters].empty?
78
- layout += " <span class=\"finfo_header\">#{I18n.t("qrbills.name").capitalize} AV2:</span> #{params[:bill_params][:alternative_scheme_paramters]}\n"
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
@@ -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
- alternative_scheme_paramters: "",
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
- # TODO
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
- # TODO
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
- # TODO
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
- # TODO
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
@@ -45,6 +45,6 @@ module QRBills
45
45
  end
46
46
 
47
47
  def self.get_qrbill_without_reference_type
48
- QRParams::QR_BILL_WITOUTH_REFERENCE
48
+ QRParams::QR_BILL_WITHOUT_REFERENCE
49
49
  end
50
- end
50
+ 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: '0.3'
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-07 00:00:00.000000000 Z
11
+ date: 2021-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n