package com.ejie.ad74a.model;

import com.ejie.ad74a.util.comun.UtilLiterales;
import com.ejie.ad74a.util.constantes.EstadosQuejasReclamacionesEnum;
import com.ejie.ad74a.util.constantes.ProcedenteEnum;
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;
import java.util.Date;

import javax.annotation.Resource;

import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;

/**
 * QuejasReclamaciones generated by UDA, 12-sep-2023 8:48:35.
 * 
 * @author UDA
 */

public class QuejasReclamaciones implements java.io.Serializable {

	@Resource
	private ReloadableResourceBundleMessageSource appMessageSource;

	private static final long serialVersionUID = 1L;
	private Long idQueja84;
	private Long idSolicitante84;
	private Solicitantes solicitantes;
	private Avisos avisos;
	private Long idAviso84;
	private Date fecQueja84;
	private Integer estado84;
	private Integer procedente84;
	private Integer tiempoResolucion84;
	private String observaciones84;
	private Date fAlta84;
	private Date fechaQuejaDesde;
	private Date fechaQuejaHasta;
	private String usuAlta84;
	private Date fModif84;
	private String usuModif84;
	private MaestroMotQueja maestroMotQueja;
	private String nombreBeneficiario;

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

	/**
	 * Method 'QuejasReclamaciones'.
	 * 
	 * @param idQueja84 BigDecimal
	 */
	public QuejasReclamaciones(Long idQueja84) {
		this.idQueja84 = idQueja84;
	}

	/**
	 * Method 'QuejasReclamaciones'.
	 * 
	 * @param idQueja84          BigDecimal
	 * @param idSolicitante84    BigDecimal
	 * @param idAviso84          BigDecimal
	 * @param FQueja84           Date
	 * @param estado84           Integer
	 * @param procedente84       Integer
	 * @param tiempoResolucion84 BigDecimal
	 * @param observaciones84    String
	 * @param FAlta84            Date
	 * @param usuAlta84          String
	 * @param FModif84           Date
	 * @param usuModif84         String
	 */
	public QuejasReclamaciones(Long idQueja84, Long idSolicitante84, Long idAviso84, Date FQueja84, Integer estado84,
			Integer procedente84, Integer tiempoResolucion84, String observaciones84, Date FAlta84, String usuAlta84,
			Date FModif84, String usuModif84) {

		this.idQueja84 = idQueja84;
		this.idSolicitante84 = idSolicitante84;
		this.idAviso84 = idAviso84;
		this.fecQueja84 = FQueja84;
		this.estado84 = estado84;
		this.procedente84 = procedente84;
		this.tiempoResolucion84 = tiempoResolucion84;
		this.observaciones84 = observaciones84;
		this.fAlta84 = FAlta84;
		this.usuAlta84 = usuAlta84;
		this.fModif84 = FModif84;
		this.usuModif84 = usuModif84;
	}

	/**
	 * Method 'getIdQueja84'.
	 *
	 * @return BigDecimal
	 */

	public Long getIdQueja84() {
		return this.idQueja84;
	}

	/**
	 * Method 'setIdQueja84'.
	 *
	 * @param idQueja84 BigDecimal
	 * @return
	 */

	public void setIdQueja84(Long idQueja84) {
		this.idQueja84 = idQueja84;
	}

	/**
	 * Method 'getIdSolicitante84'.
	 *
	 * @return BigDecimal
	 */

	public Long getIdSolicitante84() {
		return this.idSolicitante84;
	}

	/**
	 * Method 'setIdSolicitante84'.
	 *
	 * @param idSolicitante84 BigDecimal
	 * @return
	 */

	public void setIdSolicitante84(Long idSolicitante84) {
		this.idSolicitante84 = idSolicitante84;
	}

	/**
	 * Method 'getIdAviso84'.
	 *
	 * @return BigDecimal
	 */

	public Long getIdAviso84() {
		return this.idAviso84;
	}

	/**
	 * Method 'setIdAviso84'.
	 *
	 * @param idAviso84 BigDecimal
	 * @return
	 */

	public void setIdAviso84(Long idAviso84) {
		this.idAviso84 = idAviso84;
	}

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

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

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

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

	public Integer getEstado84() {
		return this.estado84;
	}

	public String getEstadoStr() {
		if (null != this.estado84) {
			if (this.estado84 == 0) {
				return EstadosQuejasReclamacionesEnum.PENDRESOL.getLabelDesc();
			} else {
				return EstadosQuejasReclamacionesEnum.RESUELTA.getLabelDesc();
			}
		}

		return "";
	}

	/**
	 * Method 'setEstado84'.
	 *
	 * @param estado84 Integer
	 * @return
	 */

	public void setEstado84(Integer estado84) {
		this.estado84 = estado84;
	}

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

	public Integer getProcedente84() {
		return this.procedente84;
	}

	public String getProcedenteStr() {
		if (null != this.procedente84) {
			if (this.procedente84 == 0) {
				return ProcedenteEnum.NOPROCEDENTE.getLabelDesc();
			} else {
				return ProcedenteEnum.PROCEDENTE.getLabelDesc();
			}
		}

		return "";
	}

	/**
	 * Method 'setProcedente84'.
	 *
	 * @param procedente84 Integer
	 * @return
	 */

	public void setProcedente84(Integer procedente84) {
		this.procedente84 = procedente84;
	}

	/**
	 * Method 'getTiempoResolucion84'.
	 *
	 * @return BigDecimal
	 */

	public Integer getTiempoResolucion84() {
		return this.tiempoResolucion84;
	}

	/**
	 * Method 'setTiempoResolucion84'.
	 *
	 * @param integer BigDecimal
	 * @return
	 */

	public void setTiempoResolucion84(Integer integer) {
		this.tiempoResolucion84 = integer;
	}

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

	public String getObservaciones84() {
		return this.observaciones84;
	}

	/**
	 * Method 'setObservaciones84'.
	 *
	 * @param observaciones84 String
	 * @return
	 */

	public void setObservaciones84(String observaciones84) {
		this.observaciones84 = observaciones84;
	}

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

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

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

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

	public String getUsuAlta84() {
		return this.usuAlta84;
	}

	/**
	 * Method 'setUsuAlta84'.
	 *
	 * @param usuAlta84 String
	 * @return
	 */

	public void setUsuAlta84(String usuAlta84) {
		this.usuAlta84 = usuAlta84;
	}

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

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

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

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

	public String getUsuModif84() {
		return this.usuModif84;
	}

	/**
	 * Method 'setUsuModif84'.
	 *
	 * @param usuModif84 String
	 * @return
	 */

	public void setUsuModif84(String usuModif84) {
		this.usuModif84 = usuModif84;
	}

	/**
	 * 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(" [ idQueja84: ").append(this.idQueja84).append(" ]");
		result.append(", [ idSolicitante84: ").append(this.idSolicitante84).append(" ]");
		result.append(", [ idAviso84: ").append(this.idAviso84).append(" ]");
		result.append(", [ FQueja84: ").append(this.fecQueja84).append(" ]");
		result.append(", [ estado84: ").append(this.estado84).append(" ]");
		result.append(", [ procedente84: ").append(this.procedente84).append(" ]");
		result.append(", [ tiempoResolucion84: ").append(this.tiempoResolucion84).append(" ]");
		result.append(", [ observaciones84: ").append(this.observaciones84).append(" ]");
		result.append(", [ FAlta84: ").append(this.fAlta84).append(" ]");
		result.append(", [ usuAlta84: ").append(this.usuAlta84).append(" ]");
		result.append(", [ FModif84: ").append(this.fModif84).append(" ]");
		result.append(", [ usuModif84: ").append(this.usuModif84).append(" ]");
		result.append("}");
		return result.toString();
	}

	public Solicitantes getSolicitantes() {
		return solicitantes;
	}

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

	public Avisos getAvisos() {
		return avisos;
	}

	public void setAvisos(Avisos avisos) {
		this.avisos = avisos;
	}

	public MaestroMotQueja getMaestroMotQueja() {
		return maestroMotQueja;
	}

	public void setMaestroMotQueja(MaestroMotQueja maestroMotQueja) {
		this.maestroMotQueja = maestroMotQueja;
	}

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaQuejaDesde() {
		return fechaQuejaDesde;
	}

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

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFechaQuejaHasta() {
		return fechaQuejaHasta;
	}

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

	public String getNombreBeneficiario() {
		return nombreBeneficiario;
	}

	public void setNombreBeneficiario(String nombreBeneficiario) {
		this.nombreBeneficiario = nombreBeneficiario;
	}

	public String getNombreApellidosSolicitante() {
		if (null != this.solicitantes && null != this.solicitantes.getIdentificador01()
				&& null != this.solicitantes.getNombreCompleto()) {
			return this.solicitantes.getNombreCompleto();
		}
		return "";
	}
}
