/*
* 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.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import com.ejie.ad74a.util.constantes.ProcedimientosEnum;
import com.ejie.ad74a.util.constantes.TareasEnum;
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.
 */
@XmlRootElement(name = "DatosTarea")
public class DatosTareaEstudioRevision extends DatosTareaEstudio {

	/**
	 * 
	 */
	private static final long serialVersionUID = -8454434710807630860L;

	// Datos de tablas en string
	private String documentosAportados = null;
	private String datosEconomicos = null;

	private Long interoperabilidad;

	private BigDecimal anioIPREM;
	private BigDecimal valIPREM;
	private BigDecimal nivelReq;

	private Integer tipoPrecio;

	// Requerimiento de subsanacion
	private Integer reqSolNoFirma;
	private Integer reqRepNoFirma;
	private Integer reqRepNoAcredita;
	private Integer reqNoAutVerPadron;
	private Integer reqNoAutVerPadronSolo;
	private Integer reqAutVerPadronNoSoloInfSol;
	private Integer reqDependeciaInformeSocial;
	private Integer reqRiesgoAislamientoSinInfSocial;
	private Integer reqSinFichaSanitaria;
	private Integer reqSinTelefonoFijo;
	private Integer reqSinDatosBancarios;
	private Integer reqSolExencionBizkaia;
	private Date fSubsanacion;
	private String txtRequerimiento;

	// resolucion denegatoria

	private Date fDenegacion;
	private ArrayList<String> motivoDenegacion;

	/**
	 * Constructor.
	 */
	public DatosTareaEstudioRevision() {
		super(ProcedimientosEnum.REVISION_PRECIO.getId());
	}

	@XmlElement(name = "documentosAportados", nillable = true)
	public String getDocumentosAportados() {
		return documentosAportados;
	}

	public void setDocumentosAportados(String documentosAportados) {
		this.documentosAportados = documentosAportados;
	}

	@XmlElement(name = "interoperabilidad", nillable = true)
	public Long getInteroperabilidad() {
		return interoperabilidad;
	}

	public void setInteroperabilidad(Long interoperabilidad) {
		this.interoperabilidad = interoperabilidad;
	}

	@XmlElement(name = "anioIPREM", nillable = true)
	public BigDecimal getAnioIPREM() {
		return anioIPREM;
	}

	public void setAnioIPREM(BigDecimal anioIPREM) {
		this.anioIPREM = anioIPREM;
	}

	@XmlElement(name = "valIPREM", nillable = true)
	public BigDecimal getValIPREM() {
		return valIPREM;
	}

	public void setValIPREM(BigDecimal valIPREM) {
		this.valIPREM = valIPREM;
	}

	@XmlElement(name = "nivelReq", nillable = true)
	public BigDecimal getNivelReq() {
		return nivelReq;
	}

	public void setNivelReq(BigDecimal nivelReq) {
		this.nivelReq = nivelReq;
	}

	@XmlElement(name = "datosEconomicos", nillable = true)
	public String getDatosEconomicos() {
		return datosEconomicos;
	}

	public void setDatosEconomicos(String datosEconomicos) {
		this.datosEconomicos = datosEconomicos;
	}

	@XmlElement(name = "tipoPrecio", nillable = true)
	public Integer getTipoPrecio() {
		return tipoPrecio;
	}

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

	@XmlElement(name = "reqSolNoFirma", nillable = true)
	public Integer getReqSolNoFirma() {
		return reqSolNoFirma;
	}

	public void setReqSolNoFirma(Integer reqSolNoFirma) {
		this.reqSolNoFirma = reqSolNoFirma;
	}

	@XmlElement(name = "reqRepNoFirma", nillable = true)
	public Integer getReqRepNoFirma() {
		return reqRepNoFirma;
	}

	public void setReqRepNoFirma(Integer reqRepNoFirma) {
		this.reqRepNoFirma = reqRepNoFirma;
	}

	@XmlElement(name = "reqRepNoAcredita", nillable = true)
	public Integer getReqRepNoAcredita() {
		return reqRepNoAcredita;
	}

	public void setReqRepNoAcredita(Integer reqRepNoAcredita) {
		this.reqRepNoAcredita = reqRepNoAcredita;
	}

	@XmlElement(name = "reqNoAutVerPadron", nillable = true)
	public Integer getReqNoAutVerPadron() {
		return reqNoAutVerPadron;
	}

	public void setReqNoAutVerPadron(Integer reqNoAutVerPadron) {
		this.reqNoAutVerPadron = reqNoAutVerPadron;
	}

	@XmlElement(name = "reqNoAutVerPadronSolo", nillable = true)
	public Integer getReqNoAutVerPadronSolo() {
		return reqNoAutVerPadronSolo;
	}

	public void setReqNoAutVerPadronSolo(Integer reqNoAutVerPadronSolo) {
		this.reqNoAutVerPadronSolo = reqNoAutVerPadronSolo;
	}

	@XmlElement(name = "reqAutVerPadronNoSoloInfSol", nillable = true)
	public Integer getReqAutVerPadronNoSoloInfSol() {
		return reqAutVerPadronNoSoloInfSol;
	}

	public void setReqAutVerPadronNoSoloInfSol(Integer reqAutVerPadronNoSoloInfSol) {
		this.reqAutVerPadronNoSoloInfSol = reqAutVerPadronNoSoloInfSol;
	}

	@XmlElement(name = "reqDependeciaInformeSocial", nillable = true)
	public Integer getReqDependeciaInformeSocial() {
		return reqDependeciaInformeSocial;
	}

	public void setReqDependeciaInformeSocial(Integer reqDependeciaInformeSocial) {
		this.reqDependeciaInformeSocial = reqDependeciaInformeSocial;
	}

	@XmlElement(name = "reqRiesgoAislamientoSinInfSocial", nillable = true)
	public Integer getReqRiesgoAislamientoSinInfSocial() {
		return reqRiesgoAislamientoSinInfSocial;
	}

	public void setReqRiesgoAislamientoSinInfSocial(Integer reqRiesgoAislamientoSinInfSocial) {
		this.reqRiesgoAislamientoSinInfSocial = reqRiesgoAislamientoSinInfSocial;
	}

	@XmlElement(name = "reqSinFichaSanitaria", nillable = true)
	public Integer getReqSinFichaSanitaria() {
		return reqSinFichaSanitaria;
	}

	public void setReqSinFichaSanitaria(Integer reqSinFichaSanitaria) {
		this.reqSinFichaSanitaria = reqSinFichaSanitaria;
	}

	@XmlElement(name = "reqSinTelefonoFijo", nillable = true)
	public Integer getReqSinTelefonoFijo() {
		return reqSinTelefonoFijo;
	}

	public void setReqSinTelefonoFijo(Integer reqSinTelefonoFijo) {
		this.reqSinTelefonoFijo = reqSinTelefonoFijo;
	}

	@XmlElement(name = "reqSinDatosBancarios", nillable = true)
	public Integer getReqSinDatosBancarios() {
		return reqSinDatosBancarios;
	}

	public void setReqSinDatosBancarios(Integer reqSinDatosBancarios) {
		this.reqSinDatosBancarios = reqSinDatosBancarios;
	}

	@XmlElement(name = "reqSolExencionBizkaia", nillable = true)
	public Integer getReqSolExencionBizkaia() {
		return reqSolExencionBizkaia;
	}

	public void setReqSolExencionBizkaia(Integer reqSolExencionBizkaia) {
		this.reqSolExencionBizkaia = reqSolExencionBizkaia;
	}

	@XmlElement(name = "fSubsanacion", nillable = true)
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfSubsanacion() {
		return fSubsanacion;
	}

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

	public String getTxtRequerimiento() {
		return txtRequerimiento;
	}

	public void setTxtRequerimiento(String txtRequerimiento) {
		this.txtRequerimiento = txtRequerimiento;
	}

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfDenegacion() {
		return fDenegacion;
	}

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

	public ArrayList<String> getMotivoDenegacion() {
		return motivoDenegacion;
	}

	public void setMotivoDenegacion(ArrayList<String> motivoDenegacion) {
		this.motivoDenegacion = motivoDenegacion;
	}

}