anchor.diff:  				| {out_of_credit, RedirectServerAddress, SessionList}
   				| {out_of_credit, RedirectServerAddress, SessionList, Rated}
   				| {disabled, SessionList}
  +				| {ok, {pla_ref, Price}}
   				| {error, Reason},
  +		Price :: #price{},
   		Service :: #service{},
   		GrantedAmount :: {Type, Amount},
   		Rated :: [#rated{}],
  
positive.code: 	when
  		Protocol :: radius | diameter,
  		SubscriberID :: binary(),
  		ServiceId :: string(),
  		ChargingKey :: integer() | undefined,
  		UnitSize :: integer() | undefined,
  		Currency :: string(),
  		UnitPrice :: integer() | undefined,
  		PriceChars :: #char_value_use{},
  		Units :: integer() | undefined,
  		Flag :: initial | interim | final | event,
  		DebitAmounts :: list(),
  
negative.code: 	FilteredPrices1 = lists:filter(F, Prices),
  	FilteredPrices2 = filter_prices_key(ChargingKey, FilteredPrices1),
  	case filter_prices_tod(Timestamp, FilteredPrices2) of
  		[#price{type = #pla_ref{}} = Price | _] ->
  			 {pla_ref, Price};
  		[#price{units = Units, type = PriceType, size = UnitSize, amount = UnitPrice,
  				currency = Currency, char_value_use = PriceChars} = Price| _] ->
  			RoamingTable = roaming_table_prefix(Price),
  