sepa 0.0.15 → 0.0.16

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
- ---
2
- SHA512:
3
- metadata.gz: d57cc7203c00c3f47dc18189cca69b7b7397c424d0cf390f3fd9d4a948cbd9cbcefffe9efbbad0338ccc202c10c9d9199b051b874e99e3b2fd13e5fd37062752
4
- data.tar.gz: f7a93dafda118a000313bbf186f35fbcdeab9f9d53892cf06dccf6bd1f422019269293f6f1e92035b49b48ee9f1384c97307bbc6c8adffc2706bc1cbcd425847
5
- SHA1:
6
- metadata.gz: a02ba9d2473675049d7bcba39addd3e4513d69bd
7
- data.tar.gz: fba85ca92384748652582373d4d235315969e988
1
+ ---
2
+ SHA1:
3
+ metadata.gz: edd5c07cd152f52e2d13b0d3cd2a00f95b40bba4
4
+ data.tar.gz: 093bbd122e64de202f074c905bb2edd48b224b92
5
+ SHA512:
6
+ metadata.gz: d9740f6b8caea5a9bd4564f59deedbcd1519bda122c1e18623bcf1d358e24e8e37812a0c20835e4eb53ba6bcefed9e990c4f900e382aa5c5cdf54421ea8bc88b
7
+ data.tar.gz: 51e20a22ec96071c1ed5bfcf45bd301e0c1373a840d422fb980304d7d2ef57662ac00f46180897a09265556dd3b40b1bca4179154cd284a7dfa28b66e51a60ea
data/README.md CHANGED
@@ -75,6 +75,7 @@ software to send the file. Or perhaps you can upload it via their website.
75
75
 
76
76
  ## History
77
77
 
78
+ 0.0.16 BigDecimal to avoid floating-point rounding errors (w/thanks to @joostkuif), support RemittanceInformation (w/thanks to @TheConstructor)
78
79
  0.0.15 Ruby 1.8.7 compatibility
79
80
 
80
81
  ## Contributing
@@ -90,4 +91,4 @@ Other message types are totally welcome.
90
91
  ## Contributors
91
92
 
92
93
  Author: [Conan Dalton](http://www.conandalton.net), aka [conanite](https://github.com/conanite)
93
- With thanks to [corny](https://github.com/corny), [TheConstructor](https://github.com/TheConstructor)
94
+ With thanks to [corny](https://github.com/corny), [TheConstructor](https://github.com/TheConstructor), [joostkuif](https://github.com/joostkuif)
@@ -1,4 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
+ require 'bigdecimal'
2
3
  module Sepa
3
4
  class Base
4
5
  include Aduki::Initializer
@@ -20,6 +21,7 @@ module Sepa
20
21
  def normalize str
21
22
  return str if str.is_a? Fixnum
22
23
  return ("%.2f" % str) if str.is_a? Float
24
+ return ("%.2f" % str) if str.is_a? BigDecimal
23
25
  replacements = {
24
26
  'à' => 'a', 'é' => 'e', 'è' => 'e',
25
27
  'û' => 'u', 'î' => 'i', 'ô' => 'o', 'ü' => 'u', 'ï' => 'i', 'ö' => 'o',
@@ -244,10 +244,10 @@ class Sepa::DirectDebitOrder
244
244
  class MandateInformation < Struct.new(:identification, :signature_date, :sequence_type); end
245
245
 
246
246
  class DirectDebit
247
- attr_accessor :debtor, :debtor_account, :end_to_end_id, :amount, :currency, :mandate_info
247
+ attr_accessor :debtor, :debtor_account, :end_to_end_id, :amount, :currency, :mandate_info, :remittance_information
248
248
 
249
- def initialize debtor, debtor_account, end_to_end_id, amount, currency, mandate_info
250
- @debtor, @debtor_account, @end_to_end_id, @amount, @currency, @mandate_info = debtor, debtor_account, end_to_end_id, amount, currency, mandate_info
249
+ def initialize debtor, debtor_account, end_to_end_id, amount, currency, mandate_info, remittance_information = nil
250
+ @debtor, @debtor_account, @end_to_end_id, @amount, @currency, @mandate_info, @remittance_information = debtor, debtor_account, end_to_end_id, amount, currency, mandate_info, remittance_information
251
251
  end
252
252
 
253
253
  def sequence_type
@@ -260,7 +260,8 @@ class Sepa::DirectDebitOrder
260
260
  "#{prefix}.instructed_amount" => ("%.2f" % amount),
261
261
  "#{prefix}.instructed_amount_currency" => "EUR",
262
262
  "#{prefix}.direct_debit_transaction.mandate_related_information.mandate_identification" => mandate_info.identification,
263
- "#{prefix}.direct_debit_transaction.mandate_related_information.date_of_signature" => mandate_info.signature_date
263
+ "#{prefix}.direct_debit_transaction.mandate_related_information.date_of_signature" => mandate_info.signature_date,
264
+ "#{prefix}.remittance_information.unstructured_remittance_information" => remittance_information
264
265
  }
265
266
  hsh = hsh.merge debtor.to_properties("#{prefix}.debtor", opts)
266
267
  hsh = hsh.merge debtor_account.to_properties("#{prefix}.debtor", opts)
@@ -5,6 +5,7 @@ require "sepa/payments_initiation/pain00800104/payment_type_information"
5
5
  require "sepa/payments_initiation/pain00800104/direct_debit_transaction"
6
6
  require "sepa/payments_initiation/pain00800104/purpose_choice"
7
7
  require "sepa/payments_initiation/pain00800104/regulatory_reporting"
8
+ require "sepa/payments_initiation/pain00800104/remittance_information_choice"
8
9
 
9
10
  class Sepa::PaymentsInitiation::Pain00800104::DirectDebitTransactionInformation < Sepa::Base
10
11
  definition "Provides information on the individual transaction(s) included in the message."
@@ -22,6 +23,7 @@ class Sepa::PaymentsInitiation::Pain00800104::DirectDebitTransactionInformation
22
23
  attribute :instruction_for_creditor_agent, "InstrForCdtrAgt"
23
24
  attribute :purpose , "Purp" , Sepa::PaymentsInitiation::Pain00800104::PurposeChoice
24
25
  attribute :regulatory_reporting , "RgltryRptg" , :[], Sepa::PaymentsInitiation::Pain00800104::RegulatoryReporting
26
+ attribute :remittance_information , "RmtInf" , Sepa::PaymentsInitiation::Pain00800104::RemittanceInformationChoice
25
27
 
26
28
  attr_accessor :instructed_amount_currency
27
29
  end
@@ -0,0 +1,9 @@
1
+ class Sepa::PaymentsInitiation::Pain00800104::RemittanceInformationChoice < Sepa::Base
2
+ attribute :unstructured_remittance_information , "Ustrd"
3
+ # don't think this is commonly used; would probably need a class
4
+ attribute :structured_remittance_information , "Strd"
5
+
6
+ def empty?
7
+ [unstructured_remittance_information, structured_remittance_information].compact == []
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Sepa
2
- VERSION = "0.0.15"
2
+ VERSION = "0.0.16"
3
3
  end
@@ -5,24 +5,24 @@ require "time"
5
5
 
6
6
  describe Sepa::DirectDebitOrder do
7
7
 
8
- def order sepa_identifier_class
8
+ def order sepa_identifier_class, remittance_information = false
9
9
  bank_account0 = Sepa::DirectDebitOrder::BankAccount.new "FRZIZIPAPARAZZI345789", "FRZZPPKOOKOO"
10
10
  debtor0 = Sepa::DirectDebitOrder::Party.new "DALTON/CONANMR", "64, Livva de Getamire", nil, "30005", "RENNES", "France", "Conan DALTON", "01234567890", "conan@dalton.sepa.i.hope.this.works"
11
11
  mandate0 = Sepa::DirectDebitOrder::MandateInformation.new("mandate-id-0", Date.parse("2010-11-18"), "RCUR")
12
- dd00 = Sepa::DirectDebitOrder::DirectDebit.new debtor0, bank_account0, "MONECOLE REG F13789 PVT 3", 1231.31, "EUR", mandate0
13
- dd01 = Sepa::DirectDebitOrder::DirectDebit.new debtor0, bank_account0, "MONECOLE REG F13791 PVT 3", 1133.33, "EUR", mandate0
12
+ dd00 = Sepa::DirectDebitOrder::DirectDebit.new debtor0, bank_account0, "MONECOLE REG F13789 PVT 3", 1231.31, "EUR", mandate0, remittance_information ? "Transaction 3" : nil
13
+ dd01 = Sepa::DirectDebitOrder::DirectDebit.new debtor0, bank_account0, "MONECOLE REG F13791 PVT 3", 1133.33, "EUR", mandate0, remittance_information ? "We take your money" : nil
14
14
 
15
15
  bank_account1 = Sepa::DirectDebitOrder::BankAccount.new "FRQUIQUIWIGWAM947551", "FRQQWIGGA"
16
16
  debtor1 = Sepa::DirectDebitOrder::Party.new "ADAMS/SAMUELMR", "256, Livva de Getamire", nil, "75048", "BERLIN", "Germany", "Samuel ADAMS", "09876543210", "samuel@adams.sepa.i.hope.this.works"
17
17
  mandate1 = Sepa::DirectDebitOrder::MandateInformation.new("mandate-id-1", Date.parse("2012-01-19"), "FRST")
18
- dd10 = Sepa::DirectDebitOrder::DirectDebit.new debtor1, bank_account1, "MONECOLE REG F13790 PVT 3", 1732.32, "EUR", mandate1
19
- dd11 = Sepa::DirectDebitOrder::DirectDebit.new debtor1, bank_account1, "MONECOLE REG F13792 PVT 3", 1034.34, "EUR", mandate1
18
+ dd10 = Sepa::DirectDebitOrder::DirectDebit.new debtor1, bank_account1, "MONECOLE REG F13790 PVT 3", 1732.32, "EUR", mandate1, remittance_information ? "An important transaction" : nil
19
+ dd11 = Sepa::DirectDebitOrder::DirectDebit.new debtor1, bank_account1, "MONECOLE REG F13792 PVT 3", 1034.34, "EUR", mandate1, remittance_information ? "Thank you, for the money" : nil
20
20
 
21
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
- dd20 = Sepa::DirectDebitOrder::DirectDebit.new debtor2, bank_account2, "MONECOLE REG F13793 PVT 3", 1935.35, "EUR", mandate2
25
- dd21 = Sepa::DirectDebitOrder::DirectDebit.new debtor2, bank_account2, "MONECOLE REG F13794 PVT 3", 1236.36, "EUR", mandate2
24
+ dd20 = Sepa::DirectDebitOrder::DirectDebit.new debtor2, bank_account2, "MONECOLE REG F13793 PVT 3", 1935.35, "EUR", mandate2, remittance_information ? "Another one" : nil
25
+ dd21 = Sepa::DirectDebitOrder::DirectDebit.new debtor2, bank_account2, "MONECOLE REG F13794 PVT 3", 1236.36, "EUR", mandate2, remittance_information ? "Final transaction" : nil
26
26
 
27
27
  sepa_now = Time.local(1992, 2, 28, 18, 30, 0, 0, 0)
28
28
  Time.stub(:now).and_return sepa_now
@@ -46,6 +46,15 @@ describe Sepa::DirectDebitOrder do
46
46
  xml.should == expected
47
47
  end
48
48
 
49
+ it "should produce v02 xml corresponding to the given inputs with unstructured remittance information" do
50
+ o = order Sepa::DirectDebitOrder::PrivateSepaIdentifier, true
51
+ xml = o.to_xml :pain_008_001_version => "02"
52
+ xml = check_doc_header_02 xml
53
+ expected = File.read(File.expand_path("../expected_customer_direct_debit_initiation_v02_with_remittance_information.xml", __FILE__))
54
+ expected.force_encoding(Encoding::UTF_8) if expected.respond_to? :force_encoding
55
+ xml.should == expected
56
+ end
57
+
49
58
  it "should produce v04 xml corresponding to the given inputs" do
50
59
  o = order Sepa::DirectDebitOrder::PrivateSepaIdentifier
51
60
  xml = o.to_xml :pain_008_001_version => "04"
@@ -0,0 +1,304 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Document>
3
+ <CstmrDrctDbtInitn>
4
+ <GrpHdr>
5
+ <MsgId>MSG0001</MsgId>
6
+ <CreDtTm>1992-02-28T18:30:00Z</CreDtTm>
7
+ <NbOfTxs>6</NbOfTxs>
8
+ <CtrlSum>8303.01</CtrlSum>
9
+ <InitgPty>
10
+ <Nm>SOFTIFY SARL</Nm>
11
+ </InitgPty>
12
+ </GrpHdr>
13
+ <PmtInf>
14
+ <PmtInfId>MONECOLE_PAYMENTS_20130703-FRST</PmtInfId>
15
+ <PmtMtd>DD</PmtMtd>
16
+ <NbOfTxs>2</NbOfTxs>
17
+ <CtrlSum>2766.66</CtrlSum>
18
+ <PmtTpInf>
19
+ <SvcLvl>
20
+ <Cd>SEPA</Cd>
21
+ </SvcLvl>
22
+ <LclInstrm>
23
+ <Cd>CORE</Cd>
24
+ </LclInstrm>
25
+ <SeqTp>FRST</SeqTp>
26
+ </PmtTpInf>
27
+ <ReqdColltnDt>2013-07-10</ReqdColltnDt>
28
+ <Cdtr>
29
+ <Nm>Mon Ecole</Nm>
30
+ <PstlAdr>
31
+ <Ctry>FR</Ctry>
32
+ <AdrLine>3, Livva de Getamire</AdrLine>
33
+ <AdrLine>75022 Paris</AdrLine>
34
+ </PstlAdr>
35
+ </Cdtr>
36
+ <CdtrAcct>
37
+ <Id>
38
+ <IBAN>FRGOOGOOYADDA9999999</IBAN>
39
+ </Id>
40
+ </CdtrAcct>
41
+ <CdtrAgt>
42
+ <FinInstnId>
43
+ <BIC>FRGGYELLOW99</BIC>
44
+ </FinInstnId>
45
+ </CdtrAgt>
46
+ <ChrgBr>SLEV</ChrgBr>
47
+ <CdtrSchmeId>
48
+ <Id>
49
+ <PrvtId>
50
+ <Othr>
51
+ <Id>FR123ZZZ010203</Id>
52
+ <SchmeNm>
53
+ <Prtry>SEPA</Prtry>
54
+ </SchmeNm>
55
+ </Othr>
56
+ </PrvtId>
57
+ </Id>
58
+ </CdtrSchmeId>
59
+ <DrctDbtTxInf>
60
+ <PmtId>
61
+ <EndToEndId>MONECOLE REG F13790 PVT 3</EndToEndId>
62
+ </PmtId>
63
+ <InstdAmt Ccy="EUR">1732.32</InstdAmt>
64
+ <DrctDbtTx>
65
+ <MndtRltdInf>
66
+ <MndtId>mandate-id-1</MndtId>
67
+ <DtOfSgntr>2012-01-19</DtOfSgntr>
68
+ </MndtRltdInf>
69
+ </DrctDbtTx>
70
+ <DbtrAgt>
71
+ <FinInstnId>
72
+ <BIC>FRQQWIGGA</BIC>
73
+ </FinInstnId>
74
+ </DbtrAgt>
75
+ <Dbtr>
76
+ <Nm>ADAMS/SAMUELMR</Nm>
77
+ <PstlAdr>
78
+ <Ctry>DE</Ctry>
79
+ <AdrLine>256, Livva de Getamire</AdrLine>
80
+ <AdrLine>75048 BERLIN</AdrLine>
81
+ </PstlAdr>
82
+ </Dbtr>
83
+ <DbtrAcct>
84
+ <Id>
85
+ <IBAN>FRQUIQUIWIGWAM947551</IBAN>
86
+ </Id>
87
+ </DbtrAcct>
88
+ <RmtInf>
89
+ <Ustrd>An important transaction</Ustrd>
90
+ </RmtInf>
91
+ </DrctDbtTxInf>
92
+ <DrctDbtTxInf>
93
+ <PmtId>
94
+ <EndToEndId>MONECOLE REG F13792 PVT 3</EndToEndId>
95
+ </PmtId>
96
+ <InstdAmt Ccy="EUR">1034.34</InstdAmt>
97
+ <DrctDbtTx>
98
+ <MndtRltdInf>
99
+ <MndtId>mandate-id-1</MndtId>
100
+ <DtOfSgntr>2012-01-19</DtOfSgntr>
101
+ </MndtRltdInf>
102
+ </DrctDbtTx>
103
+ <DbtrAgt>
104
+ <FinInstnId>
105
+ <BIC>FRQQWIGGA</BIC>
106
+ </FinInstnId>
107
+ </DbtrAgt>
108
+ <Dbtr>
109
+ <Nm>ADAMS/SAMUELMR</Nm>
110
+ <PstlAdr>
111
+ <Ctry>DE</Ctry>
112
+ <AdrLine>256, Livva de Getamire</AdrLine>
113
+ <AdrLine>75048 BERLIN</AdrLine>
114
+ </PstlAdr>
115
+ </Dbtr>
116
+ <DbtrAcct>
117
+ <Id>
118
+ <IBAN>FRQUIQUIWIGWAM947551</IBAN>
119
+ </Id>
120
+ </DbtrAcct>
121
+ <RmtInf>
122
+ <Ustrd>Thank you, for the money</Ustrd>
123
+ </RmtInf>
124
+ </DrctDbtTxInf>
125
+ </PmtInf>
126
+ <PmtInf>
127
+ <PmtInfId>MONECOLE_PAYMENTS_20130703-RCUR</PmtInfId>
128
+ <PmtMtd>DD</PmtMtd>
129
+ <NbOfTxs>4</NbOfTxs>
130
+ <CtrlSum>5536.35</CtrlSum>
131
+ <PmtTpInf>
132
+ <SvcLvl>
133
+ <Cd>SEPA</Cd>
134
+ </SvcLvl>
135
+ <LclInstrm>
136
+ <Cd>CORE</Cd>
137
+ </LclInstrm>
138
+ <SeqTp>RCUR</SeqTp>
139
+ </PmtTpInf>
140
+ <ReqdColltnDt>2013-07-10</ReqdColltnDt>
141
+ <Cdtr>
142
+ <Nm>Mon Ecole</Nm>
143
+ <PstlAdr>
144
+ <Ctry>FR</Ctry>
145
+ <AdrLine>3, Livva de Getamire</AdrLine>
146
+ <AdrLine>75022 Paris</AdrLine>
147
+ </PstlAdr>
148
+ </Cdtr>
149
+ <CdtrAcct>
150
+ <Id>
151
+ <IBAN>FRGOOGOOYADDA9999999</IBAN>
152
+ </Id>
153
+ </CdtrAcct>
154
+ <CdtrAgt>
155
+ <FinInstnId>
156
+ <BIC>FRGGYELLOW99</BIC>
157
+ </FinInstnId>
158
+ </CdtrAgt>
159
+ <ChrgBr>SLEV</ChrgBr>
160
+ <CdtrSchmeId>
161
+ <Id>
162
+ <PrvtId>
163
+ <Othr>
164
+ <Id>FR123ZZZ010203</Id>
165
+ <SchmeNm>
166
+ <Prtry>SEPA</Prtry>
167
+ </SchmeNm>
168
+ </Othr>
169
+ </PrvtId>
170
+ </Id>
171
+ </CdtrSchmeId>
172
+ <DrctDbtTxInf>
173
+ <PmtId>
174
+ <EndToEndId>MONECOLE REG F13789 PVT 3</EndToEndId>
175
+ </PmtId>
176
+ <InstdAmt Ccy="EUR">1231.31</InstdAmt>
177
+ <DrctDbtTx>
178
+ <MndtRltdInf>
179
+ <MndtId>mandate-id-0</MndtId>
180
+ <DtOfSgntr>2010-11-18</DtOfSgntr>
181
+ </MndtRltdInf>
182
+ </DrctDbtTx>
183
+ <DbtrAgt>
184
+ <FinInstnId>
185
+ <BIC>FRZZPPKOOKOO</BIC>
186
+ </FinInstnId>
187
+ </DbtrAgt>
188
+ <Dbtr>
189
+ <Nm>DALTON/CONANMR</Nm>
190
+ <PstlAdr>
191
+ <Ctry>FR</Ctry>
192
+ <AdrLine>64, Livva de Getamire</AdrLine>
193
+ <AdrLine>30005 RENNES</AdrLine>
194
+ </PstlAdr>
195
+ </Dbtr>
196
+ <DbtrAcct>
197
+ <Id>
198
+ <IBAN>FRZIZIPAPARAZZI345789</IBAN>
199
+ </Id>
200
+ </DbtrAcct>
201
+ <RmtInf>
202
+ <Ustrd>Transaction 3</Ustrd>
203
+ </RmtInf>
204
+ </DrctDbtTxInf>
205
+ <DrctDbtTxInf>
206
+ <PmtId>
207
+ <EndToEndId>MONECOLE REG F13791 PVT 3</EndToEndId>
208
+ </PmtId>
209
+ <InstdAmt Ccy="EUR">1133.33</InstdAmt>
210
+ <DrctDbtTx>
211
+ <MndtRltdInf>
212
+ <MndtId>mandate-id-0</MndtId>
213
+ <DtOfSgntr>2010-11-18</DtOfSgntr>
214
+ </MndtRltdInf>
215
+ </DrctDbtTx>
216
+ <DbtrAgt>
217
+ <FinInstnId>
218
+ <BIC>FRZZPPKOOKOO</BIC>
219
+ </FinInstnId>
220
+ </DbtrAgt>
221
+ <Dbtr>
222
+ <Nm>DALTON/CONANMR</Nm>
223
+ <PstlAdr>
224
+ <Ctry>FR</Ctry>
225
+ <AdrLine>64, Livva de Getamire</AdrLine>
226
+ <AdrLine>30005 RENNES</AdrLine>
227
+ </PstlAdr>
228
+ </Dbtr>
229
+ <DbtrAcct>
230
+ <Id>
231
+ <IBAN>FRZIZIPAPARAZZI345789</IBAN>
232
+ </Id>
233
+ </DbtrAcct>
234
+ <RmtInf>
235
+ <Ustrd>We take your money</Ustrd>
236
+ </RmtInf>
237
+ </DrctDbtTxInf>
238
+ <DrctDbtTxInf>
239
+ <PmtId>
240
+ <EndToEndId>MONECOLE REG F13793 PVT 3</EndToEndId>
241
+ </PmtId>
242
+ <InstdAmt Ccy="EUR">1935.35</InstdAmt>
243
+ <DrctDbtTx>
244
+ <MndtRltdInf>
245
+ <MndtId>mandate-id-2</MndtId>
246
+ <DtOfSgntr>2013-06-08</DtOfSgntr>
247
+ </MndtRltdInf>
248
+ </DrctDbtTx>
249
+ <DbtrAgt>
250
+ <FinInstnId>
251
+ <BIC>FRQQWIGGA</BIC>
252
+ </FinInstnId>
253
+ </DbtrAgt>
254
+ <Dbtr>
255
+ <Nm>Mr. James Joyce</Nm>
256
+ <PstlAdr>
257
+ <AdrLine>512, Livva de Meet Agir</AdrLine>
258
+ <AdrLine>75099 LONDON</AdrLine>
259
+ </PstlAdr>
260
+ </Dbtr>
261
+ <DbtrAcct>
262
+ <Id>
263
+ <IBAN>FRQUIQUIWIGWAM947551</IBAN>
264
+ </Id>
265
+ </DbtrAcct>
266
+ <RmtInf>
267
+ <Ustrd>Another one</Ustrd>
268
+ </RmtInf>
269
+ </DrctDbtTxInf>
270
+ <DrctDbtTxInf>
271
+ <PmtId>
272
+ <EndToEndId>MONECOLE REG F13794 PVT 3</EndToEndId>
273
+ </PmtId>
274
+ <InstdAmt Ccy="EUR">1236.36</InstdAmt>
275
+ <DrctDbtTx>
276
+ <MndtRltdInf>
277
+ <MndtId>mandate-id-2</MndtId>
278
+ <DtOfSgntr>2013-06-08</DtOfSgntr>
279
+ </MndtRltdInf>
280
+ </DrctDbtTx>
281
+ <DbtrAgt>
282
+ <FinInstnId>
283
+ <BIC>FRQQWIGGA</BIC>
284
+ </FinInstnId>
285
+ </DbtrAgt>
286
+ <Dbtr>
287
+ <Nm>Mr. James Joyce</Nm>
288
+ <PstlAdr>
289
+ <AdrLine>512, Livva de Meet Agir</AdrLine>
290
+ <AdrLine>75099 LONDON</AdrLine>
291
+ </PstlAdr>
292
+ </Dbtr>
293
+ <DbtrAcct>
294
+ <Id>
295
+ <IBAN>FRQUIQUIWIGWAM947551</IBAN>
296
+ </Id>
297
+ </DbtrAcct>
298
+ <RmtInf>
299
+ <Ustrd>Final transaction</Ustrd>
300
+ </RmtInf>
301
+ </DrctDbtTxInf>
302
+ </PmtInf>
303
+ </CstmrDrctDbtInitn>
304
+ </Document>
metadata CHANGED
@@ -1,73 +1,94 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sepa
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.15
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.16
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Conan Dalton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2013-12-31 00:00:00 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
11
+ date: 2014-01-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
15
14
  name: builder
16
- prerelease: false
17
- requirement: &id001 !ruby/object:Gem::Requirement
18
- requirements:
19
- - &id002
20
- - ">="
21
- - !ruby/object:Gem::Version
22
- version: "0"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
23
20
  type: :runtime
24
- version_requirements: *id001
25
- - !ruby/object:Gem::Dependency
26
- name: aduki
27
21
  prerelease: false
28
- requirement: &id003 !ruby/object:Gem::Requirement
29
- requirements:
30
- - *id002
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: aduki
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
31
34
  type: :runtime
32
- version_requirements: *id003
33
- - !ruby/object:Gem::Dependency
34
- name: countries
35
35
  prerelease: false
36
- requirement: &id004 !ruby/object:Gem::Requirement
37
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: countries
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
38
45
  - - ~>
39
- - !ruby/object:Gem::Version
46
+ - !ruby/object:Gem::Version
40
47
  version: 0.9.3
41
48
  type: :runtime
42
- version_requirements: *id004
43
- - !ruby/object:Gem::Dependency
44
- name: rspec
45
49
  prerelease: false
46
- requirement: &id005 !ruby/object:Gem::Requirement
47
- requirements:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
48
52
  - - ~>
49
- - !ruby/object:Gem::Version
50
- version: "2.9"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.9.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '2.9'
51
62
  type: :development
52
- version_requirements: *id005
53
- - !ruby/object:Gem::Dependency
54
- name: rspec_numbering_formatter
55
63
  prerelease: false
56
- requirement: &id006 !ruby/object:Gem::Requirement
57
- requirements:
58
- - *id002
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '2.9'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec_numbering_formatter
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
59
76
  type: :development
60
- version_requirements: *id006
61
- description: " Generate ISO20022 XML messages. Implements a subset of pain.008.001.02 and pain.008.001.04 CustomerDirectDebitInitiation for now. WARNING: NO WARRANTY, USE AT YOUR OWN RISK AND PERIL. "
62
- email:
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: ' Generate ISO20022 XML messages. Implements a subset of pain.008.001.02
84
+ and pain.008.001.04 CustomerDirectDebitInitiation for now. WARNING: NO WARRANTY,
85
+ USE AT YOUR OWN RISK AND PERIL. '
86
+ email:
63
87
  - conan@conandalton.net
64
88
  executables: []
65
-
66
89
  extensions: []
67
-
68
90
  extra_rdoc_files: []
69
-
70
- files:
91
+ files:
71
92
  - .gitignore
72
93
  - .rspec
73
94
  - Gemfile
@@ -104,6 +125,7 @@ files:
104
125
  - lib/sepa/payments_initiation/pain00800104/purpose_choice.rb
105
126
  - lib/sepa/payments_initiation/pain00800104/regulatory_authority.rb
106
127
  - lib/sepa/payments_initiation/pain00800104/regulatory_reporting.rb
128
+ - lib/sepa/payments_initiation/pain00800104/remittance_information_choice.rb
107
129
  - lib/sepa/payments_initiation/pain00800104/service_level_choice.rb
108
130
  - lib/sepa/payments_initiation/pain00800104/structured_regulatory_reporting.rb
109
131
  - lib/sepa/payments_initiation/pain00800104/tax_authorisation.rb
@@ -120,38 +142,42 @@ files:
120
142
  - spec/sepa/direct_debit_properties.yml
121
143
  - spec/sepa/expected-simple.xml
122
144
  - spec/sepa/expected_customer_direct_debit_initiation_v02.xml
145
+ - spec/sepa/expected_customer_direct_debit_initiation_v02_with_remittance_information.xml
123
146
  - spec/sepa/expected_customer_direct_debit_initiation_v04.xml
124
147
  - spec/sepa/expected_customer_direct_debit_initiation_v04_with_org_id.xml
125
148
  - spec/sepa/payments_initiation/pain00800104/customer_direct_debit_initiation_spec.rb
126
149
  - spec/spec_helper.rb
127
150
  homepage: https://github.com/conanite/sepa
128
- licenses:
151
+ licenses:
129
152
  - MIT
130
153
  metadata: {}
131
-
132
154
  post_install_message:
133
155
  rdoc_options: []
134
-
135
- require_paths:
156
+ require_paths:
136
157
  - lib
137
- required_ruby_version: !ruby/object:Gem::Requirement
138
- requirements:
139
- - *id002
140
- required_rubygems_version: !ruby/object:Gem::Requirement
141
- requirements:
142
- - *id002
158
+ required_ruby_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - '>='
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ required_rubygems_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - '>='
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
143
168
  requirements: []
144
-
145
169
  rubyforge_project:
146
- rubygems_version: 2.0.14
170
+ rubygems_version: 2.1.11
147
171
  signing_key:
148
172
  specification_version: 4
149
- summary: "pain.008.001.04 and pain.008.001.02 CustomerDirectDebitInitiation ISO20022 XML. WARNING: NO WARRANTY, USE AT YOUR OWN RISK AND PERIL."
150
- test_files:
173
+ summary: 'pain.008.001.04 and pain.008.001.02 CustomerDirectDebitInitiation ISO20022
174
+ XML. WARNING: NO WARRANTY, USE AT YOUR OWN RISK AND PERIL.'
175
+ test_files:
151
176
  - spec/sepa/direct_debit_order_spec.rb
152
177
  - spec/sepa/direct_debit_properties.yml
153
178
  - spec/sepa/expected-simple.xml
154
179
  - spec/sepa/expected_customer_direct_debit_initiation_v02.xml
180
+ - spec/sepa/expected_customer_direct_debit_initiation_v02_with_remittance_information.xml
155
181
  - spec/sepa/expected_customer_direct_debit_initiation_v04.xml
156
182
  - spec/sepa/expected_customer_direct_debit_initiation_v04_with_org_id.xml
157
183
  - spec/sepa/payments_initiation/pain00800104/customer_direct_debit_initiation_spec.rb