Class: Quickeebooks::Windows::Service::Invoice
- Inherits:
-
ServiceBase
- Object
- ServiceBase
- Quickeebooks::Windows::Service::Invoice
- Defined in:
- lib/quickeebooks/windows/service/invoice.rb
Constant Summary
Constants inherited from ServiceBase
Instance Attribute Summary
Attributes inherited from ServiceBase
#base_uri, #last_response_body, #last_response_xml, #oauth, #realm_id
Instance Method Summary collapse
- #create(invoice) ⇒ Object
- #fetch_by_id(id, idDomain = 'QB', options = {}) ⇒ Object
- #invoice_as_pdf(invoice_id, destination_file_name) ⇒ Object
-
#list(filters = [], page = 1, per_page = 20, sort = nil, options = {}) ⇒ Object
Fetch a
Collection
ofInvoice
objects Arguments: filters: Array ofFilter
objects to apply page:Fixnum
Starting page per_page:Fixnum
How many results to fetch per page sort:Sort
object options:Hash
extra arguments. - #update(invoice) ⇒ Object
Methods inherited from ServiceBase
#access_token=, #enforce_filter_order, #initialize, #url_for_base, #url_for_resource
Methods included from Logging
Constructor Details
This class inherits a constructor from Quickeebooks::Windows::Service::ServiceBase
Instance Method Details
#create(invoice) ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/quickeebooks/windows/service/invoice.rb', line 32 def create(invoice) # XML is a wrapped 'object' where the type is specified as an attribute # <Object xsi:type="Invoice"> xml_node = invoice.to_xml(:name => 'Object') xml_node.set_attribute('xsi:type', 'Invoice') xml = Quickeebooks::Shared::Service::OperationNode.new.add do |content| content << "<ExternalRealmId>#{self.realm_id}</ExternalRealmId>#{xml_node}" end perform_write(Quickeebooks::Windows::Model::Invoice, xml) end |
#fetch_by_id(id, idDomain = 'QB', options = {}) ⇒ Object
27 28 29 30 |
# File 'lib/quickeebooks/windows/service/invoice.rb', line 27 def fetch_by_id(id, idDomain = 'QB', = {}) url = "#{url_for_resource(Quickeebooks::Windows::Model::Invoice::REST_RESOURCE)}/#{id}" fetch_object(Quickeebooks::Windows::Model::Invoice, url, {:idDomain => idDomain}) end |
#invoice_as_pdf(invoice_id, destination_file_name) ⇒ Object
23 24 25 |
# File 'lib/quickeebooks/windows/service/invoice.rb', line 23 def invoice_as_pdf(invoice_id, destination_file_name) raise NoMethodError, 'invoice_as_pdf is not implemented in Quickeebooks for Windows, only available in the Online adapter.' end |
#list(filters = [], page = 1, per_page = 20, sort = nil, options = {}) ⇒ Object
Fetch a Collection
of Invoice
objects Arguments: filters: Array of Filter
objects to apply page: Fixnum
Starting page per_page: Fixnum
How many results to fetch per page sort: Sort
object options: Hash
extra arguments
19 20 21 |
# File 'lib/quickeebooks/windows/service/invoice.rb', line 19 def list(filters = [], page = 1, per_page = 20, sort = nil, = {}) fetch_collection(Quickeebooks::Windows::Model::Invoice, nil, filters, page, per_page, sort, ) end |
#update(invoice) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/quickeebooks/windows/service/invoice.rb', line 43 def update(invoice) # XML is a wrapped 'object' where the type is specified as an attribute # <Object xsi:type="Invoice"> # Intuit requires that some fields are unset / do not exist. invoice. = nil invoice.external_key = nil # unset Id fields in addresses if invoice.header.billing_address invoice.header.billing_address.id = nil end if invoice.header.shipping_address invoice.header.shipping_address.id = nil end xml_node = invoice.to_xml(:name => 'Object') xml_node.set_attribute('xsi:type', 'Invoice') xml = Quickeebooks::Shared::Service::OperationNode.new.mod do |content| content << "<ExternalRealmId>#{self.realm_id}</ExternalRealmId>#{xml_node}" end perform_write(Quickeebooks::Windows::Model::Invoice, xml) end |