Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def vcard
- (flash[:error] = "You must specify an agent and a lead"; render :action => 'show') if params[:id].blank? && params[:vcard].blank?
- card = Vpim::Vcard::Maker.make2 do |maker|
- if params[:id] && params[:vcard]
- set_agent
- if params[:vcard] == "active"
- leads = @agent.leads.activated.open(current_company.show_rentals_leads?)
- leads.each { |lead| create_maker(lead, maker) }
- elsif params[:vcard] == "inactive"
- leads = @agent.leads.activated.not_open(current_company.show_rentals_leads?)
- leads.each { |lead| create_maker(lead, maker) }
- else
- flash[:error] = "We only support active and inactive leads"
- end
- elsif params[:id]
- create_maker(get_lead, maker)
- end
- end
- send_data card.encode, :filename => "#{lead.first_name.downcase}_#{lead.last_name.downcase}.vcf", :type => 'text/x-vcard'
- end
- private
- def create_maker(lead, maker)
- maker.add_name do |name|
- name.given = lead.first_name unless lead.first_name.blank?
- name.family = lead.last_name unless lead.last_name.blank?
- end
- maker.add_addr do |addr|
- addr.street = lead.address unless lead.address.blank?
- addr.locality = lead.city unless lead.city.blank?
- end
- maker.add_email(lead.email) { |e| e.preferred = 'yes' }
- end
- def get_lead
- if current_company.agent_site? && current_user.is_broker?
- @lead = current_company.brokerage_agent.leads.find_by_id(params[:id])
- elsif current_user.is_broker? || current_user.is_admin?
- @lead = current_company.site.leads.find_by_id(params[:id])
- elsif (current_user.is_agent? || current_user.is_employee?) && current_user.person.office_manager?
- @lead = current_company.site.leads.find_by_id(params[:id], :conditions => ["leads.office_id IN (?)", current_user.person.managing_office_ids])
- else
- @lead = current_user.person.leads.find_by_id(params[:id])
- end
- if @lead.blank?
- flash_warning "Unable to locate lead."
- access_denied
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment