Guest User

Untitled

a guest
May 5th, 2012
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  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
Advertisement
Add Comment
Please, Sign In to add comment