package com.ejie.ad74a.model;

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.math.BigDecimal;
import java.util.Date;

/**
 * DatosEconomicos generated by UDA, 29-sep-2023 12:57:12.
 * 
 * @author UDA
 */

public class DatosEconomicos implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long idDatoEco85;
	private String descripcion85;
	private BigDecimal importeAnual85;
	private MaestroTiposDatoEco tipoDatoEco;
	private Long idSolicitante85;
	private Long idExpediente85;
	private Integer ejercicioDesde85;
	private Integer ejercicioHasta85;
	private Date fAlta85;
	private String usuAlta85;
	private Date fModif85;
	private String usuModif85;

	// Auxiliar
	private Integer ejercicioFilter;

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

	/**
	 * Method 'DatosEconomicos'.
	 * 
	 * @param idDatoEco85 Long
	 */
	public DatosEconomicos(Long idDatoEco85) {
		this.idDatoEco85 = idDatoEco85;
	}

	/**
	 * Method 'DatosEconomicos'.
	 * 
	 * @param idDatoEco85      Long
	 * @param descripcion85    String
	 * @param importeAnual85   BigDecimal
	 * @param idTipoDatoEco85  Long
	 * @param idSolicitante85  Long
	 * @param idExpediente85   Long
	 * @param ejercicioDesde85 Integer
	 * @param ejercicioHasta85 Integer
	 * @param fAlta85          Date
	 * @param usuAlta85        String
	 * @param fModif85         Date
	 * @param usuModif85       String
	 */
	public DatosEconomicos(Long idDatoEco85, String descripcion85, BigDecimal importeAnual85, Long idTipoDatoEco85,
			Long idSolicitante85, Long idExpediente85, Integer ejercicioDesde85, Integer ejercicioHasta85, Date fAlta85,
			String usuAlta85, Date fModif85, String usuModif85) {

		this.idDatoEco85 = idDatoEco85;
		this.descripcion85 = descripcion85;
		this.importeAnual85 = importeAnual85;
		this.tipoDatoEco = new MaestroTiposDatoEco(idTipoDatoEco85);
		this.idSolicitante85 = idSolicitante85;
		this.idExpediente85 = idExpediente85;
		this.ejercicioDesde85 = ejercicioDesde85;
		this.ejercicioHasta85 = ejercicioHasta85;
		this.fAlta85 = fAlta85;
		this.usuAlta85 = usuAlta85;
		this.fModif85 = fModif85;
		this.usuModif85 = usuModif85;
	}

	/**
	 * Method 'DatosEconomicos'.
	 * 
	 * @param idDatoEco85      Long
	 * @param descripcion85    String
	 * @param importeAnual85   BigDecimal
	 * @param tipoDatoEco85    MaestroTiposDatoEco
	 * @param idSolicitante85  Long
	 * @param idExpediente85   Long
	 * @param ejercicioDesde85 Integer
	 * @param ejercicioHasta85 Integer
	 * @param fAlta85          Date
	 * @param usuAlta85        String
	 * @param fModif85         Date
	 * @param usuModif85       String
	 */
	public DatosEconomicos(Long idDatoEco85, String descripcion85, BigDecimal importeAnual85,
			MaestroTiposDatoEco tipoDatoEco85, Long idSolicitante85, Long idExpediente85, Integer ejercicioDesde85,
			Integer ejercicioHasta85, Date fAlta85, String usuAlta85, Date fModif85, String usuModif85) {

		this.idDatoEco85 = idDatoEco85;
		this.descripcion85 = descripcion85;
		this.importeAnual85 = importeAnual85;
		this.tipoDatoEco = tipoDatoEco85;
		this.idSolicitante85 = idSolicitante85;
		this.idExpediente85 = idExpediente85;
		this.ejercicioDesde85 = ejercicioDesde85;
		this.ejercicioHasta85 = ejercicioHasta85;
		this.fAlta85 = fAlta85;
		this.usuAlta85 = usuAlta85;
		this.fModif85 = fModif85;
		this.usuModif85 = usuModif85;
	}

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

	public Long getIdDatoEco85() {
		return this.idDatoEco85;
	}

	/**
	 * Method 'setIdDatoEco85'.
	 *
	 * @param idDatoEco85 Long
	 * @return
	 */

	public void setIdDatoEco85(Long idDatoEco85) {
		this.idDatoEco85 = idDatoEco85;
	}

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

	public String getDescripcion85() {
		return this.descripcion85;
	}

	/**
	 * Method 'setDescripcion85'.
	 *
	 * @param descripcion85 String
	 * @return
	 */

	public void setDescripcion85(String descripcion85) {
		this.descripcion85 = descripcion85;
	}

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

	public BigDecimal getImporteAnual85() {
		return this.importeAnual85;
	}

	/**
	 * Method 'setImporteAnual85'.
	 *
	 * @param importeAnual85 BigDecimal
	 * @return
	 */

	public void setImporteAnual85(BigDecimal importeAnual85) {
		this.importeAnual85 = importeAnual85;
	}

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

	public Long getIdTipoDatoEco85() {
		if (this.tipoDatoEco != null) {
			return this.tipoDatoEco.getIdTipoDatoEco61();
		}
		return null;
	}

	/**
	 * Method 'setIdTipoDatoEco85'.
	 *
	 * @param idTipoDatoEco85 Long
	 * @return
	 */

	public void setIdTipoDatoEco85(Long idTipoDatoEco85) {
		if (this.tipoDatoEco != null) {
			this.tipoDatoEco.setIdTipoDatoEco61(idTipoDatoEco85);
		}
		this.tipoDatoEco = new MaestroTiposDatoEco(idTipoDatoEco85);
	}

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

	public Long getIdSolicitante85() {
		return this.idSolicitante85;
	}

	/**
	 * Method 'setIdSolicitante85'.
	 *
	 * @param idSolicitante85 Long
	 * @return
	 */

	public void setIdSolicitante85(Long idSolicitante85) {
		this.idSolicitante85 = idSolicitante85;
	}

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

	public Long getIdExpediente85() {
		return this.idExpediente85;
	}

	/**
	 * Method 'setIdExpediente85'.
	 *
	 * @param idExpediente85 Long
	 * @return
	 */

	public void setIdExpediente85(Long idExpediente85) {
		this.idExpediente85 = idExpediente85;
	}

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

	public Integer getEjercicioDesde85() {
		return this.ejercicioDesde85;
	}

	/**
	 * Method 'setEjercicioDesde85'.
	 *
	 * @param ejercicioDesde85 Integer
	 * @return
	 */

	public void setEjercicioDesde85(Integer ejercicioDesde85) {
		this.ejercicioDesde85 = ejercicioDesde85;
	}

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

	public Integer getEjercicioHasta85() {
		return this.ejercicioHasta85;
	}

	/**
	 * Method 'setEjercicioHasta85'.
	 *
	 * @param ejercicioHasta85 Integer
	 * @return
	 */

	public void setEjercicioHasta85(Integer ejercicioHasta85) {
		this.ejercicioHasta85 = ejercicioHasta85;
	}

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

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

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

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

	public String getUsuAlta85() {
		return this.usuAlta85;
	}

	/**
	 * Method 'setUsuAlta85'.
	 *
	 * @param usuAlta85 String
	 * @return
	 */

	public void setUsuAlta85(String usuAlta85) {
		this.usuAlta85 = usuAlta85;
	}

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

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

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

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

	public String getUsuModif85() {
		return this.usuModif85;
	}

	/**
	 * Method 'setUsuModif85'.
	 *
	 * @param usuModif85 String
	 * @return
	 */

	public void setUsuModif85(String usuModif85) {
		this.usuModif85 = usuModif85;
	}

	/**
	 * 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(" [ idDatoEco85: ").append(this.idDatoEco85).append(" ]");
		result.append(", [ descripcion85: ").append(this.descripcion85).append(" ]");
		result.append(", [ importeAnual85: ").append(this.importeAnual85).append(" ]");
		result.append(", [ idTipoDatoEco85: ").append(this.getIdTipoDatoEco85()).append(" ]");
		result.append(", [ idSolicitante85: ").append(this.idSolicitante85).append(" ]");
		result.append(", [ idExpediente85: ").append(this.idExpediente85).append(" ]");
		result.append(", [ ejercicioDesde85: ").append(this.ejercicioDesde85).append(" ]");
		result.append(", [ ejercicioHasta85: ").append(this.ejercicioHasta85).append(" ]");
		result.append(", [ FAlta85: ").append(this.fAlta85).append(" ]");
		result.append(", [ usuAlta85: ").append(this.usuAlta85).append(" ]");
		result.append(", [ FModif85: ").append(this.fModif85).append(" ]");
		result.append(", [ usuModif85: ").append(this.usuModif85).append(" ]");
		result.append("}");
		return result.toString();
	}

	/**
	 * Method 'getTipoDatoEco'.
	 *
	 * @return MaestroTiposDatoEco
	 */

	public MaestroTiposDatoEco getTipoDatoEco() {
		return tipoDatoEco;
	}

	/**
	 * Method 'setTipoDatoEco'.
	 *
	 * @param tipoDatoEco MaestroTiposDatoEco
	 * @return
	 */
	public void setTipoDatoEco(MaestroTiposDatoEco tipoDatoEco) {
		this.tipoDatoEco = tipoDatoEco;
	}

	public Integer getEjercicioFilter() {
		return ejercicioFilter;
	}

	public void setEjercicioFilter(Integer ejercicioFilter) {
		this.ejercicioFilter = ejercicioFilter;
	}

	/*
	 * *****************************************************************************
	 * Se crean unos getter/ setter diferentes porque dan problemas en el detalle de
	 * datos economicos, si se usan los normales ignora la validación de obligatorio
	 */
	public Integer getEjercicioDesde852() {
		return ejercicioDesde85;
	}

	public void setEjercicioDesde852(Integer ejercicioDesde852) {
		this.ejercicioDesde85 = ejercicioDesde852;
	}

	public Integer getEjercicioHasta852() {
		return this.ejercicioHasta85;
	}

	public void setEjercicioHasta852(Integer ejercicioHasta85) {
		this.ejercicioHasta85 = ejercicioHasta85;
	}
	/*
	 * *****************************************************************************
	 */
}
