class ActiveNetsuite::SearchRecord

{urn:core_2013_2.platform.webservices.netsuite.com}SearchRecord abstract

Attributes

method[R]
op[R]
record_class[RW]
value[R]

Public Class Methods

new() click to toggle source
# File lib/activenetsuite/soap/default.rb, line 23938
def initialize
end

Public Instance Methods

active() click to toggle source
# File lib/activenetsuite/core/search_record.rb, line 24
def active
  where(isInactive: false)
end
deleted(op, val) click to toggle source
# File lib/activenetsuite/core/search_record.rb, line 28
def deleted(op, val)
  search_value = SearchDateField.new
  search_value.xmlattr_operator = SearchDateFieldOperator.make(op)
  search_value.predefinedSearchValue = SearchDate.make(val)

  search_type = SearchEnumMultiSelectField.new
  search_type.xmlattr_operator = SearchEnumMultiSelectFieldOperator::AnyOf
  search_type.searchValue = type

  get_deleted_filter = GetDeletedFilter.new(search_value, search_type)
  client.get_deleted(get_deleted_filter)
end
find_by(*args) click to toggle source
# File lib/activenetsuite/core/search_record.rb, line 16
def find_by(*args)
  where(*args).first
end
inactive() click to toggle source
# File lib/activenetsuite/core/search_record.rb, line 20
def inactive
  where(isInactive: true)
end
response() click to toggle source
# File lib/activenetsuite/core/search_record.rb, line 41
def response
  @response ||= client.search(self)
end
where(*args) click to toggle source
# File lib/activenetsuite/core/search_record.rb, line 12
def where(*args)
  dup.send(:add, *args)
end

Private Instance Methods

add(*args) click to toggle source
# File lib/activenetsuite/core/search_record.rb, line 53
def add(*args)
  if args.first.is_a?(Hash)
    @method, @value = args.first.flatten
    @op = default_operator
  end
  if args.size == 3
    @method, @op, @value = args
  end

  method = record_class.inflected_method(@method)
  send("#{method}=", search_class.new)
  unless value == true || value == false
    send(method).xmlattr_operator = search_operator
  end
  send(method).searchValue = value

  self
end
client() click to toggle source
# File lib/activenetsuite/core/search_record.rb, line 49
def client
  Record.client
end
default_operator() click to toggle source
# File lib/activenetsuite/core/search_record.rb, line 72
def default_operator
  case value
  when String
    :is
  when Fixnum
    :equal_to
  when Date, DateTime
    :on
  else
    raise ArgumentError, "Can't find search class for #{value.inspect}"
  end
end
search_class() click to toggle source
# File lib/activenetsuite/core/search_record.rb, line 85
def search_class
  case value
  when String
    SearchStringField
  when Fixnum
    SearchLongField
  when TrueClass, FalseClass
    SearchBooleanField
  when Date, DateTime
    SearchDateField
  else
    raise ArgumentError, "Can't find search class for #{value.inspect}"
  end
end
search_operator() click to toggle source
# File lib/activenetsuite/core/search_record.rb, line 100
def search_operator
  operator_constant_name = op.to_s.camelize
  operator_class_name = search_class.to_s + "Operator"
  "#{operator_class_name}::#{operator_constant_name}".constantize
end