package com.rjconsultores.ventaboletos.enums;

import org.zkoss.util.resource.Labels;

public enum TipoLancamentoCaixa {
	
	ACRESCIMO(0,Labels.getLabel("label.tipoLancamento.acrescimo"), true),
	REDUCAO(1,Labels.getLabel("label.tipoLancamento.reducao"), false),
	BONUS(2,Labels.getLabel("label.tipoLancamento.bonus"), false),
	DESPESA(3,Labels.getLabel("label.tipoLancamento.despesa"), false),
	BILHETE_CONFIRMADO(4,Labels.getLabel("label.tipoLancamento.bilheteConfirmado"), false),
	BILHETE_ABERTO(5,Labels.getLabel("label.tipoLancamento.bilheteAberto"), false),
	EVENTO_EXTRA(6,Labels.getLabel("label.tipoLancamento.eventoExtra"), false),
	VOUCHER(7,Labels.getLabel("label.tipoLancamento.voucher"), false),
	EXPRESSO(8,Labels.getLabel("label.tipoLancamento.expresso"), false),
	;
	
	private Integer valor;
	private String descricao;
	private boolean indAdicao;
	
	private TipoLancamentoCaixa(Integer valor, String descricao, boolean indAdicao) {
		this.valor = valor;
		this.descricao = descricao;
		this.indAdicao = indAdicao;
	}
	
	public String getDescricao() {
		return descricao;
	}

	@Override
	public String toString() {
		return getDescricao();
	}

	public Integer getValor() {
		return valor;
	}
	
	public static TipoLancamentoCaixa getTipoFormapagoByValor(Integer valor) {

		for (TipoLancamentoCaixa tipo : TipoLancamentoCaixa.values()) {
			if (tipo.getValor().equals(valor)) {
				return tipo;
			}
		}
		return null;
	}
	
	public static TipoLancamentoCaixa buscarPeloValor(String valor) {
		return getTipoFormapagoByValor( Integer.valueOf(valor));
	}

	public boolean isIndAdicao() {
		return indAdicao;
	}

}
