AcceptedInvalidDocument.java
package com.tradecloud.domain.document.invoice;
import com.tradecloud.authentication.User;
import com.tradecloud.common.base.HibernateUtils;
import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.document.DocumentType;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Iterator;
import java.util.List;
@Entity
@Table(name = "AcceptedInvalidDocument")
@Access(AccessType.FIELD)
public class AcceptedInvalidDocument extends PersistenceBase implements Serializable {
@ManyToOne(fetch = FetchType.LAZY)
private CostsInvoice costsInvoice;
@ManyToOne(fetch = FetchType.LAZY)
private User user;
@ElementCollection
@CollectionTable(name = "AcceptedInvalidDocument_validationFailures", joinColumns = @JoinColumn(name = "AcceptedInvalidDocument_id"))
@Column(name = "validation_failure")
private List<String> validationFailures;
@ElementCollection
@CollectionTable(name = "AcceptedInvalidDocument_matchingFailures", joinColumns = @JoinColumn(name = "AcceptedInvalidDocument_id"))
@Column(name = "matching_failure")
private List<String> matchingFailures;
private String acceptReason;
public AcceptedInvalidDocument() {
}
public AcceptedInvalidDocument(CostsInvoice costsInvoice, User user, List<String> validationFailures,
List<String> matchingFailures, String acceptReason) {
this.costsInvoice = costsInvoice;
this.user = user;
this.validationFailures = validationFailures;
this.matchingFailures = matchingFailures;
this.acceptReason = acceptReason;
}
public CostsInvoice getCostsInvoice() {
return costsInvoice;
}
public void setCostsInvoice(CostsInvoice costsInvoice) {
this.costsInvoice = costsInvoice;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List<String> getValidationFailures() {
return validationFailures;
}
public void setValidationFailures(List<String> validationFailures) {
this.validationFailures = validationFailures;
}
public List<String> getMatchingFailures() {
return matchingFailures;
}
public void setMatchingFailures(List<String> matchingFailures) {
this.matchingFailures = matchingFailures;
}
public String getAcceptReason() {
return acceptReason;
}
public void setAcceptReason(String acceptReason) {
this.acceptReason = acceptReason;
}
public static String formatErrors(List errors) {
StringBuffer buffer = new StringBuffer();
int count = 1;
for (Iterator iterator = errors.iterator(); iterator.hasNext(); ) {
buffer.append(count);
buffer.append(". ");
buffer.append((String) iterator.next());
buffer.append(". ");
count++;
}
return buffer.toString();
}
public String getOrganisation() {
if (costsInvoice.getDocumentType() == DocumentType.COMMERCIAL_INVOICE) {
CommercialInvoice commercialInvoice = (CommercialInvoice) HibernateUtils.getNonProxyObject(costsInvoice);
return commercialInvoice.getOrganisationalUnit() != null ? commercialInvoice.getOrganisationalUnit().getName() : "";
} else {
return "";
}
}
public String getValidationFailuresString() {
if (!validationFailures.isEmpty()) {
return formatErrors(validationFailures);
} else {
return "";
}
}
public String getMatchingFailuresString() {
if (!matchingFailures.isEmpty()) {
return formatErrors(matchingFailures);
} else {
return "";
}
}
public String getShipmentReference() {
return costsInvoice.getShipment().getReference();
}
public String getShipmentNumber() {
return costsInvoice.getShipment().getNumber();
}
public String getSupplier() {
return costsInvoice.getDocumentType() == DocumentType.COMMERCIAL_INVOICE ? costsInvoice.getSupplier().getName() : "";
}
}