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