class PShipTourTruckSheetLine < ApplicationRecord belongs_to :p_ship_tour_truck belongs_to :p_sheet_line has_one :p_customer_sheet, :through => :p_sheet_line #has_many :p_documents, :dependent => :destroy has_many :p_payments, :dependent => :nullify accepts_nested_attributes_for :p_payments, allow_destroy: true validates :qte_shiped, :presence => true, :if => :qte_needed? validates :price_shiped, :presence => true, :if => :qte_needed? validates :raison, :presence => true, :if => :raison_needed? attr_accessor :to_return def ok? if self.canceled or self.qte_shiped true else false end end def qte_needed? if self.to_return true else false end end def raison_needed? if self.canceled true else false end end before_validation do if self.canceled self.qte_shiped = 0 elsif self.qte_needed? if self.qte_shiped.to_f == 0.0 errors.add(:qte_shiped, 'La quantité doit être supérieure à 0') end end end end