sepa 0.0.15 → 0.0.16

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