Sha256: f72c543d6573a817a47be467dcd25651008b0aedb8b29c075b71efeaa6c4345c

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

module Xeroizer
  module Report
    class AgedReceivablesByContact < Base

      public

        def total
          @_total_cache ||= summary.cell(:Total).value 
        end

        def total_paid
          @_total_paid_cache ||= summary.cell(:Paid).value
        end

        def total_credited
          @_total_credited_cache ||= summary.cell(:Credited).value
        end

        def total_due
          @_total_due_cache ||= summary.cell(:Due).value
        end

        def total_overdue
          return @_total_due_cache if @_total_due_cache
          
          now = Time.now
          @_total_due_cache = sum(:Due) do | row | 
            due_date = row.cell('Due Date').value
            due_date && due_date < now
          end
        end

        def sum(column_name, &block)
          sections.first.rows.inject(BigDecimal.new('0')) do | sum, row |
            sum += row.cell(column_name).value if row.class == Xeroizer::Report::Row && (block.nil? || block.call(row))
            sum
          end
        end
      
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
xeroizer-2.18.1 lib/xeroizer/report/aged_receivables_by_contact.rb
xeroizer-2.17.1 lib/xeroizer/report/aged_receivables_by_contact.rb