package com.ejie.ad74a.util.constantes;

import java.util.Locale;

import org.springframework.context.i18n.LocaleContextHolder;

import com.ejie.ad74a.model.Combo;
import com.ejie.ad74a.util.comun.Utilidades;

/**
 * Requerimientos para la tarea de estudio de documentación
 */

public enum RequerimientosEnum {

	SOL_NO_FIRMA(1, "requerimientosEnum.solNoFirma"), //
	REP_NO_FIRMA(2, "requerimientosEnum.repNoFirma"), //
	REP_NO_ACREDITA(3, "requerimientosEnum.repNoAcredita"), //
	NO_AUT_VER_PADRON(4, "requerimientosEnum.noAutVerPadron"), //
	NO_AUT_VER_PADRON_SOLO(5, "requerimientosEnum.noAutVerPadronSolo"), //
	AUT_VER_PADRON_NO_SOLO_INF_SOL(6, "requerimientosEnum.autVerPadronNoSoloInfSol"), //
	DEPENDECIA_INFORME_SOCIAL(7, "requerimientosEnum.dependeciaInformeSocial"), //
	RIESGO_AISLAMIENTO_SIN_INF_SOCIAL(8, "requerimientosEnum.riesgoAislamientoSinInfSocial"), //
	SIN_FICHA_SANITARIA(9, "requerimientosEnum.sinFichaSanitaria"),
	SIN_TELEFONO_FIJO(10, "requerimientosEnum.sinTelefonoFijo"), //
	SIN_DATOS_BANCARIOS(11, "requerimientosEnum.sinDatosBancarios"), //
	SOL_EXENCION_BIZKAIA(12, "requerimientosEnum.solExencionBizkaia");

	private RequerimientosEnum(Integer idBBDD, String labelDesc) {
		this.labelDesc = labelDesc;
		this.idBBDD = idBBDD;
	}

	private Integer idBBDD;
	private String labelDesc;

	public Integer getIdBBDD() {
		return this.idBBDD;
	}

	public String getLabelDesc() {
		return Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, this.labelDesc,
				LocaleContextHolder.getLocale());
	}

	public String getLabelDesc(Locale locale) {
		return Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, this.labelDesc, locale);
	}

	public Combo getCombo() {
		return new Combo(idBBDD.toString(),
				Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, this.labelDesc,
						com.ejie.ad74a.constantes.Constantes.LOCALE_ES),
				Utilidades.getLabelFromResource(Constantes.BASENAME_RESOURCE_AD74A_I18N, this.labelDesc,
						com.ejie.ad74a.constantes.Constantes.LOCALE_EU));
	}

	public static RequerimientosEnum getByIdBBDD(Long idBBDD) {
		for (RequerimientosEnum e : values()) {
			if (e.idBBDD.equals(idBBDD))
				return e;
		}
		return null;
	}

}
