/*
* 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.ae01b;

import com.ejie.ad74a.constantes.Constantes;
import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import org.springframework.context.i18n.LocaleContextHolder;

/**
 * TiposIngreso generated by UDA, 27-jun-2023 9:31:04.
 * 
 * @author UDA
 */

public class TiposIngreso implements java.io.Serializable {

	private static final long serialVersionUID = 1L;

	private Long idTipoIngreso30;
	private String tipoIngreso30;
	private String descripcionEs30;
	private String descripcionEu30;
	private Long idAplicacion30;
	private Long diasLimPag30;
	private Integer fichTerritorio30;
	private String usuAlta30;
	private Date fAlta30;
	private String usuModif30;
	private Date fModif30;
	private List<Liquidaciones> liquidacioneses = new ArrayList<Liquidaciones>();

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

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

	/**
	 * Method 'TiposIngreso'.
	 * 
	 * @param idTipoIngreso30  Long
	 * @param tipoIngreso30    String
	 * @param descripcionEs30  String
	 * @param descripcionEu30  String
	 * @param idAplicacion30   Long
	 * @param diasLimPag30     Long
	 * @param fichTerritorio30 Integer
	 * @param usuAlta30        String
	 * @param fAlta30          Date
	 * @param usuModif30       String
	 * @param fModif30         Date
	 */
	public TiposIngreso(Long idTipoIngreso30, String tipoIngreso30, String descripcionEs30, String descripcionEu30,
			Long idAplicacion30, Long diasLimPag30, Integer fichTerritorio30, String usuAlta30, Date fAlta30,
			String usuModif30, Date fModif30) {
		this.idTipoIngreso30 = idTipoIngreso30;
		this.tipoIngreso30 = tipoIngreso30;
		this.descripcionEs30 = descripcionEs30;
		this.descripcionEu30 = descripcionEu30;
		this.idAplicacion30 = idAplicacion30;
		this.diasLimPag30 = diasLimPag30;
		this.fichTerritorio30 = fichTerritorio30;
		this.usuAlta30 = usuAlta30;
		this.fAlta30 = fAlta30;
		this.usuModif30 = usuModif30;
		this.fModif30 = fModif30;
	}

	/**
	 * Method 'TiposIngreso'.
	 * 
	 * @param idTipoIngreso30  Long
	 * @param tipoIngreso30    String
	 * @param descripcionEs30  String
	 * @param descripcionEu30  String
	 * @param idAplicacion30   Long
	 * @param diasLimPag30     Long
	 * @param fichTerritorio30 Integer
	 * @param usuAlta30        String
	 * @param fAlta30          Date
	 * @param usuModif30       String
	 * @param fModif30         Date
	 * @param liquidacioneses  List<Liquidaciones>
	 */
	public TiposIngreso(Long idTipoIngreso30, String tipoIngreso30, String descripcionEs30, String descripcionEu30,
			Long idAplicacion30, Long diasLimPag30, Integer fichTerritorio30, String usuAlta30, Date fAlta30,
			String usuModif30, Date fModif30, List<Liquidaciones> liquidacioneses) {
		this.idTipoIngreso30 = idTipoIngreso30;
		this.tipoIngreso30 = tipoIngreso30;
		this.descripcionEs30 = descripcionEs30;
		this.descripcionEu30 = descripcionEu30;
		this.idAplicacion30 = idAplicacion30;
		this.diasLimPag30 = diasLimPag30;
		this.fichTerritorio30 = fichTerritorio30;
		this.usuAlta30 = usuAlta30;
		this.fAlta30 = fAlta30;
		this.usuModif30 = usuModif30;
		this.fModif30 = fModif30;
		this.liquidacioneses = liquidacioneses;
	}

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

	public Long getIdTipoIngreso30() {
		return this.idTipoIngreso30;
	}

	/**
	 * Method 'setIdTipoIngreso30'.
	 *
	 * @param idTipoIngreso30 Long
	 * @return
	 */

	public void setIdTipoIngreso30(Long idTipoIngreso30) {
		this.idTipoIngreso30 = idTipoIngreso30;
	}

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

	public String getTipoIngreso30() {
		return this.tipoIngreso30;
	}

	/**
	 * Method 'setTipoIngreso30'.
	 *
	 * @param tipoIngreso30 String
	 * @return
	 */

	public void setTipoIngreso30(String tipoIngreso30) {
		this.tipoIngreso30 = tipoIngreso30;
	}

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

	public String getDescripcionEs30() {
		return this.descripcionEs30;
	}

	/**
	 * Method 'setDescripcionEs30'.
	 *
	 * @param descripcionEs30 String
	 * @return
	 */

	public void setDescripcionEs30(String descripcionEs30) {
		this.descripcionEs30 = descripcionEs30;
	}

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

	public String getDescripcionEu30() {
		return this.descripcionEu30;
	}

	/**
	 * Method 'setDescripcionEu30'.
	 *
	 * @param descripcionEu30 String
	 * @return
	 */

	public void setDescripcionEu30(String descripcionEu30) {
		this.descripcionEu30 = descripcionEu30;
	}

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

	public Long getIdAplicacion30() {
		return this.idAplicacion30;
	}

	/**
	 * Method 'setIdAplicacion30'.
	 *
	 * @param idAplicacion30 Long
	 * @return
	 */

	public void setIdAplicacion30(Long idAplicacion30) {
		this.idAplicacion30 = idAplicacion30;
	}

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

	public Long getDiasLimPag30() {
		return this.diasLimPag30;
	}

	/**
	 * Method 'setDiasLimPag30'.
	 *
	 * @param diasLimPag30 Long
	 * @return
	 */

	public void setDiasLimPag30(Long diasLimPag30) {
		this.diasLimPag30 = diasLimPag30;
	}

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

	public Integer getFichTerritorio30() {
		return this.fichTerritorio30;
	}

	/**
	 * Method 'setFichTerritorio30'.
	 *
	 * @param fichTerritorio30 Integer
	 * @return
	 */

	public void setFichTerritorio30(Integer fichTerritorio30) {
		this.fichTerritorio30 = fichTerritorio30;
	}

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

	public String getUsuAlta30() {
		return this.usuAlta30;
	}

	/**
	 * Method 'setUsuAlta30'.
	 *
	 * @param usuAlta30 String
	 * @return
	 */

	public void setUsuAlta30(String usuAlta30) {
		this.usuAlta30 = usuAlta30;
	}

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

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

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

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

	public String getUsuModif30() {
		return this.usuModif30;
	}

	/**
	 * Method 'setUsuModif30'.
	 *
	 * @param usuModif30 String
	 * @return
	 */

	public void setUsuModif30(String usuModif30) {
		this.usuModif30 = usuModif30;
	}

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

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

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

	/**
	 * Method 'getLiquidacioneses'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<Liquidaciones> getLiquidacioneses() {
		return this.liquidacioneses;
	}

	/**
	 * Method 'setLiquidacioneses'.
	 *
	 * @param liquidacioneses List
	 * @return
	 */
	public void setLiquidacioneses(List<Liquidaciones> liquidacioneses) {
		this.liquidacioneses = liquidacioneses;
	}

	/**
	 * 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(" [ idTipoIngreso30: ").append(this.idTipoIngreso30).append(" ]");
		result.append(", [ tipoIngreso30: ").append(this.tipoIngreso30).append(" ]");
		result.append(", [ descripcionEs30: ").append(this.descripcionEs30).append(" ]");
		result.append(", [ descripcionEu30: ").append(this.descripcionEu30).append(" ]");
		result.append(", [ idAplicacion30: ").append(this.idAplicacion30).append(" ]");
		result.append(", [ diasLimPag30: ").append(this.diasLimPag30).append(" ]");
		result.append(", [ fichTerritorio30: ").append(this.fichTerritorio30).append(" ]");
		result.append(", [ usuAlta30: ").append(this.usuAlta30).append(" ]");
		result.append(", [ fAlta30: ").append(this.fAlta30).append(" ]");
		result.append(", [ usuModif30: ").append(this.usuModif30).append(" ]");
		result.append(", [ fModif30: ").append(this.fModif30).append(" ]");
		result.append("}");
		return result.toString();
	}

	/**
	 * @return the descripcionEs
	 */
	public String getDescripcion() {
		Locale locale = LocaleContextHolder.getLocale();

		if (locale.equals(Constantes.LOCALE_ES)) {
			return descripcionEs30;
		} else {
			return descripcionEu30;
		}

	}
}
