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 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