sepa 0.0.11 → 0.0.12

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.
@@ -37,7 +37,7 @@ class Sepa::DirectDebitOrder
37
37
  "group_header.control_sum" => creditor_payments.inject(0) { |sum, cp| sum + cp.control_sum },
38
38
  }
39
39
 
40
- hsh = hsh.merge initiating_party.to_properties("group_header.initiating_party", opts)
40
+ hsh = hsh.merge initiating_party.to_properties("group_header.initiating_party", opts.merge({context: :initiating_party}))
41
41
 
42
42
  cps = []
43
43
  if opts[:pain_008_001_version] == "02"
@@ -72,14 +72,22 @@ class Sepa::DirectDebitOrder
72
72
  def to_properties prefix, opts
73
73
  cc = county_code country
74
74
  hsh = { "#{prefix}.name" => name }
75
- hsh["#{prefix}.postal_address.address_line[0]"] = address_line_1 unless blank? address_line_1
76
- hsh["#{prefix}.postal_address.address_line[1]"] = address_line_2 unless blank? address_line_2
77
- hsh["#{prefix}.postal_address.post_code"] = postcode unless blank? postcode
78
- hsh["#{prefix}.postal_address.town_name"] = town unless blank? town
79
- hsh["#{prefix}.postal_address.country"] = cc unless blank? cc
80
- hsh["#{prefix}.contact_details.name"] = contact_name unless blank? contact_name
81
- hsh["#{prefix}.contact_details.phone_number"] = contact_phone unless blank? contact_phone
82
- hsh["#{prefix}.contact_details.email_address"] = contact_email unless blank? contact_email
75
+ if (opts[:context] != :initiating_party) || (opts[:pain_008_001_version] != "02")
76
+ hsh["#{prefix}.postal_address.address_line[0]"] = address_line_1 unless blank? address_line_1
77
+
78
+ if opts[:pain_008_001_version] == "02"
79
+ candidate_adr_line_2 = "#{postcode} #{town}".strip
80
+ address_line_2 = candidate_adr_line_2 unless blank? candidate_adr_line_2
81
+ hsh["#{prefix}.postal_address.address_line[1]"] = address_line_2 unless blank? address_line_2
82
+ else
83
+ hsh["#{prefix}.postal_address.post_code"] = postcode unless blank? postcode
84
+ hsh["#{prefix}.postal_address.town_name"] = town unless blank? town
85
+ end
86
+ hsh["#{prefix}.postal_address.country"] = cc unless blank? cc
87
+ hsh["#{prefix}.contact_details.name"] = contact_name unless blank? contact_name
88
+ hsh["#{prefix}.contact_details.phone_number"] = contact_phone unless blank? contact_phone
89
+ hsh["#{prefix}.contact_details.email_address"] = contact_email unless blank? contact_email
90
+ end
83
91
  hsh
84
92
  end
85
93
  end
@@ -108,8 +116,8 @@ class Sepa::DirectDebitOrder
108
116
  @direct_debits = direct_debits
109
117
  end
110
118
 
111
- # this is only called for V02, in which case SequenceType is mandatory
112
- # necessary because each PaymentInformation container contains a single SequenceType element (inside PaymentTypeInformation)
119
+ # This is only called for V02, in which case SequenceType is mandatory.
120
+ # Necessary because each PaymentInformation container contains a single SequenceType element (inside PaymentTypeInformation)
113
121
  # whereas in V04, there is one SequenceType element per DirectDebitTransactionInformation
114
122
  def collect_by_sequence_type
115
123
  seq_types = {
@@ -177,7 +185,7 @@ class Sepa::DirectDebitOrder
177
185
  def to_properties prefix, opts
178
186
  bic_tag = ( opts[:pain_008_001_version] == "04" ? "bic_fi" : "bic" )
179
187
 
180
- { "#{prefix}_account.identification.iban" => iban,
188
+ { "#{prefix}_account.identification.iban" => iban.gsub(/\s/, ''),
181
189
  "#{prefix}_agent.financial_institution_identification.#{bic_tag}" => swift }
182
190
  end
183
191
  end
data/lib/sepa/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sepa
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
@@ -18,7 +18,7 @@ describe Sepa::DirectDebitOrder do
18
18
  dd10 = Sepa::DirectDebitOrder::DirectDebit.new debtor1, bank_account1, "MONECOLE REG F13790 PVT 3", 1732.32, "EUR", mandate1
19
19
  dd11 = Sepa::DirectDebitOrder::DirectDebit.new debtor1, bank_account1, "MONECOLE REG F13792 PVT 3", 1034.34, "EUR", mandate1
20
20
 
21
- bank_account2 = Sepa::DirectDebitOrder::BankAccount.new "FRQUIQUIWIGWAM947551", "FRQQWIGGA"
21
+ bank_account2 = Sepa::DirectDebitOrder::BankAccount.new " FR QU IQ UI WI GW\tAM 947 551 ", "FRQQWIGGA"
22
22
  debtor2 = Sepa::DirectDebitOrder::Party.new "Mr. James Joyce", "512, Livva de Meet Agir", nil, "75099", "LONDON", "Angleterre", "Johann S. BACH", "09876543210", "js@bach.sepa.i.hope.this.works"
23
23
  mandate2 = Sepa::DirectDebitOrder::MandateInformation.new("mandate-id-2", Date.parse("2013-06-08"), "RCUR")
24
24
  dd20 = Sepa::DirectDebitOrder::DirectDebit.new debtor2, bank_account2, "MONECOLE REG F13793 PVT 3", 1935.35, "EUR", mandate2
@@ -28,7 +28,7 @@ describe Sepa::DirectDebitOrder do
28
28
  Time.stub(:now).and_return sepa_now
29
29
 
30
30
  creditor = Sepa::DirectDebitOrder::Party.new "Mon École", "3, Livva de Getamire", nil, "75022", "Paris", "Frankreich", "M. le Directeur", "+33 999 999 999", "directeur@monecole.softify.com"
31
- creditor_account = Sepa::DirectDebitOrder::BankAccount.new "FRGOOGOOYADDA9999999", "FRGGYELLOW99"
31
+ creditor_account = Sepa::DirectDebitOrder::BankAccount.new "FRGOO GOOY ADDA 9999 999", "FRGGYELLOW99"
32
32
  sepa_identifier = sepa_identifier_class.new "FR123ZZZ010203"
33
33
  payment = Sepa::DirectDebitOrder::CreditorPayment.new creditor, creditor_account, "MONECOLE_PAYMENTS_20130703", Date.parse("2013-07-10"), sepa_identifier, [dd00, dd01, dd10, dd11, dd20, dd21]
34
34
 
@@ -8,17 +8,6 @@
8
8
  <CtrlSum>8303.01</CtrlSum>
9
9
  <InitgPty>
10
10
  <Nm>SOFTIFY SARL</Nm>
11
- <PstlAdr>
12
- <PstCd>75021</PstCd>
13
- <TwnNm>Paris</TwnNm>
14
- <Ctry>FR</Ctry>
15
- <AdrLine>289, Livva de Getamire</AdrLine>
16
- </PstlAdr>
17
- <CtctDtls>
18
- <Nm>M. Le Gérant</Nm>
19
- <PhneNb>+33 111 111 111</PhneNb>
20
- <EmailAdr>gerant@softify.bigbang</EmailAdr>
21
- </CtctDtls>
22
11
  </InitgPty>
23
12
  </GrpHdr>
24
13
  <PmtInf>
@@ -39,10 +28,9 @@
39
28
  <Cdtr>
40
29
  <Nm>Mon École</Nm>
41
30
  <PstlAdr>
42
- <PstCd>75022</PstCd>
43
- <TwnNm>Paris</TwnNm>
44
31
  <Ctry>FR</Ctry>
45
32
  <AdrLine>3, Livva de Getamire</AdrLine>
33
+ <AdrLine>75022 Paris</AdrLine>
46
34
  </PstlAdr>
47
35
  <CtctDtls>
48
36
  <Nm>M. le Directeur</Nm>
@@ -92,10 +80,9 @@
92
80
  <Dbtr>
93
81
  <Nm>ADAMS/SAMUELMR</Nm>
94
82
  <PstlAdr>
95
- <PstCd>75048</PstCd>
96
- <TwnNm>BERLIN</TwnNm>
97
83
  <Ctry>DE</Ctry>
98
84
  <AdrLine>256, Livva de Getamire</AdrLine>
85
+ <AdrLine>75048 BERLIN</AdrLine>
99
86
  </PstlAdr>
100
87
  <CtctDtls>
101
88
  <Nm>Samuel ADAMS</Nm>
@@ -128,10 +115,9 @@
128
115
  <Dbtr>
129
116
  <Nm>ADAMS/SAMUELMR</Nm>
130
117
  <PstlAdr>
131
- <PstCd>75048</PstCd>
132
- <TwnNm>BERLIN</TwnNm>
133
118
  <Ctry>DE</Ctry>
134
119
  <AdrLine>256, Livva de Getamire</AdrLine>
120
+ <AdrLine>75048 BERLIN</AdrLine>
135
121
  </PstlAdr>
136
122
  <CtctDtls>
137
123
  <Nm>Samuel ADAMS</Nm>
@@ -164,10 +150,9 @@
164
150
  <Cdtr>
165
151
  <Nm>Mon École</Nm>
166
152
  <PstlAdr>
167
- <PstCd>75022</PstCd>
168
- <TwnNm>Paris</TwnNm>
169
153
  <Ctry>FR</Ctry>
170
154
  <AdrLine>3, Livva de Getamire</AdrLine>
155
+ <AdrLine>75022 Paris</AdrLine>
171
156
  </PstlAdr>
172
157
  <CtctDtls>
173
158
  <Nm>M. le Directeur</Nm>
@@ -217,10 +202,9 @@
217
202
  <Dbtr>
218
203
  <Nm>DALTON/CONANMR</Nm>
219
204
  <PstlAdr>
220
- <PstCd>30005</PstCd>
221
- <TwnNm>RENNES</TwnNm>
222
205
  <Ctry>FR</Ctry>
223
206
  <AdrLine>64, Livva de Getamire</AdrLine>
207
+ <AdrLine>30005 RENNES</AdrLine>
224
208
  </PstlAdr>
225
209
  <CtctDtls>
226
210
  <Nm>Conan DALTON</Nm>
@@ -253,10 +237,9 @@
253
237
  <Dbtr>
254
238
  <Nm>DALTON/CONANMR</Nm>
255
239
  <PstlAdr>
256
- <PstCd>30005</PstCd>
257
- <TwnNm>RENNES</TwnNm>
258
240
  <Ctry>FR</Ctry>
259
241
  <AdrLine>64, Livva de Getamire</AdrLine>
242
+ <AdrLine>30005 RENNES</AdrLine>
260
243
  </PstlAdr>
261
244
  <CtctDtls>
262
245
  <Nm>Conan DALTON</Nm>
@@ -289,9 +272,8 @@
289
272
  <Dbtr>
290
273
  <Nm>Mr. James Joyce</Nm>
291
274
  <PstlAdr>
292
- <PstCd>75099</PstCd>
293
- <TwnNm>LONDON</TwnNm>
294
275
  <AdrLine>512, Livva de Meet Agir</AdrLine>
276
+ <AdrLine>75099 LONDON</AdrLine>
295
277
  </PstlAdr>
296
278
  <CtctDtls>
297
279
  <Nm>Johann S. BACH</Nm>
@@ -324,9 +306,8 @@
324
306
  <Dbtr>
325
307
  <Nm>Mr. James Joyce</Nm>
326
308
  <PstlAdr>
327
- <PstCd>75099</PstCd>
328
- <TwnNm>LONDON</TwnNm>
329
309
  <AdrLine>512, Livva de Meet Agir</AdrLine>
310
+ <AdrLine>75099 LONDON</AdrLine>
330
311
  </PstlAdr>
331
312
  <CtctDtls>
332
313
  <Nm>Johann S. BACH</Nm>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sepa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-28 00:00:00.000000000 Z
12
+ date: 2013-12-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: builder