package com.ejie.ad74a.model;

import com.ejie.ad74a.constantes.Constantes;
import com.ejie.ad74a.util.constantes.EstadosCuentasErroneasEnum;
import com.ejie.ad74a.util.constantes.TerritoriosEnum;
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 java.util.Locale;

import org.springframework.context.i18n.LocaleContextHolder;

/**
 * CuentasErroneas generated by UDA, 17-ene-2024 12:01:29.
 * 
 * @author UDA
 */

public class CuentasErroneas implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	// Clave compuesta
	private String identificador;
	private Long idsolicitante;
	private Integer beneficiario01;
	private Long idcuentaactualizada;
	private String nombre;
	private String apellido1;
	private String apellido2;
	private String territorio;
	private String ibanerroneo;
	private String ibanactualizado;
	private Long estado;
	private Date fecActualizacion;
	private Date factualizacionDesde;
	private Date factualizacionHasta;
	private String errorEs;
	private String errorEu;
	private Cuentas cuentaErronea;

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

	/**
	 * Method 'CuentasErroneas'.
	 * 
	 * @param tipoidentificador String
	 * @param identificador     String
	 * @param idsolicitante     Long
	 * @param nombre            String
	 * @param apellido1         String
	 * @param apellido2         String
	 * @param territorio        String
	 * @param ibanerroneo       String
	 * @param ibanactualizado   String
	 * @param estado            Long
	 * @param factualizacion    Date
	 * @param motivo            String
	 */
	public CuentasErroneas(String identificador, Long idsolicitante, String nombre, String apellido1, String apellido2,
			String territorio, String ibanerroneo, String ibanactualizado, Long estado, Date factualizacion) {
		this.identificador = identificador;
		this.idsolicitante = idsolicitante;
		this.nombre = nombre;
		this.apellido1 = apellido1;
		this.apellido2 = apellido2;
		this.territorio = territorio;
		this.ibanerroneo = ibanerroneo;
		this.ibanactualizado = ibanactualizado;
		this.estado = estado;
		this.fecActualizacion = factualizacion;
	}

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

	/**
	 * 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 'getIdsolicitante'.
	 *
	 * @return Long
	 */

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

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

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

	/**
	 * 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 'getTerritorio'.
	 *
	 * @return String
	 */

	public String getTerritorio() {
		return this.territorio;
	}

	/**
	 * Method 'setTerritorio'.
	 *
	 * @param territorio String
	 * @return
	 */

	public void setTerritorio(String territorio) {
		this.territorio = territorio;
	}

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

	public String getIbanerroneo() {
		return this.ibanerroneo;
	}

	/**
	 * Method 'setIbanerroneo'.
	 *
	 * @param ibanerroneo String
	 * @return
	 */

	public void setIbanerroneo(String ibanerroneo) {
		this.ibanerroneo = ibanerroneo;
	}

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

	public String getIbanactualizado() {
		return this.ibanactualizado;
	}

	/**
	 * Method 'setIbanactualizado'.
	 *
	 * @param ibanactualizado String
	 * @return
	 */

	public void setIbanactualizado(String ibanactualizado) {
		this.ibanactualizado = ibanactualizado;
	}

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

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

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

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

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

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

	/**
	 * Method 'setFactualizacion'.
	 *
	 * @param factualizacion Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecActualizacion(Date fecActualizacion) {
		this.fecActualizacion = fecActualizacion;
	}

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

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFactualizacionDesde() {
		return factualizacionDesde;
	}

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

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFactualizacionHasta() {
		return factualizacionHasta;
	}

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

	/**
	 * 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(", [ identificador: ").append(this.identificador).append(" ]");

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

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

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

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

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

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

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

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

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

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

	public Long getIdcuentaactualizada() {
		return idcuentaactualizada;
	}

	public void setIdcuentaactualizada(Long idcuentaactualizada) {
		this.idcuentaactualizada = idcuentaactualizada;
	}

	public Cuentas getCuentaErronea() {
		return cuentaErronea;
	}

	public void setCuentaErronea(Cuentas cuentaErronea) {
		this.cuentaErronea = cuentaErronea;
	}

	public String getErrorEs() {
		return errorEs;
	}

	public void setErrorEs(String errorEs) {
		this.errorEs = errorEs;
	}

	public String getErrorEu() {
		return errorEu;
	}

	public void setErrorEu(String errorEu) {
		this.errorEu = errorEu;
	}

	public Integer getBeneficiario01() {
		return beneficiario01;
	}

	public void setBeneficiario01(Integer beneficiario01) {
		this.beneficiario01 = beneficiario01;
	}

	public String getDescError() {
		Locale locale = LocaleContextHolder.getLocale();

		if (locale.equals(Constantes.LOCALE_ES)) {
			return this.errorEs;
		} else {
			return this.errorEu;
		}
	}

	public String getNombreApellidosSolicitante() {
		return this.nombre + "  " + this.apellido1 + " " + this.apellido2;
	}

	public String getEstadoStr() {
		if (null != this.estado) {
			if (this.estado == EstadosCuentasErroneasEnum.MODIF.getIdLongValue()) {
				return EstadosCuentasErroneasEnum.MODIF.getLabelDesc();
			} else if (this.estado == EstadosCuentasErroneasEnum.PEND.getIdLongValue()) {
				return EstadosCuentasErroneasEnum.PEND.getLabelDesc();
			}
		}
		return "";
	}

	public String getTerritorioStr() {
		if (null != this.territorio) {
			if (this.territorio.equals(TerritoriosEnum.ARABA.getId())) {
				return TerritoriosEnum.ARABA.getLabelDesc();
			} else if (this.territorio.equals(TerritoriosEnum.GIPUZKOA.getId())) {
				return TerritoriosEnum.GIPUZKOA.getLabelDesc();
			} else if (this.territorio.equals(TerritoriosEnum.BIZKAIA.getId())) {
				return TerritoriosEnum.BIZKAIA.getLabelDesc();
			}
		}
		return "";

	}

}
