package com.ejie.m62fb.model;

import java.math.BigDecimal;
import java.util.Date;

import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;

import com.ejie.m62fb.utils.serializers.JsonBigDecimalDeserializer;
import com.ejie.m62fb.utils.serializers.JsonBigDecimalSerializer;
import com.ejie.m62fb.model.base.AbstractM62FBModel;
import com.ejie.m62fb.model.direccion.Direccion;
import com.ejie.m62fb.model.persona.Persona;
import com.ejie.m62fb.model.tipos.TipoContratoAlquiler;
import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;

/**
 * M62r13t0V (CONTRATO_ALQUILER_ELEMENTO) generated by UDA, 09-dic-2015
 * 11:44:21.
 * 
XXXX
 */

public class ContratoAlquilerElemento extends AbstractM62FBModel implements
		java.io.Serializable {

	private static final long serialVersionUID = 1L;
	// Id Contrato Alquiler
	private BigDecimal idContratoAlquiler;
	// Id Elemento
	private Elemento elemento;
	// Persona (idPagador)
	private Persona pagador;
	// Fecha Envio Contrato
	private Date fecEnvContrato;
	// Fecha Envio Fin Contrato
	private Date fecEnvFinContrato;
	// Fecha Inicio Fact
	private Date fecIniFac;
	// Importe Precio Renta
	private BigDecimal imcPrecioRenta;
	// Importe Fianza
	private BigDecimal imcFianza;
	// Fecha Entrada Contrato
	private Date fecEntContrato;
	// Fecha Inicio
	private Date fecInicio;
	// Fecha Fin
	private Date fecFin;
	// Cuenta Bancaria
	private CuentaBancaria cuentaBancaria;
	// Direccion
	private Direccion direccion;
	// Indicador Visado
	private String indVisado;
	// Fecha Visado
	private Date fecVisado;
	// Fecha Empadronamiento
	private Date fecEmpadron;
	// Tipo Contrato Alquiler
	private TipoContratoAlquiler tipoContratoAlquiler;
	// Observaciones
	private String texObservaciones;
	// Nif Pagador Renta (Campo para la vista)
	private String nifPagadorRenta;

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

	/**
	 * Method 'ContratoAlquilerElemento'.
	 * 
	 * @param idContratoAlquiler
	 *            BigDecimal
	 */
	public ContratoAlquilerElemento(BigDecimal idContratoAlquiler) {
		super();
		this.idContratoAlquiler = idContratoAlquiler;
	}

	/**
	 * Method 'getIdContratoAlquiler'
	 * 
	 * @return idContratoAlquiler
	 */
	public BigDecimal getIdContratoAlquiler() {
		return this.idContratoAlquiler;
	}

	/**
	 * Method 'setIdContratoAlquiler'
	 * 
	 * @param idContratoAlquiler
	 *            BigDecimal
	 */
	public void setIdContratoAlquiler(BigDecimal idContratoAlquiler) {
		this.idContratoAlquiler = idContratoAlquiler;
	}

	/**
	 * Method 'getElemento'
	 * 
	 * @return elemento
	 */
	public Elemento getElemento() {
		return this.elemento;
	}

	/**
	 * Method 'setElemento'
	 * 
	 * @param elemento
	 *            Elemento
	 */
	public void setElemento(Elemento elemento) {
		this.elemento = elemento;
	}

	/**
	 * Method 'getPagador'
	 * 
	 * @return pagador
	 */
	public Persona getPagador() {
		return this.pagador;
	}

	/**
	 * Method 'setPagador'
	 * 
	 * @param pagador
	 *            Persona
	 */
	public void setPagador(Persona pagador) {
		this.pagador = pagador;
	}

	/**
	 * Method 'getFecEnvContrato'
	 * 
	 * @return fecEnvContrato
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecEnvContrato() {
		return this.fecEnvContrato;
	}

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

	/**
	 * Method 'getFecEnvFinContrato'
	 * 
	 * @return fecEnvFinContrato
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecEnvFinContrato() {
		return this.fecEnvFinContrato;
	}

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

	/**
	 * Method 'getFecIniFac'
	 * 
	 * @return fecIniFac
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecIniFac() {
		return this.fecIniFac;
	}

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

	/**
	 * Method 'getImcPrecioRenta'
	 * 
	 * @return imcPrecioRenta
	 */
	@JsonSerialize(using = JsonBigDecimalSerializer.class)
	public BigDecimal getImcPrecioRenta() {
		return this.imcPrecioRenta;
	}

	/**
	 * Method 'setImcPrecioRenta'
	 * 
	 * @param imcPrecioRenta
	 *            BigDecimal
	 */
	@JsonDeserialize(using = JsonBigDecimalDeserializer.class)
	public void setImcPrecioRenta(BigDecimal imcPrecioRenta) {
		this.imcPrecioRenta = imcPrecioRenta;
	}

	/**
	 * Method 'getImcFianza'
	 * 
	 * @return imcFianza
	 */
	@JsonSerialize(using = JsonBigDecimalSerializer.class)
	public BigDecimal getImcFianza() {
		return this.imcFianza;
	}

	/**
	 * Method 'setImcFianza'
	 * 
	 * @param imcFianza
	 *            BigDecimal
	 */
	@JsonDeserialize(using = JsonBigDecimalDeserializer.class)
	public void setImcFianza(BigDecimal imcFianza) {
		this.imcFianza = imcFianza;
	}

	/**
	 * Method 'getFecEntContrato'
	 * 
	 * @return fecEntContrato
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecEntContrato() {
		return this.fecEntContrato;
	}

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

	/**
	 * Method 'getFecInicio'
	 * 
	 * @return fecInicio
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecInicio() {
		return this.fecInicio;
	}

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

	/**
	 * Method 'getFecFin'
	 * 
	 * @return fecFin
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecFin() {
		return this.fecFin;
	}

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

	/**
	 * Method 'getCuentaBancaria'
	 * 
	 * @return cuentaBancaria
	 */
	public CuentaBancaria getCuentaBancaria() {
		return this.cuentaBancaria;
	}

	/**
	 * Method 'setCuentaBancaria'
	 * 
	 * @param cuentaBancaria
	 *            CuentaBancaria
	 */
	public void setCuentaBancaria(CuentaBancaria cuentaBancaria) {
		this.cuentaBancaria = cuentaBancaria;
	}

	/**
	 * Method 'getDireccion'
	 * 
	 * @return direccion
	 */
	public Direccion getDireccion() {
		return this.direccion;
	}

	/**
	 * Method 'setDireccion'
	 * 
	 * @param direccion
	 *            Direccion
	 */
	public void setDireccion(Direccion direccion) {
		this.direccion = direccion;
	}

	/**
	 * Method 'getIndVisado'
	 * 
	 * @return indVisado
	 */
	public String getIndVisado() {
		return this.indVisado;
	}

	/**
	 * Method 'setIndVisado'
	 * 
	 * @param indVisado
	 *            String
	 */
	public void setIndVisado(String indVisado) {
		this.indVisado = indVisado;
	}

	/**
	 * Method 'getFecVisado'
	 * 
	 * @return fecVisado
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecVisado() {
		return this.fecVisado;
	}

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

	/**
	 * Method 'getFecEmpadron'
	 * 
	 * @return fecEmpadron
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecEmpadron() {
		return this.fecEmpadron;
	}

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

	/**
	 * Method 'getTipoContratoAlquiler'
	 * 
	 * @return tipoContratoAlquiler
	 */
	public TipoContratoAlquiler getTipoContratoAlquiler() {
		return this.tipoContratoAlquiler;
	}

	/**
	 * Method 'setTipoContratoAlquiler'
	 * 
	 * @param tipoContratoAlquiler
	 *            TipoContratoAlquiler
	 */
	public void setTipoContratoAlquiler(
			TipoContratoAlquiler tipoContratoAlquiler) {
		this.tipoContratoAlquiler = tipoContratoAlquiler;
	}

	/**
	 * Method 'getTexObservaciones'
	 * 
	 * @return texObservaciones
	 */
	public String getTexObservaciones() {
		return this.texObservaciones;
	}

	/**
	 * Method 'setTexObservaciones'
	 * 
	 * @param texObservaciones
	 *            String
	 */
	public void setTexObservaciones(String texObservaciones) {
		this.texObservaciones = texObservaciones;
	}

	/**
	 * Method 'getNifPagadorRenta'
	 * 
	 * @return nifPagadorRenta
	 */
	public String getNifPagadorRenta() {
		return this.nifPagadorRenta;
	}

	/**
	 * Method 'setNifPagadorRenta'
	 * 
	 * @param nifPagadorRenta
	 *            String
	 */
	public void setNifPagadorRenta(String nifPagadorRenta) {
		this.nifPagadorRenta = nifPagadorRenta;
	}
}