freeagent 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/CHANGELOG.rdoc +17 -0
  2. data/Gemfile.lock +12 -10
  3. data/README.rdoc +13 -1
  4. data/TODO +22 -0
  5. data/freeagent.gemspec +4 -3
  6. data/lib/free_agent.rb +1 -0
  7. data/lib/free_agent/base.rb +132 -0
  8. data/lib/free_agent/contact.rb +68 -0
  9. data/lib/free_agent/invoice.rb +58 -0
  10. data/lib/free_agent/project.rb +20 -0
  11. data/lib/free_agent/task.rb +10 -0
  12. data/lib/free_agent/version.rb +1 -1
  13. data/spec/fixtures/bank_accounts/all.xml +24 -19
  14. data/spec/fixtures/bank_accounts/single.xml +6 -6
  15. data/spec/fixtures/contacts/all.xml +13 -13
  16. data/spec/fixtures/contacts/all_filter_all.xml +69 -0
  17. data/spec/fixtures/contacts/invoices.xml +75 -0
  18. data/spec/fixtures/contacts/single.xml +6 -6
  19. data/spec/fixtures/estimates/all.xml +38 -0
  20. data/spec/fixtures/expenses/all.xml +93 -0
  21. data/spec/fixtures/expenses/single.xml +31 -0
  22. data/spec/fixtures/expenses/single_with_project_id.xml +31 -0
  23. data/spec/fixtures/invoices/all.xml +112 -75
  24. data/spec/fixtures/invoices/single.xml +38 -37
  25. data/spec/fixtures/projects/invoices.xml +39 -0
  26. data/spec/fixtures/projects/single.xml +2 -2
  27. data/spec/fixtures/projects/tasks.xml +30 -0
  28. data/spec/fixtures/projects/timeslips.xml +25 -0
  29. data/spec/fixtures/tasks/single.xml +10 -0
  30. data/spec/fixtures/timeslips/all.xml +25 -0
  31. data/spec/fixtures/timeslips/single.xml +12 -0
  32. data/spec/spec_helper.rb +1 -1
  33. data/spec/support/helper.rb +4 -4
  34. data/spec/support/mimic.rb +40 -25
  35. data/spec/unit/bank_account_spec.rb +1 -1
  36. data/spec/unit/base_spec.rb +113 -0
  37. data/spec/unit/contact_spec.rb +87 -1
  38. data/spec/unit/invoice_item_spec.rb +1 -1
  39. data/spec/unit/invoice_spec.rb +48 -2
  40. data/spec/unit/project_spec.rb +34 -0
  41. data/spec/unit/task_spec.rb +77 -0
  42. metadata +45 -7
@@ -0,0 +1,10 @@
1
+ module FreeAgent
2
+
3
+ # Represents a Task in FreeAgent.
4
+ class Task < Base
5
+
6
+ self.prefix = '/projects/:project_id/'
7
+
8
+ end
9
+
10
+ end
@@ -3,7 +3,7 @@ module FreeAgent
3
3
  # Holds information about library version.
4
4
  module Version
5
5
  MAJOR = 0
6
- MINOR = 1
6
+ MINOR = 2
7
7
  PATCH = 0
8
8
  BUILD = nil
9
9
 
@@ -1,35 +1,40 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <records type="array">
3
3
  <bank-account>
4
- <id type="integer">85327</id>
4
+ <id type="integer">86272</id>
5
5
  <type>StandardBankAccount</type>
6
6
  <name>Business Checking Account</name>
7
- <account-number>00000000</account-number>
8
- <sort-code>00000000</sort-code>
7
+ <account-number>0011223344</account-number>
8
+ <sort-code>112233</sort-code>
9
9
  <secondary-sort-code></secondary-sort-code>
10
10
  <iban></iban>
11
11
  <bic></bic>
12
- <current-balance type="decimal">5571.18</current-balance>
13
- <current-balance-date type="datetime">2011-04-04</current-balance-date>
14
- <opening-balance type="decimal">4733.42</opening-balance>
12
+ <current-balance type="decimal">1500.0</current-balance>
13
+ <current-balance-date type="datetime">2011-04-19</current-balance-date>
14
+ <opening-balance type="decimal">1500.0</opening-balance>
15
15
  <is-personal>false</is-personal>
16
16
  </bank-account>
17
17
  <bank-account>
18
- <id type="integer">85563</id>
19
- <type>CreditCardAccount</type>
20
- <name>Credit</name>
21
- <account-number>XXXX-XXXX-0000-0000</account-number>
22
- <current-balance type="decimal">1000.0</current-balance>
23
- <current-balance-date type="datetime">2011-04-12</current-balance-date>
24
- <opening-balance type="decimal">1000.0</opening-balance>
18
+ <id type="integer">86273</id>
19
+ <type>StandardBankAccount</type>
20
+ <name>Personal Checking Account</name>
21
+ <account-number>11220044</account-number>
22
+ <sort-code>112233</sort-code>
23
+ <secondary-sort-code></secondary-sort-code>
24
+ <iban></iban>
25
+ <bic></bic>
26
+ <current-balance type="decimal">500.0</current-balance>
27
+ <current-balance-date type="datetime">2011-04-19</current-balance-date>
28
+ <opening-balance type="decimal">500.0</opening-balance>
29
+ <is-personal>true</is-personal>
25
30
  </bank-account>
26
31
  <bank-account>
27
- <id type="integer">85564</id>
32
+ <id type="integer">86274</id>
28
33
  <type>PaypalAccount</type>
29
- <name>Example</name>
30
- <email>email@example.com</email>
31
- <current-balance type="decimal">1000.0</current-balance>
32
- <current-balance-date type="datetime">2011-04-12</current-balance-date>
33
- <opening-balance type="decimal">1000.0</opening-balance>
34
+ <name>PayPal</name>
35
+ <email>paypal@example.com</email>
36
+ <current-balance type="decimal">135.0</current-balance>
37
+ <current-balance-date type="datetime">2011-04-19</current-balance-date>
38
+ <opening-balance type="decimal">135.0</opening-balance>
34
39
  </bank-account>
35
40
  </records>
@@ -1,15 +1,15 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <bank-account>
3
- <id type="integer">85327</id>
3
+ <id type="integer">86272</id>
4
4
  <type>StandardBankAccount</type>
5
5
  <name>Business Checking Account</name>
6
- <account-number>00000000</account-number>
7
- <sort-code>00000000</sort-code>
6
+ <account-number>0011223344</account-number>
7
+ <sort-code>112233</sort-code>
8
8
  <secondary-sort-code></secondary-sort-code>
9
9
  <iban></iban>
10
10
  <bic></bic>
11
- <current-balance type="decimal">5571.18</current-balance>
12
- <current-balance-date type="datetime">2011-04-04</current-balance-date>
13
- <opening-balance type="decimal">4733.42</opening-balance>
11
+ <current-balance type="decimal">1500.0</current-balance>
12
+ <current-balance-date type="datetime">2011-04-19</current-balance-date>
13
+ <opening-balance type="decimal">1500.0</opening-balance>
14
14
  <is-personal>false</is-personal>
15
15
  </bank-account>
@@ -1,12 +1,12 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <contacts type="array">
3
3
  <contact>
4
- <id type="integer">433858</id>
5
- <organisation-name></organisation-name>
6
- <first-name>John</first-name>
7
- <last-name>Doe</last-name>
8
- <email>john@example.com</email>
9
- <billing-email></billing-email>
4
+ <id type="integer">447695</id>
5
+ <organisation-name>Fulp Corporation</organisation-name>
6
+ <first-name>Darren</first-name>
7
+ <last-name>Fulp</last-name>
8
+ <email>fulp@example.com</email>
9
+ <billing-email>billing@example.com</billing-email>
10
10
  <phone-number></phone-number>
11
11
  <address1></address1>
12
12
  <town></town>
@@ -15,7 +15,7 @@
15
15
  <address2></address2>
16
16
  <address3></address3>
17
17
  <contact-name-on-invoices type="boolean">true</contact-name-on-invoices>
18
- <country>Italy</country>
18
+ <country>United States</country>
19
19
  <sales-tax-registration-number></sales-tax-registration-number>
20
20
  <locale>en</locale>
21
21
  <mobile></mobile>
@@ -23,11 +23,11 @@
23
23
  <uses-contact-invoice-sequence type="boolean">false</uses-contact-invoice-sequence>
24
24
  </contact>
25
25
  <contact>
26
- <id type="integer">436186</id>
27
- <organisation-name>Wonderland</organisation-name>
28
- <first-name>Alice</first-name>
29
- <last-name></last-name>
30
- <email></email>
26
+ <id type="integer">447693</id>
27
+ <organisation-name>Robicheaux Inc</organisation-name>
28
+ <first-name>Julio</first-name>
29
+ <last-name>Robicheaux</last-name>
30
+ <email>julio.robicheaux@example.com</email>
31
31
  <billing-email></billing-email>
32
32
  <phone-number></phone-number>
33
33
  <address1></address1>
@@ -37,7 +37,7 @@
37
37
  <address2></address2>
38
38
  <address3></address3>
39
39
  <contact-name-on-invoices type="boolean">true</contact-name-on-invoices>
40
- <country>Italy</country>
40
+ <country>Japan</country>
41
41
  <sales-tax-registration-number></sales-tax-registration-number>
42
42
  <locale>en</locale>
43
43
  <mobile></mobile>
@@ -0,0 +1,69 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <contacts type="array">
3
+ <contact>
4
+ <id type="integer">447695</id>
5
+ <organisation-name>Fulp Corporation</organisation-name>
6
+ <first-name>Darren</first-name>
7
+ <last-name>Fulp</last-name>
8
+ <email>fulp@example.com</email>
9
+ <billing-email>billing@example.com</billing-email>
10
+ <phone-number></phone-number>
11
+ <address1></address1>
12
+ <town></town>
13
+ <region></region>
14
+ <postcode></postcode>
15
+ <address2></address2>
16
+ <address3></address3>
17
+ <contact-name-on-invoices type="boolean">true</contact-name-on-invoices>
18
+ <country>United States</country>
19
+ <sales-tax-registration-number></sales-tax-registration-number>
20
+ <locale>en</locale>
21
+ <mobile></mobile>
22
+ <account-balance>0.0</account-balance>
23
+ <uses-contact-invoice-sequence type="boolean">false</uses-contact-invoice-sequence>
24
+ </contact>
25
+ <contact>
26
+ <id type="integer">447692</id>
27
+ <organisation-name></organisation-name>
28
+ <first-name>Max</first-name>
29
+ <last-name>Milbourne</last-name>
30
+ <email></email>
31
+ <billing-email></billing-email>
32
+ <phone-number></phone-number>
33
+ <address1></address1>
34
+ <town></town>
35
+ <region></region>
36
+ <postcode></postcode>
37
+ <address2></address2>
38
+ <address3></address3>
39
+ <contact-name-on-invoices type="boolean">true</contact-name-on-invoices>
40
+ <country>United States</country>
41
+ <sales-tax-registration-number></sales-tax-registration-number>
42
+ <locale>en</locale>
43
+ <mobile></mobile>
44
+ <account-balance>0.0</account-balance>
45
+ <uses-contact-invoice-sequence type="boolean">false</uses-contact-invoice-sequence>
46
+ </contact>
47
+ <contact>
48
+ <id type="integer">447693</id>
49
+ <organisation-name>Robicheaux Inc</organisation-name>
50
+ <first-name>Julio</first-name>
51
+ <last-name>Robicheaux</last-name>
52
+ <email>julio.robicheaux@example.com</email>
53
+ <billing-email></billing-email>
54
+ <phone-number></phone-number>
55
+ <address1></address1>
56
+ <town></town>
57
+ <region></region>
58
+ <postcode></postcode>
59
+ <address2></address2>
60
+ <address3></address3>
61
+ <contact-name-on-invoices type="boolean">true</contact-name-on-invoices>
62
+ <country>Japan</country>
63
+ <sales-tax-registration-number></sales-tax-registration-number>
64
+ <locale>en</locale>
65
+ <mobile></mobile>
66
+ <account-balance>0.0</account-balance>
67
+ <uses-contact-invoice-sequence type="boolean">false</uses-contact-invoice-sequence>
68
+ </contact>
69
+ </contacts>
@@ -0,0 +1,75 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <invoices type="array">
3
+ <invoice>
4
+ <id type="integer">2715138</id>
5
+ <company-id type="integer">47603</company-id>
6
+ <project-id type="integer"></project-id>
7
+ <contact-id type="integer">469012</contact-id>
8
+ <dated-on type="datetime">2011-05-23T00:00:00Z</dated-on>
9
+ <due-on type="datetime">2011-06-02T00:00:00Z</due-on>
10
+ <reference>003</reference>
11
+ <currency>USD</currency>
12
+ <exchange-rate>1.0</exchange-rate>
13
+ <net-value type="decimal">350.0</net-value>
14
+ <sales-tax-value type="decimal">0.0</sales-tax-value>
15
+ <second-sales-tax-value type="decimal">0.0</second-sales-tax-value>
16
+ <status>Open</status>
17
+ <comments></comments>
18
+ <discount-percent type="decimal"></discount-percent>
19
+ <po-reference></po-reference>
20
+ <omit-header type="boolean">false</omit-header>
21
+ <payment-terms-in-days type="integer">10</payment-terms-in-days>
22
+ <written-off-date type="datetime"></written-off-date>
23
+ <ec-status></ec-status>
24
+ <invoice-items type="array">
25
+ <invoice-item>
26
+ <id type="integer">3445689</id>
27
+ <description>Training session.</description>
28
+ <project-id type="integer" nil="true"></project-id>
29
+ <invoice-id type="integer">2715138</invoice-id>
30
+ <item-type>Training</item-type>
31
+ <price type="decimal">350.0</price>
32
+ <quantity type="decimal">1.0</quantity>
33
+ <sales-tax-rate type="decimal">0.0</sales-tax-rate>
34
+ <second-sales-tax-rate type="decimal">0.0</second-sales-tax-rate>
35
+ <nominal-code>001</nominal-code>
36
+ </invoice-item>
37
+ </invoice-items>
38
+ </invoice>
39
+ <invoice>
40
+ <id type="integer">2715142</id>
41
+ <company-id type="integer">47603</company-id>
42
+ <project-id type="integer"></project-id>
43
+ <contact-id type="integer">469012</contact-id>
44
+ <dated-on type="datetime">2011-05-23T00:00:00Z</dated-on>
45
+ <due-on type="datetime">2011-05-23T00:00:00Z</due-on>
46
+ <reference>004</reference>
47
+ <currency>USD</currency>
48
+ <exchange-rate>1.0</exchange-rate>
49
+ <net-value type="decimal">700.0</net-value>
50
+ <sales-tax-value type="decimal">0.0</sales-tax-value>
51
+ <second-sales-tax-value type="decimal">0.0</second-sales-tax-value>
52
+ <status>Paid</status>
53
+ <comments></comments>
54
+ <discount-percent type="decimal"></discount-percent>
55
+ <po-reference></po-reference>
56
+ <omit-header type="boolean">false</omit-header>
57
+ <payment-terms-in-days type="integer">0</payment-terms-in-days>
58
+ <written-off-date type="datetime"></written-off-date>
59
+ <ec-status></ec-status>
60
+ <invoice-items type="array">
61
+ <invoice-item>
62
+ <id type="integer">3445700</id>
63
+ <description>Training session.</description>
64
+ <project-id type="integer" nil="true"></project-id>
65
+ <invoice-id type="integer">2715142</invoice-id>
66
+ <item-type>Training</item-type>
67
+ <price type="decimal">350.0</price>
68
+ <quantity type="decimal">2.0</quantity>
69
+ <sales-tax-rate type="decimal">0.0</sales-tax-rate>
70
+ <second-sales-tax-rate type="decimal">0.0</second-sales-tax-rate>
71
+ <nominal-code>001</nominal-code>
72
+ </invoice-item>
73
+ </invoice-items>
74
+ </invoice>
75
+ </invoices>
@@ -1,10 +1,10 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <contact>
3
- <id type="integer">436186</id>
4
- <organisation-name>Wonderland</organisation-name>
5
- <first-name>Alice</first-name>
6
- <last-name></last-name>
7
- <email></email>
3
+ <id type="integer">447693</id>
4
+ <organisation-name>Robicheaux Inc</organisation-name>
5
+ <first-name>Julio</first-name>
6
+ <last-name>Robicheaux</last-name>
7
+ <email>julio.robicheaux@example.com</email>
8
8
  <billing-email></billing-email>
9
9
  <phone-number></phone-number>
10
10
  <address1></address1>
@@ -14,7 +14,7 @@
14
14
  <address2></address2>
15
15
  <address3></address3>
16
16
  <contact-name-on-invoices type="boolean">true</contact-name-on-invoices>
17
- <country>Italy</country>
17
+ <country>Japan</country>
18
18
  <sales-tax-registration-number></sales-tax-registration-number>
19
19
  <locale>en</locale>
20
20
  <mobile></mobile>
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <estimates type="array">
3
+ <estimate>
4
+ <id type="integer">71632</id>
5
+ <project-id type="integer">116526</project-id>
6
+ <contact-id type="integer">436186</contact-id>
7
+ <invoice-id type="integer"></invoice-id>
8
+ <reference>001</reference>
9
+ <estimate-type>Proposal</estimate-type>
10
+ <dated-on type="datetime">2011-04-12T00:00:00+00:00</dated-on>
11
+ <status>Open</status>
12
+ <currency>USD</currency>
13
+ <net-value type="decimal">20.0</net-value>
14
+ <sales-tax-value type="decimal">0.0</sales-tax-value>
15
+ <client-contact-name></client-contact-name>
16
+ <notes>
17
+ <![CDATA[I suggest to change hosting.]]>
18
+ </notes>
19
+ <omit-header type="boolean">false</omit-header>
20
+ <created-at type="datetime">2011-04-12T20:52:18Z</created-at>
21
+ <updated-at type="datetime">2011-04-12T20:52:59Z</updated-at>
22
+ <ec-status></ec-status>
23
+ <estimate-items type="array">
24
+ <estimate-item>
25
+ <category-id type="integer">39986</category-id>
26
+ <description>Hosting selection.</description>
27
+ <estimate-id type="integer">71632</estimate-id>
28
+ <id type="integer">178108</id>
29
+ <item-type>Hours</item-type>
30
+ <price type="decimal">10.0</price>
31
+ <quantity type="decimal">2.0</quantity>
32
+ <sales-tax-rate type="decimal">0.0</sales-tax-rate>
33
+ <second-sales-tax-rate type="decimal">0.0</second-sales-tax-rate>
34
+ <stock-item-id type="integer" nil="true"></stock-item-id>
35
+ </estimate-item>
36
+ </estimate-items>
37
+ </estimate>
38
+ </estimates>
@@ -0,0 +1,93 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <expenses type="array">
3
+ <expense>
4
+ <id type="integer">536969</id>
5
+ <user-id type="integer">82948</user-id>
6
+ <expense-type>Miscellaneous</expense-type>
7
+ <dated-on type="date">2011-04-12T00:00:00Z</dated-on>
8
+ <gross-value type="decimal">-1000.0</gross-value>
9
+ <sales-tax-rate type="decimal">0.0</sales-tax-rate>
10
+ <second-sales-tax-rate type="decimal">0.0</second-sales-tax-rate>
11
+ <description>Holiday</description>
12
+ <depreciation-schedule>3 Years</depreciation-schedule>
13
+ <ec-status></ec-status>
14
+ <engine-size-index type="integer">1</engine-size-index>
15
+ <engine-type-index type="integer">0</engine-type-index>
16
+ <vehicle-type></vehicle-type>
17
+ <have-vat-receipt type="boolean">true</have-vat-receipt>
18
+ <initial-rate-mileage type="integer">0</initial-rate-mileage>
19
+ <manual-sales-tax-amount type="decimal">0.0</manual-sales-tax-amount>
20
+ <mileage type="integer"></mileage>
21
+ <project-id type="integer"></project-id>
22
+ <rebill-factor type="decimal">0.0</rebill-factor>
23
+ <rebill-mileage-rate type="decimal">0.4</rebill-mileage-rate>
24
+ <reclaim-mileage-rate type="decimal">0.4</reclaim-mileage-rate>
25
+ <rebill-type></rebill-type>
26
+ <rebilled-on-invoice-item-id type="integer"></rebilled-on-invoice-item-id>
27
+ <rebill-to-project-id type="integer"></rebill-to-project-id>
28
+ <receipt-reference></receipt-reference>
29
+ <recurring></recurring>
30
+ <recurring-end-date type="date"></recurring-end-date>
31
+ <updated-at type="datetime">2011-04-12T20:56:47Z</updated-at>
32
+ </expense>
33
+ <expense>
34
+ <id type="integer">536967</id>
35
+ <user-id type="integer">82948</user-id>
36
+ <expense-type>Mileage</expense-type>
37
+ <dated-on type="date">2011-04-12T00:00:00Z</dated-on>
38
+ <gross-value type="decimal">-4.0</gross-value>
39
+ <sales-tax-rate type="decimal">20.0</sales-tax-rate>
40
+ <second-sales-tax-rate type="decimal">0.0</second-sales-tax-rate>
41
+ <description>Meetings</description>
42
+ <depreciation-schedule>3 Years</depreciation-schedule>
43
+ <ec-status></ec-status>
44
+ <engine-size-index type="integer">1</engine-size-index>
45
+ <engine-type-index type="integer">0</engine-type-index>
46
+ <vehicle-type></vehicle-type>
47
+ <have-vat-receipt type="boolean">true</have-vat-receipt>
48
+ <initial-rate-mileage type="integer">10</initial-rate-mileage>
49
+ <manual-sales-tax-amount type="decimal">0.0</manual-sales-tax-amount>
50
+ <mileage type="integer">10</mileage>
51
+ <project-id type="integer">116526</project-id>
52
+ <rebill-factor type="decimal"></rebill-factor>
53
+ <rebill-mileage-rate type="decimal">0.4</rebill-mileage-rate>
54
+ <reclaim-mileage-rate type="decimal">0.4</reclaim-mileage-rate>
55
+ <rebill-type></rebill-type>
56
+ <rebilled-on-invoice-item-id type="integer"></rebilled-on-invoice-item-id>
57
+ <rebill-to-project-id type="integer"></rebill-to-project-id>
58
+ <receipt-reference></receipt-reference>
59
+ <recurring></recurring>
60
+ <recurring-end-date type="date"></recurring-end-date>
61
+ <updated-at type="datetime">2011-04-12T20:56:12Z</updated-at>
62
+ </expense>
63
+ <expense>
64
+ <id type="integer">536964</id>
65
+ <user-id type="integer">82948</user-id>
66
+ <expense-type>Meals</expense-type>
67
+ <dated-on type="date">2011-04-12T00:00:00Z</dated-on>
68
+ <gross-value type="decimal">-15.0</gross-value>
69
+ <sales-tax-rate type="decimal">0.0</sales-tax-rate>
70
+ <second-sales-tax-rate type="decimal">0.0</second-sales-tax-rate>
71
+ <description>Coffee cup.</description>
72
+ <depreciation-schedule>3 Years</depreciation-schedule>
73
+ <ec-status></ec-status>
74
+ <engine-size-index type="integer">1</engine-size-index>
75
+ <engine-type-index type="integer">0</engine-type-index>
76
+ <vehicle-type></vehicle-type>
77
+ <have-vat-receipt type="boolean">true</have-vat-receipt>
78
+ <initial-rate-mileage type="integer">0</initial-rate-mileage>
79
+ <manual-sales-tax-amount type="decimal">0.0</manual-sales-tax-amount>
80
+ <mileage type="integer"></mileage>
81
+ <project-id type="integer">116526</project-id>
82
+ <rebill-factor type="decimal"></rebill-factor>
83
+ <rebill-mileage-rate type="decimal">0.4</rebill-mileage-rate>
84
+ <reclaim-mileage-rate type="decimal">0.4</reclaim-mileage-rate>
85
+ <rebill-type></rebill-type>
86
+ <rebilled-on-invoice-item-id type="integer"></rebilled-on-invoice-item-id>
87
+ <rebill-to-project-id type="integer"></rebill-to-project-id>
88
+ <receipt-reference></receipt-reference>
89
+ <recurring></recurring>
90
+ <recurring-end-date type="date"></recurring-end-date>
91
+ <updated-at type="datetime">2011-04-12T20:55:00Z</updated-at>
92
+ </expense>
93
+ </expenses>