Class: ManureManagementPlan

Inherits:
Ekylibre::Record::Base show all
Includes:
Attachable
Defined in:
app/models/manure_management_plan.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: manure_management_plans

annotation                 :text
campaign_id                :integer          not null
created_at                 :datetime         not null
creator_id                 :integer
default_computation_method :string           not null
id                         :integer          not null, primary key
lock_version               :integer          default(0), not null
locked                     :boolean          default(FALSE), not null
name                       :string           not null
opened_at                  :datetime         not null
recommender_id             :integer          not null
selected                   :boolean          default(FALSE), not null
updated_at                 :datetime         not null
updater_id                 :integer

Instance Method Summary collapse

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

#build_missing_zonesObject


66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'app/models/manure_management_plan.rb', line 66

def build_missing_zones
  active = false
  active = true if zones.empty?
  return false unless campaign
  campaign.activity_productions.includes(:support).order(:activity_id, 'products.name').each do |activity_production|
    # activity_production.active? return all activies except fallow_land
    next unless activity_production.support.is_a?(LandParcel) && activity_production.active?
    next if zones.find_by(activity_production: activity_production)
    zone = zones.build(
      activity_production: activity_production,
      computation_method: default_computation_method,
      administrative_area: activity_production.support.administrative_area,
      cultivation_variety: activity_production.cultivation_variety,
      soil_nature: activity_production.support.soil_nature || activity_production.support.estimated_soil_nature
    )
    zone.estimate_expected_yield
  end
end

#computeObject


62
63
64
# File 'app/models/manure_management_plan.rb', line 62

def compute
  zones.map(&:compute)
end

#mass_density_unitObject


85
86
87
# File 'app/models/manure_management_plan.rb', line 85

def mass_density_unit
  :quintal_per_hectare
end