anchor.diff:  			Body :: iolist()} | {error, ErrorCode :: integer()}.
   %% @doc Body producing function for `GET /ocs/v1/log/balance'
   %% requests.
  -get_balance_log(Query, _Headers) ->
  +get_balance_log(Query, Headers) ->
   	try
   		{DateStart, DateEnd} = case lists:keyfind("date", 1, Query) of
   			{_, DateTime} when length(DateTime) > 3 ->
  
positive.code: 						MatchBucket = match_abmf("bucket", Complex, Query),
  						MatchUnits = match_abmf("units", Complex, Query),
  						MatchProducts = match_abmf("product", Complex, Query),
  						case ocs_log:abmf_query(start, DateStart, DateEnd, MatchType,
  								MatchSubscriber, MatchBucket, MatchUnits, MatchProducts) of
  							{error, _} ->
  								{error, 500};
  							{_Cont, AbmfList} ->
  								Json = abmfs(AbmfList, []),
  								Body = mochijson:encode(Json),
  								HeadersAbmf = [{content_type, "application/json"}],
  								{ok, HeadersAbmf, Body}
  						end;
  					{error, _} ->
  						{error, 500}
  				end;
  			false ->
  				case ocs_log:abmf_query(start, DateStart, DateEnd, '_', '_', '_', '_', '_') of
  					{error, _} ->
  						{error, 500};
  					{_Cont1, AbmfList1}  ->
  						Json1 = abmfs(AbmfList1, []),
  						Body = mochijson:encode(Json1),
  						Headers1 = [{content_type, "application/json"}],
  						{ok, Headers1, Body}
  				end
  		end
  	catch
  		_ ->
  			{error, 400}
  
negative.code: 				{1, erlang:system_time(?MILLISECOND)}
  		end,
  		case lists:keytake("filter", 1, Query) of
  			{value, {_, String}, Query1} ->
  				{ok, Tokens, _} = ocs_rest_query_scanner:string(String),
  				case ocs_rest_query_parser:parse(Tokens) of
  					{ok, [{array, [{complex, Complex}]}]} ->
  