Class: DataImportCell

Inherits:
ApplicationRecord show all
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

Constant Summary

Constants included from Models::Schedulable

Models::Schedulable::SIMPLE_FORM_OPTIONS

Instance Attribute Summary collapse

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

config

Methods included from Models::AfterCommittable

#after_commit

Methods included from Models::EventPublishable

#publish_event

Instance Attribute Details

#contentString

Returns:

  • (String)


31
# File 'app/models/data_import_cell.rb', line 31

validates :content, presence: true

Class Method Details

.format_name(str) ⇒ String?

Parameters:

  • str (String, nil)

Returns:

  • (String, nil)


37
38
39
# File 'app/models/data_import_cell.rb', line 37

def self.format_name(str)
  str.split.map(&:capitalize).join(' ') if str
end

Instance Method Details

#data_import_columnDataImportColumn

Returns:



25
# File 'app/models/data_import_cell.rb', line 25

belongs_to :data_import_column

#data_import_rowDataImportRow

Returns:



27
# File 'app/models/data_import_cell.rb', line 27

belongs_to :data_import_row

#expand_addressvoid

This method returns an undefined value.



42
43
44
# File 'app/models/data_import_cell.rb', line 42

def expand_address
  data_import_column.expand_address(data_import_cell_ids: [id])
end

#target_valueString?

Returns:

  • (String, nil)


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
74
75
76
77
78
79
# File 'app/models/data_import_cell.rb', line 47

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.find { |dd| dd.input_value == content }.output_value
      rescue StandardError
        nil
      end
      tv ||= begin
        dds.data_dictionaries.find { |dd| dd.input_value.blank? }.output_value
      rescue StandardError
        nil
      end
    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