added on_sale to PurchaseDetail list()