/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.vnd.businessobject;
import java.lang.reflect.Field;
import java.sql.Timestamp;
import java.util.LinkedHashMap;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.kuali.kfs.sys.context.SpringContext;
import org.kuali.rice.kim.api.identity.Person;
import org.kuali.rice.krad.bo.BusinessObject;
import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
import org.kuali.rice.krad.datadictionary.AttributeSecurity;
import org.kuali.rice.krad.service.DataDictionaryService;
import org.kuali.rice.krad.util.ObjectUtils;
/**
* Records any changes to a Vendor's Tax Number or Type. Not shown on the screen.
*/
public class VendorTaxChange extends PersistableBusinessObjectBase {
private Integer vendorTaxChangeGeneratedIdentifier;
private Integer vendorHeaderGeneratedIdentifier;
private Timestamp vendorTaxChangeTimestamp;
private String vendorPreviousTaxNumber;
private String vendorPreviousTaxTypeCode;
private String vendorTaxChangePersonIdentifier;
private Person vendorTaxChangePerson;
private VendorHeader vendorHeader;
/**
* Default constructor.
*/
public VendorTaxChange() {
}
/**
* Constructs a VendorTaxChange.
*
* @param vndrHdrGenId The generated Id of the Vendor Header
* @param taxChangeDate The date of this change
* @param prevTaxNum The tax number previously
* @param prevTaxTypeCode The tax type previously
* @param taxChangePersonId The Id of the user who is making this change
*/
public VendorTaxChange(Integer vndrHdrGenId, Timestamp taxChangeTimestamp, String prevTaxNum, String prevTaxTypeCode, String taxChangePersonId) {
this.vendorHeaderGeneratedIdentifier = vndrHdrGenId;
this.vendorTaxChangeTimestamp = taxChangeTimestamp;
this.vendorPreviousTaxNumber = prevTaxNum;
this.vendorPreviousTaxTypeCode = prevTaxTypeCode;
this.vendorTaxChangePersonIdentifier = taxChangePersonId;
}
public Integer getVendorTaxChangeGeneratedIdentifier() {
return vendorTaxChangeGeneratedIdentifier;
}
public void setVendorTaxChangeGeneratedIdentifier(Integer vendorTaxChangeGeneratedIdentifier) {
this.vendorTaxChangeGeneratedIdentifier = vendorTaxChangeGeneratedIdentifier;
}
public Integer getVendorHeaderGeneratedIdentifier() {
return vendorHeaderGeneratedIdentifier;
}
public void setVendorHeaderGeneratedIdentifier(Integer vendorHeaderGeneratedIdentifier) {
this.vendorHeaderGeneratedIdentifier = vendorHeaderGeneratedIdentifier;
}
public Timestamp getVendorTaxChangeTimestamp() {
return vendorTaxChangeTimestamp;
}
public void setVendorTaxChangeTimestamp(Timestamp vendorTaxChangeTimestamp) {
this.vendorTaxChangeTimestamp = vendorTaxChangeTimestamp;
}
public String getVendorPreviousTaxNumber() {
return vendorPreviousTaxNumber;
}
public void setVendorPreviousTaxNumber(String vendorPreviousTaxNumber) {
this.vendorPreviousTaxNumber = vendorPreviousTaxNumber;
}
public String getVendorPreviousTaxTypeCode() {
return vendorPreviousTaxTypeCode;
}
public void setVendorPreviousTaxTypeCode(String vendorPreviousTaxTypeCode) {
this.vendorPreviousTaxTypeCode = vendorPreviousTaxTypeCode;
}
public String getVendorTaxChangePersonIdentifier() {
return vendorTaxChangePersonIdentifier;
}
public void setVendorTaxChangePersonIdentifier(String vendorTaxChangePersonIdentifier) {
this.vendorTaxChangePersonIdentifier = vendorTaxChangePersonIdentifier;
}
public Person getVendorTaxChangePerson() {
vendorTaxChangePerson = SpringContext.getBean(org.kuali.rice.kim.api.identity.PersonService.class).updatePersonIfNecessary(vendorTaxChangePersonIdentifier, vendorTaxChangePerson);
return vendorTaxChangePerson;
}
/**
* Sets the vendorTaxChangePerson attribute.
*
* @param vendorTaxChangePerson The vendorTaxChangePerson to set.
* @deprecated
*/
@Deprecated
public void setVendorTaxChangePerson(Person vendorTaxChangePerson) {
this.vendorTaxChangePerson = vendorTaxChangePerson;
}
public VendorHeader getVendorHeader() {
return vendorHeader;
}
/**
* Sets the vendorHeader attribute value.
*
* @param vendorHeader The vendorHeader to set.
* @deprecated
*/
@Deprecated
public void setVendorHeader(VendorHeader vendorHeader) {
this.vendorHeader = vendorHeader;
}
/**
* @see org.kuali.rice.krad.bo.BusinessObjectBase#toStringMapper()
*/
protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
LinkedHashMap m = new LinkedHashMap();
if (this.vendorTaxChangeGeneratedIdentifier != null) {
m.put("vendorTaxChangeGeneratedIdentifier", this.vendorTaxChangeGeneratedIdentifier.toString());
}
return m;
}
@Override
public String toString() {
class VendorTaxChangeToStringBuilder extends ReflectionToStringBuilder {
private VendorTaxChangeToStringBuilder(Object object) {
super(object);
}
@Override
public boolean accept(Field field) {
if (BusinessObject.class.isAssignableFrom(field.getType())) {
return false;
}
DataDictionaryService dataDictionaryService = SpringContext.getBean(DataDictionaryService.class);
AttributeSecurity attributeSecurity = dataDictionaryService.getAttributeSecurity(VendorTaxChange.class.getName(), field.getName());
if (ObjectUtils.isNotNull(attributeSecurity)
&& (attributeSecurity.isHide() || attributeSecurity.isMask() || attributeSecurity.isPartialMask())) {
return false;
}
return super.accept(field);
}
};
ReflectionToStringBuilder toStringBuilder = new VendorTaxChangeToStringBuilder(this);
return toStringBuilder.toString();
}
}