Sha256: 8bc53a55f3c99c3a62572b17c65c85b9691e91642cf9ec272333d7c9c43e443e
Contents?: true
Size: 1.03 KB
Versions: 7
Compression:
Stored size: 1.03 KB
Contents
class DailyEmailReportJob def perform(date=nil) date ||= 1.day.ago Organization.where(:id => organization_ids_to_email(date)).receiving_sales_email.each do |org| tickets = DailyTicketReport.new(org, date) donations = DailyDonationReport.new(org, date) membership_report = DailyMembershipReport.new(org, date) next if tickets.rows.empty? && donations.rows.empty? && tickets.exchange_rows.empty? && !membership_report.send? ReportsMailer.daily(tickets, donations, membership_report).deliver end end def organization_ids_to_email(date) # # We have to go back two days here intentionally to account for orgs across different time zones # We'll re-select the correct orders in the respective jobs # org_ids = Order.csv_not_imported.after(date-1.day).before(DateTime.now).pluck(:organization_id).uniq orgs_with_lapsed_memberships = Membership.lapsed.pluck(:organization_id).uniq org_ids = (org_ids + orgs_with_lapsed_memberships).uniq org_ids end end
Version data entries
7 entries across 7 versions & 1 rubygems