001 package edu.sampleu.bookstore.rule;
002
003 import edu.sampleu.bookstore.bo.BookOrder;
004 import edu.sampleu.bookstore.document.BookOrderDocument;
005 import org.kuali.rice.core.api.util.RiceKeyConstants;
006 import org.kuali.rice.krad.document.Document;
007 import org.kuali.rice.krad.rules.TransactionalDocumentRuleBase;
008 import org.kuali.rice.krad.util.GlobalVariables;
009 import org.kuali.rice.krad.util.KRADConstants;
010
011 import java.util.List;
012
013
014 /*
015 * Business Rule for Book Order Document that follows prior to submit action.
016 * Checks that book order/orders is/are not null or Empty and all the attributes are mentioned for each order.
017 */
018
019 public class BookOrderDocumentRule extends TransactionalDocumentRuleBase {
020
021 private static final String BOOK_ORDERS_PROPERTY_PATH = KRADConstants.DOCUMENT_PROPERTY_NAME + ".bookOrders";
022 private static final String NO_BOOK_ORDERS_ERROR_KEY = RiceKeyConstants.ERROR_CUSTOM;
023 private static final String ERROR_MESSAGE_NO_ORDERS = "You must add at least one entry to your book order.";
024
025 private static final String BOOK_ORDERS_EMPTY_ERROR_KEY = RiceKeyConstants.ERROR_CUSTOM;
026 private static final String ERROR_MESSAGE_EMPTY_ORDERS = "You must add attributes to your book order.";
027
028 @Override
029 protected boolean processCustomRouteDocumentBusinessRules(Document document) {
030
031 System.out.println("@@@@ IN RULE CHECK");
032
033 // cast the document to a BookOrderDocument
034 BookOrderDocument bookOrderDocument = (BookOrderDocument)document;
035
036 // get the list of book orders of the book order document
037 List<BookOrder> bookOrders = bookOrderDocument.getBookOrders();
038
039 // make sure that the list is not empty
040 if (bookOrders == null || bookOrders.isEmpty()) {
041 GlobalVariables.getMessageMap().putError(BOOK_ORDERS_PROPERTY_PATH, NO_BOOK_ORDERS_ERROR_KEY, ERROR_MESSAGE_NO_ORDERS);
042 System.out.println("@@@@ FALSE RULE CHECK");
043 return false;
044 } else {
045 for(BookOrder bookOrder : bookOrders){
046 if(bookOrder.getBookId() == null || bookOrder.getDiscount() == null || bookOrder.getQuantity() == null){
047 GlobalVariables.getMessageMap().putError(BOOK_ORDERS_PROPERTY_PATH, BOOK_ORDERS_EMPTY_ERROR_KEY, ERROR_MESSAGE_EMPTY_ORDERS);
048 System.out.println("@@@@ FALSE RULE CHECK");
049 return false;
050 }
051 }
052
053 }
054 System.out.println("@@@@ TRUE RULE CHECK");
055
056 return super.processCustomRouteDocumentBusinessRules(document);
057 }
058
059
060
061
062
063 }