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 
     | 
    
         
            -
                   
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
      
 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 
     | 
    
         
            -
                #  
     | 
| 
       112 
     | 
    
         
            -
                #  
     | 
| 
      
 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
    
    
| 
         @@ -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 " 
     | 
| 
      
 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 " 
     | 
| 
      
 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. 
     | 
| 
      
 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- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2013-12-05 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: builder
         
     |