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-2016 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        :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

#maximal_size, #minimal_size, #net_mass, #net_mass_yield, #total_net_mass

Methods inherited from Ekylibre::Record::Base

#already_updated?, attr_readonly_with_conditions, #check_if_destroyable?, #check_if_updateable?, columns_definition, complex_scopes, customizable?, #customizable?, #customized?, #destroyable?, #editable?, has_picture, #human_attribute_name, human_attribute_name_with_id, nomenclature_reflections, #old_record, #others, refers_to, scope_with_registration, simple_scopes, #updateable?

Instance Method Details

#marketable?Boolean

Returns:

  • (Boolean)

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

def marketable?
  nature.marketable
end

#marketable_net_massObject


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

def marketable_net_mass
  if inspection.unmarketable_rate
    total_net_mass * (1 - inspection.unmarketable_rate)
  end
end

#marketable_yieldObject


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

def marketable_yield
  unit_name = "#{grading_net_mass_unit.name}_per_#{product_net_surface_area.unit}"
  unit_name = :kilogram_per_hectare unless Nomen::Unit.find(unit_name)
  y = (marketable_net_mass.to_d(:kilogram) / product_net_surface_area.to_d(:square_meter)).in(:kilogram_per_square_meter)
  y.in(unit_name).round(0)
end