package com.ejie.aa20b.model;

import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;
import com.ejie.x38.serialization.JsonDateTimeDeserializer;
import com.ejie.x38.serialization.JsonDateTimeSerializer;

import java.util.Date;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;

/**
 * Ficha generated by UDA, 10-mar-2015 10:12:57.
 * 
 * @author UDA
 */

public class Ficha implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer idficha;
	private Long idmaquina;
	private String descripcion;
	private Date feejec;
	private String ejecutado;
	private Long tiemporeal;
	private String observaciones;
	private Date feini;
	private Date fefin;
	private String enviomail;
	private String guidficha;

	private Maquinas maquina;
	private Gamas gama;

	private Date fechaD; // para buscar fechare entre dos fechas
	private Date fechaH; // para buscar fechare entre dos fechas
	private String strFechaD; // para buscar fechare entre dos fechas
	private String strFechaH; // para buscar fechare entre dos fechas

	private String tecnicos;
	private String parado;
	private String pendEjec;
	private String conTecnicos;

	private Agenda agenda;

	private boolean compartido;

	private Date fechaplanif;
	private Date fechaplanifD;
	private Date fechaplanifH;
	private String strFechaplanifD; // para buscar fechare entre dos fechas
	private String strFechaplanifH; // para buscar fechare entre dos fechas

	/**
	 * Method 'Ficha'.
	 */
	public Ficha() {
	}

	/**
	 * Method 'Ficha'.
	 * 
	 * @param idficha
	 *            Integer
	 * @param idmaquina
	 *            Long
	 * @param descripcion
	 *            String
	 * @param feejec
	 *            Date
	 * @param ejecutado
	 *            String
	 * @param tiemporeal
	 *            Long
	 * @param observaciones
	 *            String
	 * @param feini
	 *            Date
	 * @param fefin
	 *            Date
	 * @param enviomail
	 *            String
	 */
	public Ficha(Integer idficha, Long idmaquina, String descripcion,
			Date feejec, String ejecutado, Long tiemporeal,
			String observaciones, Date feini, Date fefin, String enviomail,
			String guidficha, Date fechaplanif) {

		this.idficha = idficha;
		this.idmaquina = idmaquina;
		this.descripcion = descripcion;
		this.feejec = feejec;
		this.ejecutado = ejecutado;
		this.tiemporeal = tiemporeal;
		this.observaciones = observaciones;
		this.feini = feini;
		this.fefin = fefin;
		this.enviomail = enviomail;
		this.guidficha = guidficha;
		this.fechaplanif = fechaplanif;
	}

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

	public Integer getIdficha() {
		return this.idficha;
	}

	/**
	 * Method 'setIdficha'.
	 * 
	 * @param idficha
	 *            Integer
	 * @return
	 */

	public void setIdficha(Integer idficha) {
		this.idficha = idficha;
	}

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

	public Long getIdmaquina() {
		return this.idmaquina;
	}

	/**
	 * Method 'setIdmaquina'.
	 * 
	 * @param idmaquina
	 *            Long
	 * @return
	 */

	public void setIdmaquina(Long idmaquina) {
		this.idmaquina = idmaquina;
	}

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

	public String getDescripcion() {
		return this.descripcion;
	}

	/**
	 * Method 'setDescripcion'.
	 * 
	 * @param descripcion
	 *            String
	 * @return
	 */

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	/**
	 * Method 'getFeejec'.
	 * 
	 * @return Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFeejec() {
		return this.feejec;
	}

	/**
	 * Method 'setFeejec'.
	 * 
	 * @param feejec
	 *            Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFeejec(Date feejec) {
		this.feejec = feejec;
	}

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaplanif() {
		return fechaplanif;
	}

	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFechaplanif(Date fechaplanif) {
		this.fechaplanif = fechaplanif;
	}

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

	public String getEjecutado() {
		return this.ejecutado;
	}

	/**
	 * Method 'setEjecutado'.
	 * 
	 * @param ejecutado
	 *            String
	 * @return
	 */

	public void setEjecutado(String ejecutado) {
		this.ejecutado = ejecutado;
	}

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

	public Long getTiemporeal() {
		return this.tiemporeal;
	}

	/**
	 * Method 'setTiemporeal'.
	 * 
	 * @param tiemporeal
	 *            Long
	 * @return
	 */

	public void setTiemporeal(Long tiemporeal) {
		this.tiemporeal = tiemporeal;
	}

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

	public String getObservaciones() {
		return this.observaciones;
	}

	/**
	 * Method 'setObservaciones'.
	 * 
	 * @param observaciones
	 *            String
	 * @return
	 */

	public void setObservaciones(String observaciones) {
		this.observaciones = observaciones;
	}

	/**
	 * Method 'getFeini'.
	 * 
	 * @return Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFeini() {
		return this.feini;
	}

	/**
	 * Method 'setFeini'.
	 * 
	 * @param feini
	 *            Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFeini(Date feini) {
		this.feini = feini;
	}

	/**
	 * Method 'getFefin'.
	 * 
	 * @return Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFefin() {
		return this.fefin;
	}

	/**
	 * Method 'setFefin'.
	 * 
	 * @param fefin
	 *            Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFefin(Date fefin) {
		this.fefin = fefin;
	}

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

	public String getEnviomail() {
		return this.enviomail;
	}

	/**
	 * Method 'setEnviomail'.
	 * 
	 * @param enviomail
	 *            String
	 * @return
	 */

	public void setEnviomail(String enviomail) {
		this.enviomail = enviomail;
	}

	public String getGuidficha() {
		return guidficha;
	}

	public void setGuidficha(String guidficha) {
		this.guidficha = guidficha;
	}

	/**
	 * 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(" [ idficha: ").append(this.idficha).append(" ]");
		result.append(", [ idmaquina: ").append(this.idmaquina).append(" ]");
		result.append(", [ descripcion: ").append(this.descripcion)
				.append(" ]");
		result.append(", [ feejec: ").append(this.feejec).append(" ]");
		result.append(", [ ejecutado: ").append(this.ejecutado).append(" ]");
		result.append(", [ tiemporeal: ").append(this.tiemporeal).append(" ]");
		result.append(", [ observaciones: ").append(this.observaciones)
				.append(" ]");
		result.append(", [ feini: ").append(this.feini).append(" ]");
		result.append(", [ fefin: ").append(this.fefin).append(" ]");
		result.append(", [ enviomail: ").append(this.enviomail).append(" ]");
		result.append(", [ guidficha: ").append(this.guidficha).append(" ]");
		result.append(", [ fechaplanif: ").append(this.fechaplanif)
				.append(" ]");
		result.append("}");
		return result.toString();
	}

	public void setMaquina(Maquinas maquina) {
		this.maquina = maquina;
	}

	public Maquinas getMaquina() {
		return maquina;
	}

	public void setGama(Gamas gama) {
		this.gama = gama;
	}

	public Gamas getGama() {
		return gama;
	}

	public void setFechaD(Date fechaD) {
		this.fechaD = fechaD;
	}

	public Date getFechaD() {
		return fechaD;
	}

	public void setFechaH(Date fechaH) {
		this.fechaH = fechaH;
	}

	public Date getFechaH() {
		return fechaH;
	}

	public void setStrFechaD(String strFechaD) {
		this.strFechaD = strFechaD;
	}

	public String getStrFechaD() {
		return strFechaD;
	}

	public void setStrFechaH(String strFechaH) {
		this.strFechaH = strFechaH;
	}

	public String getStrFechaH() {
		return strFechaH;
	}

	public Date getFechaplanifD() {
		return fechaplanifD;
	}

	public void setFechaplanifD(Date fechaplanifD) {
		this.fechaplanifD = fechaplanifD;
	}

	public Date getFechaplanifH() {
		return fechaplanifH;
	}

	public void setFechaplanifH(Date fechaplanifH) {
		this.fechaplanifH = fechaplanifH;
	}

	public void setTecnicos(String tecnicos) {
		this.tecnicos = tecnicos;
	}

	public String getTecnicos() {
		return tecnicos;
	}

	public void setParado(String parado) {
		this.parado = parado;
	}

	public String getParado() {
		return parado;
	}

	public void setPendEjec(String pendEjec) {
		this.pendEjec = pendEjec;
	}

	public String getPendEjec() {
		return pendEjec;
	}

	public void setConTecnicos(String conTecnicos) {
		this.conTecnicos = conTecnicos;
	}

	public String getConTecnicos() {
		return conTecnicos;
	}

	public Agenda getAgenda() {
		return agenda;
	}

	public void setAgenda(Agenda agenda) {
		this.agenda = agenda;
	}

	public boolean isCompartido() {
		return compartido;
	}

	public void setCompartido(boolean compartido) {
		this.compartido = compartido;
	}

	public String getStrFechaplanifD() {
		return strFechaplanifD;
	}

	public void setStrFechaplanifD(String strFechaplanifD) {
		this.strFechaplanifD = strFechaplanifD;
	}

	public String getStrFechaplanifH() {
		return strFechaplanifH;
	}

	public void setStrFechaplanifH(String strFechaplanifH) {
		this.strFechaplanifH = strFechaplanifH;
	}

}
