36 lines
1.2 KiB
Ruby
36 lines
1.2 KiB
Ruby
|
class GreetingCardEmail
|
||
|
include Mongoid::Document
|
||
|
include Mongoid::Timestamps
|
||
|
|
||
|
field :category_id
|
||
|
field :year, type: Integer
|
||
|
field :sending_time, type: DateTime
|
||
|
field :is_sent, :type => Boolean, :default => false
|
||
|
|
||
|
belongs_to :member_profile
|
||
|
belongs_to :email, dependent: :destroy
|
||
|
belongs_to :greeting_card_record, dependent: :destroy, index: true
|
||
|
|
||
|
index({category_id: 1, year: -1, sending_time: -1, member_profile_id: 1}, { unique: false, background: true })
|
||
|
|
||
|
def email_sent(mails, flag)
|
||
|
if flag # Generate next record when email is sent
|
||
|
new_sending_time = self.sending_time + 1.year
|
||
|
new_email_record = self.dup
|
||
|
new_record = self.greeting_card_record.dup
|
||
|
new_email_record.year += 1
|
||
|
new_email_record.sending_time = new_sending_time
|
||
|
new_record.sending_time = new_sending_time
|
||
|
new_email = self.email.dup
|
||
|
new_email.mail_sentdate = new_sending_time
|
||
|
new_email.template_data["model_id"] = new_email_record.id
|
||
|
new_email.save
|
||
|
new_record.email_id = new_email.id
|
||
|
new_email_record.email_id = new_email.id
|
||
|
new_email_record.greeting_card_record = new_record
|
||
|
new_record.save
|
||
|
new_email_record.save
|
||
|
self.update(is_sent: true)
|
||
|
end
|
||
|
end
|
||
|
end
|