/*
* Copyright 2021 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.io.IOException;
import java.util.Date;

import org.codehaus.jackson.map.ObjectMapper;

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

/**
 * BandejaEntradas generated by UDA, 06-jun-2023 9:23:12.
 * 
 * @author UDA
 */

public class BandejaEntradas implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	// Clave compuesta
	private Long idtipoentrada;
	private String idtipoentrada_desc;
	private Long identrada;
	private String estado;
	private String idjms;
	private String procedureid;
	private String procedureid_desc;
	private Date fregistro;
	private Date fregistro_from;
	private Date fregistro_to;
	private String numregistro;
	private String numexpediente;
	private Long idexpediente;
	private Integer urgencia;
	private Long tipoUrgencia;
	private Long errorexpediente;
	private String errorexpediente_desc;
	private Long idsolicitante;
	private String identificador;
	private String nombre;
	private String apellido1;
	private String apellido2;
	private String tipo;
	private String tipo_desc;
	private String numregoriginal;
	private Date fregoriginal;
	private Date fregoriginal_from;
	private Date fregoriginal_to;
	private String remitente;
	private Long bloqueo;
	private String usuresponsable;
	private Long numdocumentos;
	private String qrcode;
	private Integer ocultos;

	private String observaciones;
	private String motivoOcultar;
	private Solicitantes solicitantes;

	// Para hacer el march con informes sociales si papel0
	private Informes informes;

	// Campo auxiliar de beneficiario
	private Integer beneficiario01;

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

	/**
	 * Method 'BandejaEntradas'.
	 * 
	 * @param origen          Long
	 * @param identrada       Long
	 * @param estado          String
	 * @param idjms           String
	 * @param procedureid     String
	 * @param fregistro       Date
	 * @param numregistro     String
	 * @param numexpediente   String
	 * @param idexpediente    Long
	 * @param urgencia        Long
	 * @param errorexpediente Long
	 * @param idsolicitante   Long
	 * @param identificador   String
	 * @param nombre          String
	 * @param apellido1       String
	 * @param apellido2       String
	 * @param tipo            String
	 * @param numregoriginal  String
	 * @param fregoriginal    Date
	 * @param remitente       String
	 * @param bloqueo         Long
	 * @param usuresponsable  String
	 * @param numdocumentos   Long
	 * @param qrcode          String
	 * @param observaciones   String
	 * @param motivoOcultar   String
	 */
	public BandejaEntradas(Long idtipoentrada, Long identrada, String estado, String idjms, String procedureid,
			Date fregistro, String numregistro, String numexpediente, Long idexpediente, Long urgencia,
			Long errorexpediente, Long idsolicitante, String identificador, String nombre, String apellido1,
			String apellido2, String tipo, String numregoriginal, Date fregoriginal, String remitente, Long bloqueo,
			String usuresponsable, Long numdocumentos, String qrcode, String observaciones, String motivoOcultar) {
		this.idtipoentrada = idtipoentrada;
		this.identrada = identrada;
		this.estado = estado;
		this.idjms = idjms;
		this.procedureid = procedureid;
		this.fregistro = fregistro;
		this.numregistro = numregistro;
		this.numexpediente = numexpediente;
		this.idexpediente = idexpediente;
		this.tipoUrgencia = urgencia;
		this.errorexpediente = errorexpediente;
		this.idsolicitante = idsolicitante;
		this.identificador = identificador;
		this.nombre = nombre;
		this.apellido1 = apellido1;
		this.apellido2 = apellido2;
		this.tipo = tipo;
		this.numregoriginal = numregoriginal;
		this.fregoriginal = fregoriginal;
		this.remitente = remitente;
		this.bloqueo = bloqueo;
		this.usuresponsable = usuresponsable;
		this.numdocumentos = numdocumentos;
		this.qrcode = qrcode;
		this.observaciones = observaciones;
		this.motivoOcultar = motivoOcultar;
	}

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

	public Long getIdTipoentrada() {
		return this.idtipoentrada;
	}

	/**
	 * Method 'setOrigen'.
	 *
	 * @param idtipoentrada Long
	 * @return
	 */

	public void setIdTipoentrada(Long idtipoentrada) {
		this.idtipoentrada = idtipoentrada;
	}

	/**
	 * Method 'getIdtipoentrada_desc'.
	 *
	 * @return String
	 */
	public String getIdtipoentrada_desc() {
		return idtipoentrada_desc;
	}

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

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

	public Long getIdentrada() {
		return this.identrada;
	}

	/**
	 * Method 'setIdentrada'.
	 *
	 * @param identrada Long
	 * @return
	 */

	public void setIdentrada(Long identrada) {
		this.identrada = identrada;
	}

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

	public String getEstado() {
		return this.estado;
	}

	/**
	 * Method 'setEstado'.
	 *
	 * @param estado String
	 * @return
	 */

	public void setEstado(String estado) {
		this.estado = estado;
	}

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

	public String getIdjms() {
		return this.idjms;
	}

	/**
	 * Method 'setIdjms'.
	 *
	 * @param idjms String
	 * @return
	 */

	public void setIdjms(String idjms) {
		this.idjms = idjms;
	}

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

	public String getProcedureid() {
		return this.procedureid;
	}

	/**
	 * Method 'setProcedureid'.
	 *
	 * @param procedureid String
	 * @return
	 */

	public void setProcedureid(String procedureid) {
		this.procedureid = procedureid;
	}

	/**
	 * Method 'getProcedureid_desc'.
	 *
	 * @return String
	 */
	public String getProcedureid_desc() {
		return procedureid_desc;
	}

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

	/**
	 * Method 'getFregistro'.
	 *
	 * @return Date
	 */

	@JsonSerialize(using = JsonDateTimeSerializer.class)
	public Date getFregistro() {
		return this.fregistro;
	}

	/**
	 * Method 'setFregistro'.
	 *
	 * @param fregistro Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateTimeDeserializer.class)
	public void setFregistro(Date fregistro) {
		this.fregistro = fregistro;
	}

	/**
	 * Method 'getFregistro_from'.
	 *
	 * @return Date
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFregistro_from() {
		return fregistro_from;
	}

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

	/**
	 * Method 'getFregistro_to'.
	 *
	 * @return Date
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFregistro_to() {
		return fregistro_to;
	}

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

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

	public String getNumregistro() {
		return this.numregistro;
	}

	/**
	 * Method 'setNumregistro'.
	 *
	 * @param numregistro String
	 * @return
	 */

	public void setNumregistro(String numregistro) {
		this.numregistro = numregistro;
	}

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

	public String getNumexpediente() {
		return this.numexpediente;
	}

	/**
	 * Method 'setNumexpediente'.
	 *
	 * @param numexpediente String
	 * @return
	 */

	public void setNumexpediente(String numexpediente) {
		this.numexpediente = numexpediente;
	}

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

	public Long getIdexpediente() {
		return this.idexpediente;
	}

	/**
	 * Method 'setIdexpediente'.
	 *
	 * @param idexpediente Long
	 * @return
	 */

	public void setIdexpediente(Long idexpediente) {
		this.idexpediente = idexpediente;
	}

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

	public Long getTipoUrgencia() {
		return this.tipoUrgencia;
	}

	/**
	 * Method 'setUrgencia'.
	 *
	 * @param urgencia Long
	 * @return
	 */

	public void setTipoUrgencia(Long urgencia) {
		this.tipoUrgencia = urgencia;
	}

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

	public Long getErrorexpediente() {
		return this.errorexpediente;
	}

	/**
	 * Method 'setErrorexpediente'.
	 *
	 * @param errorexpediente Long
	 * @return
	 */

	public void setErrorexpediente(Long errorexpediente) {
		this.errorexpediente = errorexpediente;
	}

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

	public String getErrorexpediente_desc() {
		return errorexpediente_desc;
	}

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

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

	public Long getIdsolicitante() {
		return this.idsolicitante;
	}

	/**
	 * Method 'setIdsolicitante'.
	 *
	 * @param idsolicitante Long
	 * @return
	 */

	public void setIdsolicitante(Long idsolicitante) {
		this.idsolicitante = idsolicitante;
	}

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

	public String getIdentificador() {
		return this.identificador;
	}

	/**
	 * Method 'setIdentificador'.
	 *
	 * @param identificador String
	 * @return
	 */

	public void setIdentificador(String identificador) {
		this.identificador = identificador;
	}

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

	public String getNombre() {
		return this.nombre;
	}

	/**
	 * Method 'setNombre'.
	 *
	 * @param nombre String
	 * @return
	 */

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

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

	public String getApellido1() {
		return this.apellido1;
	}

	/**
	 * Method 'setApellido1'.
	 *
	 * @param apellido1 String
	 * @return
	 */

	public void setApellido1(String apellido1) {
		this.apellido1 = apellido1;
	}

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

	public String getApellido2() {
		return this.apellido2;
	}

	/**
	 * Method 'setApellido2'.
	 *
	 * @param apellido2 String
	 * @return
	 */

	public void setApellido2(String apellido2) {
		this.apellido2 = apellido2;
	}

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

	public String getTipo() {
		return this.tipo;
	}

	/**
	 * Method 'setTipo'.
	 *
	 * @param tipo String
	 * @return
	 */

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	/**
	 * Method 'getTipo_desc'.
	 *
	 * @return String
	 */
	public String getTipo_desc() {
		return tipo_desc;
	}

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

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

	public String getNumregoriginal() {
		return this.numregoriginal;
	}

	/**
	 * Method 'setNumregoriginal'.
	 *
	 * @param numregoriginal String
	 * @return
	 */

	public void setNumregoriginal(String numregoriginal) {
		this.numregoriginal = numregoriginal;
	}

	/**
	 * Method 'getFregoriginal'.
	 *
	 * @return Date
	 */

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

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

	/**
	 * Method 'getFregoriginal_from'.
	 *
	 * @return Date
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFregoriginal_from() {
		return fregoriginal_from;
	}

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

	/**
	 * Method 'getFregoriginal_to'.
	 *
	 * @return Date
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFregoriginal_to() {
		return fregoriginal_to;
	}

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

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

	public String getRemitente() {
		return this.remitente;
	}

	/**
	 * Method 'setRemitente'.
	 *
	 * @param remitente String
	 * @return
	 */

	public void setRemitente(String remitente) {
		this.remitente = remitente;
	}

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

	public Long getBloqueo() {
		return this.bloqueo;
	}

	/**
	 * Method 'setBloqueo'.
	 *
	 * @param bloqueo Long
	 * @return
	 */

	public void setBloqueo(Long bloqueo) {
		this.bloqueo = bloqueo;
	}

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

	public String getUsuresponsable() {
		return this.usuresponsable;
	}

	/**
	 * Method 'setUsuresponsable'.
	 *
	 * @param usuresponsable String
	 * @return
	 */

	public void setUsuresponsable(String usuresponsable) {
		this.usuresponsable = usuresponsable;
	}

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

	public Long getNumdocumentos() {
		return this.numdocumentos;
	}

	/**
	 * Method 'setNumdocumentos'.
	 *
	 * @param numdocumentos Long
	 * @return
	 */

	public void setNumdocumentos(Long numdocumentos) {
		this.numdocumentos = numdocumentos;
	}

	/**
	 * Method 'getQrcode'.
	 *
	 * @return String
	 */
	public String getQrcode() {
		return qrcode;
	}

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

	/**
	 * Method 'getOcultos'.
	 *
	 * @return Integer
	 */
	public Integer getOcultos() {
		return ocultos;
	}

	/**
	 * Method 'setOcultos'.
	 *
	 * @param ocultos Integer
	 * @return
	 */
	public void setOcultos(Integer ocultos) {
		this.ocultos = ocultos;
	}

	/**
	 * Method 'getObservaciones'.
	 *
	 * @return String
	 */
	public String getObservaciones() {
		return observaciones;
	}

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

	/**
	 * Method 'getMotivoOcultar'.
	 *
	 * @return String
	 */
	public String getMotivoOcultar() {
		return motivoOcultar;
	}

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

	/**
	 * Method 'getInformes'.
	 *
	 * @return Informes
	 */
	public Informes getInformes() {
		return informes;
	}

	/**
	 * Method 'setInformes'.
	 *
	 * @param informes Informes
	 * @return
	 */
	public void setInformes(Informes informes) {
		this.informes = informes;
	}

	public Solicitantes getSolicitantes() {
		return solicitantes;
	}

	public void setSolicitantes(Solicitantes solicitantes) {
		this.solicitantes = solicitantes;
	}

	/**
	 * 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 { ");
		// Clave compuesta

		result.append("[ idtipoentrada: ").append(this.idtipoentrada).append(" ]");

		result.append(", [ identrada: ").append(this.identrada).append(" ]");

		result.append(", [ estado: ").append(this.estado).append(" ]");

		result.append(", [ idjms: ").append(this.idjms).append(" ]");

		result.append(", [ procedureid: ").append(this.procedureid).append(" ]");

		result.append(", [ fregistro: ").append(this.fregistro).append(" ]");

		result.append(", [ numregistro: ").append(this.numregistro).append(" ]");

		result.append(", [ numexpediente: ").append(this.numexpediente).append(" ]");

		result.append(", [ idexpediente: ").append(this.idexpediente).append(" ]");

		result.append(", [ urgencia: ").append(this.tipoUrgencia).append(" ]");

		result.append(", [ errorexpediente: ").append(this.errorexpediente).append(" ]");

		result.append(", [ idsolicitante: ").append(this.idsolicitante).append(" ]");

		result.append(", [ identificador: ").append(this.identificador).append(" ]");

		result.append(", [ nombre: ").append(this.nombre).append(" ]");

		result.append(", [ apellido1: ").append(this.apellido1).append(" ]");

		result.append(", [ apellido2: ").append(this.apellido2).append(" ]");

		result.append(", [ tipo: ").append(this.tipo).append(" ]");

		result.append(", [ numregoriginal: ").append(this.numregoriginal).append(" ]");

		result.append(", [ fregoriginal: ").append(this.fregoriginal).append(" ]");

		result.append(", [ remitente: ").append(this.remitente).append(" ]");

		result.append(", [ bloqueo: ").append(this.bloqueo).append(" ]");

		result.append(", [ usuresponsable: ").append(this.usuresponsable).append(" ]");

		result.append(", [ numdocumentos: ").append(this.numdocumentos).append(" ]");

		result.append(", [ qrcode: ").append(this.qrcode).append(" ]");

		result.append(", [ observaciones: ").append(this.observaciones).append(" ]");

		result.append(", [ motivoOcultar: ").append(this.motivoOcultar).append(" ]");

		result.append("}");
		return result.toString();
	}

	/**
	 * Method 'getBeneficiario01'.
	 *
	 * @return Integer
	 */
	public Integer getBeneficiario01() {
		return beneficiario01;
	}

	/**
	 * Method 'setBeneficiario01'.
	 *
	 * @param beneficiario01 Integer
	 * @return
	 */
	public void setBeneficiario01(Integer beneficiario01) {
		this.beneficiario01 = beneficiario01;
	}

	/**
	 * Method 'obtenerJSON'.
	 *
	 * @return String
	 */
	@JsonIgnore
	public String obtenerJSON() {

		ObjectMapper mapper = new ObjectMapper();

		// Object to JSON in String
		try {
			return mapper.writeValueAsString(this);
		} catch (IOException e) {
			return "";
		}
	}

	public Integer getUrgencia() {
		return urgencia;
	}

	public void setUrgencia(Integer urgencia) {
		this.urgencia = urgencia;
	}

}
