63 lines
1.1 KiB
Ruby
63 lines
1.1 KiB
Ruby
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
|