6772312ea7
The primary license of the project is changing to: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later with some specific files to be licensed under the one of two licenses: CC0-1.0 LGPL-3.0-or-later This commit is one of the many steps to relicense the entire codebase. Documentation granting permission for this relicensing (from all past contributors who hold copyrights) is on file with Software Freedom Conservancy, Inc.
131 lines
6.2 KiB
Ruby
131 lines
6.2 KiB
Ruby
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
|
|
class DonationMailer < BaseMailer
|
|
|
|
# Used for both one-time and recurring donations
|
|
# can pass in array of admin user_ids to send to only some -- if falsey/empty, will send to all
|
|
def donor_payment_notification(donation_id, locale=I18n.locale)
|
|
@donation = Donation.find(donation_id)
|
|
@nonprofit = @donation.nonprofit
|
|
if @donation.campaign && ActionView::Base.full_sanitizer.sanitize(@donation.campaign.receipt_message).present?
|
|
@thank_you_note = @donation.campaign.receipt_message
|
|
else
|
|
@thank_you_note = Format::Interpolate.with_hash(@nonprofit.thank_you_note, {'NAME' => @donation.supporter.name})
|
|
end
|
|
@charge = @donation.charges.last
|
|
reply_to = @nonprofit.email.blank? ? @nonprofit.users.first.email : @nonprofit.email
|
|
from = Format::Name.email_from_np(@nonprofit.name)
|
|
I18n.with_locale(locale) do
|
|
mail(
|
|
to: @donation.supporter.email,
|
|
from: from,
|
|
reply_to: reply_to,
|
|
subject: I18n.t('mailer.donations.donor_direct_debit_notification.subject', nonprofit_name: @nonprofit.name))
|
|
end
|
|
end
|
|
|
|
def donor_direct_debit_notification(donation_id, locale=I18n.locale)
|
|
@donation = Donation.find(donation_id)
|
|
@nonprofit = @donation.nonprofit
|
|
|
|
if @donation.campaign && ActionView::Base.full_sanitizer.sanitize(@donation.campaign.receipt_message).present?
|
|
@thank_you_note = @donation.campaign.receipt_message
|
|
else
|
|
@thank_you_note = Format::Interpolate.with_hash(@nonprofit.thank_you_note, {'NAME' => @donation.supporter.name})
|
|
end
|
|
|
|
reply_to = @nonprofit.email.blank? ? @nonprofit.users.first.email : @nonprofit.email
|
|
from = Format::Name.email_from_np(@nonprofit.name)
|
|
I18n.with_locale(locale) do
|
|
mail(
|
|
to: @donation.supporter.email,
|
|
from: from,
|
|
reply_to: reply_to,
|
|
subject: I18n.t('mailer.donations.donor_direct_debit_notification.subject', nonprofit_name: @nonprofit.name)
|
|
)
|
|
end
|
|
end
|
|
|
|
# Used for both one-time and recurring donations
|
|
def nonprofit_payment_notification(donation_id, user_id=nil)
|
|
@donation = Donation.find(donation_id)
|
|
@charge = @donation.charges.last
|
|
@nonprofit = @donation.nonprofit
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, @donation.campaign ? 'notify_campaigns' : 'notify_payments')
|
|
if user_id
|
|
em = User.find(user_id).email
|
|
# return unless @emails.include?(em)
|
|
@emails = [em]
|
|
end
|
|
mail(to: @emails, subject: "Donation receipt for #{@donation.supporter.name}")
|
|
end
|
|
|
|
def nonprofit_failed_recurring_donation(donation_id)
|
|
@donation = Donation.find(donation_id)
|
|
@nonprofit = @donation.nonprofit
|
|
@charge = @donation.charges.last
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, @donation.campaign ? 'notify_campaigns' : 'notify_payments')
|
|
mail(to: @emails, subject: "Recurring donation payment failure for #{@donation.supporter.name || @donation.supporter.email}")
|
|
end
|
|
|
|
def donor_failed_recurring_donation(donation_id)
|
|
@donation = Donation.find(donation_id)
|
|
@nonprofit = @donation.nonprofit
|
|
@charge = @donation.charges.last
|
|
reply_to = @nonprofit.email.blank? ? @nonprofit.users.first.email : @nonprofit.email
|
|
from = Format::Name.email_from_np(@nonprofit.name)
|
|
mail(to: @donation.supporter.email, from: from, reply_to: reply_to, subject: "Donation payment failure for #{@nonprofit.name}")
|
|
end
|
|
|
|
def nonprofit_recurring_donation_cancellation(donation_id)
|
|
@donation = Donation.find(donation_id)
|
|
@nonprofit = @donation.nonprofit
|
|
@charge = @donation.charges.last
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, @donation.campaign ? 'notify_campaigns' : 'notify_payments')
|
|
mail(to: @emails, subject: "Recurring donation cancelled for #{@donation.supporter.name || @donation.supporter.email}")
|
|
end
|
|
|
|
def nonprofit_recurring_donation_change_amount(donation_id, previous_amount=nil)
|
|
@donation = RecurringDonation.find(donation_id).donation
|
|
@nonprofit = @donation.nonprofit
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_recurring_donations')
|
|
@previous_amount = previous_amount
|
|
mail(to: @emails, subject:"Recurring donation amount changed for #{@donation.supporter.name || @donation.supporter.email}")
|
|
end
|
|
|
|
def donor_recurring_donation_change_amount(donation_id, previous_amount=nil)
|
|
@donation = RecurringDonation.find(donation_id).donation
|
|
@nonprofit = @donation.nonprofit
|
|
reply_to = @nonprofit.email.blank? ? @nonprofit.users.first.email : @nonprofit.email
|
|
if @nonprofit.miscellaneous_np_info && ActionView::Base.full_sanitizer.sanitize(@nonprofit.miscellaneous_np_info.change_amount_message).present?
|
|
@thank_you_note = @nonprofit.miscellaneous_np_info.change_amount_message
|
|
else
|
|
@thank_you_note = nil
|
|
end
|
|
from = Format::Name.email_from_np(@nonprofit.name)
|
|
@previous_amount = previous_amount
|
|
mail(to: @donation.supporter.email, from: from, reply_to: reply_to, subject: "Recurring donation amount changed for #{@nonprofit.name}")
|
|
end
|
|
|
|
def nonprofit_recurring_donation_change_amount(donation_id, previous_amount=nil)
|
|
@donation = RecurringDonation.find(donation_id).donation
|
|
@nonprofit = @donation.nonprofit
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_recurring_donations')
|
|
@previous_amount = previous_amount
|
|
mail(to: @emails, subject:"Recurring donation amount changed for #{@donation.supporter.name || @donation.supporter.email}")
|
|
end
|
|
|
|
def donor_recurring_donation_change_amount(donation_id, previous_amount=nil)
|
|
@donation = RecurringDonation.find(donation_id).donation
|
|
@nonprofit = @donation.nonprofit
|
|
reply_to = @nonprofit.email.blank? ? @nonprofit.users.first.email : @nonprofit.email
|
|
if @nonprofit.miscellaneous_np_info && ActionView::Base.full_sanitizer.sanitize(@nonprofit.miscellaneous_np_info.change_amount_message).present?
|
|
@thank_you_note = @nonprofit.miscellaneous_np_info.change_amount_message
|
|
else
|
|
@thank_you_note = nil
|
|
end
|
|
from = Format::Name.email_from_np(@nonprofit.name)
|
|
@previous_amount = previous_amount
|
|
mail(to: @donation.supporter.email, from: from, reply_to: reply_to, subject: "Recurring donation amount changed for #{@nonprofit.name}")
|
|
end
|
|
|
|
end
|