Sha256: 27fcba8f88095f7aa7988a9b02c30d8fcdadab459bda9a97b02aa7959b105fdd

Contents?: true

Size: 1.01 KB

Versions: 30

Compression:

Stored size: 1.01 KB

Contents

module ActiveZuora
  module Generate

    # This is meant to be included onto an Invoice class.
    # Returns true/false on success.
    # Result hash is stored in #result.
    # If success, the id will be set in the object.
    # If failure, errors will be present on object.

    extend ActiveSupport::Concern

    included do
      include Base
      attr_accessor :result
    end

    def generate
      self.result = self.class.connection.request(:generate) do |soap|
        soap.body do |xml|
          build_xml(xml, soap,
            :namespace => soap.namespace,
            :element_name => :zObjects,
            :force_type => true)
        end
      end[:generate_response][:result]

      if result[:success]
        self.id = result[:id]
        self.status = 'Draft'
        clear_changed_attributes
        true
      else
        add_zuora_errors(result[:errors])
        false
      end
    end

    def generate!
      raise "Could not generate: #{errors.full_messages.join ', '}" unless generate
    end

  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
active_zuora-2.6.0 lib/active_zuora/generate.rb
active_zuora-2.5.4 lib/active_zuora/generate.rb
active_zuora-2.5.3 lib/active_zuora/generate.rb
active_zuora-2.5.2 lib/active_zuora/generate.rb
active_zuora-2.5.1 lib/active_zuora/generate.rb
active_zuora-2.5.0 lib/active_zuora/generate.rb
active_zuora-2.4.1 lib/active_zuora/generate.rb
active_zuora-2.4.0 lib/active_zuora/generate.rb
active_zuora-2.3.1 lib/active_zuora/generate.rb
active_zuora-2.3.0 lib/active_zuora/generate.rb
active_zuora-2.2.7 lib/active_zuora/generate.rb
active_zuora-2.2.6 lib/active_zuora/generate.rb
active_zuora-2.2.5 lib/active_zuora/generate.rb
active_zuora-2.2.4 lib/active_zuora/generate.rb
active_zuora-2.2.3 lib/active_zuora/generate.rb
active_zuora-2.2.2 lib/active_zuora/generate.rb
active_zuora-2.2.1 lib/active_zuora/generate.rb
active_zuora-2.2.0 lib/active_zuora/generate.rb
active_zuora-2.1.4 lib/active_zuora/generate.rb
active_zuora-2.1.3 lib/active_zuora/generate.rb