Sha256: 17dbb7c43b21ee547603c071a4cc6275de09c83bb6d8bb869b5eb69e1d1ec734

Contents?: true

Size: 1.26 KB

Versions: 2

Compression:

Stored size: 1.26 KB

Contents

module Moysklad::Entities
  class Attribute < Base
    include Moysklad::Entities::Common

    tag 'attribute'

    attribute :metadataUuid,    String
    attribute :valueString,     String
    attribute :valueText,       String

    attribute :entityValueUuid, String

    # Объект описывающий тип атритуба
    #
    # @return Moysklad::Entities::AttributeMetadata
    #
    def metadata universe
      universe.embedded_entity_metadata.subresource_by_name(:GoodFolder).find metadataUuid
    end

    # Название свойства, полученное из AttributeMetadata
    #
    # @return String
    #
    def attributeName universe
      metadata(universe).name
    end

    # Значение свойства согласно его типу
    #
    # @return [String | Moysklad::Entities::CustomEntity | Integer | Decimal ]
    def get_value universe
      md = metadata universe
      case md.attrType
      when 'ID_CUSTOM'
        universe.custom_entities.find( entityValueUuid ).name
      when 'TEXT'
        valueText
      when 'STRING'
        valueString
        # TODO Другие типы
      else
        raise "Не известный тип мета-аттрибута #{md.uuid}: #{md.attrType}"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
moysklad-0.2.1 lib/moysklad/entities/attribute.rb
moysklad-0.2.0 lib/moysklad/entities/attribute.rb