67 lines
1.4 KiB
Ruby
67 lines
1.4 KiB
Ruby
class Renew < ActiveRecord::Base
|
|
belongs_to :sheet
|
|
|
|
validates :sheet_number, :presence => true
|
|
|
|
validates :email, :presence => true
|
|
validates :payment_type_id, :presence => true
|
|
|
|
validates :join_type, :presence => true
|
|
validates :personalized_price, :presence => true, numericality:{greater_than_or_equal_to: 20}, :if => :bienfaiteur?
|
|
|
|
before_validation do
|
|
if !self.bienfaiteur
|
|
self.personalized_price = nil
|
|
end
|
|
|
|
|
|
self.payment_type_id = 3
|
|
if self.bienfaiteur
|
|
self.price = self.personalized_price
|
|
elsif self.join_type == 1
|
|
self.price = 10.0
|
|
elsif self.join_type == 2
|
|
self.price = 15.0
|
|
else
|
|
self.price = nil
|
|
end
|
|
|
|
|
|
if self.sheet_number
|
|
self.sheet = Sheet.where(:sheet_number => self.sheet_number).first
|
|
if !self.sheet
|
|
errors.add(:sheet_number, "Numéro d'adhérent invalide")
|
|
|
|
end
|
|
end
|
|
|
|
true
|
|
|
|
end
|
|
|
|
YEAR = 2021
|
|
|
|
def done_return
|
|
if self.ok and !self.return_done
|
|
|
|
|
|
|
|
sheet_year = self.sheet.sheet_years.new(:benefactor => self.bienfaiteur, :year => Renew::YEAR, :join_type => self.join_type, :paid_at => Time.now, :amount => self.price, :payment_type => self.payment_type_id, )
|
|
|
|
if sheet_year.save
|
|
self.return_done = true
|
|
self.save
|
|
else
|
|
puts sheet_year.errors.messages
|
|
false
|
|
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|