package com.ejie.ab39a.model;

import org.springframework.context.i18n.LocaleContextHolder;

import com.ejie.ab39a.constantes.Constantes;
import com.ejie.x38.util.Constants;

/**
 * Planificacion.
 * 
 *  
 */

public class Planificacion implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long codplanificacion;
	private Integer fechainicio;
	private Integer fechafin;
	private String descas;
	private String deseus;
	private Integer baja = Constantes.ALTA_LOGICA;
	private Integer anio; // Atributo para utilizar en el filtro

	// Atributo para utilizar en la tabla
	private String codPlaniPlanesEstrat;

	/**
	 * Method 'Planificacion'.
	 */
	public Planificacion() {
		super();
	}

	/**
	 * Method 'Planificacion'.
	 * 
	 * @param codplanificacion
	 *            Long codigo planificacion
	 */
	public Planificacion(Long codplanificacion) {
		super();
		this.codplanificacion = codplanificacion;
	}

	/**
	 * Method 'Planificacion'.
	 * 
	 * @param codplanificacion
	 *            Long codigo planificacion
	 * @param fechainicio
	 *            Integer fecha inicio
	 * @param fechafin
	 *            Integer fecha fin
	 * @param descas
	 *            String descripcion castellano
	 * @param deseus
	 *            String descripcion euskera
	 * @param baja
	 *            Integer baja
	 */
	public Planificacion(Long codplanificacion, Integer fechainicio, Integer fechafin, String descas, String deseus,
			Integer baja) {
		super();

		this.codplanificacion = codplanificacion;
		this.fechainicio = fechainicio;
		this.fechafin = fechafin;
		this.descas = descas;
		this.deseus = deseus;
		this.baja = baja;
	}

	/**
	 * Method 'Planificacion'.
	 * 
	 * @param codplanificacion
	 *            Long codigo planificacion
	 * @param fechainicio
	 *            Integer fecha inicio
	 * @param fechafin
	 *            Integer fecha fin
	 * @param descas
	 *            String descripcion castellano
	 * @param deseus
	 *            String descripcion euskera
	 * @param baja
	 *            Integer baja
	 * @param codPlaniPlanesEstrat
	 *            Long codigo planificacion en PE
	 */

	public Planificacion(Long codplanificacion, Integer fechainicio, Integer fechafin, String descas, String deseus,
			Integer baja, String codPlaniPlanesEstrat) {
		super();
		this.codplanificacion = codplanificacion;
		this.fechainicio = fechainicio;
		this.fechafin = fechafin;
		this.descas = descas;
		this.deseus = deseus;
		this.baja = baja;
		this.codPlaniPlanesEstrat = codPlaniPlanesEstrat;
	}

	/**
	 * Method 'Planificacion'.
	 * 
	 * @param codplanificacion
	 *            Long codplanificacion
	 * @param fechaInicio
	 *            Integer fecha inicio
	 * @param fechaFin
	 *            Integer fecha fin
	 */
	public Planificacion(Long codplanificacion, int fechaInicio, int fechaFin) {
		super();
		this.codplanificacion = codplanificacion;
		this.fechainicio = fechaInicio;
		this.fechafin = fechaFin;
	}

	/**
	 * Method 'getCodplanificacion'.
	 *
	 * @return Long
	 */

	public Long getCodplanificacion() {
		return this.codplanificacion;
	}

	/**
	 * Method 'setCodplanificacion'.
	 *
	 * @param codplanificacion
	 *            Long
	 */

	public void setCodplanificacion(Long codplanificacion) {
		this.codplanificacion = codplanificacion;
	}

	/**
	 * Method 'getFechainicio'.
	 *
	 * @return java.util.Date
	 */

	public Integer getFechainicio() {
		return this.fechainicio;
	}

	/**
	 * Method 'setFechainicio'.
	 *
	 * @param fechainicio
	 *            java.util.Date
	 */
	public void setFechainicio(Integer fechainicio) {
		this.fechainicio = fechainicio;
	}

	/**
	 * Method 'getFechafin'.
	 *
	 * @return java.util.Date
	 */

	public Integer getFechafin() {
		return this.fechafin;
	}

	/**
	 * Method 'setFechafin'.
	 *
	 * @param fechafin
	 *            java.util.Date
	 */
	public void setFechafin(Integer fechafin) {
		this.fechafin = fechafin;
	}

	/**
	 * Method 'getDescas'.
	 *
	 * @return String
	 */

	public String getDescas() {
		return this.descas;
	}

	/**
	 * Method 'setDescas'.
	 *
	 * @param descas
	 *            String
	 */

	public void setDescas(String descas) {
		this.descas = descas;
	}

	/**
	 * Method 'getDeseus'.
	 *
	 * @return String
	 */

	public String getDeseus() {
		return this.deseus;
	}

	/**
	 * Method 'setDeseus'.
	 *
	 * @param deseus
	 *            String
	 */

	public void setDeseus(String deseus) {
		this.deseus = deseus;
	}

	/**
	 * Method 'getBaja'.
	 *
	 * @return Integer
	 */

	public Integer getBaja() {
		return this.baja;
	}

	/**
	 * Method 'setBaja'.
	 *
	 * @param baja
	 *            Integer
	 */

	public void setBaja(Integer baja) {
		this.baja = baja;
	}

	/**
	 * Method 'getDesc'.
	 * 
	 * @return String
	 */
	public String getDesc() {
		if (Constants.EUSKARA.equals(LocaleContextHolder.getLocale().getLanguage())) {
			return this.getDeseus();
		} else {
			return this.getDescas();
		}
	}

	/**
	 * Method 'getDesc'.
	 * 
	 * @return String
	 */
	public void setDesc(String desc) {
		if (Constants.EUSKARA.equals(LocaleContextHolder.getLocale().getLanguage())) {
			this.setDeseus(desc);
		} else {
			this.setDescas(desc);
		}
	}

	/**
	 * 
	 * @return Integer
	 */
	public Integer getAnio() {
		return anio;
	}

	/**
	 * 
	 * @param anio
	 *            Integer
	 */
	public void setAnio(Integer anio) {
		this.anio = anio;
	}

	/**
	 * 
	 * @return String
	 */
	public String getCodPlaniPlanesEstrat() {
		return codPlaniPlanesEstrat;
	}

	/**
	 * 
	 * @param codPlaniPlanesEstrat
	 *            String
	 */
	public void setCodPlaniPlanesEstrat(String codPlaniPlanesEstrat) {
		this.codPlaniPlanesEstrat = codPlaniPlanesEstrat;
	}

	/**
	 * Intended only for logging and debugging.
	 * 
	 * Here, the contents of every main field are placed into the result.
	 * 
	 * @return String
	 */
	@Override
	public String toString() {
		StringBuilder result = new StringBuilder();
		result.append(this.getClass().getName()).append(" Object { ");
		result.append(" [ codplanificacion: ").append(this.codplanificacion).append(" ]");
		result.append(", [ fechainicio: ").append(this.fechainicio).append(" ]");
		result.append(", [ fechafin: ").append(this.fechafin).append(" ]");
		result.append(", [ descas: ").append(this.descas).append(" ]");
		result.append(", [ deseus: ").append(this.deseus).append(" ]");
		result.append(", [ baja: ").append(this.baja).append(" ]");
		result.append("}");
		return result.toString();
	}

}
