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.endow.businessobject;
017
018 import java.math.BigDecimal;
019 import java.util.LinkedHashMap;
020 import java.util.List;
021
022 import org.kuali.rice.kns.bo.TransientBusinessObjectBase;
023
024 public class GainLossDistributionTotalReportLine extends TransientBusinessObjectBase {
025
026 protected String documentType;
027 protected String documentId;
028 protected String securityId;
029 protected int totalNumberOfTransactionLines = 0;
030 protected BigDecimal unitAdjustmentAmount = BigDecimal.ZERO;
031 protected BigDecimal totalHoldingAdjustmentAmount = BigDecimal.ZERO;
032
033 /**
034 * Constructs a GainLossDistributionTotalReportLine.java.
035 *
036 * @param documentType
037 * @param documentId
038 * @param securityId
039 */
040 public GainLossDistributionTotalReportLine(String documentType, String documentId, String securityId) {
041 this.documentType = documentType;
042 this.documentId = documentId;
043 this.securityId = securityId;
044 }
045
046 /**
047 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
048 */
049 @Override
050 protected LinkedHashMap toStringMapper() {
051 // TODO Auto-generated method stub
052 return null;
053 }
054
055 /**
056 * Gets the documentType.
057 *
058 * @return documentType
059 */
060 public String getDocumentType() {
061 return documentType;
062 }
063
064 /**
065 * Sets the documentType.
066 *
067 * @param documentType
068 */
069 public void setDocumentType(String documentType) {
070 this.documentType = documentType;
071 }
072
073 /**
074 * Gets the documentId.
075 *
076 * @return documentId
077 */
078 public String getDocumentId() {
079 return documentId;
080 }
081
082 /**
083 * Sets the documentId.
084 *
085 * @param documentId
086 */
087 public void setDocumentId(String documentId) {
088 this.documentId = documentId;
089 }
090
091 /**
092 * Gets the securityId.
093 *
094 * @return securityId
095 */
096 public String getSecurityId() {
097 return securityId;
098 }
099
100 /**
101 * Sets the securityId.
102 *
103 * @param securityId
104 */
105 public void setSecurityId(String securityId) {
106 this.securityId = securityId;
107 }
108
109 /**
110 * Gets the totalNumberOfTransactionLines.
111 *
112 * @return totalNumberOfTransactionLines
113 */
114 public int getTotalNumberOfTransactionLines() {
115 return totalNumberOfTransactionLines;
116 }
117
118 /**
119 * Sets the totalNumberOfTransactionLines.
120 *
121 * @param totalNumberOfTransactionLines
122 */
123 public void setTotalNumberOfTransactionLines(int totalNumberOfTransactionLines) {
124 this.totalNumberOfTransactionLines = totalNumberOfTransactionLines;
125 }
126
127 /**
128 * Gets the unitAdjustmentAmount.
129 *
130 * @return unitAdjustmentAmount
131 */
132 public BigDecimal getUnitAdjustmentAmount() {
133 return unitAdjustmentAmount;
134 }
135
136 /**
137 * Sets the unitAdjustmentAmount.
138 *
139 * @param unitAdjustmentAmount
140 */
141 public void setUnitAdjustmentAmount(BigDecimal unitAdjustmentAmount) {
142 this.unitAdjustmentAmount = unitAdjustmentAmount;
143 }
144
145 /**
146 * Gets the totalHoldingAdjustmentAmount.
147 *
148 * @return totalHoldingAdjustmentAmount
149 */
150 public BigDecimal getTotalHoldingAdjustmentAmount() {
151 return totalHoldingAdjustmentAmount;
152 }
153
154 /**
155 * Sets the totalHoldingAdjustmentAmount.
156 *
157 * @param totalHoldingAdjustmentAmount
158 */
159 public void setTotalHoldingAdjustmentAmount(BigDecimal totalHoldingAdjustmentAmount) {
160 this.totalHoldingAdjustmentAmount = totalHoldingAdjustmentAmount;
161 }
162
163 /**
164 * Adds the unitAdjustmentAmount.
165 *
166 * @param unitAdjustmentAmount
167 */
168 public void addUnitAdjustmentAmount(BigDecimal unitAdjustmentAmount) {
169 this.unitAdjustmentAmount = this.unitAdjustmentAmount.add(unitAdjustmentAmount);
170 totalNumberOfTransactionLines++;
171 }
172
173 /**
174 * Computes the total holding adjustment based on the tax lots holding cost and adds it to totalHoldingAdjustmentAmount.
175 *
176 * @param endowmentTransactionLine
177 */
178 public void addTotalHoldingAdjustmentAmount(EndowmentTransactionLine endowmentTransactionLine) {
179
180 List<EndowmentTransactionTaxLotLine> taxLotLines = endowmentTransactionLine.getTaxLotLines();
181 BigDecimal totalHoldingAmount = BigDecimal.ZERO;
182
183 for (EndowmentTransactionTaxLotLine taxLotLine : taxLotLines) {
184 totalHoldingAmount = totalHoldingAmount.add(taxLotLine.getLotHoldingCost());
185 }
186
187 this.totalHoldingAdjustmentAmount = this.totalHoldingAdjustmentAmount.add(totalHoldingAmount);
188 }
189
190 }