Sha256: 60608fd33f95483768bd9bd34612a6d99cc02c39b423b6f67ee6c6f22cc00bd1

Contents?: true

Size: 1.35 KB

Versions: 7

Compression:

Stored size: 1.35 KB

Contents

module Payday
  
  # Basically just an invoice. Stick a ton of line items in it, add some details, and then render it out!
  class Invoice
    include Payday::Invoiceable
    
    attr_accessor :invoice_number, :bill_to, :ship_to, :notes, :line_items, :shipping_rate, :shipping_description,
                  :tax_rate, :tax_description, :due_at, :paid_at, :currency, :invoice_details
    
    def initialize(options =  {})
      self.invoice_number = options[:invoice_number] || nil
      self.bill_to = options[:bill_to] || nil
      self.ship_to = options[:ship_to] || nil
      self.notes = options[:notes] || nil
      self.line_items = options[:line_items] || []
      self.shipping_rate = options[:shipping_rate] || nil
      self.shipping_description = options[:shipping_description] || nil
      self.tax_rate = options[:tax_rate] || nil
      self.tax_description = options[:tax_description] || nil
      self.due_at = options[:due_at] || nil
      self.paid_at = options[:paid_at] || nil
      self.currency = options[:currency] || nil
      self.invoice_details = options[:invoice_details] || []
    end
    
    # The tax rate that we're applying, as a BigDecimal    
    def tax_rate=(value)
      @tax_rate = BigDecimal.new(value.to_s)
    end
    
    # Shipping rate
    def shipping_rate=(value)
      @shipping_rate = BigDecimal.new(value.to_s)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
payday-1.0.5 lib/payday/invoice.rb
payday-1.0.4 lib/payday/invoice.rb
payday-1.0.3 lib/payday/invoice.rb
payday-1.0.2 lib/payday/invoice.rb
payday-1.0.1 lib/payday/invoice.rb
payday-1.0.0 lib/payday/invoice.rb
payday-1.0.0beta8 lib/payday/invoice.rb