xeroizer-float 2.15.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (337) hide show
  1. data/.bundle/config +2 -0
  2. data/.gitattributes +22 -0
  3. data/Gemfile +19 -0
  4. data/Gemfile.lock +57 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.md +529 -0
  7. data/Rakefile +55 -0
  8. data/VERSION +1 -0
  9. data/lib/big_decimal_to_s.rb +9 -0
  10. data/lib/class_level_inheritable_attributes.rb +25 -0
  11. data/lib/xeroizer.rb +64 -0
  12. data/lib/xeroizer/application_http_proxy.rb +30 -0
  13. data/lib/xeroizer/ca-certificates.crt +2642 -0
  14. data/lib/xeroizer/configuration.rb +19 -0
  15. data/lib/xeroizer/exceptions.rb +129 -0
  16. data/lib/xeroizer/generic_application.rb +54 -0
  17. data/lib/xeroizer/http.rb +167 -0
  18. data/lib/xeroizer/http_encoding_helper.rb +49 -0
  19. data/lib/xeroizer/logging.rb +8 -0
  20. data/lib/xeroizer/models/account.rb +67 -0
  21. data/lib/xeroizer/models/address.rb +32 -0
  22. data/lib/xeroizer/models/bank_account.rb +12 -0
  23. data/lib/xeroizer/models/bank_transaction.rb +75 -0
  24. data/lib/xeroizer/models/branding_theme.rb +22 -0
  25. data/lib/xeroizer/models/contact.rb +49 -0
  26. data/lib/xeroizer/models/contact_group.rb +16 -0
  27. data/lib/xeroizer/models/credit_note.rb +130 -0
  28. data/lib/xeroizer/models/currency.rb +18 -0
  29. data/lib/xeroizer/models/employee.rb +28 -0
  30. data/lib/xeroizer/models/external_link.rb +16 -0
  31. data/lib/xeroizer/models/invoice.rb +192 -0
  32. data/lib/xeroizer/models/item.rb +27 -0
  33. data/lib/xeroizer/models/item_purchase_details.rb +19 -0
  34. data/lib/xeroizer/models/item_sales_details.rb +19 -0
  35. data/lib/xeroizer/models/journal.rb +25 -0
  36. data/lib/xeroizer/models/journal_line.rb +28 -0
  37. data/lib/xeroizer/models/journal_line_tracking_category.rb +20 -0
  38. data/lib/xeroizer/models/line_amount_type.rb +11 -0
  39. data/lib/xeroizer/models/line_item.rb +40 -0
  40. data/lib/xeroizer/models/line_item_sum.rb +21 -0
  41. data/lib/xeroizer/models/manual_journal.rb +42 -0
  42. data/lib/xeroizer/models/manual_journal_line.rb +27 -0
  43. data/lib/xeroizer/models/option.rb +18 -0
  44. data/lib/xeroizer/models/organisation.rb +34 -0
  45. data/lib/xeroizer/models/payment.rb +42 -0
  46. data/lib/xeroizer/models/phone.rb +25 -0
  47. data/lib/xeroizer/models/tax_rate.rb +25 -0
  48. data/lib/xeroizer/models/tracking_category.rb +23 -0
  49. data/lib/xeroizer/models/tracking_category_child.rb +20 -0
  50. data/lib/xeroizer/oauth.rb +130 -0
  51. data/lib/xeroizer/partner_application.rb +46 -0
  52. data/lib/xeroizer/private_application.rb +27 -0
  53. data/lib/xeroizer/public_application.rb +21 -0
  54. data/lib/xeroizer/record/application_helper.rb +32 -0
  55. data/lib/xeroizer/record/base.rb +155 -0
  56. data/lib/xeroizer/record/base_model.rb +144 -0
  57. data/lib/xeroizer/record/base_model_http_proxy.rb +117 -0
  58. data/lib/xeroizer/record/model_definition_helper.rb +99 -0
  59. data/lib/xeroizer/record/record_association_helper.rb +140 -0
  60. data/lib/xeroizer/record/validation_helper.rb +71 -0
  61. data/lib/xeroizer/record/validators/associated_validator.rb +33 -0
  62. data/lib/xeroizer/record/validators/block_validator.rb +22 -0
  63. data/lib/xeroizer/record/validators/inclusion_of_validator.rb +22 -0
  64. data/lib/xeroizer/record/validators/presence_of_validator.rb +19 -0
  65. data/lib/xeroizer/record/validators/validator.rb +33 -0
  66. data/lib/xeroizer/record/xml_helper.rb +133 -0
  67. data/lib/xeroizer/report/aged_receivables_by_contact.rb +43 -0
  68. data/lib/xeroizer/report/base.rb +43 -0
  69. data/lib/xeroizer/report/cell.rb +32 -0
  70. data/lib/xeroizer/report/cell_xml_helper.rb +74 -0
  71. data/lib/xeroizer/report/factory.rb +53 -0
  72. data/lib/xeroizer/report/row/header.rb +12 -0
  73. data/lib/xeroizer/report/row/row.rb +48 -0
  74. data/lib/xeroizer/report/row/section.rb +10 -0
  75. data/lib/xeroizer/report/row/summary.rb +9 -0
  76. data/lib/xeroizer/report/row/xml_helper.rb +77 -0
  77. data/lib/xeroizer/report/xml_helper.rb +58 -0
  78. data/lib/xeroizer/response.rb +55 -0
  79. data/test/acceptance/about_creating_bank_transactions_test.rb +162 -0
  80. data/test/acceptance/about_fetching_bank_transactions_test.rb +56 -0
  81. data/test/acceptance/acceptance_test.rb +53 -0
  82. data/test/acceptance/bank_transaction_reference_data.rb +31 -0
  83. data/test/stub_responses/accounts.xml +589 -0
  84. data/test/stub_responses/api_exception.xml +153 -0
  85. data/test/stub_responses/bogus_oauth_error +1 -0
  86. data/test/stub_responses/branding_themes.xml +20 -0
  87. data/test/stub_responses/contact.xml +40 -0
  88. data/test/stub_responses/contacts.xml +0 -0
  89. data/test/stub_responses/create_credit_note.xml +104 -0
  90. data/test/stub_responses/create_invoice.xml +64 -0
  91. data/test/stub_responses/credit_note.xml +75 -0
  92. data/test/stub_responses/credit_note_not_found_error.xml +1 -0
  93. data/test/stub_responses/credit_notes.xml +169 -0
  94. data/test/stub_responses/currencies.xml +12 -0
  95. data/test/stub_responses/employees.xml +29 -0
  96. data/test/stub_responses/invalid_api_key_error.xml +1 -0
  97. data/test/stub_responses/invalid_consumer_key +1 -0
  98. data/test/stub_responses/invalid_request_token +1 -0
  99. data/test/stub_responses/invoice.xml +84 -0
  100. data/test/stub_responses/invoice_not_found_error.xml +1 -0
  101. data/test/stub_responses/invoices.xml +1899 -0
  102. data/test/stub_responses/items.xml +112 -0
  103. data/test/stub_responses/manual_journal.xml +45 -0
  104. data/test/stub_responses/manual_journals.xml +40 -0
  105. data/test/stub_responses/organisation.xml +25 -0
  106. data/test/stub_responses/organisations.xml +25 -0
  107. data/test/stub_responses/payments.xml +1121 -0
  108. data/test/stub_responses/rate_limit_exceeded +1 -0
  109. data/test/stub_responses/records/contact-043892a1-aef1-4c18-88d8-b8ccb6d31466.xml +38 -0
  110. data/test/stub_responses/records/contact-09664078-efe2-4a88-89a5-67eac9b0047b.xml +40 -0
  111. data/test/stub_responses/records/contact-0a4cf37b-a1a8-4753-9ee2-f9207f63a8ff.xml +48 -0
  112. data/test/stub_responses/records/contact-0e74f929-11b9-4255-a035-1fdfe573e676.xml +40 -0
  113. data/test/stub_responses/records/contact-0f471ca5-15c9-405e-a1b9-7cc35194b673.xml +38 -0
  114. data/test/stub_responses/records/contact-13cd4c47-baa6-4f07-93f6-6442310df4bf.xml +47 -0
  115. data/test/stub_responses/records/contact-158a2667-82ee-43bf-8f33-a6cc9524092d.xml +38 -0
  116. data/test/stub_responses/records/contact-17465072-6fa3-40bf-bc42-97765d9e1bea.xml +38 -0
  117. data/test/stub_responses/records/contact-1975b0ed-b7ba-4c61-bae8-2aa6d78b0dee.xml +39 -0
  118. data/test/stub_responses/records/contact-1b2be6e9-8d58-4da9-aaf8-4fe5471b653c.xml +53 -0
  119. data/test/stub_responses/records/contact-1c40da58-fe1d-4e97-b729-b2abdae94d9e.xml +38 -0
  120. data/test/stub_responses/records/contact-258176a5-c622-4394-9c94-6f88c3ea12e5.xml +40 -0
  121. data/test/stub_responses/records/contact-299dd3a0-a417-4a37-8a04-2f55e91963e5.xml +40 -0
  122. data/test/stub_responses/records/contact-2be39278-5154-4ed1-8eb0-676f25acfc66.xml +40 -0
  123. data/test/stub_responses/records/contact-2e58cff6-488c-4a32-884b-baf848010229.xml +40 -0
  124. data/test/stub_responses/records/contact-2faccd41-935e-40aa-b74e-e2fc28ac34c3.xml +38 -0
  125. data/test/stub_responses/records/contact-31af01e7-2ca7-45b9-a500-b02db996568e.xml +38 -0
  126. data/test/stub_responses/records/contact-344f1113-a25b-4344-b82e-bedeacc17c8e.xml +40 -0
  127. data/test/stub_responses/records/contact-3e776c4b-ea9e-4bb1-96be-6b0c7a71a37f.xml +39 -0
  128. data/test/stub_responses/records/contact-3fc1fc6c-e5ff-4e40-b6f3-7eb535637d87.xml +38 -0
  129. data/test/stub_responses/records/contact-416ab20c-5357-4beb-a740-e8d175d71efb.xml +38 -0
  130. data/test/stub_responses/records/contact-41a42865-f15a-4fa1-b643-47877608f557.xml +54 -0
  131. data/test/stub_responses/records/contact-42771b60-19a7-4692-af81-dd9f9b9362d4.xml +43 -0
  132. data/test/stub_responses/records/contact-451ceb28-9610-44c9-8f35-3225482f2413.xml +40 -0
  133. data/test/stub_responses/records/contact-4ab343ad-1ebb-4afe-9d48-1814a93c2081.xml +38 -0
  134. data/test/stub_responses/records/contact-4bb77692-42d4-4565-85a0-8849eb85e039.xml +39 -0
  135. data/test/stub_responses/records/contact-4dec292f-3ab7-46a8-83e4-5fb5eac42c7f.xml +40 -0
  136. data/test/stub_responses/records/contact-4e2f192e-8397-4d4d-97ca-a4fc5ac531bf.xml +38 -0
  137. data/test/stub_responses/records/contact-5188c17c-7786-4436-ad6e-9da2997386d0.xml +40 -0
  138. data/test/stub_responses/records/contact-52442753-b1c4-40b7-9b79-c33997de5837.xml +40 -0
  139. data/test/stub_responses/records/contact-565acaa9-e7f3-4fbf-80c3-16b081ddae10.xml +38 -0
  140. data/test/stub_responses/records/contact-571a2414-81ff-4f8f-8498-d91d83793131.xml +44 -0
  141. data/test/stub_responses/records/contact-58697449-85ef-46ae-83fc-6a9446f037fb.xml +40 -0
  142. data/test/stub_responses/records/contact-58bf2ae3-5144-4628-8de2-e165ac2bcdc6.xml +40 -0
  143. data/test/stub_responses/records/contact-5d41dafd-eb7e-42c1-bd5a-ba3be1da0960.xml +38 -0
  144. data/test/stub_responses/records/contact-5f005a09-5ce4-4fb4-8096-e69c18be636e.xml +38 -0
  145. data/test/stub_responses/records/contact-60d578d9-3e10-4aef-b5dc-9d9fd60a3633.xml +47 -0
  146. data/test/stub_responses/records/contact-62392126-dba4-4a75-b907-5875ebf75259.xml +40 -0
  147. data/test/stub_responses/records/contact-642c7fb5-e8e5-48e1-a710-39a18c6c3217.xml +40 -0
  148. data/test/stub_responses/records/contact-64aebf9c-bb89-4b38-b99b-405bd1ece6fd.xml +40 -0
  149. data/test/stub_responses/records/contact-64eedbc9-1fa0-485a-837f-705f23188161.xml +38 -0
  150. data/test/stub_responses/records/contact-65e96c9f-1595-4653-9a8a-2a36d49223c2.xml +40 -0
  151. data/test/stub_responses/records/contact-67d26b93-ccb4-4890-9bf1-284b70ea755d.xml +38 -0
  152. data/test/stub_responses/records/contact-69d3e538-44b3-4e00-a5f6-7dddcb6e0656.xml +40 -0
  153. data/test/stub_responses/records/contact-6a8450bc-f81a-4bb0-a8f6-aa4afe9497c7.xml +40 -0
  154. data/test/stub_responses/records/contact-6c70e424-41d6-4b9b-af3e-b3a9f3589106.xml +40 -0
  155. data/test/stub_responses/records/contact-6de0b0cf-560c-4503-aab3-e1543c329deb.xml +54 -0
  156. data/test/stub_responses/records/contact-72dd6a02-396e-42a2-a4d6-cc3fa75dfece.xml +41 -0
  157. data/test/stub_responses/records/contact-755f1475-d255-43a8-bedc-5ea7fd26c71f.xml +51 -0
  158. data/test/stub_responses/records/contact-78a9d0a0-3d8c-4f84-af3e-f260bf4a9dc0.xml +38 -0
  159. data/test/stub_responses/records/contact-79aa39ca-22b0-42c2-9026-78757a29d665.xml +42 -0
  160. data/test/stub_responses/records/contact-804f4140-5978-48fe-ba20-b56e5b834b18.xml +40 -0
  161. data/test/stub_responses/records/contact-812d4f28-1681-4241-8e34-d15c5520ba35.xml +38 -0
  162. data/test/stub_responses/records/contact-860b99a9-0958-4c8d-a98f-bb1f092b16bb.xml +60 -0
  163. data/test/stub_responses/records/contact-87c8da45-97cc-46be-b170-398da0eacfb8.xml +40 -0
  164. data/test/stub_responses/records/contact-8a154a19-6c6c-404b-bbc9-6deae2d18251.xml +38 -0
  165. data/test/stub_responses/records/contact-8bb6931d-2865-44e9-9a23-ed1fb9c7a46c.xml +40 -0
  166. data/test/stub_responses/records/contact-936c9759-01da-4063-b472-424ab9f48212.xml +38 -0
  167. data/test/stub_responses/records/contact-9d12a994-9640-4b75-95cc-3de1e9d0ef09.xml +38 -0
  168. data/test/stub_responses/records/contact-9fe59245-1fbb-4157-93c3-dc97388f3746.xml +40 -0
  169. data/test/stub_responses/records/contact-a06a7225-6f8a-4522-8400-c534dd43a16e.xml +40 -0
  170. data/test/stub_responses/records/contact-a76a85fe-73a2-46fa-aba7-791f36103cdb.xml +40 -0
  171. data/test/stub_responses/records/contact-a93b5f40-0346-4d21-9181-431e129911c0.xml +40 -0
  172. data/test/stub_responses/records/contact-abf272dd-6b1d-4829-af88-c57bf55855e3.xml +38 -0
  173. data/test/stub_responses/records/contact-ad24c33b-256b-4157-ad56-cbcf0e8db7b1.xml +47 -0
  174. data/test/stub_responses/records/contact-b107129d-f4c9-438e-9573-64b778527f4a.xml +40 -0
  175. data/test/stub_responses/records/contact-b233288a-aa26-4b26-9fc7-779d797dd56f.xml +40 -0
  176. data/test/stub_responses/records/contact-b2b5333a-2546-4975-891f-d71a8a640d23.xml +38 -0
  177. data/test/stub_responses/records/contact-b4d149bf-1823-4bd2-96da-9032388c9686.xml +40 -0
  178. data/test/stub_responses/records/contact-b78d4fd1-4306-4d83-a0b9-61458d1c53a2.xml +40 -0
  179. data/test/stub_responses/records/contact-b7d108a8-d5f7-4f16-a7c9-26eaed98e8de.xml +40 -0
  180. data/test/stub_responses/records/contact-baeed0f3-7989-4874-99b3-59f23032cb73.xml +38 -0
  181. data/test/stub_responses/records/contact-bc51a3a1-b7f6-46ca-ac9e-19b87e6ca100.xml +40 -0
  182. data/test/stub_responses/records/contact-be9f3aab-52f5-4d9c-94b4-87f7d9e5ee8b.xml +38 -0
  183. data/test/stub_responses/records/contact-c135f994-01e4-427b-9e15-acfe8a477c16.xml +49 -0
  184. data/test/stub_responses/records/contact-c14edf75-15e4-4a9c-86e4-f52e2fe7cfa4.xml +40 -0
  185. data/test/stub_responses/records/contact-ca9b9abc-c2dc-4221-8101-31f464d314cc.xml +44 -0
  186. data/test/stub_responses/records/contact-cc4db604-9ed8-4eef-8a29-51b5b70496a0.xml +38 -0
  187. data/test/stub_responses/records/contact-cce9b044-be4a-43b3-9dc7-c027d8dd35b2.xml +38 -0
  188. data/test/stub_responses/records/contact-d0cd2c4f-18a0-4f7c-a32a-2db00f29d298.xml +43 -0
  189. data/test/stub_responses/records/contact-d6851dc2-9ed9-4515-bc0b-810b09c06a6a.xml +38 -0
  190. data/test/stub_responses/records/contact-d6a384fb-f46f-41a3-8ac7-b7bc9e0b5efa.xml +46 -0
  191. data/test/stub_responses/records/contact-d74e61cf-2ad0-4f0d-b9d1-6a808e3f70cf.xml +40 -0
  192. data/test/stub_responses/records/contact-d9ab0f61-3b56-4e2b-be39-f33c11bd99e3.xml +40 -0
  193. data/test/stub_responses/records/contact-dbb1f0b5-a71b-4458-8462-104acd0fec6b.xml +38 -0
  194. data/test/stub_responses/records/contact-dd981bd6-40dd-496d-a282-bf7d3391b8b9.xml +40 -0
  195. data/test/stub_responses/records/contact-e1826204-cc0a-42a5-a6d0-4b352d9d5953.xml +40 -0
  196. data/test/stub_responses/records/contact-e2d955db-f366-42dd-87f7-fbdb4da2306f.xml +40 -0
  197. data/test/stub_responses/records/contact-e32e2130-3d27-443a-8313-48fffa03cf53.xml +40 -0
  198. data/test/stub_responses/records/contact-e3a68332-d322-4816-8678-73a537c8cd33.xml +38 -0
  199. data/test/stub_responses/records/contact-e6ac76a3-ca32-4fa1-8ef9-6a4bf8b0ec2a.xml +40 -0
  200. data/test/stub_responses/records/contact-e6ca965d-7c48-480e-be39-e847307f474a.xml +38 -0
  201. data/test/stub_responses/records/contact-e77d1f20-2e8e-46ec-9a10-50335a216724.xml +40 -0
  202. data/test/stub_responses/records/contact-e8b98c13-a424-41d2-ba0e-7b7621411e7a.xml +38 -0
  203. data/test/stub_responses/records/contact-e8e9a2c2-3e7e-48ed-8528-c3d61b28f276.xml +39 -0
  204. data/test/stub_responses/records/contact-eb43fcc6-87ec-4a0a-b243-d718bee4e2cb.xml +38 -0
  205. data/test/stub_responses/records/contact-ef6f54c1-eb45-4956-b8cd-1be82ad665f2.xml +43 -0
  206. data/test/stub_responses/records/contact-efdb3600-f233-42e2-8f18-ce7e2a95e4b1.xml +38 -0
  207. data/test/stub_responses/records/contact-f7eca431-5c97-4d24-93fd-004bb8a6c644.xml +40 -0
  208. data/test/stub_responses/records/contact-fb078879-5d6d-474f-825f-61dc90689349.xml +38 -0
  209. data/test/stub_responses/records/contact-fc39b273-4aa2-4785-99ca-24672f6c0000.xml +38 -0
  210. data/test/stub_responses/records/contact-fc9ec3a6-a2fe-4300-a8cb-ca8a0b3662e0.xml +40 -0
  211. data/test/stub_responses/records/contact-fdf96102-7491-44b6-bf4d-7a77ff25f890.xml +40 -0
  212. data/test/stub_responses/records/contact-fe61ead1-8afc-4f0b-beda-066620227aad.xml +38 -0
  213. data/test/stub_responses/records/credit_note-371cd138-1e5c-4ec1-a8c6-a1c10e8bdab1.xml +73 -0
  214. data/test/stub_responses/records/credit_note-3bffc09b-79f2-490d-b91b-c59b700b43a4.xml +95 -0
  215. data/test/stub_responses/records/credit_note-43c678ee-f357-48e2-b192-b6e3634762f9.xml +94 -0
  216. data/test/stub_responses/records/credit_note-482c018b-d329-4e05-9b4f-7a4cfc695aa0.xml +77 -0
  217. data/test/stub_responses/records/credit_note-4f67130a-749a-4ee6-98b2-743adbc11245.xml +62 -0
  218. data/test/stub_responses/records/credit_note-50e98404-2fba-4031-af67-8ba4bb227c44.xml +77 -0
  219. data/test/stub_responses/records/credit_note-7df8949c-b71f-40c0-bbcf-39f2f450f286.xml +75 -0
  220. data/test/stub_responses/records/credit_note-b356e488-2678-4be4-ad4b-d294df2d48d6.xml +78 -0
  221. data/test/stub_responses/records/invoice-0032f627-3156-4d30-9b1c-4d3b994dc921.xml +84 -0
  222. data/test/stub_responses/records/invoice-00c9511b-24b9-4190-a90a-8abf2fe9f4a0.xml +76 -0
  223. data/test/stub_responses/records/invoice-024d7994-a26c-4c20-9894-13934840fc31.xml +74 -0
  224. data/test/stub_responses/records/invoice-0e64a623-c2a1-446a-93ed-eb897f118cbc.xml +97 -0
  225. data/test/stub_responses/records/invoice-15e88e57-2554-4496-a18e-eb3f5c622345.xml +75 -0
  226. data/test/stub_responses/records/invoice-166f0588-d0ba-458c-b28a-8edd4c8fc463.xml +75 -0
  227. data/test/stub_responses/records/invoice-1d1ba340-afa2-4f4c-8ff7-a147bda9a47b.xml +93 -0
  228. data/test/stub_responses/records/invoice-290ef4c4-baec-492b-b4dd-c102826470ae.xml +87 -0
  229. data/test/stub_responses/records/invoice-30a87092-31b5-4a2c-831e-327486533dd2.xml +79 -0
  230. data/test/stub_responses/records/invoice-30dbd181-72a8-43df-b392-4241bf43d5fc.xml +79 -0
  231. data/test/stub_responses/records/invoice-33e4123e-7cdd-4f05-9a0a-eb8adeb2b868.xml +94 -0
  232. data/test/stub_responses/records/invoice-387db692-26ac-47e6-b6cc-015343809bda.xml +75 -0
  233. data/test/stub_responses/records/invoice-3b28bf11-ed2f-4cf4-8e9e-fcae730cc292.xml +91 -0
  234. data/test/stub_responses/records/invoice-3fcb9847-b350-412e-ab90-7d9d774ad881.xml +91 -0
  235. data/test/stub_responses/records/invoice-440613e4-4785-4eff-9ba1-c432816cf8c7.xml +78 -0
  236. data/test/stub_responses/records/invoice-4602eda6-abe9-448e-b65f-ae6bea21f0eb.xml +98 -0
  237. data/test/stub_responses/records/invoice-46441f63-873f-4cdc-a278-b8fe516f3abb.xml +94 -0
  238. data/test/stub_responses/records/invoice-4ad1ec01-f4a3-41d7-bbb4-d2ab2fec8e65.xml +74 -0
  239. data/test/stub_responses/records/invoice-4b9afceb-f7c7-4e64-8aac-7b009971fd52.xml +86 -0
  240. data/test/stub_responses/records/invoice-4edbf6d5-4e92-43af-bedd-7effc0b86833.xml +70 -0
  241. data/test/stub_responses/records/invoice-4fad1af2-b871-4ac5-a15a-3c5e32d2e2c4.xml +93 -0
  242. data/test/stub_responses/records/invoice-52ee4d67-cae4-462c-adb2-182c39017f3d.xml +83 -0
  243. data/test/stub_responses/records/invoice-54585f46-c1a0-4432-bd4f-c1fae2fba59b.xml +67 -0
  244. data/test/stub_responses/records/invoice-5613938b-9e27-472e-92ae-3b038b669d10.xml +87 -0
  245. data/test/stub_responses/records/invoice-5aa9451d-95d1-4f95-a966-bbab2573f71c.xml +75 -0
  246. data/test/stub_responses/records/invoice-5aadcd34-01a9-4b8d-a2bb-d7cc1de9fa45.xml +89 -0
  247. data/test/stub_responses/records/invoice-5f6deadf-36a2-495a-9980-ceb11e8af9a9.xml +85 -0
  248. data/test/stub_responses/records/invoice-625ffe1b-f5d8-438e-a376-981de5f5a733.xml +77 -0
  249. data/test/stub_responses/records/invoice-64cd559e-8e03-46af-b461-8555285cee71.xml +86 -0
  250. data/test/stub_responses/records/invoice-666f8dbb-bc9a-476c-8ec4-4665d7f83190.xml +63 -0
  251. data/test/stub_responses/records/invoice-66fbe37f-49b1-43fd-97ed-85114022cd2f.xml +79 -0
  252. data/test/stub_responses/records/invoice-673dd7cc-beb7-4697-83d4-0c47cb400cc2.xml +95 -0
  253. data/test/stub_responses/records/invoice-69fc971e-9b37-41c5-9c87-174330f22343.xml +66 -0
  254. data/test/stub_responses/records/invoice-70e6db69-e5a4-42c7-a397-aa3212c2945f.xml +75 -0
  255. data/test/stub_responses/records/invoice-762aa45d-4632-45b5-8087-b4f47690665e.xml +54 -0
  256. data/test/stub_responses/records/invoice-766d1289-b440-4675-a656-1a0612ecac77.xml +76 -0
  257. data/test/stub_responses/records/invoice-76bcb361-f93b-4513-b312-5a4af306d276.xml +67 -0
  258. data/test/stub_responses/records/invoice-76e3f056-479f-417c-a72b-f3d767899b87.xml +91 -0
  259. data/test/stub_responses/records/invoice-77b338ef-ecc0-4b95-a0d7-2617b0054611.xml +114 -0
  260. data/test/stub_responses/records/invoice-7be9956d-5316-4f6b-a66a-d355b3f159b2.xml +84 -0
  261. data/test/stub_responses/records/invoice-7dae876a-b424-436b-a4e6-17b3fdeec80c.xml +91 -0
  262. data/test/stub_responses/records/invoice-7e862d93-8dab-4856-8b0c-d844e09d750f.xml +68 -0
  263. data/test/stub_responses/records/invoice-803f70b0-56d9-4157-9787-41df271777a0.xml +84 -0
  264. data/test/stub_responses/records/invoice-86102312-aa3f-438c-9938-6840f4d8dda6.xml +75 -0
  265. data/test/stub_responses/records/invoice-8694c9c5-7097-4449-a708-b8c1982921a4.xml +69 -0
  266. data/test/stub_responses/records/invoice-86d6e00f-ef56-49f7-9a54-796ccd5ca057.xml +85 -0
  267. data/test/stub_responses/records/invoice-88e77f0f-54a5-4efc-a979-7e22223cc4d7.xml +66 -0
  268. data/test/stub_responses/records/invoice-8b0ccb6a-d9b7-4da5-8360-ef7fb157b5aa.xml +66 -0
  269. data/test/stub_responses/records/invoice-935fc854-8037-4111-8d91-993010c331cc.xml +74 -0
  270. data/test/stub_responses/records/invoice-95ef3000-c764-4ba9-a66a-b6e2d161f839.xml +62 -0
  271. data/test/stub_responses/records/invoice-962ef33f-c9d2-4602-9b9f-93a02bea23b3.xml +93 -0
  272. data/test/stub_responses/records/invoice-9868b472-1983-48e9-8edf-7e81ddf2c03a.xml +85 -0
  273. data/test/stub_responses/records/invoice-9a448e9b-a9fa-4a8b-98f5-6dc892a37374.xml +62 -0
  274. data/test/stub_responses/records/invoice-a1d04a14-96a8-4067-a0ff-8136990a354f.xml +91 -0
  275. data/test/stub_responses/records/invoice-a3bc62ef-f11b-4a9c-a4f9-a342bda371b5.xml +66 -0
  276. data/test/stub_responses/records/invoice-a6894ca0-60ee-4d45-9dd4-b44fcba46ec5.xml +90 -0
  277. data/test/stub_responses/records/invoice-a77268ce-74b2-483d-a2b3-70dbdc9e49d2.xml +78 -0
  278. data/test/stub_responses/records/invoice-a9f765e6-b9bc-4505-a47b-fb3ecb327e7b.xml +88 -0
  279. data/test/stub_responses/records/invoice-aa0173af-8707-4e7f-8dde-4c7a357bd312.xml +109 -0
  280. data/test/stub_responses/records/invoice-ab63738a-370a-43a5-bfa3-620d684e66d0.xml +83 -0
  281. data/test/stub_responses/records/invoice-b0344791-5a8a-40dd-a208-d99a461a6c10.xml +84 -0
  282. data/test/stub_responses/records/invoice-b1e53910-473c-46a3-b3cb-38ece571220e.xml +76 -0
  283. data/test/stub_responses/records/invoice-b2c02d0b-41a8-4d4d-97d7-014c78b3547d.xml +93 -0
  284. data/test/stub_responses/records/invoice-b75b3928-ab72-4424-8b93-9cdbbde4cd72.xml +90 -0
  285. data/test/stub_responses/records/invoice-bcd8a71f-aa31-4d0f-8a01-13ea26363ddf.xml +94 -0
  286. data/test/stub_responses/records/invoice-bfbb7c45-de02-45e7-b065-d9863ecfb0d8.xml +66 -0
  287. data/test/stub_responses/records/invoice-c12aff7e-12bf-4185-8702-460929f19674.xml +77 -0
  288. data/test/stub_responses/records/invoice-c3380b96-976d-4b3e-8b26-8d01eb6a3742.xml +87 -0
  289. data/test/stub_responses/records/invoice-c963f2b0-cbe1-4abd-9ccc-7e512c942068.xml +67 -0
  290. data/test/stub_responses/records/invoice-cba46b29-3788-4158-b668-ab10160ccbfe.xml +78 -0
  291. data/test/stub_responses/records/invoice-d62646b9-d0a9-4fdb-9561-756a8b7eba45.xml +63 -0
  292. data/test/stub_responses/records/invoice-dba2f021-f149-4191-a126-5351d587ab0e.xml +75 -0
  293. data/test/stub_responses/records/invoice-de5d9c29-21b3-4342-958b-ed72c4bd7ab0.xml +108 -0
  294. data/test/stub_responses/records/invoice-e3d96555-2876-4364-a46a-7551a4f52611.xml +123 -0
  295. data/test/stub_responses/records/invoice-e4a0afbd-aea0-450b-ae23-0ce921e84a77.xml +102 -0
  296. data/test/stub_responses/records/invoice-e9cb9ecb-58ef-43a8-bd20-69a85338142d.xml +76 -0
  297. data/test/stub_responses/records/invoice-ec9a6f67-7128-4a63-8ba3-5e516f455f9b.xml +94 -0
  298. data/test/stub_responses/records/invoice-ed0f2587-84fc-4aef-bc4b-b1a262e24484.xml +81 -0
  299. data/test/stub_responses/records/invoice-f362ca53-8ade-4047-865a-bb64bee5863d.xml +74 -0
  300. data/test/stub_responses/records/invoice-f571c38b-5be1-41e1-ad5a-ff6184284beb.xml +114 -0
  301. data/test/stub_responses/records/invoice-f5832195-5cd3-4660-ad3f-b73d9c64f263.xml +85 -0
  302. data/test/stub_responses/records/invoice-f9c857eb-64cd-4235-a078-d04b52c77ea7.xml +76 -0
  303. data/test/stub_responses/records/manual_journal-4765d07b-aa03-4e56-9166-50661958c864.xml +38 -0
  304. data/test/stub_responses/records/manual_journal-53fc5558-5b76-4ecd-ae5c-c4af3ccde87c.xml +31 -0
  305. data/test/stub_responses/records/manual_journal-bb6cfcfc-4500-4475-bd3a-93ee512428e0.xml +31 -0
  306. data/test/stub_responses/records/manual_journal-f00a355b-7374-445c-886b-0437bea4095c.xml +45 -0
  307. data/test/stub_responses/refresh_responses.rb +29 -0
  308. data/test/stub_responses/reports/trial_balance.xml +1435 -0
  309. data/test/stub_responses/tax_rates.xml +118 -0
  310. data/test/stub_responses/token_expired +1 -0
  311. data/test/stub_responses/tracking_categories.xml +27 -0
  312. data/test/stub_responses/unknown_error.xml +1 -0
  313. data/test/test_helper.rb +67 -0
  314. data/test/unit/models/bank_transaction_model_parsing_test.rb +133 -0
  315. data/test/unit/models/bank_transaction_test.rb +47 -0
  316. data/test/unit/models/bank_transaction_validation_test.rb +87 -0
  317. data/test/unit/models/contact_test.rb +26 -0
  318. data/test/unit/models/credit_note_test.rb +37 -0
  319. data/test/unit/models/invoice_test.rb +113 -0
  320. data/test/unit/models/journal_line_test.rb +22 -0
  321. data/test/unit/models/line_item_sum_test.rb +24 -0
  322. data/test/unit/models/line_item_test.rb +70 -0
  323. data/test/unit/oauth_config_test.rb +20 -0
  324. data/test/unit/oauth_test.rb +97 -0
  325. data/test/unit/private_application_test.rb +20 -0
  326. data/test/unit/record/base_model_test.rb +50 -0
  327. data/test/unit/record/base_test.rb +94 -0
  328. data/test/unit/record/block_validator_test.rb +125 -0
  329. data/test/unit/record/model_definition_test.rb +159 -0
  330. data/test/unit/record/parse_where_hash_test.rb +63 -0
  331. data/test/unit/record/record_association_test.rb +93 -0
  332. data/test/unit/record/validators_test.rb +228 -0
  333. data/test/unit/record_definition_test.rb +27 -0
  334. data/test/unit/report_definition_test.rb +26 -0
  335. data/test/unit/report_test.rb +145 -0
  336. data/xeroizer.gemspec +405 -0
  337. metadata +561 -0
@@ -0,0 +1,56 @@
1
+ require "test_helper"
2
+ require "acceptance_test"
3
+ require "bank_transaction_reference_data"
4
+
5
+ class AboutFetchingBankTransactions < Test::Unit::TestCase
6
+ include AcceptanceTest
7
+
8
+ def client
9
+ @client ||= Xeroizer::PrivateApplication.new(@consumer_key, @consumer_secret, @key_file)
10
+ end
11
+
12
+ context "when requesting all bank transactions (i.e., without filter)" do
13
+ setup do
14
+ @the_first_bank_transaction = client.BankTransaction.all.first
15
+ end
16
+
17
+ it "returns line items empty" do
18
+ assert_empty(@the_first_bank_transaction.line_items, "Expected line items to've been excluded")
19
+ end
20
+
21
+ it "returns contact with name and and id ONLY (no addresses or phones)" do
22
+ the_contact = @the_first_bank_transaction.contact
23
+ assert_not_nil(the_contact.contact_id, "Expected contact id to be present")
24
+ assert_not_nil(the_contact.name, "Expected contact name to be present")
25
+ assert_empty the_contact.phones, "Expected empty contact phones"
26
+ assert_empty the_contact.addresses, "Expected empty contact addresses"
27
+ end
28
+
29
+ it "returns the bank account" do
30
+ assert_not_nil @the_first_bank_transaction.bank_account
31
+ end
32
+ end
33
+
34
+ context "when requesting a single bank transaction for example" do
35
+ setup do
36
+ @a_new_bank_transaction = BankTransactionReferenceData.new(client).bank_transaction
37
+ end
38
+
39
+ it "returns contact with addresses and phones" do
40
+ single_bank_transaction = client.BankTransaction.find @a_new_bank_transaction.id
41
+
42
+ assert_not_empty single_bank_transaction.contact.addresses,
43
+ "expected the contact's addresses to have been included"
44
+
45
+ assert_not_empty single_bank_transaction.contact.phones,
46
+ "expected the contact's phone numbers to have been included"
47
+ end
48
+
49
+ it "returns full line item details" do
50
+ single_bank_transaction = client.BankTransaction.find @a_new_bank_transaction.id
51
+
52
+ assert_not_empty single_bank_transaction.line_items,
53
+ "expected the bank transaction's line items to have been included"
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,53 @@
1
+ module AcceptanceTest
2
+ class << self
3
+ def included(klass)
4
+ klass.class_eval do
5
+ def self.log_to_console
6
+ Xeroizer::Logging.const_set :Log, Xeroizer::Logging::StdOutLog
7
+ end
8
+
9
+ def self.no_log
10
+ Xeroizer::Logging.const_set :Log, Xeroizer::Logging::DevNullLog
11
+ end
12
+
13
+ def self.let(symbol, &block)
14
+ return unless block_given?
15
+
16
+ unless respond_to? symbol
17
+ define_method symbol do
18
+ cached_method_result = instance_variable_get ivar_name = "@#{symbol}"
19
+ instance_variable_set(ivar_name, instance_eval(&block)) if cached_method_result.nil?
20
+ instance_variable_get ivar_name
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+
28
+ def setup
29
+ config = load_config_from_file || load_config_from_env
30
+
31
+ @key_file = config.key_file
32
+ @consumer_key = config.consumer_key
33
+ @consumer_secret = config.consumer_secret
34
+ end
35
+
36
+ private
37
+
38
+ def load_config_from_file
39
+ the_file_name = File.join(File.dirname(__FILE__), '..', '..', '.oauth')
40
+
41
+ return nil unless File.exists? the_file_name
42
+
43
+ Xeroizer::OAuthConfig.load IO.read the_file_name
44
+ end
45
+
46
+ def load_config_from_env
47
+ assert_not_nil ENV["CONSUMER_KEY"], "No CONSUMER_KEY environment variable specified."
48
+ assert_not_nil ENV["CONSUMER_SECRET"], "No CONSUMER_SECRET environment variable specified."
49
+ assert_not_nil ENV["KEY_FILE"], "No KEY_FILE environment variable specified."
50
+ assert File.exists?(ENV["KEY_FILE"]), "The file <#{ENV["KEY_FILE"]}> does not exist."
51
+ OAuthCredentials.new ENV["CONSUMER_KEY"], ENV["CONSUMER_SECRET"], ENV["KEY_FILE"]
52
+ end
53
+ end
@@ -0,0 +1,31 @@
1
+ class BankTransactionReferenceData
2
+ def initialize(client); @client = client; end
3
+ def bank_transaction; @bank_transaction ||= new_bank_transaction; end
4
+
5
+ private
6
+
7
+ def new_bank_transaction
8
+ all_accounts = @client.Account.all
9
+
10
+ account = all_accounts.select{|acct| acct.status == "ACTIVE" && acct.type == "REVENUE"}.first
11
+ bank_account = all_accounts.select{|acct| acct.status == "ACTIVE" && acct.type == "BANK"}.first
12
+
13
+ result = @client.BankTransaction.build(
14
+ :type => "SPEND",
15
+ :contact => { :name => "Jazz Kang" },
16
+ :line_items => [
17
+ :item_code => "Clingfilm bike shorts",
18
+ :description => "Bike shorts made of clear, unbreathable material",
19
+ :quantity => 1,
20
+ :unit_amount => 39.99,
21
+ :account_code => account.code,
22
+ :tax_type => account.tax_type
23
+ ],
24
+ :bank_account => { :account_id => bank_account.account_id }
25
+ )
26
+
27
+ fail("Expected save to have succeeded, but it failed. #{result.errors.inspect}") unless result.save
28
+
29
+ result
30
+ end
31
+ end
@@ -0,0 +1,589 @@
1
+ <Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
2
+ <Id>123bfff9-e1b6-481b-9f3b-41997d7bd627</Id>
3
+ <Status>OK</Status>
4
+ <ProviderName>Appcordion Private</ProviderName>
5
+ <DateTimeUTC>2010-12-21T00:56:58.7320527Z</DateTimeUTC>
6
+ <Accounts>
7
+ <Account>
8
+ <AccountID>13918178-849a-4823-9a31-57b7eac713d7</AccountID>
9
+ <Name>ANZ Business Account</Name>
10
+ <Status>ACTIVE</Status>
11
+ <Type>BANK</Type>
12
+ <TaxType>NONE</TaxType>
13
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
14
+ <BankAccountNumber>01023412345678</BankAccountNumber>
15
+ <CurrencyCode>AUD</CurrencyCode>
16
+ </Account>
17
+ <Account>
18
+ <AccountID>26028d3a-f981-44d6-a9ed-a522198870f8</AccountID>
19
+ <Code>099</Code>
20
+ <Name>Ridgeway Savings</Name>
21
+ <Status>ACTIVE</Status>
22
+ <Type>BANK</Type>
23
+ <TaxType>NONE</TaxType>
24
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
25
+ <BankAccountNumber>0932107654321</BankAccountNumber>
26
+ <CurrencyCode>AUD</CurrencyCode>
27
+ </Account>
28
+ <Account>
29
+ <AccountID>e2bacdc6-2006-43c2-a5da-3c0e5f43b452</AccountID>
30
+ <Code>200</Code>
31
+ <Name>Sales</Name>
32
+ <Status>ACTIVE</Status>
33
+ <Type>REVENUE</Type>
34
+ <TaxType>OUTPUT</TaxType>
35
+ <Description>Income from any normal business activity</Description>
36
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
37
+ </Account>
38
+ <Account>
39
+ <AccountID>39987591-5a9a-4513-8072-828069a65f9c</AccountID>
40
+ <Code>260</Code>
41
+ <Name>Other Revenue</Name>
42
+ <Status>ACTIVE</Status>
43
+ <Type>REVENUE</Type>
44
+ <TaxType>OUTPUT</TaxType>
45
+ <Description>Any other income that does not relate to normal business activities and is not recurring</Description>
46
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
47
+ </Account>
48
+ <Account>
49
+ <AccountID>1335b8b2-4d63-4af8-937f-04087ae2e36e</AccountID>
50
+ <Code>270</Code>
51
+ <Name>Interest Income</Name>
52
+ <Status>ACTIVE</Status>
53
+ <Type>REVENUE</Type>
54
+ <TaxType>NONE</TaxType>
55
+ <Description>Interest income</Description>
56
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
57
+ </Account>
58
+ <Account>
59
+ <AccountID>ee30a086-d381-4bd6-ba47-7af927d25825</AccountID>
60
+ <Code>300</Code>
61
+ <Name>Purchases</Name>
62
+ <Status>ACTIVE</Status>
63
+ <Type>DIRECTCOSTS</Type>
64
+ <TaxType>INPUT</TaxType>
65
+ <Description>Goods purchased with the intention of selling these to customers</Description>
66
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
67
+ <ReportingCode>EXP</ReportingCode>
68
+ <ReportingCodeName>Expense</ReportingCodeName>
69
+ </Account>
70
+ <Account>
71
+ <AccountID>d392fe47-c99d-499e-a200-46709dd6b6e7</AccountID>
72
+ <Code>400</Code>
73
+ <Name>Advertising</Name>
74
+ <Status>ACTIVE</Status>
75
+ <Type>EXPENSE</Type>
76
+ <TaxType>INPUT</TaxType>
77
+ <Description>Expenses incurred for advertising while trying to increase sales</Description>
78
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
79
+ </Account>
80
+ <Account>
81
+ <AccountID>959af5f4-9925-44e8-b283-7ddf4b427238</AccountID>
82
+ <Code>404</Code>
83
+ <Name>Bank Fees</Name>
84
+ <Status>ACTIVE</Status>
85
+ <Type>EXPENSE</Type>
86
+ <TaxType>NONE</TaxType>
87
+ <Description>Fees charged by your bank for transactions regarding your bank account(s).</Description>
88
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
89
+ </Account>
90
+ <Account>
91
+ <AccountID>ff09eac3-5b17-44fb-9eea-e2e9375e91b4</AccountID>
92
+ <Code>408</Code>
93
+ <Name>Cleaning</Name>
94
+ <Status>ACTIVE</Status>
95
+ <Type>EXPENSE</Type>
96
+ <TaxType>INPUT</TaxType>
97
+ <Description>Expenses incurred for cleaning business property.</Description>
98
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
99
+ </Account>
100
+ <Account>
101
+ <AccountID>6db51cfa-0326-4e63-a743-c78c4d99aba4</AccountID>
102
+ <Code>412</Code>
103
+ <Name>Consulting &amp; Accounting</Name>
104
+ <Status>ACTIVE</Status>
105
+ <Type>EXPENSE</Type>
106
+ <TaxType>INPUT</TaxType>
107
+ <Description>Expenses related to paying consultants</Description>
108
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
109
+ </Account>
110
+ <Account>
111
+ <AccountID>7f940c53-bae5-41a8-a3a3-c841227fee01</AccountID>
112
+ <Code>416</Code>
113
+ <Name>Depreciation</Name>
114
+ <Status>ACTIVE</Status>
115
+ <Type>EXPENSE</Type>
116
+ <TaxType>NONE</TaxType>
117
+ <Description>The amount of the asset's cost (based on the useful life) that was consumed during the period</Description>
118
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
119
+ </Account>
120
+ <Account>
121
+ <AccountID>18e27517-81e0-437c-bc21-fbba8e30d6bb</AccountID>
122
+ <Code>420</Code>
123
+ <Name>Entertainment</Name>
124
+ <Status>ACTIVE</Status>
125
+ <Type>EXPENSE</Type>
126
+ <TaxType>NONE</TaxType>
127
+ <Description>Expenses paid by company for the business but are not deductable for income tax purposes.</Description>
128
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
129
+ </Account>
130
+ <Account>
131
+ <AccountID>c4a9d449-ef04-43a7-9af8-49c6558b361e</AccountID>
132
+ <Code>425</Code>
133
+ <Name>Freight &amp; Courier</Name>
134
+ <Status>ACTIVE</Status>
135
+ <Type>EXPENSE</Type>
136
+ <TaxType>INPUT</TaxType>
137
+ <Description>Expenses incurred on courier &amp; freight costs</Description>
138
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
139
+ </Account>
140
+ <Account>
141
+ <AccountID>94882296-5acf-4350-8c5b-82bc9370ab78</AccountID>
142
+ <Code>429</Code>
143
+ <Name>General Expenses</Name>
144
+ <Status>ACTIVE</Status>
145
+ <Type>EXPENSE</Type>
146
+ <TaxType>INPUT</TaxType>
147
+ <Description>General expenses related to the running of the business.</Description>
148
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
149
+ </Account>
150
+ <Account>
151
+ <AccountID>48a193e4-f1e3-49b8-8ff3-74137575f087</AccountID>
152
+ <Code>433</Code>
153
+ <Name>Insurance</Name>
154
+ <Status>ACTIVE</Status>
155
+ <Type>EXPENSE</Type>
156
+ <TaxType>INPUT</TaxType>
157
+ <Description>Expenses incurred for insuring the business' assets</Description>
158
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
159
+ </Account>
160
+ <Account>
161
+ <AccountID>a29e26fb-06ec-4aad-8a6f-6cadc52291f8</AccountID>
162
+ <Code>437</Code>
163
+ <Name>Interest Expense</Name>
164
+ <Status>ACTIVE</Status>
165
+ <Type>EXPENSE</Type>
166
+ <TaxType>NONE</TaxType>
167
+ <Description>Any interest expenses paid to ATO, business bank accounts or credit card accounts.</Description>
168
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
169
+ </Account>
170
+ <Account>
171
+ <AccountID>1b83b470-95ae-4b0b-a84e-8c407d5ea2ae</AccountID>
172
+ <Code>441</Code>
173
+ <Name>Legal expenses</Name>
174
+ <Status>ACTIVE</Status>
175
+ <Type>EXPENSE</Type>
176
+ <TaxType>INPUT</TaxType>
177
+ <Description>Expenses incurred on any legal matters</Description>
178
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
179
+ </Account>
180
+ <Account>
181
+ <AccountID>42a56c1a-6141-4bf2-913d-916dc1a35cfd</AccountID>
182
+ <Code>445</Code>
183
+ <Name>Light, Power, Heating</Name>
184
+ <Status>ACTIVE</Status>
185
+ <Type>EXPENSE</Type>
186
+ <TaxType>INPUT</TaxType>
187
+ <Description>Expenses incurred for lighting, powering or heating the premises</Description>
188
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
189
+ </Account>
190
+ <Account>
191
+ <AccountID>005f380d-4a9c-497f-b9d7-817f0f02790e</AccountID>
192
+ <Code>449</Code>
193
+ <Name>Motor Vehicle Expenses</Name>
194
+ <Status>ACTIVE</Status>
195
+ <Type>EXPENSE</Type>
196
+ <TaxType>INPUT</TaxType>
197
+ <Description>Expenses incurred on the running of company motor vehicles</Description>
198
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
199
+ </Account>
200
+ <Account>
201
+ <AccountID>8ab9d684-f897-4168-b5d1-2279bf74bb82</AccountID>
202
+ <Code>453</Code>
203
+ <Name>Office Expenses</Name>
204
+ <Status>ACTIVE</Status>
205
+ <Type>EXPENSE</Type>
206
+ <TaxType>INPUT</TaxType>
207
+ <Description>General expenses related to the running of the business office.</Description>
208
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
209
+ </Account>
210
+ <Account>
211
+ <AccountID>b18eaea6-4d11-462c-ac30-7975108b5859</AccountID>
212
+ <Code>461</Code>
213
+ <Name>Printing &amp; Stationery</Name>
214
+ <Status>ACTIVE</Status>
215
+ <Type>EXPENSE</Type>
216
+ <TaxType>INPUT</TaxType>
217
+ <Description>Expenses incurred by the entity as a result of printing and stationery</Description>
218
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
219
+ </Account>
220
+ <Account>
221
+ <AccountID>f5f05ee3-f9cd-4bf9-9423-ed81de96b537</AccountID>
222
+ <Code>469</Code>
223
+ <Name>Rent</Name>
224
+ <Status>ACTIVE</Status>
225
+ <Type>EXPENSE</Type>
226
+ <TaxType>INPUT</TaxType>
227
+ <Description>The payment to lease a building or area.</Description>
228
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
229
+ </Account>
230
+ <Account>
231
+ <AccountID>e91eee7a-340e-4203-8af8-14db5121af35</AccountID>
232
+ <Code>473</Code>
233
+ <Name>Repairs and Maintenance</Name>
234
+ <Status>ARCHIVED</Status>
235
+ <Type>EXPENSE</Type>
236
+ <TaxType>INPUT</TaxType>
237
+ <Description>Expenses incurred on a damaged or run down asset that will bring the asset back to its original condition.</Description>
238
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
239
+ </Account>
240
+ <Account>
241
+ <AccountID>c4f12f09-846e-4f6f-b39c-dff3be3e49a7</AccountID>
242
+ <Code>477</Code>
243
+ <Name>Wages and Salaries</Name>
244
+ <Status>ACTIVE</Status>
245
+ <Type>EXPENSE</Type>
246
+ <TaxType>EXEMPTINPUT</TaxType>
247
+ <Description>Payment to employees in exchange for their resources</Description>
248
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
249
+ </Account>
250
+ <Account>
251
+ <AccountID>479252dc-1e01-4a86-a452-9552a191453f</AccountID>
252
+ <Code>478</Code>
253
+ <Name>Superannuation</Name>
254
+ <Status>ACTIVE</Status>
255
+ <Type>EXPENSE</Type>
256
+ <TaxType>EXEMPTINPUT</TaxType>
257
+ <Description>Superannuation contributions</Description>
258
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
259
+ <ReportingCode>EXP</ReportingCode>
260
+ <ReportingCodeName>Expense</ReportingCodeName>
261
+ </Account>
262
+ <Account>
263
+ <AccountID>98154d6b-0424-42f7-9aff-678db4ff62ba</AccountID>
264
+ <Code>479</Code>
265
+ <Name>Commission</Name>
266
+ <Status>ACTIVE</Status>
267
+ <Type>DIRECTCOSTS</Type>
268
+ <TaxType>NONE</TaxType>
269
+ <Description>% to staff for consultancy work invoiced to them</Description>
270
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
271
+ </Account>
272
+ <Account>
273
+ <AccountID>b3742a53-0f64-4765-b5cc-3ece843b2e91</AccountID>
274
+ <Code>485</Code>
275
+ <Name>Subscriptions</Name>
276
+ <Status>ACTIVE</Status>
277
+ <Type>EXPENSE</Type>
278
+ <TaxType>INPUT</TaxType>
279
+ <Description>E.g. Magazines, professional bodies.</Description>
280
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
281
+ </Account>
282
+ <Account>
283
+ <AccountID>266f40cc-5aa1-4f6c-b078-eb615171d6de</AccountID>
284
+ <Code>489</Code>
285
+ <Name>Telephone &amp; Internet</Name>
286
+ <Status>ACTIVE</Status>
287
+ <Type>EXPENSE</Type>
288
+ <TaxType>INPUT</TaxType>
289
+ <Description>Expenditure incurred from any business-related phone calls, phone lines, or internet connections</Description>
290
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
291
+ </Account>
292
+ <Account>
293
+ <AccountID>25717024-5b50-4320-93b7-280c0614a613</AccountID>
294
+ <Code>493</Code>
295
+ <Name>Travel - National</Name>
296
+ <Status>ACTIVE</Status>
297
+ <Type>EXPENSE</Type>
298
+ <TaxType>INPUT</TaxType>
299
+ <Description>Expenses incurred from domestic travel which has a business purpose</Description>
300
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
301
+ </Account>
302
+ <Account>
303
+ <AccountID>eaa06c90-21e6-4176-9333-8ab4c23f0004</AccountID>
304
+ <Code>494</Code>
305
+ <Name>Travel - International</Name>
306
+ <Status>ACTIVE</Status>
307
+ <Type>EXPENSE</Type>
308
+ <TaxType>NONE</TaxType>
309
+ <Description>Expenses incurred from international travel which has a business purpose</Description>
310
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
311
+ </Account>
312
+ <Account>
313
+ <AccountID>d290c7f4-df33-46f0-917b-d188c6f517dc</AccountID>
314
+ <Code>497</Code>
315
+ <Name>Bank Revaluations</Name>
316
+ <Status>ARCHIVED</Status>
317
+ <Type>EXPENSE</Type>
318
+ <TaxType>NONE</TaxType>
319
+ <Description>Bank account revaluations due for foreign exchange rate changes</Description>
320
+ <SystemAccount>BANKCURRENCYGAIN</SystemAccount>
321
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
322
+ </Account>
323
+ <Account>
324
+ <AccountID>09ef3689-6913-4f31-aeca-81646680e623</AccountID>
325
+ <Code>498</Code>
326
+ <Name>Unrealised Currency Gains</Name>
327
+ <Status>ARCHIVED</Status>
328
+ <Type>EXPENSE</Type>
329
+ <TaxType>NONE</TaxType>
330
+ <Description>Unrealised currency gains on outstanding items</Description>
331
+ <SystemAccount>UNREALISEDCURRENCYGAIN</SystemAccount>
332
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
333
+ </Account>
334
+ <Account>
335
+ <AccountID>e0b4f130-7fb7-4e29-9a85-1e002ea5cc31</AccountID>
336
+ <Code>499</Code>
337
+ <Name>Realised Currency Gains</Name>
338
+ <Status>ARCHIVED</Status>
339
+ <Type>EXPENSE</Type>
340
+ <TaxType>NONE</TaxType>
341
+ <Description>Gains or losses made due to currency exchange rate changes</Description>
342
+ <SystemAccount>REALISEDCURRENCYGAIN</SystemAccount>
343
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
344
+ </Account>
345
+ <Account>
346
+ <AccountID>53bee866-8d31-4669-bd62-69026afcc86d</AccountID>
347
+ <Code>505</Code>
348
+ <Name>Income Tax Expense</Name>
349
+ <Status>ACTIVE</Status>
350
+ <Type>EXPENSE</Type>
351
+ <TaxType>EXEMPTINPUT</TaxType>
352
+ <Description>A percentage of total earnings paid to the government.</Description>
353
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
354
+ <ReportingCode>EXP</ReportingCode>
355
+ <ReportingCodeName>Expense</ReportingCodeName>
356
+ </Account>
357
+ <Account>
358
+ <AccountID>3dd5c80d-e109-4313-8c61-41648e33704f</AccountID>
359
+ <Code>610</Code>
360
+ <Name>Accounts Receivable</Name>
361
+ <Status>ACTIVE</Status>
362
+ <Type>CURRENT</Type>
363
+ <TaxType>NONE</TaxType>
364
+ <Description>Outstanding invoices the company has issued out to the client but has not yet received in cash at balance date.</Description>
365
+ <SystemAccount>DEBTORS</SystemAccount>
366
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
367
+ </Account>
368
+ <Account>
369
+ <AccountID>26a3ec3b-0aa8-4cbe-b0b1-20c6277a55ad</AccountID>
370
+ <Code>620</Code>
371
+ <Name>Prepayments</Name>
372
+ <Status>ARCHIVED</Status>
373
+ <Type>CURRENT</Type>
374
+ <TaxType>NONE</TaxType>
375
+ <Description>An expenditure that has been paid for in advance.</Description>
376
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
377
+ </Account>
378
+ <Account>
379
+ <AccountID>2d69b4ee-37d4-4f67-b950-32cbdd5765ed</AccountID>
380
+ <Code>710</Code>
381
+ <Name>Office Equipment</Name>
382
+ <Status>ACTIVE</Status>
383
+ <Type>FIXED</Type>
384
+ <TaxType>CAPEXINPUT</TaxType>
385
+ <Description>Office equipment that is owned and controlled by the business</Description>
386
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
387
+ </Account>
388
+ <Account>
389
+ <AccountID>24d010bf-5e4b-42dd-9aa3-a5484dd0686f</AccountID>
390
+ <Code>711</Code>
391
+ <Name>Less Accumulated Depreciation on Office Equipment</Name>
392
+ <Status>ACTIVE</Status>
393
+ <Type>FIXED</Type>
394
+ <TaxType>EXEMPTINPUT</TaxType>
395
+ <Description>The total amount of office equipment cost that has been consumed by the entity (based on the useful life)</Description>
396
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
397
+ <ReportingCode>ASS</ReportingCode>
398
+ <ReportingCodeName>Assets</ReportingCodeName>
399
+ </Account>
400
+ <Account>
401
+ <AccountID>75bbcb81-6b3d-4ca9-8522-3b582cb5c21a</AccountID>
402
+ <Code>720</Code>
403
+ <Name>Computer Equipment</Name>
404
+ <Status>ACTIVE</Status>
405
+ <Type>FIXED</Type>
406
+ <TaxType>CAPEXINPUT</TaxType>
407
+ <Description>Computer equipment that is owned and controlled by the business</Description>
408
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
409
+ </Account>
410
+ <Account>
411
+ <AccountID>44ef13ab-a913-4688-b6f0-52877b670ad4</AccountID>
412
+ <Code>721</Code>
413
+ <Name>Less Accumulated Depreciation on Computer Equipment</Name>
414
+ <Status>ACTIVE</Status>
415
+ <Type>FIXED</Type>
416
+ <TaxType>EXEMPTINPUT</TaxType>
417
+ <Description>The total amount of computer equipment cost that has been consumed by the business (based on the useful life)</Description>
418
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
419
+ <ReportingCode>ASS</ReportingCode>
420
+ <ReportingCodeName>Assets</ReportingCodeName>
421
+ </Account>
422
+ <Account>
423
+ <AccountID>8e9c5166-d3fe-4e21-827a-f42753568e80</AccountID>
424
+ <Code>800</Code>
425
+ <Name>Accounts Payable</Name>
426
+ <Status>ACTIVE</Status>
427
+ <Type>CURRLIAB</Type>
428
+ <TaxType>NONE</TaxType>
429
+ <Description>Outstanding invoices the company has received from suppliers but has not yet paid at balance date</Description>
430
+ <SystemAccount>CREDITORS</SystemAccount>
431
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
432
+ </Account>
433
+ <Account>
434
+ <AccountID>c11b84a9-e90a-4094-83d7-b8494d195ecc</AccountID>
435
+ <Code>801</Code>
436
+ <Name>Unpaid Expense Claims</Name>
437
+ <Status>ACTIVE</Status>
438
+ <Type>CURRLIAB</Type>
439
+ <TaxType>NONE</TaxType>
440
+ <Description>Expense claims typically made by employees/shareholder employees still outstanding.</Description>
441
+ <SystemAccount>UNPAIDEXPCLM</SystemAccount>
442
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
443
+ </Account>
444
+ <Account>
445
+ <AccountID>38b7b812-d334-46eb-872e-67c4cfb87538</AccountID>
446
+ <Code>805</Code>
447
+ <Name>Accrued Liabilities</Name>
448
+ <Status>ACTIVE</Status>
449
+ <Type>CURRLIAB</Type>
450
+ <TaxType>NONE</TaxType>
451
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
452
+ </Account>
453
+ <Account>
454
+ <AccountID>66e60a82-99d8-47d1-956b-5baea404acba</AccountID>
455
+ <Code>820</Code>
456
+ <Name>GST</Name>
457
+ <Status>ACTIVE</Status>
458
+ <Type>CURRLIAB</Type>
459
+ <TaxType>NONE</TaxType>
460
+ <Description>The balance in this account represents GST owing to or from the ATO. At the end of the GST period, it is this account that should be used to code against either the 'refunds from' or 'payments to' the ATO that will appear on the bank statement. Xero has been designed to use only one GST account to track GST on income and expenses, so there is no need to add any new GST accounts to Xero.</Description>
461
+ <SystemAccount>GST</SystemAccount>
462
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
463
+ </Account>
464
+ <Account>
465
+ <AccountID>4d111d55-1c71-46b4-8cbc-d8b54d8d54c5</AccountID>
466
+ <Code>825</Code>
467
+ <Name>PAYG Withholdings Payable</Name>
468
+ <Status>ACTIVE</Status>
469
+ <Type>CURRLIAB</Type>
470
+ <TaxType>NONE</TaxType>
471
+ <Description>The amount of PAYE tax that is due to be paid</Description>
472
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
473
+ </Account>
474
+ <Account>
475
+ <AccountID>a47d1f5b-5297-484a-8a8a-64a75053e4f4</AccountID>
476
+ <Code>826</Code>
477
+ <Name>Superannuation Payable</Name>
478
+ <Status>ACTIVE</Status>
479
+ <Type>CURRLIAB</Type>
480
+ <TaxType>NONE</TaxType>
481
+ <Description>The amount of superannuation that is due to be paid</Description>
482
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
483
+ </Account>
484
+ <Account>
485
+ <AccountID>eba8b619-8e5d-43df-bd0a-08c328021003</AccountID>
486
+ <Code>830</Code>
487
+ <Name>Income Tax Payable</Name>
488
+ <Status>ACTIVE</Status>
489
+ <Type>CURRLIAB</Type>
490
+ <TaxType>NONE</TaxType>
491
+ <Description>The amount of income tax that is due to be paid, also resident withholding tax paid on interest received.</Description>
492
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
493
+ </Account>
494
+ <Account>
495
+ <AccountID>305b05b3-01f3-4f47-a45d-edfa66ea03e7</AccountID>
496
+ <Code>840</Code>
497
+ <Name>Historical Adjustment</Name>
498
+ <Status>ACTIVE</Status>
499
+ <Type>CURRLIAB</Type>
500
+ <TaxType>NONE</TaxType>
501
+ <Description>For accountant adjustments</Description>
502
+ <SystemAccount>HISTORICAL</SystemAccount>
503
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
504
+ </Account>
505
+ <Account>
506
+ <AccountID>50031b5d-828f-4090-b1f1-d5eb591d8b18</AccountID>
507
+ <Code>850</Code>
508
+ <Name>Suspense</Name>
509
+ <Status>ACTIVE</Status>
510
+ <Type>CURRLIAB</Type>
511
+ <TaxType>NONE</TaxType>
512
+ <Description>An entry that allows an unknown transaction to be entered, so the accounts can still be worked on in balance and the entry can be dealt with later.</Description>
513
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
514
+ </Account>
515
+ <Account>
516
+ <AccountID>37441137-cfe3-4c2b-a569-ef75e6b66ae4</AccountID>
517
+ <Code>860</Code>
518
+ <Name>Rounding</Name>
519
+ <Status>ACTIVE</Status>
520
+ <Type>CURRLIAB</Type>
521
+ <TaxType>NONE</TaxType>
522
+ <Description>An adjustment entry to allow for rounding</Description>
523
+ <SystemAccount>ROUNDING</SystemAccount>
524
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
525
+ </Account>
526
+ <Account>
527
+ <AccountID>a94c9633-aeb1-4b13-a96b-7998d887b770</AccountID>
528
+ <Code>877</Code>
529
+ <Name>Tracking Transfers</Name>
530
+ <Status>ACTIVE</Status>
531
+ <Type>CURRLIAB</Type>
532
+ <TaxType>NONE</TaxType>
533
+ <Description>Transfers between tracking categories</Description>
534
+ <SystemAccount>TRACKINGTRANSFERS</SystemAccount>
535
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
536
+ </Account>
537
+ <Account>
538
+ <AccountID>64ddb541-7e5f-4ded-a072-2f59d8898a8c</AccountID>
539
+ <Code>880</Code>
540
+ <Name>Owner A Drawings</Name>
541
+ <Status>ACTIVE</Status>
542
+ <Type>CURRLIAB</Type>
543
+ <TaxType>NONE</TaxType>
544
+ <Description>Withdrawals by the owners</Description>
545
+ <EnablePaymentsToAccount>true</EnablePaymentsToAccount>
546
+ </Account>
547
+ <Account>
548
+ <AccountID>16e01c0e-4fbd-4488-b4c3-e399903306aa</AccountID>
549
+ <Code>881</Code>
550
+ <Name>Owner A Funds Introduced</Name>
551
+ <Status>ACTIVE</Status>
552
+ <Type>CURRLIAB</Type>
553
+ <TaxType>NONE</TaxType>
554
+ <Description>Funds contributed by the owner</Description>
555
+ <EnablePaymentsToAccount>true</EnablePaymentsToAccount>
556
+ </Account>
557
+ <Account>
558
+ <AccountID>c1de1295-c39c-444c-abfa-447b2263563f</AccountID>
559
+ <Code>900</Code>
560
+ <Name>Loan</Name>
561
+ <Status>ARCHIVED</Status>
562
+ <Type>TERMLIAB</Type>
563
+ <TaxType>NONE</TaxType>
564
+ <Description>Money that has been borrowed from a creditor</Description>
565
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
566
+ </Account>
567
+ <Account>
568
+ <AccountID>e2eda5d3-a80f-45ff-af4c-74472fd904d4</AccountID>
569
+ <Code>960</Code>
570
+ <Name>Retained Earnings</Name>
571
+ <Status>ACTIVE</Status>
572
+ <Type>EQUITY</Type>
573
+ <TaxType>NONE</TaxType>
574
+ <Description>Do not Use</Description>
575
+ <SystemAccount>RETAINEDEARNINGS</SystemAccount>
576
+ <EnablePaymentsToAccount>false</EnablePaymentsToAccount>
577
+ </Account>
578
+ <Account>
579
+ <AccountID>dfe8ba15-3324-4d29-b4e2-2f23c05e8532</AccountID>
580
+ <Code>970</Code>
581
+ <Name>Owner A Share Capital</Name>
582
+ <Status>ACTIVE</Status>
583
+ <Type>EQUITY</Type>
584
+ <TaxType>NONE</TaxType>
585
+ <Description>The value of shares purchased by the shareholders</Description>
586
+ <EnablePaymentsToAccount>true</EnablePaymentsToAccount>
587
+ </Account>
588
+ </Accounts>
589
+ </Response>