Class: SalesMailer
- Inherits:
-
InternalNotificationMailer
- Object
- ActionMailer::Base
- ApplicationMailer
- InternalNotificationMailer
- SalesMailer
- Defined in:
- app/mailers/sales_mailer.rb
Overview
Sales ops: commissions, rewards, merges, copies, activity assignment.
Extracted from the former InternalMailer god object.
Instance Method Summary collapse
- #confirm_quote_planning(rep, forecasts) ⇒ Object
- #customer_merge_complete(customer_master, user_email: nil, report: {}) ⇒ Object
- #new_buying_group_created(buying_group) ⇒ Object
- #notify_allocate_reward_to_complete(employee_review) ⇒ Object
- #notify_of_activity_assigned(party_assigned, activity) ⇒ Object
- #notify_process_reward_to_complete(employee_review) ⇒ Object
- #notify_sales_commission_to_pending_accounting_review(sales_commission_rep) ⇒ Object
- #notify_sales_commission_to_pending_pay_out(sales_commission_rep) ⇒ Object
- #notify_sales_commission_to_pending_rep_approval(sales_commission_rep) ⇒ Object
- #notify_sales_manager_of_drop_event(customer_drop_event) ⇒ Object
- #opportunity_copy_complete(target_customer, new_opportunity, user_email: nil, report: {}) ⇒ Object
- #quote_copy_complete(target_opportunity, new_quote, user_email: nil, report: {}) ⇒ Object
Methods inherited from InternalNotificationMailer
Methods included from SendgridSmtpApi::InternalMailerHeaders
Methods inherited from ApplicationMailer
Instance Method Details
#confirm_quote_planning(rep, forecasts) ⇒ Object
100 101 102 103 104 105 106 107 108 109 |
# File 'app/mailers/sales_mailer.rb', line 100 def confirm_quote_planning(rep, forecasts) return null_mail if forecasts.blank? @rep = rep @forecasts = forecasts mail(from: ACCOUNTS_PAYABLE_EMAIL, to: @rep.email_with_name, cc: ACCOUNTS_PAYABLE_EMAIL, subject: 'Quote Stock Reservation Reminder') end |
#customer_merge_complete(customer_master, user_email: nil, report: {}) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 |
# File 'app/mailers/sales_mailer.rb', line 64 def customer_merge_complete(customer_master, user_email: nil, report: {}) user_email ||= 'heatwaveteam@warmlyyours.com' @customer_master = customer_master @report = report if @report[:customer_errors].blank? && @report[:execution_errors].blank? recipients = [user_email, @customer_master.primary_sales_rep&.email].compact.uniq.join(',') mail(from: user_email, to: recipients, subject: "Merge Complete: #{@customer_master} #{@customer_master.full_name}") else mail(from: user_email, to: 'heatwaveteam@warmlyyours.com', cc: user_email, subject: 'Merge Failed') end end |
#new_buying_group_created(buying_group) ⇒ Object
9 10 11 12 13 14 |
# File 'app/mailers/sales_mailer.rb', line 9 def () @buying_group = mail(from: 'Heatwave Team <heatwaveteam@warmlyyours.com>', to: 'epasek@warmlyyours.com', subject: "New Buying Group Needs Review - #{@buying_group.name}") end |
#notify_allocate_reward_to_complete(employee_review) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'app/mailers/sales_mailer.rb', line 16 def notify_allocate_reward_to_complete(employee_review) @employee_review = employee_review @review_date = @employee_review.updated_at @salutation = employee_review.employee_record.party.first_name sender = @employee_review.reviewer_email recipient = @employee_review.employee_email mail(from: sender, to: recipient, cc: 'charity@warmlyyours.com', subject: 'Please complete the reward allocation for your review') end |
#notify_of_activity_assigned(party_assigned, activity) ⇒ Object
111 112 113 114 115 116 117 118 119 |
# File 'app/mailers/sales_mailer.rb', line 111 def notify_of_activity_assigned(party_assigned, activity) @party = party_assigned @activity = activity cc = (@party&.employee_record&.department == 'Tech Support' ? 'techteam@warmlyyours.com' : nil) mail(from: ADMINISTRATOR_EMAIL, to: party_assigned.email, cc: cc, subject: "Activity Assigned: #{activity.display_type}") end |
#notify_process_reward_to_complete(employee_review) ⇒ Object
25 26 27 28 29 30 31 |
# File 'app/mailers/sales_mailer.rb', line 25 def notify_process_reward_to_complete(employee_review) @employee_review = employee_review @reviewee_name = employee_review.employee_record.party.full_name sender = @employee_review.reviewer_email recipient = 'jbillen@warmlyyours.com' mail(from: sender, to: recipient, subject: "Please process the reward allocation for #{@reviewee_name}") end |
#notify_sales_commission_to_pending_accounting_review(sales_commission_rep) ⇒ Object
42 43 44 45 46 47 |
# File 'app/mailers/sales_mailer.rb', line 42 def notify_sales_commission_to_pending_accounting_review(sales_commission_rep) @sales_commission_rep = sales_commission_rep sender = Employee.find_by(id: @sales_commission_rep.employee_id)&.email || 'heatwaveteam@warmlyyours.com' recipient = 'vadepu@warmlyyours.com' mail(from: sender, to: recipient, cc: 'epasek@warmlyyours.com,accounting@warmlyyours.com,jbillen@warmlyyours.com', subject: 'Your commission report is now under review') end |
#notify_sales_commission_to_pending_pay_out(sales_commission_rep) ⇒ Object
49 50 51 52 53 54 |
# File 'app/mailers/sales_mailer.rb', line 49 def notify_sales_commission_to_pending_pay_out(sales_commission_rep) @sales_commission_rep = sales_commission_rep sender = Employee.find_by(id: @sales_commission_rep.employee_id)&.email || 'heatwaveteam@warmlyyours.com' recipient = 'epasek@warmlyyours.com' mail(from: sender, to: recipient, cc: 'epasek@warmlyyours.com,jbillen@warmlyyours.com', subject: 'Your commission has now been filed for payment') end |
#notify_sales_commission_to_pending_rep_approval(sales_commission_rep) ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'app/mailers/sales_mailer.rb', line 33 def notify_sales_commission_to_pending_rep_approval(sales_commission_rep) @sales_commission_rep = sales_commission_rep sender = Employee.find_by(id: @sales_commission_rep.updater_id)&.email || 'heatwaveteam@warmlyyours.com' recipient = Employee.find_by(id: @sales_commission_rep.employee_id)&.email return unless recipient mail(from: sender, to: recipient, cc: 'epasek@warmlyyours.com,jbillen@warmlyyours.com', subject: "Please approve your commission report for #{@sales_commission_rep.commission_date.strftime('%b-%Y')}") end |
#notify_sales_manager_of_drop_event(customer_drop_event) ⇒ Object
56 57 58 59 60 61 62 |
# File 'app/mailers/sales_mailer.rb', line 56 def notify_sales_manager_of_drop_event(customer_drop_event) @customer_drop_event = customer_drop_event @customer = @customer_drop_event.customer sender = @customer_drop_event&.creator&.email || 'heatwaveteam@warmlyyours.com' recipient = 'epasek@warmlyyours.com' mail(from: sender, to: recipient, subject: "Customer Drop Event Triggered for #{@customer.full_name} [#{@customer.reference_number}] ") end |
#opportunity_copy_complete(target_customer, new_opportunity, user_email: nil, report: {}) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 |
# File 'app/mailers/sales_mailer.rb', line 76 def opportunity_copy_complete(target_customer, new_opportunity, user_email: nil, report: {}) user_email ||= 'heatwaveteam@warmlyyours.com' @target_customer = target_customer @opportunity_created = new_opportunity @report = report if @opportunity_created.present? && @report[:errors].blank? mail(from: user_email, to: user_email, subject: "Opportunity Copy Complete: #{@opportunity_created.name} #{@opportunity_created.reference_number}") else mail(from: user_email, to: 'heatwaveteam@warmlyyours.com', cc: user_email, subject: 'Opportunity Copy Failed') end end |
#quote_copy_complete(target_opportunity, new_quote, user_email: nil, report: {}) ⇒ Object
88 89 90 91 92 93 94 95 96 97 98 |
# File 'app/mailers/sales_mailer.rb', line 88 def quote_copy_complete(target_opportunity, new_quote, user_email: nil, report: {}) user_email ||= 'heatwaveteam@warmlyyours.com' @target_opportunity = target_opportunity @quote_created = new_quote @report = report if @quote_created.present? && @report[:errors].blank? mail(from: user_email, to: user_email, subject: "Quote Copy Complete: #{@quote_created.reference_number_with_name}") else mail(from: user_email, to: 'heatwaveteam@warmlyyours.com', cc: user_email, subject: 'Quote Copy Failed') end end |