package com.ejie.ab79.model.preguntasRespuestas;

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

import com.ejie.ab79.model.inspecciones.Inspecciones;
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;

/**
 * PreguntasExpediente  
 * 
 *  
 */

public class PreguntasExpediente implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Integer idPreguntaExpediente;
	private String idPreguntaMovil;
	private Integer idPreguntaPadreExpediente;
	private Inspecciones inspeccion;
	private Long orden;

	private String descripcionCastellano;
	private String descripcionEuskera;
	private Integer idTipoPregunta;
	private String concepto;
	private Date fechaFactura;
	private String numeroFactura;
	private String proveedor;
	private BigDecimal importe;
	private BigDecimal importeAdmitido;
	private String observacionesTecnicoCas;
	private String observacionesTecnicoEus;
	private String valorValidar;
	private Integer idPreguntaProtocolo;
	private String usuarioRegistro;
	private String usuarioUltmodificacion;

	private String identObjEstablecimiento;
	private String descrObjEstablecimiento;
	private List<OpcionesPreExp> opcionesPreExp;
	private String opcionesEs;
	private String opcionesEu;
	private String resultado;
	private String observacionesInspeccionCas;
	private String observacionesInspeccionEus;
	private Integer idRespuestaExpediente;
	private String importeString;
	private String importeAdmitidoString;
	private List<FicherosAdjExp> ficherosAdjExp;

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

	/**
	 * Method 'PreguntasExpediente'.
	 * 
	 * @param idPreguntaExpediente
	 *            Integer
	 */
	public PreguntasExpediente(Integer idPreguntaExpediente) {
		this.idPreguntaExpediente = idPreguntaExpediente;
	}

	/**
	 * Method 'PreguntasExpediente'.
	 * 
	 * @param idPreguntaExpediente
	 *            Integer
	 * @param idPreguntaMovil
	 *            Integer
	 * @param inspeccion
	 *            Inspecciones
	 * @param orden
	 *            Long
	 * @param descripcionCastellano
	 *            String
	 * @param descripcionEuskera
	 *            String
	 * @param idTipoPregunta
	 *            Long
	 * @param fechaFactura
	 *            Date
	 * @param numeroFactura
	 *            String
	 * @param proveedor
	 *            String
	 * @param importe
	 *            Double
	 * @param importeAdmitido
	 *            Double
	 * @param observacionesTecnicoCas
	 *            String
	 * @param observacionesTecnicoEus
	 *            String
	 * @param fechaRegistro
	 *            Date
	 * @param usuarioRegistro
	 *            String
	 * @param preguntasExpediente
	 *            PreguntasExpediente
	 * @param preguntasExpedientes
	 *            List<PreguntasExpediente>
	 */
	public PreguntasExpediente(Integer idPreguntaExpediente, String idPreguntaMovil, Inspecciones inspeccion,
			Long orden, String descripcionCastellano, String descripcionEuskera, Integer idTipoPregunta,
			Date fechaFactura, String numeroFactura, String proveedor, BigDecimal importe, BigDecimal importeAdmitido,
			String observacionesTecnicoCas, String observacionesTecnicoEus, String usuarioRegistro) {
		this.idPreguntaExpediente = idPreguntaExpediente;
		this.idPreguntaMovil = idPreguntaMovil;
		this.inspeccion = inspeccion;
		this.orden = orden;
		this.descripcionCastellano = descripcionCastellano;
		this.descripcionEuskera = descripcionEuskera;
		this.idTipoPregunta = idTipoPregunta;
		this.fechaFactura = fechaFactura;
		this.numeroFactura = numeroFactura;
		this.proveedor = proveedor;
		this.importe = importe;
		this.importeAdmitido = importeAdmitido;
		this.observacionesTecnicoCas = observacionesTecnicoCas;
		this.observacionesTecnicoEus = observacionesTecnicoEus;
		this.usuarioRegistro = usuarioRegistro;
	}

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

	public Integer getIdPreguntaExpediente() {
		return this.idPreguntaExpediente;
	}

	/**
	 * Method 'setIdPreguntaExpediente'.
	 *
	 * @param idPreguntaExpediente
	 *            Integer
	 * @return
	 */

	public void setIdPreguntaExpediente(Integer idPreguntaExpediente) {
		this.idPreguntaExpediente = idPreguntaExpediente;
	}

	public Integer getIdPreguntaPadreExpediente() {
		return this.idPreguntaPadreExpediente;
	}

	public void setIdPreguntaPadreExpediente(Integer idPreguntaPadreExpediente) {
		this.idPreguntaPadreExpediente = idPreguntaPadreExpediente;
	}

	public String getIdPreguntaMovil() {
		return idPreguntaMovil;
	}

	public void setIdPreguntaMovil(String idPreguntaMovil) {
		this.idPreguntaMovil = idPreguntaMovil;
	}

	/**
	 * Method 'getInspeccion'.
	 *
	 * @return Inspecciones
	 */

	public Inspecciones getInspeccion() {
		return this.inspeccion;
	}

	/**
	 * Method 'setInspeccion'.
	 *
	 * @param inspeccion
	 *            Inspecciones
	 * @return
	 */

	public void setInspeccion(Inspecciones inspeccion) {
		this.inspeccion = inspeccion;
	}

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

	public Long getOrden() {
		return this.orden;
	}

	/**
	 * Method 'setOrden'.
	 *
	 * @param orden
	 *            Long
	 * @return
	 */

	public void setOrden(Long orden) {
		this.orden = orden;
	}

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

	public String getDescripcionCastellano() {
		return this.descripcionCastellano;
	}

	/**
	 * Method 'setDescripcionCastellano'.
	 *
	 * @param descripcionCastellano
	 *            String
	 * @return
	 */

	public void setDescripcionCastellano(String descripcionCastellano) {
		this.descripcionCastellano = descripcionCastellano;
	}

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

	public String getValorValidar() {
		return this.valorValidar;
	}

	/**
	 * Method 'setValorValidar'.
	 *
	 * @param valorValidar
	 *            String
	 * @return
	 */

	public void setValorValidar(String valorValidar) {
		this.valorValidar = valorValidar;
	}

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

	public Integer getIdPreguntaProtocolo() {
		return this.idPreguntaProtocolo;
	}

	/**
	 * Method 'setIdPreguntaProtocolo'.
	 *
	 * @param idPreguntaProtocolo
	 *            Integer
	 * @return
	 */

	public void setIdPreguntaProtocolo(Integer idPreguntaProtocolo) {
		this.idPreguntaProtocolo = idPreguntaProtocolo;
	}

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

	public String getDescripcionEuskera() {
		return this.descripcionEuskera;
	}

	/**
	 * Method 'setDescripcionEuskera'.
	 *
	 * @param descripcionEuskera
	 *            String
	 * @return
	 */

	public void setDescripcionEuskera(String descripcionEuskera) {
		this.descripcionEuskera = descripcionEuskera;
	}

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

	public Integer getIdTipoPregunta() {
		return this.idTipoPregunta;
	}

	/**
	 * Method 'setIdTipoPregunta'.
	 *
	 * @param idTipoPregunta
	 *            Integer
	 * @return
	 */

	public void setIdTipoPregunta(Integer idTipoPregunta) {
		this.idTipoPregunta = idTipoPregunta;
	}

	public String getConcepto() {
		return this.concepto;
	}

	public void setConcepto(String concepto) {
		this.concepto = concepto;
	}

	/**
	 * Method 'getFechaFactura'.
	 *
	 * @return java.util.Date
	 */

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

	/**
	 * Method 'setFechaFactura'.
	 *
	 * @param fechaFactura
	 *            java.util.Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFechaFactura(Date fechaFactura) {
		this.fechaFactura = fechaFactura;
	}

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

	public String getNumeroFactura() {
		return this.numeroFactura;
	}

	/**
	 * Method 'setNumeroFactura'.
	 *
	 * @param numeroFactura
	 *            String
	 * @return
	 */

	public void setNumeroFactura(String numeroFactura) {
		this.numeroFactura = numeroFactura;
	}

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

	public String getProveedor() {
		return this.proveedor;
	}

	/**
	 * Method 'setProveedor'.
	 *
	 * @param proveedor
	 *            String
	 * @return
	 */

	public void setProveedor(String proveedor) {
		this.proveedor = proveedor;
	}

	/**
	 * Method 'getImporte'.
	 *
	 * @return Double
	 */

	public BigDecimal getImporte() {
		return this.importe;
	}

	/**
	 * Method 'setImporte'.
	 *
	 * @param importe
	 *            Double
	 * @return
	 */

	public void setImporte(BigDecimal importe) {
		this.importe = importe;
	}

	/**
	 * Method 'getImporteAdmitido'.
	 *
	 * @return Double
	 */

	public BigDecimal getImporteAdmitido() {
		return this.importeAdmitido;
	}

	/**
	 * Method 'setImporteAdmitido'.
	 *
	 * @param importeAdmitido
	 *            Double
	 * @return
	 */

	public void setImporteAdmitido(BigDecimal importeAdmitido) {
		this.importeAdmitido = importeAdmitido;
	}

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

	public String getObservacionesTecnicoCas() {
		return this.observacionesTecnicoCas;
	}

	/**
	 * Method 'setObservacionesTecnicoCas'.
	 *
	 * @param observacionesTecnicoCas
	 *            String
	 * @return
	 */

	public void setObservacionesTecnicoCas(String ObservacionesTecnicoCas) {
		this.observacionesTecnicoCas = ObservacionesTecnicoCas;
	}

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

	public String getObservacionesTecnicoEus() {
		return this.observacionesTecnicoEus;
	}

	/**
	 * Method 'setObservacionesTecnicoEus'.
	 *
	 * @param observacionesTecnicoEus
	 *            String
	 * @return
	 */

	public void setObservacionesTecnicoEus(String observacionesTecnicoEus) {
		this.observacionesTecnicoEus = observacionesTecnicoEus;
	}

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

	public String getUsuarioRegistro() {
		return this.usuarioRegistro;
	}

	/**
	 * Method 'setUsuarioRegistro'.
	 *
	 * @param usuarioRegistro
	 *            String
	 * @return
	 */

	public void setUsuarioRegistro(String usuarioRegistro) {
		this.usuarioRegistro = usuarioRegistro;
	}

	/**
	 * Method 'getIdentObjEstablecimiento'
	 * 
	 * @return Integer
	 */

	public String getIdentObjEstablecimiento() {
		return this.identObjEstablecimiento;
	}

	/**
	 * Method 'setIdentObjEstablecimiento'
	 * 
	 * @param identObjEstablecimiento
	 *            Integer
	 */

	public void setIdentObjEstablecimiento(String identObjEstablecimiento) {
		this.identObjEstablecimiento = identObjEstablecimiento;
	}

	public String getDescrObjEstablecimiento() {
		return this.descrObjEstablecimiento;
	}

	public void setDescrObjEstablecimiento(String descrObjEstablecimiento) {
		this.descrObjEstablecimiento = descrObjEstablecimiento;
	}

	/**
	 * Method 'getOpcionesPreExp'
	 * 
	 * @return List<OpcionesPreExp>
	 */

	public List<OpcionesPreExp> getOpcionesPreExp() {
		return this.opcionesPreExp;
	}

	/**
	 * Method 'setOpcionesPreExp'
	 * 
	 * @param opcionesPreExp
	 *            List<OpcionesPreExp>
	 */

	public void setOpcionesPreExp(List<OpcionesPreExp> opcionesPreExp) {
		this.opcionesPreExp = opcionesPreExp;
	}

	/**
	 * Method 'getOpcionesEs'
	 * 
	 * @return String
	 */

	public String getOpcionesEs() {
		return this.opcionesEs;
	}

	/**
	 * Method 'setOpcionesEs'
	 * 
	 * @param opcionesEs
	 *            String
	 */

	public void setOpcionesEs(String opcionesEs) {
		this.opcionesEs = opcionesEs;
	}

	/**
	 * Method 'getOpcionesEu'
	 * 
	 * @return String
	 */

	public String getOpcionesEu() {
		return this.opcionesEu;
	}

	/**
	 * Method 'setOpcionesEu'
	 * 
	 * @param opcionesEu
	 *            String
	 */

	public void setOpcionesEu(String opcionesEu) {
		this.opcionesEu = opcionesEu;
	}

	public String getResultado() {
		return this.resultado;
	}

	public void setResultado(String resultado) {
		this.resultado = resultado;
	}

	public String getObservacionesInspeccionCas() {
		return this.observacionesInspeccionCas;
	}

	public void setObservacionesInspeccionCas(String observacionesInspeccionCas) {
		this.observacionesInspeccionCas = observacionesInspeccionCas;
	}

	public String getObservacionesInspeccionEus() {
		return this.observacionesInspeccionEus;
	}

	public void setObservacionesInspeccionEus(String observacionesInspeccionEus) {
		this.observacionesInspeccionEus = observacionesInspeccionEus;
	}

	public Integer getIdRespuestaExpediente() {
		return this.idRespuestaExpediente;
	}

	public void setIdRespuestaExpediente(Integer idRespuestaExpediente) {
		this.idRespuestaExpediente = idRespuestaExpediente;
	}

	public String getImporteString() {
		return this.importeString;
	}

	public void setImporteString(String importeString) {
		this.importeString = importeString;
	}

	public String getImporteAdmitidoString() {
		return this.importeAdmitidoString;
	}

	public void setImporteAdmitidoString(String importeAdmitidoString) {
		this.importeAdmitidoString = importeAdmitidoString;
	}

	public List<FicherosAdjExp> getFicherosAdjExp() {
		return ficherosAdjExp;
	}

	public void setFicherosAdjExp(List<FicherosAdjExp> ficherosAdjExp) {
		this.ficherosAdjExp = ficherosAdjExp;
	}

	public String getUsuarioUltmodificacion() {
		return usuarioUltmodificacion;
	}

	public void setUsuarioUltmodificacion(String usuarioUltmodificacion) {
		this.usuarioUltmodificacion = usuarioUltmodificacion;
	}

	/**
	 * 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(" [ idPreguntaExpediente: ").append(this.idPreguntaExpediente).append(" ]");
		result.append(", [ idInspeccion: ").append(this.inspeccion != null ? this.inspeccion.getIdInspeccion() : null)
				.append(" ]");
		result.append(", [ orden: ").append(this.orden).append(" ]");
		result.append(", [ descripcionCastellano: ").append(this.descripcionCastellano).append(" ]");
		result.append(", [ descripcionEuskera: ").append(this.descripcionEuskera).append(" ]");
		result.append(", [ idTipoPregunta: ").append(this.idTipoPregunta).append(" ]");
		result.append(", [ fechaFactura: ").append(this.fechaFactura).append(" ]");
		result.append(", [ numeroFactura: ").append(this.numeroFactura).append(" ]");
		result.append(", [ proveedor: ").append(this.proveedor).append(" ]");
		result.append(", [ importe: ").append(this.importe).append(" ]");
		result.append(", [ importeAdmitido: ").append(this.importeAdmitido).append(" ]");
		result.append(", [ observacionesTecnicoCas: ").append(this.observacionesTecnicoCas).append(" ]");
		result.append(", [ observacionesTecnicoEus: ").append(this.observacionesTecnicoEus).append(" ]");
		result.append(", [ usuarioRegistro: ").append(this.usuarioRegistro).append(" ]");
		result.append("}");
		return result.toString();
	}

}
