public static void ProcessCustomerPayment(Connection conn) { // This function updates is_paid so billing staff can keep track of the payments customers have // made int c_id = BooksAThousand.getIntFromShell("Enter customer ID: "); try { Statement statement = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = statement.executeQuery( "select customer_id, isbn, quantity, price, customer_order_date, is_paid" + " from customer_order where customer_id=" + c_id + " and is_paid='N'"); if (rs.next()) { System.out.println("Outstanding payments:"); System.out.printf( "Order %-10s %-5s %-5s %-10s %-10s\n", "ISBN", "Quant", "Price", "Total", "Date"); Date date; int i = 0; SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy hh:mm"); do { i++; date = rs.getDate(5); System.out.printf( "%-5s: %-10s %-5d %-5d %-10d %-10s \n", i, rs.getInt(2), rs.getInt(3), rs.getInt(4), rs.getInt(3) * rs.getInt(4), sdf.format(date)); } while (rs.next()); int order = BooksAThousand.getIntFromShell("Which order to mark as paid: "); rs.absolute(i); rs.updateString(6, "Y"); rs.updateRow(); System.out.println("Update successful."); } else { System.out.println("This user has no unpaid orders"); } } catch (Throwable e) { e.printStackTrace(); } }