package com.rjconsultores.ventaboletos.vo.comissao;

import java.math.BigDecimal;

import com.rjconsultores.ventaboletos.utilerias.BigDecimalUtil;
import com.rjconsultores.ventaboletos.utilerias.LocaleUtil;
import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;

public class FormapagoVO {
	
	private Integer formapagoId;
	private String descpago;
	private Boolean indconferenciafisicacomissao;
	private BigDecimal importe;
	
	public FormapagoVO() {
		super();
	}
	
	public FormapagoVO(Integer formapagoId) {
		super();
		this.formapagoId = formapagoId;
	}
	
	public FormapagoVO(Integer formapagoId, String descpago, Boolean indconferenciafisicacomissao, BigDecimal importeFp) {
		this();
		this.formapagoId = formapagoId;
		this.descpago = descpago;
		this.indconferenciafisicacomissao = indconferenciafisicacomissao;
		this.importe = importeFp;
	}

	public Integer getFormapagoId() {
		return formapagoId;
	}

	public void setFormapagoId(Integer formapagoId) {
		this.formapagoId = formapagoId;
	}

	public String getDescpago() {
		return descpago;
	}

	public void setDescpago(String descpago) {
		this.descpago = descpago;
	}

	public Boolean getIndconferenciafisicacomissao() {
		return indconferenciafisicacomissao;
	}

	public void setIndconferenciafisicacomissao(Boolean indconferenciafisicacomissao) {
		this.indconferenciafisicacomissao = indconferenciafisicacomissao;
	}

	public BigDecimal getImporte() {
		return importe;
	}

	public void setImporte(BigDecimal importe) {
		this.importe = importe;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((formapagoId == null) ? 0 : formapagoId.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		FormapagoVO other = (FormapagoVO) obj;
		if (formapagoId == null) {
			if (other.formapagoId != null)
				return false;
		} else if (!formapagoId.equals(other.formapagoId))
			return false;
		return true;
	}
	
	public String getImporteFormatado() {
		return BigDecimalUtil.getBigDecimalToStringDouble2CasasDecimaisFormatado(getImporte(), LocaleUtil.getLocale());
	}
	
	public void add(BigDecimal importe) {
		this.importe = MoneyHelper.somar(this.importe, (importe != null ? importe : BigDecimal.ZERO));
	}
	
	public void subtract(BigDecimal importe) {
		this.importe = MoneyHelper.subtrair(this.importe,(importe != null ? importe : BigDecimal.ZERO));
	}

}
