#ifndef TRANSACTIONDB_CLASS_
#define TRANSACTIONDB_CLASS_
class TransactionDB : public Database
	{
	public:
		//Constructor/Destructor
		TransactionDB();
		~TransactionDB();
		//Member functions
 		static void printStats();
		UI::Command display();
		static void init();
		static void sortByTitle();
		static void sortByDate();
		static void sortByType();
		static void process();
	private:
		//Member data
		static LibList  itemList;
		static TransactionList transactionList;
		static int count[Transaction::REQUEST_SIZE];
		static const Text CLASS_NAME;
		
		static TransactionQueue transactionQueue;

		static const char DISPLAY_TRANSACTIONS = 'D';
		static const char PROCESS_TRANSACTIONS = 'P';

		//Member functions
		static void displayTransactions(LibList &itemList);
		static Transaction *findItem(Identity::Id itemId);

		void loadTransactions();
		static void displayTransactions(TransactionList transactionList);
		static void getItemList(Database::LibList *transList);
		static void loadTransactionList(TransactionList *transactionList);
		static void checkOutItem(Transaction *transaction, int number);
		static void returnItem(Transaction *transaction, int number);
		};
#endif
