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.module.bc.document.web.struts;
017    
018    import java.util.List;
019    import java.util.Map;
020    
021    import javax.servlet.http.HttpServletRequest;
022    
023    import org.kuali.kfs.module.bc.BCConstants;
024    import org.kuali.kfs.module.bc.businessobject.PendingBudgetConstructionAppointmentFunding;
025    import org.kuali.kfs.module.bc.businessobject.SalarySettingExpansion;
026    import org.kuali.kfs.module.bc.document.authorization.BudgetConstructionDocumentAuthorizer;
027    import org.kuali.kfs.sys.KfsAuthorizationConstants;
028    import org.kuali.kfs.sys.ObjectUtil;
029    
030    
031    public class QuickSalarySettingForm extends SalarySettingBaseForm {
032        private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(QuickSalarySettingForm.class);
033    
034        private SalarySettingExpansion salarySettingExpansion;
035        private boolean refreshPositionBeforeSalarySetting;
036        private boolean refreshIncumbentBeforeSalarySetting;
037    
038        /**
039         * Constructs a QuickSalarySettingForm.java.
040         */
041        public QuickSalarySettingForm() {
042            super();
043            this.setSalarySettingExpansion(new SalarySettingExpansion());
044        }
045    
046        /**
047         * @see org.kuali.rice.kns.web.struts.form.KualiForm#populate(javax.servlet.http.HttpServletRequest)
048         */
049        @Override
050        public void populate(HttpServletRequest request) {
051            super.populate(request);
052    
053            this.populateBCAFLines();
054    
055        }
056    
057        /**
058         * get the key map for the salary setting expension
059         * 
060         * @return the key map for the salary setting expension
061         */
062        @Override
063        public Map<String, Object> getKeyMapOfSalarySettingItem() {
064            return ObjectUtil.buildPropertyMap(this, SalarySettingExpansion.getPrimaryKeyFields());
065        }
066    
067        /**
068         * @see org.kuali.kfs.module.bc.document.web.struts.SalarySettingForm#getAppointmentFundings()
069         */
070        @Override
071        public List<PendingBudgetConstructionAppointmentFunding> getAppointmentFundings() {
072            return this.getSalarySettingExpansion().getPendingBudgetConstructionAppointmentFunding();
073        }
074    
075        /**
076         * @see org.kuali.kfs.module.bc.document.web.struts.SalarySettingBaseForm#getRefreshCallerName()
077         */
078        @Override
079        public String getRefreshCallerName() {
080            return BCConstants.QUICK_SALARY_SETTING_REFRESH_CALLER;
081        }
082    
083        /**
084         * Gets the salarySettingExpansion attribute.
085         * 
086         * @return Returns the salarySettingExpansion.
087         */
088        public SalarySettingExpansion getSalarySettingExpansion() {
089            return salarySettingExpansion;
090        }
091    
092        /**
093         * Sets the salarySettingExpansion attribute value.
094         * 
095         * @param salarySettingExpansion The salarySettingExpansion to set.
096         */
097        public void setSalarySettingExpansion(SalarySettingExpansion salarySettingExpansion) {
098            this.salarySettingExpansion = salarySettingExpansion;
099        }
100    
101        /**
102         * Gets the refreshPositionBeforeSalarySetting attribute.
103         * 
104         * @return Returns the refreshPositionBeforeSalarySetting.
105         */
106        public boolean isRefreshPositionBeforeSalarySetting() {
107            return refreshPositionBeforeSalarySetting;
108        }
109    
110        /**
111         * Sets the refreshPositionBeforeSalarySetting attribute value.
112         * 
113         * @param refreshPositionBeforeSalarySetting The refreshPositionBeforeSalarySetting to set.
114         */
115        public void setRefreshPositionBeforeSalarySetting(boolean refreshPositionBeforeSalarySetting) {
116            this.refreshPositionBeforeSalarySetting = refreshPositionBeforeSalarySetting;
117        }
118    
119        /**
120         * Gets the refreshIncumbentBeforeSalarySetting attribute.
121         * 
122         * @return Returns the refreshIncumbentBeforeSalarySetting.
123         */
124        public boolean isRefreshIncumbentBeforeSalarySetting() {
125            return refreshIncumbentBeforeSalarySetting;
126        }
127    
128        /**
129         * Sets the refreshIncumbentBeforeSalarySetting attribute value.
130         * 
131         * @param refreshIncumbentBeforeSalarySetting The refreshIncumbentBeforeSalarySetting to set.
132         */
133        public void setRefreshIncumbentBeforeSalarySetting(boolean refreshIncumbentBeforeSalarySetting) {
134            this.refreshIncumbentBeforeSalarySetting = refreshIncumbentBeforeSalarySetting;
135        }
136    
137        /**
138         * @see org.kuali.kfs.module.bc.document.web.struts.SalarySettingBaseForm#isBudgetByAccountMode()
139         */
140        @Override
141        public boolean isBudgetByAccountMode() {
142            return true;
143        }
144    
145        /**
146         * Gets the viewOnlyEntry attribute. In the quick salary setting context viewOnlyEntry checks the system view only and account
147         * access. Both system view only and full entry can both exist (be true), it just means that the user would have edit access if
148         * the system was not in view only mode. These facts are used to determine the effective viewOnlyEntry value
149         * 
150         * @return Returns the viewOnlyEntry.
151         */
152        @Override
153        public boolean isViewOnlyEntry() {
154            return super.isViewOnlyEntry() || !isEditAllowed();
155        }
156    
157    }