+the values are hash references containing the two keys C<amount> and
+C<taxkey>.
+
+=item C<amounts_cogs>
+
+A hash reference with the calculated amounts for costs of goods
+sold. The keys are chart IDs, the values the calculated amounts.
+
+=item C<assembly_items>
+
+An array reference with as many entries as there are items in the
+record. Each entry is again an array reference of hash references with
+the keys C<part> (an instance of L<SL::DB::Part>), C<qty> and
+C<allocated>. Is only valid for invoices and can be used to populate
+the C<invoice> table with entries for assemblies.
+
+=item C<allocated>
+
+A hash reference. The keys are IDs of entries in the C<invoice>
+table. The values are the new values for the entry's C<allocated>
+column. Only valid for invoices.
+
+=item C<exchangerate>
+
+The exchangerate used for the calculation.
+
+=item C<items>
+
+An array reference. For each line item this array contains a hash ref
+entry with additional values that have been calculated for that item
+but that aren't stored in the item object itself. These include
+C<linetotal>, C<linetotal_cost>, C<sellprice>, C<tax_amount> and
+C<taxkey_id>.
+
+The items are stored in the same order the items are stored in the
+object that L</calculate_prices_and_taxes> has been called on.
+
+For example:
+
+ my $invoice = SL::DB::Invoice->new(id => 12345)->load;
+ my %data = $invoice->calculate_prices_and_taxes;
+
+ print "line total of second item: " . $data{items}->[1]->{linetotal};