/*
* 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 org.springframework.context.i18n.LocaleContextHolder;

/**
 * ConceptosIngreso generated by UDA, 28-jun-2023 10:59:26.
 * 
 * @author UDA
 */

public class ConceptosIngreso implements java.io.Serializable {

	private static final long serialVersionUID = 1L;

	private Long idConcepto31;
	private TiposIngreso tiposIngreso;
	private String descripcionEs31;
	private String descripcionEu31;
	private String codSipca31;
	private String tipoDevengo31;
	private String usuAlta31;
	private Date fAlta31;
	private String usuModif31;
	private Date fModif31;
	private List<ConceptosLiq> conceptosLiqs = new ArrayList<ConceptosLiq>();

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

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

	/**
	 * Method 'ConceptosIngreso'.
	 * 
	 * @param idConcepto31    Long
	 * @param tiposIngreso    TiposIngreso
	 * @param descripcionEs31 String
	 * @param descripcionEu31 String
	 * @param codSipca31      String
	 * @param tipoDevengo31   String
	 * @param usuAlta31       String
	 * @param fAlta31         Date
	 * @param usuModif31      String
	 * @param fModif31        Date
	 */
	public ConceptosIngreso(Long idConcepto31, TiposIngreso tiposIngreso, String descripcionEs31,
			String descripcionEu31, String codSipca31, String tipoDevengo31, String usuAlta31, Date fAlta31,
			String usuModif31, Date fModif31) {
		this.idConcepto31 = idConcepto31;
		this.tiposIngreso = tiposIngreso;
		this.descripcionEs31 = descripcionEs31;
		this.descripcionEu31 = descripcionEu31;
		this.codSipca31 = codSipca31;
		this.tipoDevengo31 = tipoDevengo31;
		this.usuAlta31 = usuAlta31;
		this.fAlta31 = fAlta31;
		this.usuModif31 = usuModif31;
		this.fModif31 = fModif31;
	}

	/**
	 * Method 'ConceptosIngreso'.
	 * 
	 * @param idConcepto31    Long
	 * @param tiposIngreso    TiposIngreso
	 * @param descripcionEs31 String
	 * @param descripcionEu31 String
	 * @param codSipca31      String
	 * @param tipoDevengo31   String
	 * @param usuAlta31       String
	 * @param fAlta31         Date
	 * @param usuModif31      String
	 * @param fModif31        Date
	 * @param conceptosLiqs   List<ConceptosLiq>
	 */
	public ConceptosIngreso(Long idConcepto31, TiposIngreso tiposIngreso, String descripcionEs31,
			String descripcionEu31, String codSipca31, String tipoDevengo31, String usuAlta31, Date fAlta31,
			String usuModif31, Date fModif31, List<ConceptosLiq> conceptosLiqs) {
		this.idConcepto31 = idConcepto31;
		this.tiposIngreso = tiposIngreso;
		this.descripcionEs31 = descripcionEs31;
		this.descripcionEu31 = descripcionEu31;
		this.codSipca31 = codSipca31;
		this.tipoDevengo31 = tipoDevengo31;
		this.usuAlta31 = usuAlta31;
		this.fAlta31 = fAlta31;
		this.usuModif31 = usuModif31;
		this.fModif31 = fModif31;
		this.conceptosLiqs = conceptosLiqs;
	}

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

	public Long getIdConcepto31() {
		return this.idConcepto31;
	}

	/**
	 * Method 'setIdConcepto31'.
	 *
	 * @param idConcepto31 Long
	 * @return
	 */

	public void setIdConcepto31(Long idConcepto31) {
		this.idConcepto31 = idConcepto31;
	}

	/**
	 * Method 'getTiposIngreso'.
	 *
	 * @return TiposIngreso
	 */

	public TiposIngreso getTiposIngreso() {
		return this.tiposIngreso;
	}

	/**
	 * Method 'setTiposIngreso'.
	 *
	 * @param tiposIngreso TiposIngreso
	 * @return
	 */

	public void setTiposIngreso(TiposIngreso tiposIngreso) {
		this.tiposIngreso = tiposIngreso;
	}

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

	public String getDescripcionEs31() {
		return this.descripcionEs31;
	}

	/**
	 * Method 'setDescripcionEs31'.
	 *
	 * @param descripcionEs31 String
	 * @return
	 */

	public void setDescripcionEs31(String descripcionEs31) {
		this.descripcionEs31 = descripcionEs31;
	}

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

	public String getDescripcionEu31() {
		return this.descripcionEu31;
	}

	/**
	 * Method 'setDescripcionEu31'.
	 *
	 * @param descripcionEu31 String
	 * @return
	 */

	public void setDescripcionEu31(String descripcionEu31) {
		this.descripcionEu31 = descripcionEu31;
	}

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

	public String getCodSipca31() {
		return this.codSipca31;
	}

	/**
	 * Method 'setCodSipca31'.
	 *
	 * @param codSipca31 String
	 * @return
	 */

	public void setCodSipca31(String codSipca31) {
		this.codSipca31 = codSipca31;
	}

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

	public String getTipoDevengo31() {
		return this.tipoDevengo31;
	}

	/**
	 * Method 'setTipoDevengo31'.
	 *
	 * @param tipoDevengo31 String
	 * @return
	 */

	public void setTipoDevengo31(String tipoDevengo31) {
		this.tipoDevengo31 = tipoDevengo31;
	}

	/**
	 * Method 'getConceptosLiqs'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<ConceptosLiq> getConceptosLiqs() {
		return this.conceptosLiqs;
	}

	/**
	 * Method 'setConceptosLiqs'.
	 *
	 * @param conceptosLiqs List
	 * @return
	 */
	public void setConceptosLiqs(List<ConceptosLiq> conceptosLiqs) {
		this.conceptosLiqs = conceptosLiqs;
	}

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

	public String getUsuAlta31() {
		return this.usuAlta31;
	}

	/**
	 * Method 'setUsuAlta31'.
	 *
	 * @param usuAlta31 String
	 * @return
	 */

	public void setUsuAlta31(String usuAlta31) {
		this.usuAlta31 = usuAlta31;
	}

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

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

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

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

	public String getUsuModif31() {
		return this.usuModif31;
	}

	/**
	 * Method 'setUsuModif31'.
	 *
	 * @param usuModif31 String
	 * @return
	 */

	public void setUsuModif31(String usuModif31) {
		this.usuModif31 = usuModif31;
	}

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

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

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

	/**
	 * 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(" [ idConcepto31: ").append(this.idConcepto31).append(" ]");
		result.append(", [ tiposIngreso: ").append(this.tiposIngreso).append(" ]");
		result.append(", [ descripcionEs31: ").append(this.descripcionEs31).append(" ]");
		result.append(", [ descripcionEu31: ").append(this.descripcionEu31).append(" ]");
		result.append(", [ codSipca31: ").append(this.codSipca31).append(" ]");
		result.append(", [ tipoDevengo31: ").append(this.tipoDevengo31).append(" ]");
		result.append(", [ usuAlta31: ").append(this.usuAlta31).append(" ]");
		result.append(", [ fAlta31: ").append(this.fAlta31).append(" ]");
		result.append(", [ usuModif31: ").append(this.usuModif31).append(" ]");
		result.append(", [ fModif31: ").append(this.fModif31).append(" ]");
		result.append("}");
		return result.toString();
	}

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

	public String getDesc() {
		if (LocaleContextHolder.getLocale().getLanguage().equalsIgnoreCase(Constantes.LOCALE_ES.getLanguage())) {
			return this.getDescripcionEs31();
		} else if (LocaleContextHolder.getLocale().getLanguage().equalsIgnoreCase(Constantes.LOCALE_EU.getLanguage())) {
			return this.getDescripcionEu31();
		}
		return "";
	}
}
