/*
* Copyright 2011 E.J.I.E., S.A.
*
* Licencia con arreglo a la EUPL, Versión 1.1 exclusivamente (la «Licencia»);
* Solo podrá usarse esta obra si se respeta la Licencia.
* Puede obtenerse una copia de la Licencia en
*
* http://ec.europa.eu/idabc/eupl.html
*
* Salvo cuando lo exija la legislación aplicable o se acuerde por escrito,
* el programa distribuido con arreglo a la Licencia se distribuye «TAL CUAL»,
* SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ni expresas ni implícitas.
* Véase la Licencia en el idioma concreto que rige los permisos y limitaciones
* que establece la Licencia.
*/
package com.ejie.ad74a.model;

import java.util.Date;

import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

/**
 * Bean contenedor de las propiedades que utiliza el componente table.
 * 
 * @author UDA
 *
 * @param <T> Tipo de bean que se va a representar en el table.
 */
public class TramiteTareaDto {

	// Variables para cargar datos en el dialogo del tramite.
	private TramitesExpediente tramitesExpediente;

	private DatosTarea datosTarea;
	private DatosTareaEstudio datosTareaEstudio;
	private DatosTareaEstudioAlta datosTareaEstudioAlta;
	private DatosTareaEstudioBaja datosTareaEstudioBaja;
	private DatosTareaEstudioModDireccion datosTareaEstudioModDireccion;
	private DatosTareaEstudioInforme datosTareaEstudioInforme;
	private DatosTareaEstudioRevision datosTareaEstudioRevision;

	// Se recuperan los documentos para poder mandarlos en el filtrado en los
	// estudios sin cerrar.
	private String documentosAportados = null;

	// Defina la operación: Guardar/Tramitar
	private String tipoTramite = null;

	private Long idTarea;
	private Long idTareaTram11 = null;

	private Integer tipoPrecio;

	// Campo para establecer valores por defecto (los valores definitivos deben ir
	// en datosTareaEstudioBaja)
	private Date fConcesionBaja;
	private Date fDenegacionBaja;

	// Campo para establecer valores por defecto (los valores definitivos deben ir
	// en datosTareaEstudioInforme)
	private Date fSolInforme;
	private Date fRechazoInforme;
	// Tambien se usa para modificacion
	private Date fSubsanacion;

	// Campo para establecer valores por defecto (los valores definitivos deben ir
	// en datosTareaEstudioModDireccion)
	private Date fCambio;

	// No aceptacion del cambio
	private Date fRechazo;
	private String motivoRechazo;

	/**
	 * Constructor.
	 */
	public TramiteTareaDto() {
		super();
	}

	/**
	 * Method 'getDocumentosAportados'.
	 *
	 * @return String
	 */
	public String getDocumentosAportados() {
		return documentosAportados;
	}

	/**
	 * Method 'setDocumentosAportados'.
	 *
	 * @param documentosAportados String
	 * @return
	 */
	public void setDocumentosAportados(String documentosAportados) {
		this.documentosAportados = documentosAportados;
	}

	/**
	 * Method 'getTipoTramite'.
	 *
	 * @return String
	 */
	public String getTipoTramite() {
		return tipoTramite;
	}

	/**
	 * Method 'setTipoTramite'.
	 *
	 * @param tipoTramite String
	 * @return
	 */
	public void setTipoTramite(String tipoTramite) {
		this.tipoTramite = tipoTramite;
	}

	/**
	 * Method 'getIdTareaTram11'.
	 *
	 * @return Long
	 */
	public Long getIdTareaTram11() {
		return idTareaTram11;
	}

	/**
	 * Method 'setIdTareaTram11'.
	 *
	 * @param idTareaTram11 Long
	 * @return
	 */
	public void setIdTareaTram11(Long idTareaTram11) {
		this.idTareaTram11 = idTareaTram11;
	}

	/**
	 * Method 'getTramitesExpediente'.
	 *
	 * @return TramitesExpediente
	 */
	public TramitesExpediente getTramitesExpediente() {
		return tramitesExpediente;
	}

	/**
	 * Method 'setTramitesExpediente'.
	 *
	 * @param tramitesExpediente TramitesExpediente
	 * @return
	 */
	public void setTramitesExpediente(TramitesExpediente tramitesExpediente) {
		this.tramitesExpediente = tramitesExpediente;
	}

	/**
	 * Method 'getIdTarea'.
	 *
	 * @return Long
	 */
	public Long getIdTarea() {
		return idTarea;
	}

	/**
	 * Method 'setIdTarea'.
	 *
	 * @param idTarea Long
	 * @return
	 */
	public void setIdTarea(Long idTarea) {
		this.idTarea = idTarea;
	}

	/**
	 * Method 'getDatosTarea'.
	 *
	 * @return DatosTarea
	 */
	public DatosTarea getDatosTarea() {
		return datosTarea;
	}

	/**
	 * Method 'setDatosTarea'.
	 *
	 * @param datosTarea DatosTarea
	 * @return
	 */
	public void setDatosTarea(DatosTarea datosTarea) {
		this.datosTarea = datosTarea;
	}

	/**
	 * Method 'getDatosTareaEstudioAlta'.
	 *
	 * @return DatosTareaEstudioAlta
	 */
	public DatosTareaEstudioAlta getDatosTareaEstudioAlta() {
		return datosTareaEstudioAlta;
	}

	/**
	 * Method 'setDatosTareaEstudioAlta'.
	 *
	 * @param datosTareaEstudioAlta DatosTareaEstudioAlta
	 * @return
	 */
	public void setDatosTareaEstudioAlta(DatosTareaEstudioAlta datosTareaEstudioAlta) {
		this.datosTareaEstudioAlta = datosTareaEstudioAlta;
	}

	public Integer getTipoPrecio() {
		return tipoPrecio;
	}

	public void setTipoPrecio(Integer tipoPrecio) {
		this.tipoPrecio = tipoPrecio;
	}

	public DatosTareaEstudioBaja getDatosTareaEstudioBaja() {
		return datosTareaEstudioBaja;

	}

	public void setDatosTareaEstudioBaja(DatosTareaEstudioBaja datosTareaEstudioBaja) {
		this.datosTareaEstudioBaja = datosTareaEstudioBaja;
	}

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfConcesionBaja() {
		return fConcesionBaja;
	}

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

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfDenegacionBaja() {
		return fDenegacionBaja;
	}

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

	public DatosTareaEstudioModDireccion getDatosTareaEstudioModDireccion() {
		return datosTareaEstudioModDireccion;
	}

	public void setDatosTareaEstudioModDireccion(DatosTareaEstudioModDireccion datosTareaEstudioModDireccion) {
		this.datosTareaEstudioModDireccion = datosTareaEstudioModDireccion;
	}

	public DatosTareaEstudioInforme getDatosTareaEstudioInforme() {
		return datosTareaEstudioInforme;
	}

	public void setDatosTareaEstudioInforme(DatosTareaEstudioInforme datosTareaEstudioInforme) {
		this.datosTareaEstudioInforme = datosTareaEstudioInforme;
	}

	public DatosTareaEstudioRevision getDatosTareaEstudioRevision() {
		return datosTareaEstudioRevision;
	}

	public void setDatosTareaEstudioRevision(DatosTareaEstudioRevision datosTareaEstudioRevision) {
		this.datosTareaEstudioRevision = datosTareaEstudioRevision;
	}

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfSolInforme() {
		return fSolInforme;
	}

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

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfRechazoInforme() {
		return fRechazoInforme;
	}

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

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfSubsanacion() {
		return fSubsanacion;
	}

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

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfCambio() {
		return fCambio;
	}

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

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfRechazo() {
		return fRechazo;
	}

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

	public String getMotivoRechazo() {
		return motivoRechazo;
	}

	public void setMotivoRechazo(String motivoRechazo) {
		this.motivoRechazo = motivoRechazo;
	}

	public DatosTareaEstudio getDatosTareaEstudio() {
		return datosTareaEstudio;
	}

	public void setDatosTareaEstudio(DatosTareaEstudio datosTareaEstudio) {
		this.datosTareaEstudio = datosTareaEstudio;
	}

}