package br.com.caelum.stella.gateway.pagseguro;
import java.math.BigDecimal;
import br.com.caelum.stella.gateway.core.BigDecimalFormatter;
/**
* Representa um item do carrinho que deve ser enviado ao UOL.
* @author Alberto Pc
*
*/
public class PagSeguroItem {
private String id;
private String descricao;
private int quantidade;
private BigDecimal valor;
private BigDecimal frete;
private Double pesoGramas;
private BigDecimal taxaExtra;
/**
* Uso controlado para montar a autorizacao.
* @param id
* @param descricao
* @param quantidade
* @param valor
* @param frete
* @param pesoGramas
* @param taxaExtra
*/
PagSeguroItem(String id, String descricao, int quantidade, BigDecimal valor,
BigDecimal frete,BigDecimal taxaExtra) {
// TODO Auto-generated constructor stub
this(id,descricao,quantidade,valor,frete,null,taxaExtra);
}
/**
* Usado para itens que não precisam de frete
* @param id
* @param descricao
* @param quantidade
* @param valor
*/
public PagSeguroItem(String id, String descricao, int quantidade, BigDecimal valor) {
this(id,descricao,quantidade,valor,BigDecimal.ZERO,0d);
}
/**
* Usado para itens que precisam de frete.
* @param id
* @param descricao
* @param quantidade
* @param valor
* @param frete
* @param pesoGramas
*/
public PagSeguroItem(String id, String descricao, int quantidade, BigDecimal valor,
BigDecimal frete, Double pesoGramas) {
this(id,descricao,quantidade,valor,frete,pesoGramas,BigDecimal.ZERO);
}
/**
*
* @param id
* @param descricao
* @param quantidade
* @param valor
* @param frete
* @param pesoGramas
* @param taxaExtra
*/
private PagSeguroItem(String id, String descricao, int quantidade, BigDecimal valor,
BigDecimal frete, Double pesoGramas,BigDecimal taxaExtra) {
super();
this.id = id;
this.descricao = descricao;
this.quantidade = quantidade;
this.valor = valor;
this.frete = frete;
this.pesoGramas = pesoGramas;
this.taxaExtra = taxaExtra;
}
public String getId() {
return id;
}
public String getDescricao() {
return descricao;
}
public int getQuantidade() {
return quantidade;
}
public BigDecimal getValor() {
return valor;
}
public BigDecimal getFrete() {
return frete;
}
public Double getPesoGramas() {
return pesoGramas;
}
/**
*
* @return o valor em centavos.
*/
public String getValorFormatado(){
return new BigDecimalFormatter().bigDecimalToStringInCents(valor);
}
/**
*
* @return o frete em centavos
*/
public String getValorFreteFormatado(){
return new BigDecimalFormatter().bigDecimalToStringInCents(frete);
}
/**
*
* @return o peso sem casas decimais
*/
public String getPesoFormatado(){
return String.format("%.0f",pesoGramas);
}
/**
*
* @return taxa extra aplicada sobre o item.
*/
public BigDecimal getTaxaExtra() {
if(taxaExtra==null){
taxaExtra = BigDecimal.ZERO;
}
return taxaExtra;
}
}