Class: TFSO::Invoice
Constant Summary collapse
- URL =
'https://api.24sevenoffice.com/Economy/InvoiceOrder/V001/InvoiceService.asmx?wsdl'
Instance Method Summary collapse
- #create(invoice, items) ⇒ Object
- #find(search_params) ⇒ Object
- #find_by_invoice_id(id) ⇒ Object
- #find_by_order_id(id) ⇒ Object
-
#initialize(auth) ⇒ Invoice
constructor
A new instance of Invoice.
Methods included from Helpers
#intialize_savon_client, #savon_client, #session_id, #session_id=
Constructor Details
#initialize(auth) ⇒ Invoice
Returns a new instance of Invoice.
8 9 10 11 |
# File 'lib/tfso/invoice.rb', line 8 def initialize(auth) self.session_id = auth.session_id intialize_savon_client end |
Instance Method Details
#create(invoice, items) ⇒ Object
43 44 45 46 |
# File 'lib/tfso/invoice.rb', line 43 def create(invoice, items) response = savon_client.call(:save_invoices, message: {invoices: [{InvoiceOrder: transform_attributes(invoice, items) }] }, cookies: ) response.body[:save_invoices_response][:save_invoices_result][:invoice_order] end |
#find(search_params) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/tfso/invoice.rb', line 13 def find(search_params) response = savon_client.call(:get_invoices, message: {searchParams: search_params, invoiceReturnProperties: {string: ['OrderId', 'InvoiceId', 'CustomerId', 'OrderStatus', 'DateOrdered', 'DateInvoiced', 'PaymentTime', 'CustomerReferenceNo', 'IncludeVAT', 'YourReference', 'OrderTotalIncVat', 'OrderTotalVat', 'InvoiceTitle', 'InvoiceText', 'Paid', 'Currency', 'PaymentMethodId', 'PaymentAmount', 'TypeOfSaleId', 'Distributor', 'DistributionMethod', 'InvoiceEmailAddress']}, rowReturnProperties: {string: ['ProductId', 'VatRate', 'Price', 'Name', 'DiscountRate', 'Quantity']} }, cookies: ) result = response.body[:get_invoices_response][:get_invoices_result] if result if result[:invoice_order].class == Hash [result[:invoice_order]] else result[:invoice_order] end else [] end end |
#find_by_invoice_id(id) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/tfso/invoice.rb', line 27 def find_by_invoice_id(id) if invoice = find(InvoiceIds: {int: [id]}) invoice.first else false end end |
#find_by_order_id(id) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/tfso/invoice.rb', line 35 def find_by_order_id(id) if invoice = find(OrderIds: {int: [id]}) invoice.first else false end end |