Merge branch 'develop' into refactor_type_de_xxx
Conflicts: db/schema.rb
This commit is contained in:
commit
d6e4a76bf9
73 changed files with 1352 additions and 212 deletions
|
@ -4,8 +4,8 @@ class Dossier < ActiveRecord::Base
|
|||
replied: 'replied',
|
||||
updated: 'updated',
|
||||
validated: 'validated',
|
||||
submitted: 'submitted', #-submit_validated
|
||||
closed: 'closed'} #-processed
|
||||
submitted: 'submitted',
|
||||
closed: 'closed'}
|
||||
|
||||
has_one :etablissement, dependent: :destroy
|
||||
has_one :entreprise, dependent: :destroy
|
||||
|
@ -30,6 +30,10 @@ class Dossier < ActiveRecord::Base
|
|||
validates :description, presence: true, allow_blank: false, allow_nil: true
|
||||
validates :user, presence: true
|
||||
|
||||
A_TRAITER = %w(initiated updated submitted)
|
||||
EN_ATTENTE = %w(replied validated)
|
||||
TERMINE = %w(closed)
|
||||
|
||||
def retrieve_piece_justificative_by_type(type)
|
||||
pieces_justificatives.where(type_de_piece_justificative_id: type).last
|
||||
end
|
||||
|
@ -116,16 +120,67 @@ class Dossier < ActiveRecord::Base
|
|||
state
|
||||
end
|
||||
|
||||
def a_traiter?
|
||||
A_TRAITER.include?(state)
|
||||
end
|
||||
|
||||
def en_attente?
|
||||
EN_ATTENTE.include?(state)
|
||||
end
|
||||
|
||||
def termine?
|
||||
TERMINE.include?(state)
|
||||
end
|
||||
|
||||
def self.a_traiter current_gestionnaire
|
||||
Dossier.joins(:procedure).where("(state='initiated' OR state='updated' OR state='submitted') AND dossiers.procedure_id = procedures.id AND procedures.administrateur_id = #{current_gestionnaire.administrateur_id}").order('updated_at ASC')
|
||||
current_gestionnaire.dossiers.where(state: A_TRAITER).order('updated_at ASC')
|
||||
end
|
||||
|
||||
def self.en_attente current_gestionnaire
|
||||
Dossier.joins(:procedure).where("(state='replied' OR state='validated') AND dossiers.procedure_id = procedures.id AND procedures.administrateur_id = #{current_gestionnaire.administrateur_id}").order('updated_at ASC')
|
||||
current_gestionnaire.dossiers.where(state: EN_ATTENTE).order('updated_at ASC')
|
||||
end
|
||||
|
||||
def self.termine current_gestionnaire
|
||||
Dossier.joins(:procedure).where("state='closed' AND dossiers.procedure_id = procedures.id AND procedures.administrateur_id = #{current_gestionnaire.administrateur_id}").order('updated_at ASC')
|
||||
current_gestionnaire.dossiers.where(state: TERMINE).order('updated_at ASC')
|
||||
end
|
||||
|
||||
def self.search current_gestionnaire, terms
|
||||
return [], nil if terms.blank?
|
||||
|
||||
dossiers = Dossier.arel_table
|
||||
users = User.arel_table
|
||||
etablissements = Etablissement.arel_table
|
||||
entreprises = Entreprise.arel_table
|
||||
|
||||
composed_scope = self.joins('LEFT OUTER JOIN users ON users.id = dossiers.user_id')
|
||||
.joins('LEFT OUTER JOIN entreprises ON entreprises.dossier_id = dossiers.id')
|
||||
.joins('LEFT OUTER JOIN etablissements ON etablissements.dossier_id = dossiers.id')
|
||||
|
||||
terms.split.each do |word|
|
||||
query_string = "%#{word}%"
|
||||
query_string_start_with = "#{word}%"
|
||||
|
||||
composed_scope = composed_scope.where(
|
||||
dossiers[:nom_projet].matches(query_string).or\
|
||||
users[:email].matches(query_string).or\
|
||||
etablissements[:siret].matches(query_string_start_with).or\
|
||||
entreprises[:raison_sociale].matches(query_string))
|
||||
end
|
||||
|
||||
#TODO refactor
|
||||
composed_scope = composed_scope.where(
|
||||
dossiers[:id].eq_any(current_gestionnaire.dossiers.ids).and\
|
||||
dossiers[:state].does_not_match('draft'))
|
||||
|
||||
begin
|
||||
if Float(terms) && terms.to_i <= 2147483647 && current_gestionnaire.dossiers.ids.include?(terms.to_i)
|
||||
dossier = Dossier.where("state != 'draft'").find(terms.to_i)
|
||||
end
|
||||
rescue ArgumentError, ActiveRecord::RecordNotFound
|
||||
dossier = nil
|
||||
end
|
||||
|
||||
return composed_scope, dossier
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
class Etablissement < ActiveRecord::Base
|
||||
belongs_to :dossier
|
||||
belongs_to :entreprise
|
||||
|
||||
has_many :exercices
|
||||
end
|
||||
|
|
3
app/models/exercice.rb
Normal file
3
app/models/exercice.rb
Normal file
|
@ -0,0 +1,3 @@
|
|||
class Exercice < ActiveRecord::Base
|
||||
belongs_to :etablissement
|
||||
end
|
|
@ -5,4 +5,7 @@ class Gestionnaire < ActiveRecord::Base
|
|||
:recoverable, :rememberable, :trackable, :validatable
|
||||
|
||||
belongs_to :administrateur
|
||||
|
||||
has_many :procedures, through: :administrateur
|
||||
has_many :dossiers, through: :procedures
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue