xeroizer 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.bundle/config +2 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +22 -0
- data/LICENSE.txt +20 -0
- data/README.md +416 -0
- data/Rakefile +39 -0
- data/VERSION +1 -0
- data/lib/.DS_Store +0 -0
- data/lib/big_decimal_to_s.rb +9 -0
- data/lib/class_level_inheritable_attributes.rb +25 -0
- data/lib/nokogiri_utils.rb +58 -0
- data/lib/xeroizer.rb +55 -0
- data/lib/xeroizer/ca-certificates.crt +2642 -0
- data/lib/xeroizer/exceptions.rb +94 -0
- data/lib/xeroizer/generic_application.rb +40 -0
- data/lib/xeroizer/http.rb +148 -0
- data/lib/xeroizer/http_encoding_helper.rb +49 -0
- data/lib/xeroizer/models/account.rb +60 -0
- data/lib/xeroizer/models/address.rb +31 -0
- data/lib/xeroizer/models/branding_theme.rb +22 -0
- data/lib/xeroizer/models/contact.rb +46 -0
- data/lib/xeroizer/models/credit_note.rb +113 -0
- data/lib/xeroizer/models/currency.rb +18 -0
- data/lib/xeroizer/models/invoice.rb +138 -0
- data/lib/xeroizer/models/item.rb +27 -0
- data/lib/xeroizer/models/item_purchase_sale_details.rb +17 -0
- data/lib/xeroizer/models/journal.rb +25 -0
- data/lib/xeroizer/models/journal_line.rb +28 -0
- data/lib/xeroizer/models/line_item.rb +43 -0
- data/lib/xeroizer/models/manual_journal.rb +42 -0
- data/lib/xeroizer/models/manual_journal_line.rb +24 -0
- data/lib/xeroizer/models/option.rb +15 -0
- data/lib/xeroizer/models/organisation.rb +23 -0
- data/lib/xeroizer/models/payment.rb +30 -0
- data/lib/xeroizer/models/phone.rb +25 -0
- data/lib/xeroizer/models/tax_rate.rb +25 -0
- data/lib/xeroizer/models/tracking_category.rb +23 -0
- data/lib/xeroizer/models/tracking_category_child.rb +17 -0
- data/lib/xeroizer/oauth.rb +130 -0
- data/lib/xeroizer/partner_application.rb +44 -0
- data/lib/xeroizer/private_application.rb +27 -0
- data/lib/xeroizer/public_application.rb +21 -0
- data/lib/xeroizer/record/application_helper.rb +22 -0
- data/lib/xeroizer/record/base.rb +116 -0
- data/lib/xeroizer/record/base_model.rb +138 -0
- data/lib/xeroizer/record/base_model_http_proxy.rb +134 -0
- data/lib/xeroizer/record/model_definition_helper.rb +94 -0
- data/lib/xeroizer/record/record_association_helper.rb +94 -0
- data/lib/xeroizer/record/validation_helper.rb +59 -0
- data/lib/xeroizer/record/validators/associated_validator.rb +33 -0
- data/lib/xeroizer/record/validators/inclusion_of_validator.rb +22 -0
- data/lib/xeroizer/record/validators/presence_of_validator.rb +19 -0
- data/lib/xeroizer/record/validators/validator.rb +24 -0
- data/lib/xeroizer/record/xml_helper.rb +113 -0
- data/lib/xeroizer/response.rb +17 -0
- data/test/stub_responses/accounts.xml +589 -0
- data/test/stub_responses/api_exception.xml +153 -0
- data/test/stub_responses/bogus_oauth_error +1 -0
- data/test/stub_responses/branding_themes.xml +20 -0
- data/test/stub_responses/contact.xml +40 -0
- data/test/stub_responses/contacts.xml +3349 -0
- data/test/stub_responses/create_credit_note.xml +104 -0
- data/test/stub_responses/create_invoice.xml +64 -0
- data/test/stub_responses/credit_note.xml +69 -0
- data/test/stub_responses/credit_note_not_found_error.xml +1 -0
- data/test/stub_responses/credit_notes.xml +149 -0
- data/test/stub_responses/currencies.xml +12 -0
- data/test/stub_responses/invalid_api_key_error.xml +1 -0
- data/test/stub_responses/invalid_consumer_key +1 -0
- data/test/stub_responses/invalid_request_token +1 -0
- data/test/stub_responses/invoice.xml +91 -0
- data/test/stub_responses/invoice_not_found_error.xml +1 -0
- data/test/stub_responses/invoices.xml +1728 -0
- data/test/stub_responses/items.xml +112 -0
- data/test/stub_responses/manual_journal.xml +45 -0
- data/test/stub_responses/manual_journals.xml +40 -0
- data/test/stub_responses/organisation.xml +16 -0
- data/test/stub_responses/organisations.xml +16 -0
- data/test/stub_responses/rate_limit_exceeded +1 -0
- data/test/stub_responses/records/contact-043892a1-aef1-4c18-88d8-b8ccb6d31466.xml +38 -0
- data/test/stub_responses/records/contact-09664078-efe2-4a88-89a5-67eac9b0047b.xml +40 -0
- data/test/stub_responses/records/contact-0a4cf37b-a1a8-4753-9ee2-f9207f63a8ff.xml +48 -0
- data/test/stub_responses/records/contact-0e74f929-11b9-4255-a035-1fdfe573e676.xml +40 -0
- data/test/stub_responses/records/contact-0f471ca5-15c9-405e-a1b9-7cc35194b673.xml +38 -0
- data/test/stub_responses/records/contact-13cd4c47-baa6-4f07-93f6-6442310df4bf.xml +47 -0
- data/test/stub_responses/records/contact-158a2667-82ee-43bf-8f33-a6cc9524092d.xml +38 -0
- data/test/stub_responses/records/contact-17465072-6fa3-40bf-bc42-97765d9e1bea.xml +38 -0
- data/test/stub_responses/records/contact-1975b0ed-b7ba-4c61-bae8-2aa6d78b0dee.xml +39 -0
- data/test/stub_responses/records/contact-1b2be6e9-8d58-4da9-aaf8-4fe5471b653c.xml +53 -0
- data/test/stub_responses/records/contact-1c40da58-fe1d-4e97-b729-b2abdae94d9e.xml +38 -0
- data/test/stub_responses/records/contact-258176a5-c622-4394-9c94-6f88c3ea12e5.xml +40 -0
- data/test/stub_responses/records/contact-299dd3a0-a417-4a37-8a04-2f55e91963e5.xml +40 -0
- data/test/stub_responses/records/contact-2be39278-5154-4ed1-8eb0-676f25acfc66.xml +40 -0
- data/test/stub_responses/records/contact-2e58cff6-488c-4a32-884b-baf848010229.xml +40 -0
- data/test/stub_responses/records/contact-2faccd41-935e-40aa-b74e-e2fc28ac34c3.xml +38 -0
- data/test/stub_responses/records/contact-31af01e7-2ca7-45b9-a500-b02db996568e.xml +38 -0
- data/test/stub_responses/records/contact-344f1113-a25b-4344-b82e-bedeacc17c8e.xml +40 -0
- data/test/stub_responses/records/contact-3e776c4b-ea9e-4bb1-96be-6b0c7a71a37f.xml +39 -0
- data/test/stub_responses/records/contact-3fc1fc6c-e5ff-4e40-b6f3-7eb535637d87.xml +38 -0
- data/test/stub_responses/records/contact-416ab20c-5357-4beb-a740-e8d175d71efb.xml +38 -0
- data/test/stub_responses/records/contact-41a42865-f15a-4fa1-b643-47877608f557.xml +54 -0
- data/test/stub_responses/records/contact-42771b60-19a7-4692-af81-dd9f9b9362d4.xml +43 -0
- data/test/stub_responses/records/contact-451ceb28-9610-44c9-8f35-3225482f2413.xml +40 -0
- data/test/stub_responses/records/contact-4ab343ad-1ebb-4afe-9d48-1814a93c2081.xml +38 -0
- data/test/stub_responses/records/contact-4bb77692-42d4-4565-85a0-8849eb85e039.xml +39 -0
- data/test/stub_responses/records/contact-4dec292f-3ab7-46a8-83e4-5fb5eac42c7f.xml +40 -0
- data/test/stub_responses/records/contact-4e2f192e-8397-4d4d-97ca-a4fc5ac531bf.xml +38 -0
- data/test/stub_responses/records/contact-5188c17c-7786-4436-ad6e-9da2997386d0.xml +40 -0
- data/test/stub_responses/records/contact-52442753-b1c4-40b7-9b79-c33997de5837.xml +40 -0
- data/test/stub_responses/records/contact-565acaa9-e7f3-4fbf-80c3-16b081ddae10.xml +38 -0
- data/test/stub_responses/records/contact-571a2414-81ff-4f8f-8498-d91d83793131.xml +44 -0
- data/test/stub_responses/records/contact-58697449-85ef-46ae-83fc-6a9446f037fb.xml +40 -0
- data/test/stub_responses/records/contact-58bf2ae3-5144-4628-8de2-e165ac2bcdc6.xml +40 -0
- data/test/stub_responses/records/contact-5d41dafd-eb7e-42c1-bd5a-ba3be1da0960.xml +38 -0
- data/test/stub_responses/records/contact-5f005a09-5ce4-4fb4-8096-e69c18be636e.xml +38 -0
- data/test/stub_responses/records/contact-60d578d9-3e10-4aef-b5dc-9d9fd60a3633.xml +47 -0
- data/test/stub_responses/records/contact-62392126-dba4-4a75-b907-5875ebf75259.xml +40 -0
- data/test/stub_responses/records/contact-642c7fb5-e8e5-48e1-a710-39a18c6c3217.xml +40 -0
- data/test/stub_responses/records/contact-64aebf9c-bb89-4b38-b99b-405bd1ece6fd.xml +40 -0
- data/test/stub_responses/records/contact-64eedbc9-1fa0-485a-837f-705f23188161.xml +38 -0
- data/test/stub_responses/records/contact-65e96c9f-1595-4653-9a8a-2a36d49223c2.xml +40 -0
- data/test/stub_responses/records/contact-67d26b93-ccb4-4890-9bf1-284b70ea755d.xml +38 -0
- data/test/stub_responses/records/contact-69d3e538-44b3-4e00-a5f6-7dddcb6e0656.xml +40 -0
- data/test/stub_responses/records/contact-6a8450bc-f81a-4bb0-a8f6-aa4afe9497c7.xml +40 -0
- data/test/stub_responses/records/contact-6c70e424-41d6-4b9b-af3e-b3a9f3589106.xml +40 -0
- data/test/stub_responses/records/contact-6de0b0cf-560c-4503-aab3-e1543c329deb.xml +54 -0
- data/test/stub_responses/records/contact-72dd6a02-396e-42a2-a4d6-cc3fa75dfece.xml +41 -0
- data/test/stub_responses/records/contact-755f1475-d255-43a8-bedc-5ea7fd26c71f.xml +51 -0
- data/test/stub_responses/records/contact-78a9d0a0-3d8c-4f84-af3e-f260bf4a9dc0.xml +38 -0
- data/test/stub_responses/records/contact-79aa39ca-22b0-42c2-9026-78757a29d665.xml +42 -0
- data/test/stub_responses/records/contact-804f4140-5978-48fe-ba20-b56e5b834b18.xml +40 -0
- data/test/stub_responses/records/contact-812d4f28-1681-4241-8e34-d15c5520ba35.xml +38 -0
- data/test/stub_responses/records/contact-860b99a9-0958-4c8d-a98f-bb1f092b16bb.xml +60 -0
- data/test/stub_responses/records/contact-87c8da45-97cc-46be-b170-398da0eacfb8.xml +40 -0
- data/test/stub_responses/records/contact-8a154a19-6c6c-404b-bbc9-6deae2d18251.xml +38 -0
- data/test/stub_responses/records/contact-8bb6931d-2865-44e9-9a23-ed1fb9c7a46c.xml +40 -0
- data/test/stub_responses/records/contact-936c9759-01da-4063-b472-424ab9f48212.xml +38 -0
- data/test/stub_responses/records/contact-9d12a994-9640-4b75-95cc-3de1e9d0ef09.xml +38 -0
- data/test/stub_responses/records/contact-9fe59245-1fbb-4157-93c3-dc97388f3746.xml +40 -0
- data/test/stub_responses/records/contact-a06a7225-6f8a-4522-8400-c534dd43a16e.xml +40 -0
- data/test/stub_responses/records/contact-a76a85fe-73a2-46fa-aba7-791f36103cdb.xml +40 -0
- data/test/stub_responses/records/contact-a93b5f40-0346-4d21-9181-431e129911c0.xml +40 -0
- data/test/stub_responses/records/contact-abf272dd-6b1d-4829-af88-c57bf55855e3.xml +38 -0
- data/test/stub_responses/records/contact-ad24c33b-256b-4157-ad56-cbcf0e8db7b1.xml +47 -0
- data/test/stub_responses/records/contact-b107129d-f4c9-438e-9573-64b778527f4a.xml +40 -0
- data/test/stub_responses/records/contact-b233288a-aa26-4b26-9fc7-779d797dd56f.xml +40 -0
- data/test/stub_responses/records/contact-b2b5333a-2546-4975-891f-d71a8a640d23.xml +38 -0
- data/test/stub_responses/records/contact-b4d149bf-1823-4bd2-96da-9032388c9686.xml +40 -0
- data/test/stub_responses/records/contact-b78d4fd1-4306-4d83-a0b9-61458d1c53a2.xml +40 -0
- data/test/stub_responses/records/contact-b7d108a8-d5f7-4f16-a7c9-26eaed98e8de.xml +40 -0
- data/test/stub_responses/records/contact-baeed0f3-7989-4874-99b3-59f23032cb73.xml +38 -0
- data/test/stub_responses/records/contact-bc51a3a1-b7f6-46ca-ac9e-19b87e6ca100.xml +40 -0
- data/test/stub_responses/records/contact-be9f3aab-52f5-4d9c-94b4-87f7d9e5ee8b.xml +38 -0
- data/test/stub_responses/records/contact-c135f994-01e4-427b-9e15-acfe8a477c16.xml +49 -0
- data/test/stub_responses/records/contact-c14edf75-15e4-4a9c-86e4-f52e2fe7cfa4.xml +40 -0
- data/test/stub_responses/records/contact-ca9b9abc-c2dc-4221-8101-31f464d314cc.xml +44 -0
- data/test/stub_responses/records/contact-cc4db604-9ed8-4eef-8a29-51b5b70496a0.xml +38 -0
- data/test/stub_responses/records/contact-cce9b044-be4a-43b3-9dc7-c027d8dd35b2.xml +38 -0
- data/test/stub_responses/records/contact-d0cd2c4f-18a0-4f7c-a32a-2db00f29d298.xml +43 -0
- data/test/stub_responses/records/contact-d6851dc2-9ed9-4515-bc0b-810b09c06a6a.xml +38 -0
- data/test/stub_responses/records/contact-d6a384fb-f46f-41a3-8ac7-b7bc9e0b5efa.xml +46 -0
- data/test/stub_responses/records/contact-d74e61cf-2ad0-4f0d-b9d1-6a808e3f70cf.xml +40 -0
- data/test/stub_responses/records/contact-d9ab0f61-3b56-4e2b-be39-f33c11bd99e3.xml +40 -0
- data/test/stub_responses/records/contact-dbb1f0b5-a71b-4458-8462-104acd0fec6b.xml +38 -0
- data/test/stub_responses/records/contact-dd981bd6-40dd-496d-a282-bf7d3391b8b9.xml +40 -0
- data/test/stub_responses/records/contact-e1826204-cc0a-42a5-a6d0-4b352d9d5953.xml +40 -0
- data/test/stub_responses/records/contact-e2d955db-f366-42dd-87f7-fbdb4da2306f.xml +40 -0
- data/test/stub_responses/records/contact-e32e2130-3d27-443a-8313-48fffa03cf53.xml +40 -0
- data/test/stub_responses/records/contact-e3a68332-d322-4816-8678-73a537c8cd33.xml +38 -0
- data/test/stub_responses/records/contact-e6ac76a3-ca32-4fa1-8ef9-6a4bf8b0ec2a.xml +40 -0
- data/test/stub_responses/records/contact-e6ca965d-7c48-480e-be39-e847307f474a.xml +38 -0
- data/test/stub_responses/records/contact-e77d1f20-2e8e-46ec-9a10-50335a216724.xml +40 -0
- data/test/stub_responses/records/contact-e8b98c13-a424-41d2-ba0e-7b7621411e7a.xml +38 -0
- data/test/stub_responses/records/contact-e8e9a2c2-3e7e-48ed-8528-c3d61b28f276.xml +39 -0
- data/test/stub_responses/records/contact-eb43fcc6-87ec-4a0a-b243-d718bee4e2cb.xml +38 -0
- data/test/stub_responses/records/contact-ef6f54c1-eb45-4956-b8cd-1be82ad665f2.xml +43 -0
- data/test/stub_responses/records/contact-efdb3600-f233-42e2-8f18-ce7e2a95e4b1.xml +38 -0
- data/test/stub_responses/records/contact-f7eca431-5c97-4d24-93fd-004bb8a6c644.xml +40 -0
- data/test/stub_responses/records/contact-fb078879-5d6d-474f-825f-61dc90689349.xml +38 -0
- data/test/stub_responses/records/contact-fc39b273-4aa2-4785-99ca-24672f6c0000.xml +38 -0
- data/test/stub_responses/records/contact-fc9ec3a6-a2fe-4300-a8cb-ca8a0b3662e0.xml +40 -0
- data/test/stub_responses/records/contact-fdf96102-7491-44b6-bf4d-7a77ff25f890.xml +40 -0
- data/test/stub_responses/records/contact-fe61ead1-8afc-4f0b-beda-066620227aad.xml +38 -0
- data/test/stub_responses/records/credit_note-371cd138-1e5c-4ec1-a8c6-a1c10e8bdab1.xml +69 -0
- data/test/stub_responses/records/credit_note-3bffc09b-79f2-490d-b91b-c59b700b43a4.xml +91 -0
- data/test/stub_responses/records/credit_note-43c678ee-f357-48e2-b192-b6e3634762f9.xml +90 -0
- data/test/stub_responses/records/credit_note-482c018b-d329-4e05-9b4f-7a4cfc695aa0.xml +73 -0
- data/test/stub_responses/records/credit_note-4f67130a-749a-4ee6-98b2-743adbc11245.xml +60 -0
- data/test/stub_responses/records/credit_note-50e98404-2fba-4031-af67-8ba4bb227c44.xml +74 -0
- data/test/stub_responses/records/credit_note-7df8949c-b71f-40c0-bbcf-39f2f450f286.xml +73 -0
- data/test/stub_responses/records/credit_note-b356e488-2678-4be4-ad4b-d294df2d48d6.xml +76 -0
- data/test/stub_responses/records/invoice-0032f627-3156-4d30-9b1c-4d3b994dc921.xml +82 -0
- data/test/stub_responses/records/invoice-00c9511b-24b9-4190-a90a-8abf2fe9f4a0.xml +74 -0
- data/test/stub_responses/records/invoice-024d7994-a26c-4c20-9894-13934840fc31.xml +73 -0
- data/test/stub_responses/records/invoice-0e64a623-c2a1-446a-93ed-eb897f118cbc.xml +96 -0
- data/test/stub_responses/records/invoice-15e88e57-2554-4496-a18e-eb3f5c622345.xml +73 -0
- data/test/stub_responses/records/invoice-166f0588-d0ba-458c-b28a-8edd4c8fc463.xml +73 -0
- data/test/stub_responses/records/invoice-1d1ba340-afa2-4f4c-8ff7-a147bda9a47b.xml +91 -0
- data/test/stub_responses/records/invoice-290ef4c4-baec-492b-b4dd-c102826470ae.xml +85 -0
- data/test/stub_responses/records/invoice-30a87092-31b5-4a2c-831e-327486533dd2.xml +77 -0
- data/test/stub_responses/records/invoice-30dbd181-72a8-43df-b392-4241bf43d5fc.xml +68 -0
- data/test/stub_responses/records/invoice-33e4123e-7cdd-4f05-9a0a-eb8adeb2b868.xml +92 -0
- data/test/stub_responses/records/invoice-387db692-26ac-47e6-b6cc-015343809bda.xml +73 -0
- data/test/stub_responses/records/invoice-3b28bf11-ed2f-4cf4-8e9e-fcae730cc292.xml +89 -0
- data/test/stub_responses/records/invoice-3fcb9847-b350-412e-ab90-7d9d774ad881.xml +89 -0
- data/test/stub_responses/records/invoice-4602eda6-abe9-448e-b65f-ae6bea21f0eb.xml +96 -0
- data/test/stub_responses/records/invoice-46441f63-873f-4cdc-a278-b8fe516f3abb.xml +91 -0
- data/test/stub_responses/records/invoice-4ad1ec01-f4a3-41d7-bbb4-d2ab2fec8e65.xml +73 -0
- data/test/stub_responses/records/invoice-4b9afceb-f7c7-4e64-8aac-7b009971fd52.xml +84 -0
- data/test/stub_responses/records/invoice-4edbf6d5-4e92-43af-bedd-7effc0b86833.xml +68 -0
- data/test/stub_responses/records/invoice-4fad1af2-b871-4ac5-a15a-3c5e32d2e2c4.xml +83 -0
- data/test/stub_responses/records/invoice-52ee4d67-cae4-462c-adb2-182c39017f3d.xml +81 -0
- data/test/stub_responses/records/invoice-54585f46-c1a0-4432-bd4f-c1fae2fba59b.xml +66 -0
- data/test/stub_responses/records/invoice-5613938b-9e27-472e-92ae-3b038b669d10.xml +85 -0
- data/test/stub_responses/records/invoice-5aa9451d-95d1-4f95-a966-bbab2573f71c.xml +73 -0
- data/test/stub_responses/records/invoice-5aadcd34-01a9-4b8d-a2bb-d7cc1de9fa45.xml +87 -0
- data/test/stub_responses/records/invoice-5f6deadf-36a2-495a-9980-ceb11e8af9a9.xml +83 -0
- data/test/stub_responses/records/invoice-625ffe1b-f5d8-438e-a376-981de5f5a733.xml +75 -0
- data/test/stub_responses/records/invoice-64cd559e-8e03-46af-b461-8555285cee71.xml +84 -0
- data/test/stub_responses/records/invoice-666f8dbb-bc9a-476c-8ec4-4665d7f83190.xml +63 -0
- data/test/stub_responses/records/invoice-66fbe37f-49b1-43fd-97ed-85114022cd2f.xml +77 -0
- data/test/stub_responses/records/invoice-673dd7cc-beb7-4697-83d4-0c47cb400cc2.xml +85 -0
- data/test/stub_responses/records/invoice-69fc971e-9b37-41c5-9c87-174330f22343.xml +65 -0
- data/test/stub_responses/records/invoice-70e6db69-e5a4-42c7-a397-aa3212c2945f.xml +73 -0
- data/test/stub_responses/records/invoice-766d1289-b440-4675-a656-1a0612ecac77.xml +74 -0
- data/test/stub_responses/records/invoice-76bcb361-f93b-4513-b312-5a4af306d276.xml +66 -0
- data/test/stub_responses/records/invoice-76e3f056-479f-417c-a72b-f3d767899b87.xml +89 -0
- data/test/stub_responses/records/invoice-77b338ef-ecc0-4b95-a0d7-2617b0054611.xml +103 -0
- data/test/stub_responses/records/invoice-7be9956d-5316-4f6b-a66a-d355b3f159b2.xml +82 -0
- data/test/stub_responses/records/invoice-7dae876a-b424-436b-a4e6-17b3fdeec80c.xml +82 -0
- data/test/stub_responses/records/invoice-7e862d93-8dab-4856-8b0c-d844e09d750f.xml +66 -0
- data/test/stub_responses/records/invoice-803f70b0-56d9-4157-9787-41df271777a0.xml +82 -0
- data/test/stub_responses/records/invoice-86102312-aa3f-438c-9938-6840f4d8dda6.xml +74 -0
- data/test/stub_responses/records/invoice-8694c9c5-7097-4449-a708-b8c1982921a4.xml +68 -0
- data/test/stub_responses/records/invoice-86d6e00f-ef56-49f7-9a54-796ccd5ca057.xml +83 -0
- data/test/stub_responses/records/invoice-88e77f0f-54a5-4efc-a979-7e22223cc4d7.xml +65 -0
- data/test/stub_responses/records/invoice-8b0ccb6a-d9b7-4da5-8360-ef7fb157b5aa.xml +65 -0
- data/test/stub_responses/records/invoice-935fc854-8037-4111-8d91-993010c331cc.xml +73 -0
- data/test/stub_responses/records/invoice-95ef3000-c764-4ba9-a66a-b6e2d161f839.xml +62 -0
- data/test/stub_responses/records/invoice-962ef33f-c9d2-4602-9b9f-93a02bea23b3.xml +90 -0
- data/test/stub_responses/records/invoice-9868b472-1983-48e9-8edf-7e81ddf2c03a.xml +83 -0
- data/test/stub_responses/records/invoice-9a448e9b-a9fa-4a8b-98f5-6dc892a37374.xml +62 -0
- data/test/stub_responses/records/invoice-a1d04a14-96a8-4067-a0ff-8136990a354f.xml +91 -0
- data/test/stub_responses/records/invoice-a3bc62ef-f11b-4a9c-a4f9-a342bda371b5.xml +65 -0
- data/test/stub_responses/records/invoice-a6894ca0-60ee-4d45-9dd4-b44fcba46ec5.xml +88 -0
- data/test/stub_responses/records/invoice-a9f765e6-b9bc-4505-a47b-fb3ecb327e7b.xml +85 -0
- data/test/stub_responses/records/invoice-aa0173af-8707-4e7f-8dde-4c7a357bd312.xml +92 -0
- data/test/stub_responses/records/invoice-ab63738a-370a-43a5-bfa3-620d684e66d0.xml +81 -0
- data/test/stub_responses/records/invoice-b0344791-5a8a-40dd-a208-d99a461a6c10.xml +82 -0
- data/test/stub_responses/records/invoice-b1e53910-473c-46a3-b3cb-38ece571220e.xml +66 -0
- data/test/stub_responses/records/invoice-b2c02d0b-41a8-4d4d-97d7-014c78b3547d.xml +91 -0
- data/test/stub_responses/records/invoice-b75b3928-ab72-4424-8b93-9cdbbde4cd72.xml +80 -0
- data/test/stub_responses/records/invoice-bcd8a71f-aa31-4d0f-8a01-13ea26363ddf.xml +92 -0
- data/test/stub_responses/records/invoice-bfbb7c45-de02-45e7-b065-d9863ecfb0d8.xml +65 -0
- data/test/stub_responses/records/invoice-c12aff7e-12bf-4185-8702-460929f19674.xml +76 -0
- data/test/stub_responses/records/invoice-c3380b96-976d-4b3e-8b26-8d01eb6a3742.xml +85 -0
- data/test/stub_responses/records/invoice-c963f2b0-cbe1-4abd-9ccc-7e512c942068.xml +66 -0
- data/test/stub_responses/records/invoice-d62646b9-d0a9-4fdb-9561-756a8b7eba45.xml +63 -0
- data/test/stub_responses/records/invoice-dba2f021-f149-4191-a126-5351d587ab0e.xml +74 -0
- data/test/stub_responses/records/invoice-de5d9c29-21b3-4342-958b-ed72c4bd7ab0.xml +106 -0
- data/test/stub_responses/records/invoice-e3d96555-2876-4364-a46a-7551a4f52611.xml +119 -0
- data/test/stub_responses/records/invoice-e4a0afbd-aea0-450b-ae23-0ce921e84a77.xml +99 -0
- data/test/stub_responses/records/invoice-e9cb9ecb-58ef-43a8-bd20-69a85338142d.xml +74 -0
- data/test/stub_responses/records/invoice-ec9a6f67-7128-4a63-8ba3-5e516f455f9b.xml +92 -0
- data/test/stub_responses/records/invoice-ed0f2587-84fc-4aef-bc4b-b1a262e24484.xml +78 -0
- data/test/stub_responses/records/invoice-f362ca53-8ade-4047-865a-bb64bee5863d.xml +73 -0
- data/test/stub_responses/records/invoice-f571c38b-5be1-41e1-ad5a-ff6184284beb.xml +104 -0
- data/test/stub_responses/records/invoice-f5832195-5cd3-4660-ad3f-b73d9c64f263.xml +83 -0
- data/test/stub_responses/records/invoice-f9c857eb-64cd-4235-a078-d04b52c77ea7.xml +74 -0
- data/test/stub_responses/records/manual_journal-4765d07b-aa03-4e56-9166-50661958c864.xml +38 -0
- data/test/stub_responses/records/manual_journal-53fc5558-5b76-4ecd-ae5c-c4af3ccde87c.xml +31 -0
- data/test/stub_responses/records/manual_journal-bb6cfcfc-4500-4475-bd3a-93ee512428e0.xml +31 -0
- data/test/stub_responses/records/manual_journal-f00a355b-7374-445c-886b-0437bea4095c.xml +45 -0
- data/test/stub_responses/refresh_responses.rb +29 -0
- data/test/stub_responses/tax_rates.xml +118 -0
- data/test/stub_responses/token_expired +1 -0
- data/test/stub_responses/tracking_categories.xml +27 -0
- data/test/stub_responses/unknown_error.xml +1 -0
- data/test/test_helper.rb +49 -0
- data/test/unit/models/contact_test.rb +26 -0
- data/test/unit/models/credit_note_test.rb +37 -0
- data/test/unit/models/invoice_test.rb +51 -0
- data/test/unit/oauth_test.rb +72 -0
- data/test/unit/private_application_test.rb +20 -0
- data/test/unit/record/base_model_test.rb +50 -0
- data/test/unit/record/base_test.rb +57 -0
- data/test/unit/record/model_definition_test.rb +159 -0
- data/test/unit/record/parse_where_hash_test.rb +63 -0
- data/test/unit/record/record_association_test.rb +36 -0
- data/test/unit/record/validators_test.rb +180 -0
- data/xeroizer.gemspec +375 -0
- metadata +533 -0
@@ -0,0 +1,94 @@
|
|
1
|
+
module Xeroizer
|
2
|
+
module Record
|
3
|
+
module RecordAssociationHelper
|
4
|
+
|
5
|
+
def self.included(base)
|
6
|
+
base.extend(ClassMethods)
|
7
|
+
end
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
|
11
|
+
def belongs_to(field_name, options = {})
|
12
|
+
internal_field_name = options[:internal_name] || field_name
|
13
|
+
internal_singular_field_name = internal_field_name.to_s.singularize
|
14
|
+
|
15
|
+
define_association_attribute(field_name, internal_singular_field_name, :belongs_to, options)
|
16
|
+
|
17
|
+
# Create a #build_record_name method to build the record.
|
18
|
+
define_method "build_#{internal_singular_field_name}" do | *args |
|
19
|
+
attributes = args.size == 1 ? args.first : {}
|
20
|
+
|
21
|
+
# The name of the record model.
|
22
|
+
model_name = options[:model_name] ? options[:model_name].to_sym : field_name.to_s.singularize.camelize.to_sym
|
23
|
+
|
24
|
+
# The record's parent instance for this current application.
|
25
|
+
model_parent = new_model_class(model_name)
|
26
|
+
|
27
|
+
# Create a new record, binding it to it's parent instance.
|
28
|
+
record = Xeroizer::Record.const_get(model_name).build(attributes, model_parent)
|
29
|
+
self.attributes[field_name] = record
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def has_many(field_name, options = {})
|
34
|
+
internal_field_name = options[:internal_name] || field_name
|
35
|
+
internal_singular_field_name = internal_field_name.to_s.singularize
|
36
|
+
|
37
|
+
define_association_attribute(field_name, internal_field_name, :has_many, options)
|
38
|
+
|
39
|
+
# Create an #add_record_name method to build the record and add to the attributes.
|
40
|
+
define_method "add_#{internal_singular_field_name}" do | *args |
|
41
|
+
# The name of the record model.
|
42
|
+
model_name = options[:model_name] ? options[:model_name].to_sym : field_name.to_s.singularize.camelize.to_sym
|
43
|
+
|
44
|
+
# The record's parent instance for this current application.
|
45
|
+
model_parent = new_model_class(model_name)
|
46
|
+
|
47
|
+
# The class of this record.
|
48
|
+
record_class = Xeroizer::Record.const_get(model_name)
|
49
|
+
|
50
|
+
# Parse the *args variable so that we can use this method like:
|
51
|
+
# add_record({fields}, {fields}, ...)
|
52
|
+
# add_record(record_one, record_two, ...)
|
53
|
+
# add_record([{fields}, {fields}], ...)
|
54
|
+
# add_record(key => val, key2 => val)
|
55
|
+
records = []
|
56
|
+
if args.size == 1 && args.first.is_a?(Array)
|
57
|
+
records = args.first
|
58
|
+
elsif args.size > 0
|
59
|
+
records = args
|
60
|
+
else
|
61
|
+
raise StandardError.new("Invalid arguments for #{self.class.name}#add_#{internal_singular_field_name}(#{args.inspect}).")
|
62
|
+
end
|
63
|
+
|
64
|
+
# Add each record.
|
65
|
+
records.each do | record |
|
66
|
+
record = record_class.build(record, model_parent) if record.is_a?(Hash)
|
67
|
+
raise StandardError.new("Record #{record.class.name} is not a #{record_class.name}.") unless record.is_a?(record_class)
|
68
|
+
self.attributes[field_name] ||= []
|
69
|
+
self.attributes[field_name] << record
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
def define_association_attribute(field_name, internal_field_name, association_type, options)
|
76
|
+
value_if_nil = (association_type == :has_many) ? [] : nil
|
77
|
+
define_simple_attribute(field_name, association_type, options, value_if_nil)
|
78
|
+
|
79
|
+
# Override reader for this association if this association belongs
|
80
|
+
# to a summary-typed record. This will automatically attempt to download
|
81
|
+
# the complete version of the record before accessing the association.
|
82
|
+
if list_contains_summary_only?
|
83
|
+
define_method internal_field_name do
|
84
|
+
download_complete_record! unless new_record? || complete_record_downloaded?
|
85
|
+
@attributes[field_name] || value_if_nil
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
Dir.foreach(File.join(File.dirname(__FILE__), 'validators/')) { | file | require File.join(File.dirname(__FILE__), "validators/#{file}") if file =~ /\.rb$/ }
|
2
|
+
|
3
|
+
module Xeroizer
|
4
|
+
module Record
|
5
|
+
module ValidationHelper
|
6
|
+
|
7
|
+
def self.included(base)
|
8
|
+
base.extend(ClassMethods)
|
9
|
+
base.send :include, InstanceMethods
|
10
|
+
end
|
11
|
+
|
12
|
+
module ClassMethods
|
13
|
+
|
14
|
+
# Adds a validator config for each attribute specified in args.
|
15
|
+
def validates_with_validator(validator, args)
|
16
|
+
options = args.extract_options!
|
17
|
+
self.validators ||= []
|
18
|
+
args.flatten.each do | attribute |
|
19
|
+
self.validators << validator.new(attribute, options)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def validates_associated(*args)
|
24
|
+
validates_with_validator(Validator::AssociatedValidator, args)
|
25
|
+
end
|
26
|
+
|
27
|
+
def validates_inclusion_of(*args)
|
28
|
+
validates_with_validator(Validator::InclusionOfValidator, args)
|
29
|
+
end
|
30
|
+
|
31
|
+
def validates_presence_of(*args)
|
32
|
+
validates_with_validator(Validator::PresenceOfValidator, args)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
module InstanceMethods
|
38
|
+
|
39
|
+
def valid?
|
40
|
+
@errors = []
|
41
|
+
if self.class.validators
|
42
|
+
self.class.validators.each do | validator |
|
43
|
+
validator.validate(self)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
@errors.size == 0
|
47
|
+
end
|
48
|
+
|
49
|
+
def errors_for(attribute)
|
50
|
+
if errors.is_a?(Array)
|
51
|
+
errors.find_all { | (attr, msg) | attr == attribute }.map { | (attr, msg) | msg }
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Xeroizer
|
2
|
+
module Record
|
3
|
+
|
4
|
+
class Validator
|
5
|
+
|
6
|
+
class AssociatedValidator < Validator
|
7
|
+
|
8
|
+
def valid?(record)
|
9
|
+
case record.class.fields[attribute][:type]
|
10
|
+
when :belongs_to
|
11
|
+
return true if options[:allow_blanks] && record[attribute].nil?
|
12
|
+
unless record[attribute].is_a?(Xeroizer::Record::Base) && record[attribute].valid?
|
13
|
+
record.errors << [attribute, options[:message] || "must be valid"]
|
14
|
+
end
|
15
|
+
|
16
|
+
when :has_many
|
17
|
+
return true if options[:allow_blanks] && (record[attribute].nil? || (record[attribute].is_a?(Array) && record[attribute].size == 0))
|
18
|
+
if record[attribute].is_a?(Array) && record[attribute].size > 0
|
19
|
+
unless record[attribute].all? { | r | r.is_a?(Xeroizer::Record::Base) && r.valid? }
|
20
|
+
record.errors << [attribute, options[:message] || "must all be valid"]
|
21
|
+
end
|
22
|
+
else
|
23
|
+
record.errors << [attribute, "must have one or more records"]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Xeroizer
|
2
|
+
module Record
|
3
|
+
|
4
|
+
class Validator
|
5
|
+
|
6
|
+
class InclusionOfValidator < Validator
|
7
|
+
|
8
|
+
def valid?(record)
|
9
|
+
if options[:in] && options[:in].is_a?(Array)
|
10
|
+
return true if options[:allow_blanks] && (record[attribute].nil? || record[attribute].to_s == '')
|
11
|
+
unless options[:in].include?(record[attribute])
|
12
|
+
record.errors << [attribute, options[:message] || "not one of #{options[:in].join(', ')}"]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Xeroizer
|
2
|
+
module Record
|
3
|
+
|
4
|
+
class Validator
|
5
|
+
|
6
|
+
class PresenceOfValidator < Validator
|
7
|
+
|
8
|
+
def valid?(record)
|
9
|
+
if record[attribute].nil? || record[attribute].to_s == ''
|
10
|
+
record.errors << [attribute, options[:message] || "can't be blank"]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Xeroizer
|
2
|
+
module Record
|
3
|
+
|
4
|
+
class Validator
|
5
|
+
|
6
|
+
attr_reader :attribute
|
7
|
+
attr_reader :options
|
8
|
+
|
9
|
+
def initialize(attribute, options = {})
|
10
|
+
@attribute = attribute
|
11
|
+
@options = options
|
12
|
+
end
|
13
|
+
|
14
|
+
def validate(record)
|
15
|
+
run_validator = true
|
16
|
+
run_validator = false if options[:if] && !options[:if].call(record)
|
17
|
+
run_validator = false if options[:unless] && options[:unless].call(record)
|
18
|
+
valid?(record) if run_validator
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,113 @@
|
|
1
|
+
module Xeroizer
|
2
|
+
module Record
|
3
|
+
module XmlHelper
|
4
|
+
|
5
|
+
def self.included(base)
|
6
|
+
base.extend(ClassMethods)
|
7
|
+
base.send :include, InstanceMethods
|
8
|
+
end
|
9
|
+
|
10
|
+
module ClassMethods
|
11
|
+
|
12
|
+
# Build a record instance from the XML node.
|
13
|
+
def build_from_node(node, parent)
|
14
|
+
record = new(parent)
|
15
|
+
node.elements.each do | element |
|
16
|
+
field = self.fields[element.name.to_s.underscore.to_sym]
|
17
|
+
if field
|
18
|
+
value = case field[:type]
|
19
|
+
when :guid then element.text
|
20
|
+
when :string then element.text
|
21
|
+
when :boolean then (element.text == 'true')
|
22
|
+
when :integer then element.text.to_i
|
23
|
+
when :decimal then BigDecimal.new(element.text)
|
24
|
+
when :date then Date.parse(element.text)
|
25
|
+
when :datetime then Time.parse(element.text)
|
26
|
+
when :belongs_to
|
27
|
+
model_name = field[:model_name] ? field[:model_name].to_sym : element.name.to_sym
|
28
|
+
Xeroizer::Record.const_get(model_name).build_from_node(element, parent)
|
29
|
+
|
30
|
+
when :has_many
|
31
|
+
if element.element_children.size > 0
|
32
|
+
sub_field_name = field[:model_name] ? field[:model_name].to_sym : element.children.first.name.to_sym
|
33
|
+
sub_parent = record.new_model_class(sub_field_name)
|
34
|
+
element.children.inject([]) do | list, element |
|
35
|
+
list << Xeroizer::Record.const_get(sub_field_name).build_from_node(element, sub_parent)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
if field[:calculated]
|
41
|
+
record.attributes[field[:internal_name]] = value
|
42
|
+
else
|
43
|
+
record.send("#{field[:internal_name]}=", value)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
record
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
module InstanceMethods
|
54
|
+
|
55
|
+
public
|
56
|
+
|
57
|
+
# Turn a record into its XML representation.
|
58
|
+
def to_xml(b = Builder::XmlMarkup.new(:indent => 2))
|
59
|
+
b.tag!(parent.model_name) {
|
60
|
+
attributes.each do | key, value |
|
61
|
+
unless value.nil?
|
62
|
+
field = self.class.fields[key]
|
63
|
+
xml_value_from_field(b, field, value)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
}
|
67
|
+
end
|
68
|
+
|
69
|
+
protected
|
70
|
+
|
71
|
+
# Format a attribute for use in the XML passed to Xero.
|
72
|
+
def xml_value_from_field(b, field, value)
|
73
|
+
case field[:type]
|
74
|
+
when :guid then b.tag!(field[:api_name], value)
|
75
|
+
when :string then b.tag!(field[:api_name], value)
|
76
|
+
when :boolean then b.tag!(field[:api_name], value ? 'true' : 'false')
|
77
|
+
when :integer then b.tag!(field[:api_name], value.to_i)
|
78
|
+
when :decimal
|
79
|
+
real_value = case value
|
80
|
+
when BigDecimal then value.to_s
|
81
|
+
when String then BigDecimal.new(value).to_s
|
82
|
+
else value
|
83
|
+
end
|
84
|
+
b.tag!(field[:api_name], real_value)
|
85
|
+
|
86
|
+
when :date
|
87
|
+
real_value = case value
|
88
|
+
when Date then
|
89
|
+
when Time then value.utc.strftime("%Y-%m-%d")
|
90
|
+
end
|
91
|
+
b.tag!(field[:api_name], real_value)
|
92
|
+
|
93
|
+
when :datetime then b.tag!(field[:api_name], value.utc.strftime("%Y-%m-%dT%H:%M:%S"))
|
94
|
+
when :belongs_to
|
95
|
+
value.to_xml(b)
|
96
|
+
nil
|
97
|
+
|
98
|
+
when :has_many
|
99
|
+
if value.size > 0
|
100
|
+
b.tag!(value.first.parent.model_name.pluralize) {
|
101
|
+
value.each { | record | record.to_xml(b) }
|
102
|
+
}
|
103
|
+
nil
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Xeroizer
|
2
|
+
class Response
|
3
|
+
|
4
|
+
attr_accessor :id, :status, :errors, :provider, :date_time, :response_items, :request_params, :request_xml, :response_xml
|
5
|
+
|
6
|
+
public
|
7
|
+
|
8
|
+
def success?
|
9
|
+
status == 'OK'
|
10
|
+
end
|
11
|
+
|
12
|
+
def error
|
13
|
+
errors.blank? ? nil : errors[0]
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
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 & 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 & Courier</Name>
|
134
|
+
<Status>ACTIVE</Status>
|
135
|
+
<Type>EXPENSE</Type>
|
136
|
+
<TaxType>INPUT</TaxType>
|
137
|
+
<Description>Expenses incurred on courier & 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 & 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 & 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>
|