001 /*
002 * Copyright 2007 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
017 package edu.sampleu.financial.bo;
018
019 import java.sql.Date;
020 import java.util.LinkedHashMap;
021
022 import org.apache.commons.lang.builder.EqualsBuilder;
023 import org.apache.log4j.Logger;
024 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
025
026 /**
027 * Contains information specific to a parent Vendor, which may be shared by its division Vendors if it has any. Contained by a
028 * <code>VendorDetail</code>.
029 *
030 * @see org.kuali.kfs.vnd.businessobject.VendorDetail
031 */
032 public class VendorHeader extends PersistableBusinessObjectBase {
033 private static Logger LOG = Logger.getLogger(VendorHeader.class);
034
035 private Integer vendorHeaderGeneratedIdentifier;
036 private String vendorTypeCode;
037 private String vendorTaxNumber;
038 private String vendorTaxTypeCode;
039 private String vendorOwnershipCode;
040 private String vendorOwnershipCategoryCode;
041 private Date vendorFederalWithholdingTaxBeginningDate;
042 private Date vendorFederalWithholdingTaxEndDate;
043 private Boolean vendorW9ReceivedIndicator;
044 private Boolean vendorW8BenReceivedIndicator;
045 private Boolean vendorDebarredIndicator;
046 private Boolean vendorForeignIndicator;
047
048 // private VendorType vendorType;
049 private OwnershipType vendorOwnership;
050 // private OwnershipCategory vendorOwnershipCategory;
051 // private List<VendorSupplierDiversity> vendorSupplierDiversities;
052 // private List<VendorTaxChange> vendorTaxChanges;
053
054 /**
055 * Default constructor.
056 */
057 public VendorHeader() {
058 super();
059 // vendorSupplierDiversities = new TypedArrayList(VendorSupplierDiversity.class);
060 }
061
062 public Integer getVendorHeaderGeneratedIdentifier() {
063
064 return vendorHeaderGeneratedIdentifier;
065 }
066
067 public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderGeneratedIdentifier) {
068 this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier;
069 }
070
071 public String getVendorTypeCode() {
072
073 return vendorTypeCode;
074 }
075
076 public void setVendorTypeCode(String vendorTypeCode) {
077 this.vendorTypeCode = vendorTypeCode;
078 }
079
080 public String getVendorTaxNumber() {
081
082 return vendorTaxNumber;
083 }
084
085 public void setVendorTaxNumber(String vendorTaxNumber) {
086 this.vendorTaxNumber = vendorTaxNumber;
087 }
088
089 public String getVendorTaxTypeCode() {
090
091 return vendorTaxTypeCode;
092 }
093
094 public void setVendorTaxTypeCode(String vendorTaxTypeCode) {
095 this.vendorTaxTypeCode = vendorTaxTypeCode;
096 }
097
098 public String getVendorOwnershipCode() {
099
100 return vendorOwnershipCode;
101 }
102
103 public void setVendorOwnershipCode(String vendorOwnershipCode) {
104 this.vendorOwnershipCode = vendorOwnershipCode;
105 }
106
107 public String getVendorOwnershipCategoryCode() {
108
109 return vendorOwnershipCategoryCode;
110 }
111
112 public void setVendorOwnershipCategoryCode(String vendorOwnershipCategoryCode) {
113 this.vendorOwnershipCategoryCode = vendorOwnershipCategoryCode;
114 }
115
116 public Date getVendorFederalWithholdingTaxBeginningDate() {
117
118 return vendorFederalWithholdingTaxBeginningDate;
119 }
120
121 public void setVendorFederalWithholdingTaxBeginningDate(Date vendorFederalWithholdingTaxBeginningDate) {
122 this.vendorFederalWithholdingTaxBeginningDate = vendorFederalWithholdingTaxBeginningDate;
123 }
124
125 public Date getVendorFederalWithholdingTaxEndDate() {
126
127 return vendorFederalWithholdingTaxEndDate;
128 }
129
130 public void setVendorFederalWithholdingTaxEndDate(Date vendorFederalWithholdingTaxEndDate) {
131 this.vendorFederalWithholdingTaxEndDate = vendorFederalWithholdingTaxEndDate;
132 }
133
134 public Boolean getVendorW9ReceivedIndicator() {
135
136 return vendorW9ReceivedIndicator;
137 }
138
139 public void setVendorW9ReceivedIndicator(Boolean vendorW9ReceivedIndicator) {
140 this.vendorW9ReceivedIndicator = vendorW9ReceivedIndicator;
141 }
142
143 public Boolean getVendorW8BenReceivedIndicator() {
144
145 return vendorW8BenReceivedIndicator;
146 }
147
148 public void setVendorW8BenReceivedIndicator(Boolean vendorW8BenReceivedIndicator) {
149 this.vendorW8BenReceivedIndicator = vendorW8BenReceivedIndicator;
150 }
151
152 /*public VendorType getVendorType() {
153 // refresh because proxy doesn't work properly and vendor type sometimes is null
154 if (vendorType == null)
155 this.refreshReferenceObject("vendorType");
156 return vendorType;
157 }
158
159 */
160
161 /**
162 * Sets the vendorType attribute.
163 *
164 * @param vendorType The vendorType to set.
165 * @deprecated
166 *//*
167 public void setVendorType(VendorType vendorType) {
168 this.vendorType = vendorType;
169 }*/
170 public OwnershipType getVendorOwnership() {
171
172 return vendorOwnership;
173 }
174
175 /**
176 * Sets the vendorOwnership attribute.
177 *
178 * @param vendorOwnership The vendorOwnership to set.
179 * @deprecated
180 */
181 public void setVendorOwnership(OwnershipType vendorOwnership) {
182 this.vendorOwnership = vendorOwnership;
183 }
184
185 // public OwnershipCategory getVendorOwnershipCategory() {
186 //
187 // return vendorOwnershipCategory;
188 // }
189
190 /**
191 * Sets the vendorOwnershipCategory attribute.
192 *
193 * @param vendorOwnershipCategory The vendorOwnershipCategory to set.
194 * @deprecated
195 */
196 // public void setVendorOwnershipCategory(OwnershipCategory vendorOwnershipCategory) {
197 // this.vendorOwnershipCategory = vendorOwnershipCategory;
198 // }
199 public Boolean getVendorDebarredIndicator() {
200
201 return vendorDebarredIndicator;
202 }
203
204 /**
205 * Sets the vendorDebarredIndicator attribute value.
206 *
207 * @param vendorDebarredIndicator The vendorDebarredIndicator to set.
208 */
209 public void setVendorDebarredIndicator(Boolean vendorDebarredIndicator) {
210 this.vendorDebarredIndicator = vendorDebarredIndicator;
211 }
212
213 public Boolean getVendorForeignIndicator() {
214
215 return vendorForeignIndicator;
216 }
217
218 /**
219 * Sets the vendorForeignIndicator attribute value.
220 *
221 * @param vendorForeignIndicator The vendorForeignIndicator to set.
222 */
223 public void setVendorForeignIndicator(Boolean vendorForeignIndicator) {
224 this.vendorForeignIndicator = vendorForeignIndicator;
225 }
226
227 // public List<VendorSupplierDiversity> getVendorSupplierDiversities() {
228 //
229 // return vendorSupplierDiversities;
230 // }
231 //
232 // public void setVendorSupplierDiversities(List<VendorSupplierDiversity> vendorSupplierDiversities) {
233 // this.vendorSupplierDiversities = vendorSupplierDiversities;
234 // }
235
236 /**
237 * Used by the Spring Framework to correctly retrieve the vendor supplier diversities as a single
238 * attribute. The vendorSupplierDiversities is a collection of diversities, and without this method,
239 * there was no way to get a single attribute for it.
240 *
241 * @return the vendor supplier diversities as a single attribute
242 */
243 // public String getVendorSupplierDiversitiesAsString() {
244 // StringBuilder sb = new StringBuilder("vendorSupplierDiversities=[");
245 //
246 // boolean first = true;
247 // for (VendorSupplierDiversity vsd : vendorSupplierDiversities) {
248 // if (!first) {
249 // sb.append(", ");
250 // } else {
251 // first = false;
252 // }
253 // sb.append(vsd.getVendorSupplierDiversityCode().toString());
254 // }
255 // sb.append(']');
256 //
257 // return sb.toString();
258 // }
259 //
260 // public List<VendorTaxChange> getVendorTaxChanges() {
261 //
262 // return vendorTaxChanges;
263 // }
264 //
265 // public void setVendorTaxChanges(List<VendorTaxChange> vendorTaxChanges) {
266 // this.vendorTaxChanges = vendorTaxChanges;
267 // }
268
269 /**
270 * This method is a predicate to test equality of all the persisted attributes of an instance of this class, including member
271 * collections. This is used to determine whether to route
272 *
273 * @param vh Another VendorHeader object
274 * @return True if all non-derived attributes of the given object are equal to this one's
275 */
276 public boolean isEqualForRouting(Object toCompare) {
277 LOG.debug("Entering isEqualForRouting.");
278 if (!(toCompare instanceof VendorHeader)) {
279 return false;
280 } else {
281 VendorHeader vh = (VendorHeader) toCompare;
282 return new EqualsBuilder().append(this.getVendorTypeCode(), vh.getVendorTypeCode()).append(this.getVendorTaxNumber(), vh.getVendorTaxNumber()).append(this.getVendorOwnershipCode(), vh.getVendorOwnershipCode()).append(this.getVendorOwnershipCategoryCode(), vh.getVendorOwnershipCategoryCode()).append(this.getVendorFederalWithholdingTaxBeginningDate(), vh.getVendorFederalWithholdingTaxBeginningDate()).append(this.getVendorFederalWithholdingTaxEndDate(), vh.getVendorFederalWithholdingTaxEndDate()).append(this.getVendorW9ReceivedIndicator(), vh.getVendorW9ReceivedIndicator()).append(this.getVendorW8BenReceivedIndicator(), vh.getVendorW8BenReceivedIndicator()).append(this.getVendorDebarredIndicator(), vh.getVendorDebarredIndicator()).append(this.getVendorForeignIndicator(), vh.getVendorForeignIndicator()).isEquals();
283 }
284 }
285
286 }