anchor.diff:  			{"terminationDate", ocs_rest:iso8601(SD)}
   	end.
   
  --spec prod_vf(Prefix, Product) -> Result
  -	when
  -		Prefix :: erl_term | json,
  -		Product :: list() | #product{},
  +-spec prod_vf(Product) -> Result
  +	when
  +		Product :: [tuple()] | #product{},
   		Result :: tuple().
   %% @private
  -prod_vf(erl_term, Product) ->
  +prod_vf(Product) when is_list(Product) ->
   	case lists:keyfind("validFor", 1, Product) of
   		{_, {struct, VFObj}} ->
   			case {proplists:get_value("startDateTime", VFObj), proplists:get_value("endDateTime", VFObj)} of
  
positive.code: 			{error, 500}
  	end.
  
  -spec po_alteration(Prefix, ProdAlterObj) -> Result
  	when
  		Prefix	:: erl_term | json,
  		ProdAlterObj :: list() | #alteration{},
  		Result	:: #alteration{} | {error, Status},
  		Status	:: 400 | 500.
  %% @private
  po_alteration(erl_term, ProdAlterObj) ->
  	try
  		ProdAlterName = prod_price_alter_name(erl_term, ProdAlterObj),
  		ProdAlterVF = prod_price_alter_vf(erl_term, ProdAlterObj),
  		ProdAlterPriceType = prod_price_alter_price_type(erl_term, ProdAlterObj),
  		{_, {struct, ProdAlterPriceObj}} = lists:keyfind("price", 1, ProdAlterObj),
  		ProdAlterAmount = prod_price_alter_amount(erl_term, ProdAlterPriceObj),
  		ProdAlterDescirption = prod_price_alter_description(erl_term, ProdAlterObj),
  		{ProdAlterUnits, ProdAlterSize} = prod_price_alter_ufm(erl_term, ProdAlterObj),
  		AlterSize = product_size(ProdAlterUnits, octets, ProdAlterSize),
  		#alteration{name = ProdAlterName, description = ProdAlterDescirption,
  			valid_for = ProdAlterVF, units = ProdAlterUnits, size = AlterSize,
  			amount = ProdAlterAmount, type = ProdAlterPriceType}
  	catch
  		_:_ ->
  			{error, 400}
  	end;
  po_alteration(json, ProdAlter) ->
  	try
  		Name = prod_price_alter_name(json, ProdAlter),
  		ValidFor = prod_price_alter_vf(json, ProdAlter),
  		PriceType = prod_price_alter_price_type(json, ProdAlter),
  		UFM  = prod_price_alter_ufm(json, ProdAlter),
  		Description = prod_price_alter_description(json, ProdAlter),
  		Amount = prod_price_alter_amount(json, ProdAlter),
  		PriceObj = {struct, [Amount]},
  		Price = {"price", PriceObj},
  			{"productOfferPriceAlteration",
  				{struct, [Name, Description, PriceType, ValidFor, UFM, Price]}}
  	catch
  		_:_ ->
  			{error, 500}
  	end.
  
  -spec prod_id(Prefix, Product) -> Result
  	when
  		Prefix	:: erl_term | json,
  		Product	:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_id(json, Product) ->
  	{"id", Product#product.name}.
  
  -spec prod_name(Prefix, Product) -> Result
  	when
  		Prefix	:: erl_term | json,
  		Product	:: list() | #product{},
  		Result	:: string() | tuple().
  %% @private
  prod_name(erl_term, Product) ->
  	{_, Name} = lists:keyfind("name", 1, Product),
  	Name;
  prod_name(json, Prod) ->
  	{"name", Prod#product.name}.
  
  -spec prod_description(Prefix, Product) -> Result
  	when
  		Prefix	:: erl_term | json,
  		Product	:: list() | #product{},
  		Result	:: undefined | string() | tuple().
  %% @private
  prod_description(erl_term, Product) ->
  	proplists:get_value("description", Product, undefined);
  prod_description(json, Product) ->
  	case Product#product.description of
  		undefined ->
  			{"description", ""};
  
negative.code: 			{"validFor", {struct, [SDT, EDT]}}
  	end.
  
  -spec prod_price_type(Price) -> Result
  	when
  		Price :: [tuple()] | #product{},
  		Result	:: atom() | tuple().
  %% @private
  prod_price_type(Price) when is_list(Price) ->
  	{_, ProdPriceTypeS} = lists:keyfind("priceType", 1, Price),
  	price_type(ProdPriceTypeS);
  prod_price_type(#price{} = Price) ->
  	PPT = price_type(Price#price.type),
  	{"priceType", PPT}.
  
  -spec prod_price_price_amount(Price) -> Result
  	when
  		Price		:: [tuple()] | #price{},
  		Result	:: integer() | tuple().
  %% @private
  prod_price_price_amount(Price) when is_list(Price)->
  	{_, ProdAmount} = lists:keyfind("taxIncludedAmount", 1, Price),
  	ProdAmount;
  prod_price_price_amount(#price{} = Price) ->
  	case Price#price.amount of
  		undefined ->
  			{"taxIncludedAmount", ""};
  