public String returnBook(int callNo, int copyNo) {
		int bid;
		int borid;
		Borrowing bor = new Borrowing();
		Fine fine = new Fine();
		bookCopy bookCopy = new bookCopy();
		holdRequest hr = new holdRequest();
		String msg = null;

		bid = bor.getBidOfBook(callNo, copyNo);
		borid = bor.getBoridOfBook(callNo, copyNo);
		bor.setInDate(callNo, copyNo);
		if(bookCopy.noBook(callNo, copyNo)){
			msg = "Invalid Call Number or Copy Number.";
			return msg;
		}
		if(bookCopy.checkStatus(callNo, copyNo).equals("in")){
			msg = "Book Copy has already been returned previously.";
		}
		if (bor.isOverdue(borid)) {
			fine.insertFine(callNo + copyNo, fine.calculateFine(bor.getDueDate(bid, borid)), borid);
			msg = "Book returned successfully but is overdue. A fine has been issued.";
		}
		if (hr.hasHold(callNo)) {
			bookCopy.setStatusHold(callNo, copyNo);
			msg = "This copy is currently on hold.";
		} else {
			bookCopy.setStatusIn(callNo, copyNo);
			msg = "Book is returned successfully.";
		}
		return msg;

	}