lockaz_app/app/models/p_fournisseur.rb
Nicolas Bally f20fe482c6 initial
2020-04-06 10:38:07 +02:00

113 lines
2.8 KiB
Ruby

class PFournisseur < ApplicationRecord
has_many :p_contacts, :as => :contactable, :dependent => :destroy
accepts_nested_attributes_for :p_contacts, allow_destroy: true
belongs_to :accounting_zone
has_many :p_fournisseur_docs
validates :code, :presence => true
belongs_to :p_payment_type
has_many :p_fournisseur_orders
has_many :particulars, :as => :owner, :dependent => :destroy
accepts_nested_attributes_for :particulars
belongs_to :particular
accepts_nested_attributes_for :particular
acts_as_sorting :fields => {
:code => {:name => "Code", :reorder => true},
:show_name => {:name => "Nom", :reorder => false},
:enabled => {:name => "Actif ?", :reorder => true, :format => :boolean},
:particular => {:name => "Adresse", :reorder => false},
:p_payment_type => {:name => "Type de paiement", :reorder => true, :sort_name => "p_payment_type_id"},
:payment_comptant => {:name => "Paiement comptant ?", :reorder => true, :format => :boolean},
:payment_delais => {:name => "Délais paiement", :reorder => true},
:payment_month_end => {:name => "Fin de mois ?", :reorder => true, :format => :boolean},
:actions => {:name => "Actions", :reorder => false}
}
after_save do
if !self.particular and self.particulars.count > 0
self.particular = self.particulars.first
self.save
end
end
def show_name
if self.particular
n = ""
n += self.particular.organisation+" " if self.particular.organisation?
#n += self.particular.name+" " if self.particular.name?
#n += self.particular.firstname+" " if self.particular.firstname?
return n
end
end
def member_label
"#{self.code} #{self.show_name}"
end
before_validation do
if self.payment_comptant
if self.acompte
errors.add(:acompte, "N'est pas compatible avec les paiements comptants")
end
if self.acompte_percent?
errors.add(:acompte_percent, "N'est pas compatible avec les paiements comptants")
end
if self.payment_delais?
errors.add(:payment_delais, "N'est pas compatible avec les paiements comptants")
end
if self.payment_month_end
errors.add(:payment_month_end, "N'est pas compatible avec les paiements comptants")
end
end
if self.acompte
if !self.acompte_percent?
errors.add(:acompte_percent, "Doit être remplis pour demander un acompte")
end
end
if !self.payment_comptant
if !self.payment_delais?
errors.add(:payment_delais, "Délais de paiement nécessaire si pas de paiement comptant")
end
end
end
end