예제 #1
0
  /**
   * This removes a item from the current transaction.
   *
   * @param barcode the item's barcode number.
   * @throws IllegalStateException if there are no items on the invoice to remove.
   */
  public void removeItem(String barcode) throws IllegalStateException {
    int itemCount = myTransaction.getNumberOfItems();
    if (itemCount == 0) {
      throw new IllegalStateException("There are no items on the Invoice.");
    }

    // compare each item that is currently on the invoice with the barcode given
    boolean found = false;
    int line = 1; // the line in the invoice where this item is, start looking on line 1.
    for (line = 1; line <= itemCount; line++) {
      TransactionItem itemOnInvoice = myTransaction.getItem(line);
      if (itemOnInvoice.getBarcode() == barcode) {
        found = true;
        break;
      }
    }
    if (!found) throw new IllegalStateException("Item not in list");
    else myTransaction.removeTransactionItem(line);
  }
예제 #2
0
 /**
  * This adds/saves the current transaction to the database.
  *
  * @throws IllegalStateException if the transaction has not been paid for.
  *     <dt><b>Precondition:</b>
  *     <dd>
  *         <ul>
  *           <li>Payment for the transaction has been made.
  *         </ul>
  */
 public void process()
     throws IllegalStateException, SQLException, ClassNotFoundException, MovieNotFoundException,
         Exception {
   if (myTransaction.isPaid() == false) {
     throw new IllegalStateException("The invoice has not been paid, not saving info.");
   }
   // mySQLhelper.insertInvoiceTable(myTransaction);
   RentalMovieManagement rentalManager = new RentalMovieManagement();
   SaleMovieManagement saleManager = new SaleMovieManagement();
   for (int i = 1; i <= myTransaction.getNumberOfItems(); i++) {
     TransactionItem item = myTransaction.getItem(i);
     if (item.getType().equals("for sale")) {
       saleManager.sell(item.getBarcode());
     } else if (item.getType().trim().toLowerCase().equals("new release")
         || item.getType().trim().toLowerCase().equals("7 day")) {
       rentalManager.checkOut(
           myTransaction.getCustomerID(), item.getBarcode(), new JDBCConnection());
     }
   }
 }