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.HashMap;
019 import java.util.List;
020 import java.util.Map;
021
022 import org.kuali.kfs.module.bc.BCConstants;
023 import org.kuali.kfs.module.bc.businessobject.BudgetConstructionPosition;
024 import org.kuali.kfs.module.bc.businessobject.PendingBudgetConstructionAppointmentFunding;
025 import org.kuali.kfs.sys.KFSPropertyConstants;
026
027 public class PositionSalarySettingForm extends DetailSalarySettingForm {
028 private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(PositionSalarySettingForm.class);
029
030 private boolean refreshPositionBeforeSalarySetting;
031
032 private BudgetConstructionPosition budgetConstructionPosition;
033
034
035 /**
036 * Constructs a PositionSalarySettingForm.java.
037 */
038 public PositionSalarySettingForm() {
039 super();
040
041 this.setBudgetConstructionPosition(new BudgetConstructionPosition());
042 }
043
044 /**
045 * @see org.kuali.kfs.module.bc.document.web.struts.DetailSalarySettingForm#createNewAppointmentFundingLine()
046 */
047 @Override
048 public PendingBudgetConstructionAppointmentFunding createNewAppointmentFundingLine() {
049 PendingBudgetConstructionAppointmentFunding appointmentFunding = super.createNewAppointmentFundingLine();
050
051 appointmentFunding.setPositionNumber(this.getBudgetConstructionPosition().getPositionNumber());
052 appointmentFunding.setFinancialObjectCode(this.getBudgetConstructionPosition().getIuDefaultObjectCode());
053
054 return appointmentFunding;
055 }
056
057 /**
058 * @see org.kuali.kfs.module.bc.document.web.struts.SalarySettingBaseForm#getKeyMapOfSalarySettingItem()
059 */
060 @Override
061 public Map<String, Object> getKeyMapOfSalarySettingItem() {
062 Map<String, Object> keyMap = new HashMap<String, Object>();
063
064 keyMap.put(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR, this.getUniversityFiscalYear());
065 keyMap.put(KFSPropertyConstants.POSITION_NUMBER, this.getPositionNumber());
066
067 return keyMap;
068 }
069
070 /**
071 * @see org.kuali.kfs.module.bc.document.web.struts.DetailSalarySettingForm#getRefreshCallerName()
072 */
073 @Override
074 public String getRefreshCallerName() {
075 return BCConstants.POSITION_SALARY_SETTING_REFRESH_CALLER;
076 }
077
078 /**
079 * @see org.kuali.kfs.module.bc.document.web.struts.SalarySettingForm#getAppointmentFundings()
080 */
081 @Override
082 public List<PendingBudgetConstructionAppointmentFunding> getAppointmentFundings() {
083 return this.getBudgetConstructionPosition().getPendingBudgetConstructionAppointmentFunding();
084 }
085
086 /**
087 * Gets the budgetConstructionPosition attribute.
088 *
089 * @return Returns the budgetConstructionPosition.
090 */
091 public BudgetConstructionPosition getBudgetConstructionPosition() {
092 return this.budgetConstructionPosition;
093 }
094
095 /**
096 * Sets the budgetConstructionPosition attribute value.
097 *
098 * @param budgetConstructionPosition The budgetConstructionPosition to set.
099 */
100 public void setBudgetConstructionPosition(BudgetConstructionPosition budgetConstructionPosition) {
101 this.budgetConstructionPosition = budgetConstructionPosition;
102 }
103
104 /**
105 * checks if at least one active edit-able appointment funding line has a sync flag set
106 *
107 * @return true or false
108 */
109 public boolean isPendingPositionSalaryChange(){
110
111 List<PendingBudgetConstructionAppointmentFunding> activeAppointmentFundings = this.getActiveFundingLines();
112 for (PendingBudgetConstructionAppointmentFunding appointmentFunding : activeAppointmentFundings){
113 if (!appointmentFunding.isDisplayOnlyMode()){
114 if (appointmentFunding.isPositionChangeIndicator()){
115 return true;
116 }
117 }
118 }
119 return false;
120 }
121
122 /**
123 * Gets the refreshPositionBeforeSalarySetting attribute.
124 *
125 * @return Returns the refreshPositionBeforeSalarySetting.
126 */
127 public boolean isRefreshPositionBeforeSalarySetting() {
128 return refreshPositionBeforeSalarySetting;
129 }
130
131 /**
132 * Sets the refreshPositionBeforeSalarySetting attribute value.
133 *
134 * @param refreshPositionBeforeSalarySetting The refreshPositionBeforeSalarySetting to set.
135 */
136 public void setRefreshPositionBeforeSalarySetting(boolean refreshPositionBeforeSalarySetting) {
137 this.refreshPositionBeforeSalarySetting = refreshPositionBeforeSalarySetting;
138 }
139
140 /**
141 * Gets the documentTitle
142 * @return
143 */
144 public String getDocumentTitle() {
145 return BCConstants.POSITION_SALARY_SETTING_TITLE;
146 }
147 }