Sha256: 1a27059d86895a8e32eb0095ef2cbc3e34fdb3f061e48afcae56be29ce692839

Contents?: true

Size: 829 Bytes

Versions: 70

Compression:

Stored size: 829 Bytes

Contents

module Xsys
  module Model
    class SaleItem
      def self.attr_list
        [:sale_code, :position, :transaction_number, :shop_code, :product_id, :quantity,
        :taxed_unit_price, :vat_unit_price, :total_unit_price, :taxed_amount, :vat_amount,
        :total_amount, :vat_rate]
      end

      attr_reader *attr_list

      def initialize(attributes={})
        decimal_fields = ['taxed_unit_price', 'vat_unit_price', 'total_unit_price',
          'taxed_amount', 'vat_amount', 'total_amount', 'vat_rate']

        attributes.each do |k, v|
          if decimal_fields.include?(k.to_s)
            self.send("#{k}=", BigDecimal.new(v)) unless v.nil?
          else
            self.send("#{k}=", v) if self.respond_to?(k)
          end
        end
      end

      private

      attr_writer *attr_list
    end
  end
end

Version data entries

70 entries across 70 versions & 1 rubygems

Version Path
xsys-0.8.0 lib/xsys/model/sale_item.rb
xsys-0.7.0 lib/xsys/model/sale_item.rb
xsys-0.6.5 lib/xsys/model/sale_item.rb
xsys-0.6.4 lib/xsys/model/sale_item.rb
xsys-0.6.3 lib/xsys/model/sale_item.rb
xsys-0.6.2 lib/xsys/model/sale_item.rb
xsys-0.6.1 lib/xsys/model/sale_item.rb
xsys-0.6.0 lib/xsys/model/sale_item.rb
xsys-0.5.2 lib/xsys/model/sale_item.rb
xsys-0.5.1 lib/xsys/model/sale_item.rb