Method: FinModeling::AnnualReportFiling#comprehensive_income_statement

Defined in:
lib/finmodeling/annual_report_filing.rb

#comprehensive_income_statementObject



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/finmodeling/annual_report_filing.rb', line 83

def comprehensive_income_statement
  if @comprehensive_income_stmt.nil?
    calculations=@taxonomy.callb.calculation
    inc_stmt = calculations.find{ |x| ((x.clean_downcased_title =~ /statement.*operations/) ||
                                       (x.clean_downcased_title =~ /statement.*of.*earnings/) ||
                                       (x.clean_downcased_title =~ /statement.*of.*income/) ||
                                       (x.clean_downcased_title =~ /income.*statement/)) &&
                                       (x.clean_downcased_title =~ /comprehensive/) &&
                                      !(x.clean_downcased_title =~ /and other comprehensive/) &&
                                      !(x.clean_downcased_title =~ /statement of stockholders equity/) }
    if inc_stmt.nil?
      raise InvalidFilingError.new("Couldn't find comprehensive income statement in: " + calculations.map{ |x| "\"#{x.clean_downcased_title}\"" }.join("; "))
    end

    @comprehensive_income_stmt = ComprehensiveIncomeStatementCalculation.new(inc_stmt)
  end
  return @comprehensive_income_stmt
end