Nicolas Bally f2d3a52c87 suite
2021-01-22 12:26:50 +01:00

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