public void doReturnDVD(StaffData staff_data, CustomerData customer_data, DVDData DVD_data) { if (staff_data.getID() == 0 || customer_data.getID() == 0 || DVD_data.getID() == 0) { setMessage("Enter staff, customer and DVD IDs first"); return; } try { // populate objects... staff_data = getStaffManager().findStaff(staff_data.getID()); customer_data = getCustomerManager().findCustomer(customer_data.getID()); DVD_data = getDVDManager().findDVD(DVD_data.getID()); // has customer rented this DVD? RentalData rental_data = getRentalManager().findRental(customer_data.getID(), DVD_data.getID(), null); if (rental_data == null || !rental_data.getReturned().equals("null")) setMessage("This DVD not rented by this customer!"); else { try { // begin transaction... DVDStoreFactory.getInstance().begin(); rental_data.setReturned(DVDStoreFactory.getTodayDate()); getRentalManager().returnDVD(rental_data); DVD_data.setNumCopies(DVD_data.getNumCopies() + 1); getDVDManager().updateDVD(DVD_data); // need to commit transaction... DVDStoreFactory.getInstance().commit(); setMessage("Returned DVD"); } catch (Exception e) { setMessage("Couldn't return DVD: exception " + e); try { // need to rollback transaction DVDStoreFactory.getInstance().rollback(); } catch (Exception e2) { setMessage("Couldn't rollback transaction: exception " + e); } } } } catch (Exception e) { setMessage("couldn't check DVD record: " + e); } }
public void doRentDVD(StaffData staff_data, CustomerData customer_data, DVDData DVD_data) { if (staff_data.getID() == 0 || customer_data.getID() == 0 || DVD_data.getID() == 0) { setMessage("Enter staff, customer and DVD IDs first"); return; } try { // populate objects staff_data = getStaffManager().findStaff(staff_data.getID()); customer_data = getCustomerManager().findCustomer(customer_data.getID()); DVD_data = getDVDManager().findDVD(DVD_data.getID()); // has customer asked for this DVD?? RentalData rental = getRentalManager().findRental(customer_data.getID(), DVD_data.getID(), null); if (rental != null) { if (rental.getDispatched() != null && !rental.getDispatched().equals("null")) { setMessage("Already dispatched to customer on " + rental.getDispatched()); return; } try { // need to do begin transaction... DVDStoreFactory.getInstance().begin(); // indicate sent to customer & by whom rental.setStaffID(staff_data.getID()); rental.setDispatched(DVDStoreFactory.getTodayDate()); getRentalManager().dispatchDVD(rental); // indicate number of copies available now reduced by 1 - should change to do on REQUEST // !!! DVD_data.setNumCopies(DVD_data.getNumCopies() - 1); getDVDManager().updateDVD(DVD_data); // need to do commit transaction... DVDStoreFactory.getInstance().commit(); setMessage("Rented DVD"); } catch (Exception e) { setMessage("Couldn't rent DVD: exception: " + e); try { // need to do rollback of transaction... DVDStoreFactory.getInstance().rollback(); } catch (Exception e2) { setMessage("*** Couldn't roll back transaction: " + e); } } } else setMessage("This DVD not requested by customer!"); } catch (Exception e) { setMessage("Couldn't check DVD: exception:" + e); } }