class KPM::Database

def execute_insert_statement(table_name, query, qty_to_insert, table_data, record_id = nil)

def execute_insert_statement(table_name, query, qty_to_insert, table_data, record_id = nil)
  unless record_id.nil?
    query = "set #{record_id[:variable]}=#{record_id[:value]}; #{query}"
  end
  query = "SET autocommit=0; #{query} COMMIT;"
  
  File.open(STATEMENT_TMP_FILE,'w') do |s|
    s.puts query
  end
  response = `#{@@mysql_command_line} < "#{STATEMENT_TMP_FILE}" 2>&1`
  if response.include? 'ERROR'
    @@logger.error "\e[91;1mTransaction that fails to be executed\e[0m"
    @@logger.error "\e[91m#{query}\e[0m"
    raise Interrupt, "Importing table #{table_name}...... \e[91;1m#{response}\e[0m"
  end
  if response.include? 'LAST_INSERT_ID'
    @@logger.info "\e[32mImporting table #{table_name}...... Row 1 of #{qty_to_insert} success\e[0m"
    return response.split("\n")[1]
  end
  if response.include? 'ROW_COUNT'
    response_msg = response.split("\n")
    row_count_inserted = response_msg[response_msg.size - 1]
    @@logger.info "\e[32mImporting table #{table_name}...... Row #{ row_count_inserted || 1} of #{qty_to_insert} success\e[0m"
    return true
  end
  return true
end