/*******************************************************************************
* Copyright 2012 Christian Ternes and Thorsten Volland
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package org.businessmanager.web.bean;
import java.math.BigDecimal;
import java.math.RoundingMode;
import org.businessmanager.domain.InvoiceLineItem;
public class LineItemBean {
private Integer posNo;
private Long id;
private String description;
private BigDecimal unitPrice;
private BigDecimal quantity = BigDecimal.ONE;
private BigDecimal vatPercentage;
LineItemBean() {
}
public LineItemBean(int posNo, BigDecimal vatPercentage) {
this.posNo = posNo;
this.vatPercentage = vatPercentage;
}
public Integer getPosNo() {
return posNo;
}
public void setPosNo(Integer posNo) {
this.posNo = posNo;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public BigDecimal getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(BigDecimal unitPrice) {
this.unitPrice = unitPrice;
}
public BigDecimal getQuantity() {
return quantity;
}
public void setQuantity(BigDecimal quantity) {
this.quantity = quantity;
}
public BigDecimal getSumPriceNet() {
if(unitPrice != null) {
return quantity.multiply(unitPrice).setScale(2, RoundingMode.HALF_UP);
}
return BigDecimal.ZERO;
}
public BigDecimal getSumPriceGross() {
if(unitPrice != null) {
BigDecimal sumNet = quantity.multiply(unitPrice);
return sumNet.add(getVatAmount()).setScale(2, RoundingMode.HALF_UP);
}
return BigDecimal.ZERO;
}
public BigDecimal getVatPercentage() {
return vatPercentage;
}
public void setVatPercentage(BigDecimal vatPercentage) {
this.vatPercentage = vatPercentage;
}
public BigDecimal getVatAmount() {
if(unitPrice != null) {
BigDecimal vatAmountUnit = unitPrice.multiply(vatPercentage.divide(new BigDecimal("100"))).setScale(2, RoundingMode.HALF_UP);
return vatAmountUnit.multiply(quantity).setScale(2, RoundingMode.HALF_UP);
}
return BigDecimal.ZERO;
}
public InvoiceLineItem getInvoiceLineItem() {
InvoiceLineItem lineItem = new InvoiceLineItem();
lineItem.setId(getId());
lineItem.setDescription(getDescription());
lineItem.setPosNo(getPosNo());
lineItem.setQuantity(getQuantity());
lineItem.setSumPriceGross(getSumPriceGross());
lineItem.setSumPriceNet(getSumPriceNet());
lineItem.setUnitPrice(getUnitPrice());
lineItem.setVatPercentage(getVatPercentage());
return lineItem;
}
public void copyDataFromLineItem(InvoiceLineItem lineItem) {
if(lineItem != null) {
setId(lineItem.getId());
setDescription(lineItem.getDescription());
setPosNo(lineItem.getPosNo());
setQuantity(lineItem.getQuantity());
setUnitPrice(lineItem.getUnitPrice());
setVatPercentage(lineItem.getVatPercentage());
}
}
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
}