Class: GuideAnalysis

Inherits:
Ekylibre::Record::Base show all
Defined in:
app/models/guide_analysis.rb

Overview

Informations

License

Ekylibre - Simple agricultural ERP Copyright (C) 2008-2009 Brice Texier, Thibaud Merigon Copyright (C) 2010-2012 Brice Texier Copyright (C) 2012-2019 Brice Texier, David Joulin

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see www.gnu.org/licenses.

Table: guide_analyses

acceptance_status :string           not null
created_at        :datetime         not null
creator_id        :integer
execution_number  :integer          not null
guide_id          :integer          not null
id                :integer          not null, primary key
latest            :boolean          default(FALSE), not null
lock_version      :integer          default(0), not null
started_at        :datetime         not null
stopped_at        :datetime         not null
updated_at        :datetime         not null
updater_id        :integer

Instance Method Summary collapse

Methods inherited from Ekylibre::Record::Base

#already_updated?, #check_if_destroyable?, #check_if_updateable?, columns_definition, #customizable?, customizable?, #customized?, #destroyable?, #editable?, has_picture, #human_attribute_name, nomenclature_reflections, #old_record, #others, refers_to, #unsuppress, #updateable?

Methods included from Userstamp::Stampable

included

Methods included from Userstamp::Stamper

included

Instance Method Details

#points_count(status) ⇒ Object


71
72
73
# File 'app/models/guide_analysis.rb', line 71

def points_count(status)
  points.where(acceptance_status: status).count
end

#set_execution_numberObject

Sets the execution number with the last number incremented by 1


61
62
63
64
65
# File 'app/models/guide_analysis.rb', line 61

def set_execution_number
  if guide&.analyses
    self.execution_number = guide.analyses.maximum(:execution_number).to_i + 1
  end
end

#statusObject


67
68
69
# File 'app/models/guide_analysis.rb', line 67

def status
  { passed: :go, failed: :stop, errored: :stop, passed_with_warnings: :caution }.with_indifferent_access[acceptance_status]
end