<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -8,6 +8,7 @@ module AMEE
         @label = data[:label]
         @item_definition = data[:item_definition]
         @total_amount = data[:total_amount]
+        @total_amount_unit = data[:total_amount_unit]
         super
       end
 
@@ -16,6 +17,7 @@ module AMEE
       attr_reader :label
       attr_reader :item_definition
       attr_reader :total_amount
+      attr_reader :total_amount_unit
 
       def self.from_json(json)
         # Read JSON
@@ -28,7 +30,14 @@ module AMEE
         data[:path] = doc['path']
         data[:label] = doc['dataItem']['label']
         data[:item_definition] = doc['dataItem']['itemDefinition']['uid']
-        data[:total_amount] = doc['amountPerMonth'] rescue nil
+        # Read v2 total
+        data[:total_amount] = doc['amount']['value'] rescue nil
+        data[:total_amount_unit] = doc['amount']['unit'] rescue nil
+        # Read v1 total
+        if data[:total_amount].nil?
+          data[:total_amount] = doc['amountPerMonth'] rescue nil
+          data[:total_amount_unit] = &quot;kg/month&quot;
+        end
         # Get values
         data[:values] = []
         doc['dataItem']['itemValues'].each do |value|
@@ -64,7 +73,14 @@ module AMEE
         data[:path] = (REXML::XPath.first(doc, '/Resources/DataItemResource/Path') || REXML::XPath.first(doc, '/Resources/DataItemResource/DataItem/path')).text
         data[:label] = (REXML::XPath.first(doc, '/Resources/DataItemResource/DataItem/Label') || REXML::XPath.first(doc, '/Resources/DataItemResource/DataItem/label')).text
         data[:item_definition] = REXML::XPath.first(doc, '/Resources/DataItemResource/DataItem/ItemDefinition/@uid').to_s
-        data[:total_amount] = REXML::XPath.first(doc, '/Resources/DataItemResource/AmountPerMonth').text.to_f rescue nil
+        # Read v2 total
+        data[:total_amount] = REXML::XPath.first(doc, '/Resources/DataItemResource/Amount').text.to_f rescue nil
+        data[:total_amount_unit] = REXML::XPath.first(doc, '/Resources/DataItemResource/Amount/@unit').to_s rescue nil
+        # Read v1 total
+        if data[:total_amount].nil?
+          data[:total_amount] = REXML::XPath.first(doc, '/Resources/DataItemResource/AmountPerMonth').text.to_f rescue nil
+          data[:total_amount_unit] = &quot;kg/month&quot;
+        end
         # Get values
         data[:values] = []
         REXML::XPath.each(doc, '/Resources/DataItemResource/DataItem/ItemValues/ItemValue') do |value|</diff>
      <filename>lib/amee/data_item.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>4ea76df4fabd056c9309a77f8a09f2aec8051c66</id>
    </parent>
  </parents>
  <author>
    <name>James Smith</name>
    <email>james@floppy.org.uk</email>
  </author>
  <url>http://github.com/Floppy/amee-ruby/commit/07775286df59e7da90f6e21d26757e16e3443ea4</url>
  <id>07775286df59e7da90f6e21d26757e16e3443ea4</id>
  <committed-date>2009-05-27T06:02:32-07:00</committed-date>
  <authored-date>2009-05-27T06:02:32-07:00</authored-date>
  <message>Add v2 amount support to data items for on-the-fly calculations</message>
  <tree>4381787b559411cc698cc4fd135547b418b37557</tree>
  <committer>
    <name>James Smith</name>
    <email>james@floppy.org.uk</email>
  </committer>
</commit>
