ServiceProviderCreditNote.java
package com.tradecloud.domain.document;
import com.tradecloud.domain.document.invoice.BaseServiceProviderInvoice;
import com.tradecloud.domain.document.invoice.ServiceProviderInvoice;
import com.tradecloud.domain.settlement.RateDateSource;
import org.apache.commons.collections4.keyvalue.MultiKey;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.math.BigDecimal;
import java.util.Date;
@Entity
@Table(name = "serviceprovidercreditnote")
@NamedQueries({
@NamedQuery(name = "serviceProviderCreditNote.byReference",
query = "from ServiceProviderCreditNote spcn where spcn.reference = :reference"),
@NamedQuery(name = "serviceProviderCreditNote.byReferenceAndServiceProvider",
query = "from ServiceProviderCreditNote spcn where spcn.reference = :reference and spcn.serviceProvider = :serviceProvider"),
@NamedQuery(name = "serviceProviderCreditNote.byServiceProviderInvoice",
query = "from ServiceProviderCreditNote spcn where spcn.serviceProviderInvoice = :serviceProviderInvoice")})
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "ServiceProviderCreditNote")
public class ServiceProviderCreditNote extends BaseServiceProviderInvoice {
private static final long serialVersionUID = 1L;
@NotNull
@OneToOne
private ServiceProviderInvoice serviceProviderInvoice;
@Override
public Date resolveRateDate(RateDateSource source) {
// TODO Auto-generated method stub
return null;
}
@Override
public DocumentType getDocumentType() {
return DocumentType.SERVICE_PROVIDER_CREDIT_NOTE;
}
@Override
public Object getTraversalKey() {
return new MultiKey(ServiceProviderCreditNote.class, reference);
}
@Override
public BigDecimal getNetLocalVatable() {
return null;
}
@Override
public BigDecimal getNetLocalNonVatable() {
return null;
}
public ServiceProviderInvoice getServiceProviderInvoice() {
return serviceProviderInvoice;
}
public void setServiceProviderInvoice(ServiceProviderInvoice serviceProviderInvoice) {
this.serviceProviderInvoice = serviceProviderInvoice;
}
@Override
public String getSplitInvoiceReference() {
return null;
}
@Transient
public String getType() {
return "SPCN";
}
}