Class: FreshBooks::Invoice

Inherits:
Object
  • Object
show all
Defined in:
lib/freshbooks.rb

Constant Summary collapse

TYPE_MAPPINGS =
{ 'client_id' => Fixnum, 'lines' => Array, 
'po_number' => Fixnum, 'discount' => Float, 'amount' => Float }

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeInvoice

Returns a new instance of Invoice.



270
271
272
273
# File 'lib/freshbooks.rb', line 270

def initialize
  super
  self.lines ||= []
end

Class Method Details

.delete(invoice_id) ⇒ Object



300
301
302
303
304
# File 'lib/freshbooks.rb', line 300

def self.delete(invoice_id)
  resp = FreshBooks::call_api('invoice.delete', 'invoice_id' => invoice_id)

  resp.success?
end

.get(invoice_id) ⇒ Object



294
295
296
297
298
# File 'lib/freshbooks.rb', line 294

def self.get(invoice_id)
  resp = FreshBooks::call_api('invoice.get', 'invoice_id' => invoice_id)

  resp.success? ? self.new_from_xml(resp.elements[1]) : nil
end

.list(options = {}) ⇒ Object



306
307
308
309
310
311
312
313
# File 'lib/freshbooks.rb', line 306

def self.list(options = {})
  resp = FreshBooks::call_api('invoice.list', options)
  
  return nil unless resp.success?

  invoice_nodes = resp.elements[1].elements
  invoice_nodes.map { |elem| self.new_from_xml(elem) }
end

.send_by_email(invoice_id) ⇒ Object



315
316
317
318
319
# File 'lib/freshbooks.rb', line 315

def self.send_by_email(invoice_id)
  resp = FreshBooks::call_api('invoice.sendByEmail', 'invoice_id' => invoice_id)

  resp.success?
end

.send_by_snail_mail(invoice_id) ⇒ Object



321
322
323
324
325
# File 'lib/freshbooks.rb', line 321

def self.send_by_snail_mail(invoice_id)
  resp = FreshBooks::call_api('invoice.sendBySnailMail', 'invoice_id' => invoice_id)

  resp.success?
end

Instance Method Details

#createObject



275
276
277
278
279
280
281
282
# File 'lib/freshbooks.rb', line 275

def create
  resp = FreshBooks::call_api('invoice.create', 'invoice' => self)
  if resp.success?
    self.invoice_id = resp.elements[1].text.to_i
  end

  resp.success? ? self.invoice_id : nil
end

#deleteObject



290
# File 'lib/freshbooks.rb', line 290

def delete; Invoice::delete(self.invoice_id); end

#send_by_emailObject



291
# File 'lib/freshbooks.rb', line 291

def send_by_email; Invoice::send_by_email(self.invoice_id); end

#send_by_snail_mailObject



292
# File 'lib/freshbooks.rb', line 292

def send_by_snail_mail; Invoice::send_by_snail_mail(self.invoice_id); end

#updateObject



284
285
286
287
288
# File 'lib/freshbooks.rb', line 284

def update
  resp = FreshBooks::call_api('invoice.update', 'invoice' => self)

  resp.success?
end