Sha256: d93fc833a65c72cf527290b652d4fc0a7b509656c1c46287036da6f63757721d

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

module Workarea
  module Avatax
    class TaxRequest::LineItem
      attr_accessor :line_number

      def initialize(**)
        @line_number = 0
      end

      def hash
        {
          quantity:    quantity,
          amount:      amount.to_s,
          itemCode:    item_code,
          taxCode:     tax_code,
          description: description,
          number:      line_number,
          addresses:   addresses
        }.compact
      end

      private

        def quantity
          raise NotImplementedError, "#{self.class.name} must implement #quantity"
        end

        def amount
          raise NotImplementedError, "#{self.class.name} must implement #amount"
        end

        def item_code
          raise NotImplementedError, "#{self.class.name} must implement #item_code"
        end

        def tax_code
          raise NotImplementedError, "#{self.class.name} must implement #tax_code"
        end

        def description
          raise NotImplementedError, "#{self.class.name} must implement #description_code"
        end

        def addresses; end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
workarea-avatax-4.2.1 lib/workarea/avatax/tax_request/line_item.rb
workarea-avatax-4.2.0 lib/workarea/avatax/tax_request/line_item.rb