Class: Sepa::PaymentsInitiation::Pain00800104::CustomerDirectDebitInitiation

Inherits:
Base
  • Object
show all
Defined in:
lib/sepa/payments_initiation/pain00800104/customer_direct_debit_initiation.rb

Instance Method Summary collapse

Methods inherited from Base

array_attribute, attribute, attribute_defs, attribute_defs=, #build_xml_attributes, code_or_proprietary, definition, #empty?, #empty_item?, #normalize, #string_type?, time_format=, #to_xml, typed_attribute

Instance Method Details

#generate_xml(opts) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/sepa/payments_initiation/pain00800104/customer_direct_debit_initiation.rb', line 8

def generate_xml opts
  pain_008_001_version = opts[:pain_008_001_version]

  unless %w{ 02 04 }.include?(pain_008_001_version)
    raise "unknown SEPA pain-008-001 version: #{pain_008_001_version.inspect} - use '04' or '02'"
  end

  doc_props = {
    :xmlns                 => "urn:iso:std:iso:20022:tech:xsd:pain.008.001.#{pain_008_001_version}",
    :"xmlns:xsi"           => "http://www.w3.org/2001/XMLSchema-instance",
    :"xsi:schemaLocation"  => "urn:iso:std:iso:20022:tech:xsd:pain.008.001.#{pain_008_001_version} pain.008.001.#{pain_008_001_version}.xsd"
  }

  builder = Builder::XmlMarkup.new(:indent => 2)
  builder.instruct!
  builder.Document(doc_props) {
    builder.CstmrDrctDbtInitn {
      self.to_xml builder
    }
  }
end