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.format.FormatUtils;
import com.ejie.m62fb.utils.serializers.JsonBigDecimalDeserializer;
import com.ejie.m62fb.utils.serializers.JsonBigDecimalSerializer;
import com.ejie.m62fb.model.base.AbstractM62FBModel;
import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;

/**
 * ViviendaReservada generated by UDA, 20-nov-2015 10:16:25.
 * 
XXXX
 */

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

	private static final long serialVersionUID = 1L;

	// Identificador Vivienda Reservada
	private BigDecimal idM62r43t0;
	private Integer idM62r41t0;

	// Vivienda Solicitada
	private ViviendaSolicitada viviendaSolicitada;
	// Vivienda Disponible
	private ViviendaDisponible viviendaDisponible;

	/** Más Datos Vivienda Reservada **/
	// Importe PVP Total
	private BigDecimal imcPvpTotal;
	// Indicador Reserva Temporal
	private String indReservaTemp;
	// Fecha Reserva
	private Date fecReserva;
	// Fecha Fin Reserva
	private Date fecFinReserva;
	// Observaciones
	private String texObservaciones;

	/**
	 * Method 'ViviendasReservadasV'.
	 */
	public ViviendaReservada() {
	}

	/**
	 * Method 'ViviendasReservadasV'.
	 * 
	 * @param idM62r43t0
	 *            BigDecimal
	 */
	public ViviendaReservada(BigDecimal idM62r43t0) {
		this.idM62r43t0 = idM62r43t0;
	}

	/**
	 * Method 'getIdM62r43t0'
	 * 
	 * @return idM62r43t0
	 */
	public BigDecimal getIdM62r43t0() {
		return this.idM62r43t0;
	}

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

	/**
	 * Method 'getIdM62r41t0'
	 * 
	 * @return idM62r41t0
	 */
	public Integer getIdM62r41t0() {
		return this.idM62r41t0;
	}

	/**
	 * Method 'setIdM62r41t0'
	 * 
	 * @param idM62r41t0
	 *            Integer
	 */
	public void setIdM62r41t0(Integer idM62r41t0) {
		this.idM62r41t0 = idM62r41t0;
	}

	/**
	 * Method 'getViviendaSolicitada'
	 * 
	 * @return viviendaSolicitada
	 */
	public ViviendaSolicitada getViviendaSolicitada() {
		return this.viviendaSolicitada;
	}

	/**
	 * Method 'setViviendaSolicitada'
	 * 
	 * @param viviendaSolicitada
	 *            ViviendaSolicitada
	 */
	public void setViviendaSolicitada(ViviendaSolicitada viviendaSolicitada) {
		this.viviendaSolicitada = viviendaSolicitada;
	}

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

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

	/**
	 * Method 'getIndReservaTemp'
	 * 
	 * @return indReservaTemp
	 */
	public String getIndReservaTemp() {
		return this.indReservaTemp;
	}

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

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

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

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

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

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

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

	/**
	 * Method 'getViviendaDisponible'
	 * 
	 * @return viviendaDisponible
	 */
	public ViviendaDisponible getViviendaDisponible() {
		return this.viviendaDisponible;
	}

	/**
	 * Method 'setViviendaDisponible'
	 * 
	 * @param viviendaDisponible
	 *            ViviendaDisponible
	 */
	public void setViviendaDisponible(ViviendaDisponible viviendaDisponible) {
		this.viviendaDisponible = viviendaDisponible;
	}

	/**
	 * Method 'getImcPvpTotalStr'
	 * 
	 * @return String, imcPvpTotal formateado
	 */
	public String getImcPvpTotalStr() {
		return FormatUtils.bigDecimalToString(this.getImcPvpTotal(), 2);
	}
}
