
Untitled
By: a guest on
May 5th, 2012 | syntax:
None | size: 2.07 KB | hits: 15 | expires: Never
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