Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 5th, 2012  |  syntax: None  |  size: 2.07 KB  |  hits: 15  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. def vcard
  2.     (flash[:error] = "You must specify an agent and a lead"; render :action => 'show') if params[:id].blank? && params[:vcard].blank?
  3.  
  4.     card = Vpim::Vcard::Maker.make2 do |maker|
  5.       if params[:id] && params[:vcard]
  6.         set_agent
  7.         if params[:vcard] == "active"
  8.           leads = @agent.leads.activated.open(current_company.show_rentals_leads?)
  9.           leads.each { |lead| create_maker(lead, maker) }
  10.         elsif params[:vcard] == "inactive"
  11.           leads = @agent.leads.activated.not_open(current_company.show_rentals_leads?)
  12.           leads.each { |lead| create_maker(lead, maker) }
  13.         else
  14.           flash[:error] = "We only support active and inactive leads"
  15.         end
  16.       elsif params[:id]
  17.         create_maker(get_lead, maker)
  18.       end
  19.  
  20.      end
  21.  
  22.     send_data card.encode, :filename => "#{lead.first_name.downcase}_#{lead.last_name.downcase}.vcf", :type => 'text/x-vcard'
  23.  
  24.   end
  25.  
  26. private
  27.  
  28.   def create_maker(lead, maker)
  29.     maker.add_name do |name|
  30.       name.given = lead.first_name unless lead.first_name.blank?
  31.       name.family = lead.last_name unless lead.last_name.blank?
  32.     end
  33.  
  34.     maker.add_addr do |addr|
  35.       addr.street = lead.address unless lead.address.blank?
  36.       addr.locality = lead.city unless lead.city.blank?
  37.     end
  38.  
  39.     maker.add_email(lead.email) { |e| e.preferred = 'yes' }
  40.   end
  41.  
  42.  def get_lead
  43.     if current_company.agent_site? && current_user.is_broker?
  44.       @lead = current_company.brokerage_agent.leads.find_by_id(params[:id])
  45.     elsif current_user.is_broker? || current_user.is_admin?
  46.       @lead = current_company.site.leads.find_by_id(params[:id])
  47.     elsif (current_user.is_agent? || current_user.is_employee?) && current_user.person.office_manager?
  48.       @lead = current_company.site.leads.find_by_id(params[:id], :conditions => ["leads.office_id IN (?)", current_user.person.managing_office_ids])
  49.     else
  50.       @lead = current_user.person.leads.find_by_id(params[:id])
  51.     end
  52.     if @lead.blank?
  53.       flash_warning "Unable to locate lead."
  54.       access_denied
  55.     end
  56.   end