app/models/caboose_rets/search_option.rb in caboose-rets-0.1.172 vs app/models/caboose_rets/search_option.rb in caboose-rets-0.1.173
- old
+ new
@@ -14,32 +14,64 @@
'Zip Code' => ['postal_code'],
'Schools' => ['elementary_school', 'middle_school', 'high_school'],
'MLS Area' => ['area'],
'Neighborhood' => ['subdivision'],
'Street Name' => ['street_name'],
+ 'Street Address' => ['street_address'],
'Property Type' => ['property_type'],
'MLS Number' => ['mls_number']
}
names.each do |name, fields|
fields.each do |field|
self.update_search_options_for_field(name, field)
end
end
+
# Delete all flagged
self.where(:flag_for_delete => true).delete_all
end
def self.update_search_options_for_field(name, field)
- q = ["select distinct(#{field}) from rets_properties where status = ?", 'Active']
- rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, q))
- rows.each do |row|
- so = self.where(:name => name, :field => field, :value => row[0]).first
- if so.nil? && !field.blank?
- self.create(:name => name, :field => field, :value => row[0])
- else
- so.flag_for_delete = false
- so.save
+ if field == 'street_name'
+ CabooseRets::Property.where(:status => "Active", :property_type => "Residential").where("street_name is not null").order(:id).all.each do |prop|
+ add = "#{prop.street_name} #{prop.street_suffix}"
+ val = add.blank? ? nil : add.strip
+ next if val.blank?
+ so = self.where(:name => name, :field => field, :value => val).first
+ if so.nil? && !field.blank?
+ self.create(:name => name, :field => field, :value => val)
+ elsif so
+ so.flag_for_delete = false
+ so.save
+ end
+ end
+ elsif field == 'street_address'
+ CabooseRets::Property.where(:status => "Active", :property_type => "Residential").where("street_name is not null and street_number is not null").order(:id).all.each do |prop|
+ add = "#{prop.street_number} #{prop.street_name} #{prop.street_suffix}"
+ val = add.blank? ? nil : add.strip
+ next if val.blank?
+ so = self.where(:name => name, :field => field, :value => val).first
+ if so.nil? && !field.blank?
+ self.create(:name => name, :field => field, :value => val)
+ elsif so
+ so.flag_for_delete = false
+ so.save
+ end
+ end
+ else
+ q = ["select distinct(#{field}) from rets_properties where status = ? and property_type = ?", 'Active', 'Residential']
+ rows = ActiveRecord::Base.connection.select_rows(ActiveRecord::Base.send(:sanitize_sql_array, q))
+ rows.each do |row|
+ val = row[0].blank? ? nil : row[0].titleize.strip
+ next if val.blank?
+ so = self.where(:name => name, :field => field, :value => val).first
+ if so.nil? && !field.blank?
+ self.create(:name => name, :field => field, :value => val)
+ elsif so
+ so.flag_for_delete = false
+ so.save
+ end
end
end
end
def self.results(str, count_per_name = 10)