InvoiceCostline.java
package com.tradecloud.domain.costing;
import com.tradecloud.domain.document.DocumentCostline;
import com.tradecloud.domain.document.invoice.CommercialInvoice;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import java.math.BigDecimal;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/**
* InvoiceCostline generated by hbm2java.
*/
@Entity
@Table(name = "invoicecostline")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
public class InvoiceCostline extends DocumentCostline {
private static final long serialVersionUID = 1L;
/**
* Parent.
*/
@ManyToOne
@XmlElement(name = "CommercialInvoice")
private CommercialInvoice invoice;
@OneToMany
@XmlElementWrapper(name = "CreditNoteCostLines")
@XmlElement(name = "CreditNoteCostLine")
private Set<CreditNoteCostLine> creditNoteCostlines = new HashSet<CreditNoteCostLine>();
/**
* Simple constructor of InvoiceCostline instances.
*/
public InvoiceCostline() {
}
public CommercialInvoice getInvoice() {
return invoice;
}
public void setInvoice(CommercialInvoice invoice) {
this.invoice = invoice;
}
public Set<CreditNoteCostLine> getCreditNoteCostlines() {
return creditNoteCostlines;
}
public void setCreditNoteCostlines(Set<CreditNoteCostLine> creditNoteCostlines) {
this.creditNoteCostlines = creditNoteCostlines;
}
public void addCreditNoteCostline(CreditNoteCostLine creditNoteCostline) {
creditNoteCostline.setInvoiceCostline(this);
getCreditNoteCostlines().add(creditNoteCostline);
}
public BigDecimal getNettAmount() {
BigDecimal creditedAmount = new BigDecimal("0.0");
for (Iterator iter = getCreditNoteCostlines().iterator(); iter.hasNext(); ) {
CreditNoteCostLine creditNoteCostline = (CreditNoteCostLine) iter.next();
creditedAmount = creditedAmount.add(creditNoteCostline.getAmount());
}
return getAmount().subtract(creditedAmount);
}
}