package com.ejie.ad74a.util.comun;

import java.text.ParseException;
import java.util.Date;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ejie.ad74a.model.Contactos;
import com.ejie.ad74a.util.constantes.Constantes;

/**
 * UtilString para todas las utilidades que tengas que ver con String
 * 
 * @author GFI
 * 
 */
public final class UtilParseToolkit {
	private static final Logger LOGGER = LoggerFactory.getLogger(UtilParseToolkit.class);

	/**
	 * Constructor de UtilString
	 */
	private UtilParseToolkit() {
	}

	/**
	 * Codifica el campo sexo del toolkit para guardarlo en BBDD HOMBRE -> 1 MUJER
	 * -> 2
	 */
	public static String codeSex(String sexo) {
		String sexoBBDD = "";
		if (!Utilidades.isEmpty(sexo)) {
			if (sexo.equalsIgnoreCase(Constantes.SEXO_HOMBRE_TOOLKIT)) {
				sexoBBDD = Constantes.SEXO_HOMBRE_BBDD;
			} else if (sexo.equalsIgnoreCase(Constantes.SEXO_MUJER_TOOLKIT)) {
				sexoBBDD = Constantes.SEXO_MUJER_BBDD;
			}
		}
		return sexoBBDD;
	}

	/**
	 * Codifica el campo sexo del toolkit para guardarlo en BBDD HOMBRE -> 1 MUJER
	 * -> 2
	 */
	public static Integer codePersonType(String type) {
		Integer typeBBDD = Constantes.TIPO_PERSONA_FISICA_BBDD;
		if (!Utilidades.isEmpty(type)) {
			if (type.equalsIgnoreCase(Constantes.TIPO_PERSONA_FISICA_TOOLKIT)) {
				typeBBDD = Constantes.TIPO_PERSONA_FISICA_BBDD;
			} else if (type.equalsIgnoreCase(Constantes.TIPO_PERSONA_JURIDICA_TOOLKIT)) {
				typeBBDD = Constantes.TIPO_PERSONA_JURIDICA_BBDD;
			}
		}
		return typeBBDD;
	}

	/**
	 * Codifica un campo fecha en formato String 22/02/2005
	 */
	public static Date codeDate(String fecha) {
		Date fechaBBDD = null;
		if (!Utilidades.isEmpty(fecha)) {
			try {
				fechaBBDD = UtilidadesFecha.formatearStringToDateFormat(fecha, Constantes.DATE_FORMAT_TIMESTAMP_NOTIME);
			} catch (ParseException e) {
				LOGGER.error("Error transformar fecha: " + fecha);
			}
		}
		return fechaBBDD;
	}

//	/**
//	 * Codifica un campo fecha en formato String 22/02/2005
//	 */
//	public static Long getCodeRepresentative(List<Contactos> listaContactos) {
//		Long code = null;
//		if (null != listaContactos && listaContactos.size() > 0) {
//			for (Contactos contacto : listaContactos) {
//				if (contacto.getEsRepresentante03().compareTo(Constantes.PresentaSolicitud.REPRESENTANTE) == 0) {
//					code = contacto.getIdContacto03();
//				}
//			}
//		}
//		return code;
//	}

	/**
	 * Calcula si se opone a que la DSS recabe info en base a un check de la
	 * solicitud
	 */
	public static Integer getDataSeOpone(String autoriza) {
		Integer seOpone = null;
//		if (!Utilidades.isEmpty(autoriza)) {
//			if (autoriza.equalsIgnoreCase(Constantes.OponerDssRecabarinfo.PERMITE_RECABAR_INFO)) {
//				seOpone = Constantes.OponerDssRecabarinfo.NO_SE_OPONE;
//			} else if (autoriza.equalsIgnoreCase(Constantes.OponerDssRecabarinfo.NO_PERMITE_RECABAR_INFO)) {
//				seOpone = Constantes.OponerDssRecabarinfo.SI_SE_OPONE;
//			}
//		}
		// por defecto no se opone
		seOpone = Constantes.OponerDssRecabarinfo.NO_SE_OPONE;
		return seOpone;
	}

}
