Class: InspectionCalibration

Inherits:
Ekylibre::Record::Base show all
Includes:
Inspectable
Defined in:
app/models/inspection_calibration.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: inspection_calibrations

created_at         :datetime         not null
creator_id         :integer
id                 :integer          not null, primary key
inspection_id      :integer          not null
items_count_value  :integer
lock_version       :integer          default(0), not null
maximal_size_value :decimal(19, 4)
minimal_size_value :decimal(19, 4)
nature_id          :integer          not null
net_mass_value     :decimal(19, 4)
updated_at         :datetime         not null
updater_id         :integer

Instance Method Summary collapse

Methods included from Inspectable

#extremum_size, #projected_total, #quantity_in_unit, #quantity_value, #quantity_yield

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

#marketable?Boolean

Returns:

  • (Boolean)

55
56
57
# File 'app/models/inspection_calibration.rb', line 55

def marketable?
  nature.marketable
end

#marketable_quantity(dimension) ⇒ Object


59
60
61
62
63
64
# File 'app/models/inspection_calibration.rb', line 59

def marketable_quantity(dimension)
  return 0.in(quantity_unit(dimension)) unless inspection.unmarketable_rate(dimension)

  coeff = 1 - inspection.unmarketable_rate(dimension)
  projected_total(dimension) * coeff
end

#marketable_yield(dimension) ⇒ Object


66
67
68
69
70
# File 'app/models/inspection_calibration.rb', line 66

def marketable_yield(dimension)
  market_quantity = marketable_quantity(dimension).to_d(quantity_unit(dimension))
  y = (market_quantity / total_area).in(default_per_area_unit(dimension))
  y.in(quantity_per_area_unit(dimension))
end