class KPM::Account
def sanitize_and_import(source_file, skip_payment_methods)
import helpers: sanitize_and_import; import; sanitize; replace_tenant_record_id; replace_account_record_id; replace_boolean;
def sanitize_and_import(source_file, skip_payment_methods) tables = {} error_importing_data = false File.open(source_file, 'r:UTF-8') do |data| rows = nil table_name = nil cols_names = nil data.each_line do |line| words = line.strip.split(' ') if /--/.match(words[0]) unless table_name.nil? cols_names.shift if @generate_record_id tables[table_name] = { col_names: cols_names, rows: rows } end table_name = words[1] cols_names = words[2].strip.split(@delimiter) rows = [] elsif !table_name.nil? row = process_import_data(line, table_name, cols_names, skip_payment_methods, rows) next if row.nil? rows.push(row) else error_importing_data = true break end end unless table_name.nil? || error_importing_data cols_names.shift if @generate_record_id tables[table_name] = { col_names: cols_names, rows: rows } end error_importing_data = true if tables.empty? end raise Interrupt, "Data on #{source_file} is invalid" if error_importing_data import(tables) end