Sha256: 9193321282e0230d9b26957e8e3fe7e9eec6e07a6dc38fa946ef6177954c9c54

Contents?: true

Size: 1.3 KB

Versions: 8

Compression:

Stored size: 1.3 KB

Contents

require 'killbill/plugin'
require 'securerandom'

module Killbill
  module Plugin
    class Invoice < Notification

      def get_additional_invoice_items(invoice, properties, context)
        []
      end


      # Helper method to build a new item from an existing one
      def build_item(item_model, amount, description = nil, type = :EXTERNAL_CHARGE)
        item = Model::InvoiceItem.new

        item.created_date    = item_model.created_date
        item.updated_date    = item_model.updated_date
        item.invoice_id      = item_model.invoice_id
        item.account_id      = item_model.account_id
        item.currency        = item_model.currency
        item.bundle_id       = item_model.bundle_id
        item.subscription_id = item_model.subscription_id
        item.start_date      = item_model.start_date
        item.end_date        = item_model.end_date
        item.plan_name       = item_model.plan_name
        item.phase_name      = item_model.phase_name
        item.usage_name      = item_model.usage_name

        item.linked_item_id = item_model.id

        item.id                = SecureRandom.uuid
        item.invoice_item_type = type
        item.amount            = amount
        item.description       = description
        item.rate              = nil

        item
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
killbill-5.1.0 lib/killbill/invoice.rb
killbill-5.0.0 lib/killbill/invoice.rb
killbill-4.4.0 lib/killbill/invoice.rb
killbill-4.3.0 lib/killbill/invoice.rb
killbill-4.2.0 lib/killbill/invoice.rb
killbill-4.1.0 lib/killbill/invoice.rb
killbill-4.0.0 lib/killbill/invoice.rb
killbill-3.2.4 lib/killbill/invoice.rb