Class: VariableCost
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- VariableCost
- Includes:
- Models::Auditable
- Defined in:
- app/models/variable_cost.rb
Overview
== Schema Information
Table name: variable_costs
Database name: primary
id :integer not null, primary key
freight_allowance :float
group_type :string not null
marketing_allowance_frequency :float
marketing_services :float
mdf :float
name :string not null
net_terms :float
others :float
penalties_back_charges :float
promotions :float
rebate_ptg :float
return_allowance :float
tradeshow :float
travel_expenses :float
created_at :datetime not null
updated_at :datetime not null
creator_id :integer
updater_id :integer
Indexes
index_variable_costs_on_group_type (group_type)
index_variable_costs_on_name (name)
Constant Summary
Constants included from Models::Auditable
Models::Auditable::ALWAYS_IGNORED
Class Method Summary collapse
Methods included from Models::Auditable
#all_skipped_columns, #audit_reference_data, #creator, #should_not_save_version, #stamp_record, #updater
Methods inherited from ApplicationRecord
ransackable_associations, ransackable_attributes, ransackable_scopes, ransortable_attributes, #to_relation
Methods included from Models::EventPublishable
Class Method Details
.populate_from_data ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'app/models/variable_cost.rb', line 36 def self.populate_from_data file_path = Rails.root.join('data', 'variable_cost.csv') counter = 0 CSV.foreach(file_path, headers: true) do |row| group_type = row['group_type'].presence name = row['name'].presence rebate_ptg = row['rebate_ptg'].presence marketing_allowance_frequency = row['marketing_allowance_frequency'].presence freight_allowance = row['freight_allowance'].presence return_allowance = row['return_allowance'].presence net_terms = row['net_terms'].presence marketing_services = row['marketing_services'].presence mdf = row['mdf'].presence promotions = row['promotions'].presence penalties_back_charges = row['penalties_back_charges'].presence tradeshow = row['tradeshow'].presence travel_expenses = row['travel_expenses'].presence new_vc = VariableCost.create(group_type: group_type.presence, name: name.presence, rebate_ptg: rebate_ptg.presence, marketing_allowance_frequency: marketing_allowance_frequency.presence, freight_allowance: freight_allowance.presence, return_allowance: return_allowance.presence, net_terms: net_terms.presence, marketing_services: marketing_services.presence, mdf: mdf.presence, promotions: promotions.presence, penalties_back_charges: penalties_back_charges.presence, tradeshow: tradeshow.presence, travel_expenses: travel_expenses.presence) puts new_vc.errors. if new_vc.errors.any? counter += 1 if new_vc.persisted? end puts "Imported #{counter} variable costs." end |