Class: DataImportCell
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- DataImportCell
- Defined in:
- app/models/data_import_cell.rb
Overview
== Schema Information
Table name: data_import_cells
Database name: primary
id :integer not null, primary key
content :text
data_import_column_id :integer
data_import_row_id :integer
Indexes
data_import_cell_indexes (data_import_column_id,data_import_row_id)
data_import_cells_data_import_row_id_idx (data_import_row_id)
Foreign Keys
fk_rails_... (data_import_column_id => data_import_columns.id) ON DELETE => cascade
fk_rails_... (data_import_row_id => data_import_rows.id) ON DELETE => cascade
Instance Attribute Summary collapse
- #content ⇒ Object readonly
Belongs to collapse
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from ApplicationRecord
ransackable_associations, ransackable_attributes, ransackable_scopes, ransortable_attributes, #to_relation
Methods included from Models::EventPublishable
Instance Attribute Details
#content ⇒ Object (readonly)
27 |
# File 'app/models/data_import_cell.rb', line 27 validates :content, presence: true |
Class Method Details
.format_name(str) ⇒ Object
31 32 33 |
# File 'app/models/data_import_cell.rb', line 31 def self.format_name(str) str.split(' ').map(&:capitalize).join(' ') if str end |
Instance Method Details
#data_import_column ⇒ DataImportColumn
24 |
# File 'app/models/data_import_cell.rb', line 24 belongs_to :data_import_column |
#data_import_row ⇒ DataImportRow
25 |
# File 'app/models/data_import_cell.rb', line 25 belongs_to :data_import_row |
#expand_address ⇒ Object
35 36 37 |
# File 'app/models/data_import_cell.rb', line 35 def data_import_column.(data_import_cell_ids: [id]) end |
#target_value ⇒ Object
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 |
# File 'app/models/data_import_cell.rb', line 39 def target_value dds = begin data_import_column.data_dictionary_set rescue StandardError nil end tv = nil if dds if dds.data_dictionaries.present? tv = begin dds.data_dictionaries.detect { |dd| dd.input_value == content }.output_value rescue StandardError nil end tv ||= begin dds.data_dictionaries.detect { |dd| dd.input_value.blank? }.output_value rescue StandardError nil end # the default elsif tv.present? case dds.destination when 'customer.company_name', 'customer.first_name', 'customer.middle_name', 'customer.last_name', 'contact.first_name', 'contact.middle_name', 'contact.last_name' tv = self.class.format_name(tv) when 'customer.phone', 'customer.fax' tv = tv.scan(/[0-9]/).join('') when 'customer.email' tv = tv.downcase end end end tv ||= content tv end |