70 lines
2.3 KiB
Ruby
70 lines
2.3 KiB
Ruby
class SProject < ApplicationRecord
|
|
acts_as_tree
|
|
#validates :name, :presence => true
|
|
belongs_to :p_commercial
|
|
before_validation do
|
|
if self.id
|
|
errors.add(:parent_id, 'attention le projet parent à pour projet parente celui-ci = boucle') if self.parent_id and self.id == SProject.find(self.parent_id).parent_id
|
|
end
|
|
end
|
|
|
|
has_many :s_project_modules
|
|
has_many :s_modules, :through => :s_project_modules
|
|
|
|
has_many :price_documents
|
|
|
|
belongs_to :p_customer
|
|
|
|
acts_as_sorting :fields => {
|
|
|
|
:p_number => {:name => "Code", :reorder => true},
|
|
|
|
:name => {:name => "Nom", :reorder => true},
|
|
:enabled => {:name => "Actif", :reorder => false, :format => :boolean},
|
|
:parent_id => {:name => "Projet parent", :reorder => true},
|
|
:p_customer => {:name => "Client", :reorder => false},
|
|
:description => {:name => "Description", :reorder => true},
|
|
:created_at => {:name => "Date de création", :reorder => true, :format => :date},
|
|
:nav_order_no_customer => {:name => "N° Commande client", :reorder => true},
|
|
#:nav_main_project_no => {:name => "", :reorder => true},
|
|
:nav_project_status => {:name => "Etat", :reorder => true},
|
|
:nav_project_type => {:name => "Type de projet", :reorder => true},
|
|
:nav_estimate_no => {:name => "N° Devis", :reorder => true},
|
|
:nav_site_production => {:name => "Site prod.", :reorder => true},
|
|
:nav_starting_date => {:name => "Démarrage", :reorder => true},
|
|
:nav_ending_date => {:name => "Fin", :reorder => true},
|
|
:nav_last_modified_date => {:name => "Dernière modif", :reorder => true},
|
|
:nav_technical_finished_date => {:name => "Fin technique", :reorder => true},
|
|
:nav_commission_principal_date => {:name => "Commission principal date", :reorder => true},
|
|
:nav_last_invoice_date => {:name => "Dernière facture", :reorder => true},
|
|
:nav_livraison_client_date => {:name => "Date livraison", :reorder => true},
|
|
|
|
|
|
|
|
:actions => {:name => "Actions", :reorder => false}
|
|
}
|
|
|
|
def member_label
|
|
"#{self.p_number} - #{self.name}"
|
|
end
|
|
|
|
|
|
def state_to_text
|
|
r = []
|
|
r[0] = "Calcul"
|
|
r[1] = "Préparation"
|
|
r[2] = "Exécution"
|
|
r[3] = "Finalisé technique"
|
|
r[4] = "Finalisé administratif"
|
|
r[5] = "Clôture comptable"
|
|
r[6] = "Archiver"
|
|
r[7] = "Archivé"
|
|
|
|
|
|
return r
|
|
end
|
|
|
|
|
|
|
|
end
|