Class: ZohoInvoiceResource::Formats::Invoice
- Defined in:
- lib/zoho_invoice_resource/formats/invoice.rb
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods inherited from Base
#decode, #initialize, #mime_type
Constructor Details
This class inherits a constructor from ZohoInvoiceResource::Formats::Base
Instance Method Details
#encode(record, options = {}) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/zoho_invoice_resource/formats/invoice.rb', line 4 def encode(record, ={}) [:root] = [:root].try(:camelize) # updatable attributes restricted data = { 'InvoiceID' => record.invoice_id, 'InvoiceDate' => normalize_date(record.invoice_date), 'DueDate' => normalize_date(record.due_date), 'InvoiceItems' => [], 'CustomFields' => {} } record.invoice_items.each do |invoice_item| item = { 'ItemID' => invoice_item.item_id, 'ItemDescription' => invoice_item.item_description, 'Price' => invoice_item.price, 'Quantity' => invoice_item.quantity } data['InvoiceItems'] << item end if record.invoice_items if record.custom_fields.custom_label1 # maybe can not write CustomLabel via API #data['CustomFields']['CustomLabel1'] = record.custom_fields.custom_label1 data['CustomFields']['CustomField1'] = record.custom_fields.custom_field1 end if record.custom_fields.custom_label2 #data['CustomFields']['CustomLabel2'] = record.custom_fields.custom_label2 data['CustomFields']['CustomField2'] = record.custom_fields.custom_field2 end if record.custom_fields.custom_label3 #data['CustomFields']['CustomLabel3'] = record.custom_fields.custom_label3 data['CustomFields']['CustomField3'] = record.custom_fields.custom_field3 end remove_empty!(data) data.to_xml() end |