001    /*
002     * Copyright 2011 The Kuali Foundation.
003     * 
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     * 
008     * http://www.opensource.org/licenses/ecl2.php
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.kfs.fp.document.authorization;
017    
018    import java.util.Arrays;
019    import java.util.List;
020    
021    import org.kuali.kfs.sys.KFSConstants;
022    import org.kuali.kfs.sys.businessobject.FinancialSystemDocumentHeader;
023    import org.kuali.kfs.sys.document.authorization.AccountingDocumentPresentationControllerBase;
024    import org.kuali.rice.kew.exception.WorkflowException;
025    import org.kuali.rice.kns.document.Document;
026    import org.kuali.rice.kns.workflow.service.KualiWorkflowDocument;
027    
028    public class ProcurementCardDocumentPresentationController extends AccountingDocumentPresentationControllerBase {
029    
030        /**
031         * @see org.kuali.rice.kns.document.authorization.DocumentPresentationControllerBase#canCancel(org.kuali.rice.kns.document.Document)
032         */
033        @Override
034        protected boolean canCancel(Document document) {
035            return false;
036        }
037    
038        /**
039         * @see org.kuali.rice.kns.document.authorization.DocumentPresentationControllerBase#canCopy(org.kuali.rice.kns.document.Document)
040         */
041        @Override
042        protected boolean canCopy(Document document) {
043            return false;
044        }
045    
046        /**
047         * @see org.kuali.rice.kns.document.authorization.DocumentPresentationControllerBase#canDisapprove(org.kuali.rice.kns.document.Document)
048         */
049        @Override
050        protected boolean canDisapprove(Document document) {
051            return false;
052        }
053    
054        /**
055         * @see org.kuali.rice.kns.document.authorization.DocumentPresentationControllerBase#canEdit(org.kuali.rice.kns.document.Document)
056         */
057        @Override
058        protected boolean canEdit(Document document) {
059            KualiWorkflowDocument workflowDocument = document.getDocumentHeader().getWorkflowDocument();
060            List<String> activeNodes = getCurrentRouteLevels(workflowDocument);
061    
062            // FULL_ENTRY only if: a) person has an approval request, b) we are at the correct level, c) it's not a correction document,
063            // d) it is not an ADHOC request (important so that ADHOC don't get full entry).
064            if (workflowDocument.isApprovalRequested() && activeNodes.contains(KFSConstants.RouteLevelNames.ACCOUNT_REVIEW_FULL_EDIT) && (((FinancialSystemDocumentHeader) document.getDocumentHeader()).getFinancialDocumentInErrorNumber() == null) && !workflowDocument.isAdHocRequested()) {
065                return true;
066            }
067    
068            return super.canEdit(document);
069        }
070    }