class Waveapps::Invoice
Constants
- ApproveInvoiceQuery
- CreateInvoiceQuery
- DeleteInvoiceQuery
- ListInvoicesQuery
- MarkSentInvoiceQuery
- SendInvoiceQuery
Public Class Methods
approve_invoice(invoice_id: )
click to toggle source
# File lib/waveapps/invoice.rb, line 399 def self.approve_invoice(invoice_id: ) response = Waveapps::Api::Client.query(ApproveInvoiceQuery, variables: { input: { invoiceId: invoice_id } }) if response.data && response.data.invoice_approve return response.data.invoice_approve end Waveapps::Api.handle_errors(response, :invoice_approve) end
create_invoice( status: "DRAFT", currency: nil, title: nil, invoice_number: nil, po_number: nil, invoice_date: nil, exchange_rate: nil, due_date: nil, memo: nil, footer: nil, disable_amex_payments: nil, disable_credit_card_payments: nil, disable_bank_payments: nil, item_title: nil, unit_title: nil, price_title: nil, amount_title: nil, hide_name: nil, hide_description: nil, hide_unit: nil, hide_price: nil, hide_amount: nil, items:, business_id:, customer_id: )
click to toggle source
# File lib/waveapps/invoice.rb, line 272 def self.create_invoice( status: "DRAFT", currency: nil, title: nil, invoice_number: nil, po_number: nil, invoice_date: nil, exchange_rate: nil, due_date: nil, memo: nil, footer: nil, disable_amex_payments: nil, disable_credit_card_payments: nil, disable_bank_payments: nil, item_title: nil, unit_title: nil, price_title: nil, amount_title: nil, hide_name: nil, hide_description: nil, hide_unit: nil, hide_price: nil, hide_amount: nil, items:, business_id:, customer_id: ) response = Waveapps::Api::Client.query( CreateInvoiceQuery, variables: { input: { businessId: business_id, customerId: customer_id, items: items.map do |pid| { productId: pid[:product_id], quantity: pid[:quantity], description: pid[:description], unitPrice: pid[:unit_price], taxes: pid[:taxes] && pid[:taxes].map do |tax| { salesTaxId: tax[:sales_tax_id], amount: tax[:amount] } end } end, status: status, currency: currency, title: title, invoiceNumber: invoice_number, poNumber: po_number, invoiceDate: invoice_date, exchangeRate: exchange_rate, dueDate: due_date, memo: memo, footer: footer, disableAmexPayments: disable_amex_payments, disableCreditCardPayments: disable_credit_card_payments, disableBankPayments: disable_bank_payments, itemTitle: item_title, unitTitle: unit_title, priceTitle: price_title, amountTitle: amount_title, hideName: hide_name, hideDescription: hide_description, hideUnit: hide_unit, hidePrice: hide_price, hideAmount: hide_amount } }) if response.data && response.data.invoice_create return response.data.invoice_create end Waveapps::Api.handle_errors(response, :invoice_create) end
delete_invoice(invoice_id:)
click to toggle source
# File lib/waveapps/invoice.rb, line 344 def self.delete_invoice(invoice_id:) response = Waveapps::Api::Client.query(DeleteInvoiceQuery, variables: { input: { invoiceId: invoice_id } }) if response.data && response.data.invoice_delete return response.data.invoice_delete end Waveapps::Api.handle_errors(response, :invoice_delete) end
list_invoices(page: 1, page_size: 10, sort: [ "CREATED_AT_DESC"], status: nil, customer_id: nil, currency: nil, source_id: nil, invoice_date_start: nil, invoice_date_end: nil, modified_at_after: nil, modified_at_before: nil, business_id: )
click to toggle source
# File lib/waveapps/invoice.rb, line 135 def self.list_invoices(page: 1, page_size: 10, sort: [ "CREATED_AT_DESC"], status: nil, customer_id: nil, currency: nil, source_id: nil, invoice_date_start: nil, invoice_date_end: nil, modified_at_after: nil, modified_at_before: nil, business_id: ) response = Waveapps::Api::Client.query( ListInvoicesQuery, variables: { businessId: business_id, page: page, pageSize: page_size, sort: sort, status: status, customerId: customer_id, currency: currency, sourceId: source_id, invoiceDateStart: invoice_date_start, invoiceDateEnd: invoice_date_end, modifiedAtAfter: modified_at_after, modifiedAtBefore: modified_at_before }) if response.data && response.data.business && response.data.business return response.data.business.invoices end Waveapps::Api.handle_errors(response, :business) end
mark_as_sent(sent_at: nil, send_method: , invoice_id: )
click to toggle source
# File lib/waveapps/invoice.rb, line 423 def self.mark_as_sent(sent_at: nil, send_method: , invoice_id: ) response = Waveapps::Api::Client.query( MarkSentInvoiceQuery, variables: { input: { invoiceId: invoice_id, sentAt: sent_at, sendMethod: send_method } }) if response.data && response.data.invoice_mark_sent return response.data.invoice_mark_sent end Waveapps::Api.handle_errors(response, :invoice_mark_sent) end
send_invoice(subject: "", message: "", attach_pdf: false, invoice_id:, to: )
click to toggle source
# File lib/waveapps/invoice.rb, line 368 def self.send_invoice(subject: "", message: "", attach_pdf: false, invoice_id:, to: ) response = Waveapps::Api::Client.query( SendInvoiceQuery, variables: { input: { invoiceId: invoice_id, to: to, attachPDF: attach_pdf, subject: subject, message: message } }) if response.data && response.data.invoice_send return response.data.invoice_send end Waveapps::Api.handle_errors(response, :invoice_send) end