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

import org.springframework.context.i18n.LocaleContextHolder;

import com.ejie.ad74a.constantes.Constantes;
import com.ejie.ad74a.util.comun.Utilidades;
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;

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

public class CopagosCargosMensuales implements java.io.Serializable {

	private static final long serialVersionUID = 1L;

	private Long idLiquidacion;
	private String idSolicitante;
	private String identificador;
	private String nombre;
	private String apellido1;
	private String apellido2;
	private Integer idTerritorio;
	private String idMensualidad;
	private Integer numLiquidacion;
	private String refLiquidacion;
	private Date fCargo;
	private BigDecimal importe;
	private Long estado;
	private Long idMotivo;
	private String motivoDescEs;
	private String motivoDescEu;
	private Date fecModifIban;
	private String anyo;
	private String mes;
	private String anyoDesde;
	private String mesDesde;
	private String anyoHasta;
	private String mesHasta;
	private Long exoneracion;
	private Integer activo;
	private Integer beneficiario;

	// Campos para el filtro
	private Date fCargoDesde;
	private Date fCargoHasta;
	private String cuentasErroneas;

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

	/**
	 * Method 'CopagosCargosMensuales'.
	 * 
	 * @param idLiquidacion  Long
	 * @param idBeneficiario Long
	 * @param numIdentif     String
	 * @param nombre         String
	 * @param apellido1      String
	 * @param apellido2      String
	 * @param idTerritorio   Integer
	 * @param mensualidad    String
	 * @param numLiquidacion Integer
	 * @param refLiquidacion String
	 * @param fCargo         Date
	 * @param importe        BigDecimal
	 * @param estado         Long
	 * @param idMotivo       Long
	 * @param motivoDescEs   String
	 * @param motivoDescEu   String
	 * @param fecModifIban   Date
	 */
	public CopagosCargosMensuales(Long idLiquidacion, String idBeneficiario, String numIdentif, String nombre,
			String apellido1, String apellido2, Integer idTerritorio, String mensualidad, Integer numLiquidacion,
			String refLiquidacion, Date fCargo, BigDecimal importe, Long estado, Long idMotivo, String motivoDescEs,
			String motivoDescEu, Date fecModifIban) {
		this.idLiquidacion = idLiquidacion;
		this.idSolicitante = idBeneficiario;
		this.identificador = numIdentif;
		this.nombre = nombre;
		this.apellido1 = apellido1;
		this.apellido2 = apellido2;
		this.idTerritorio = idTerritorio;
		this.idMensualidad = mensualidad;
		this.numLiquidacion = numLiquidacion;
		this.refLiquidacion = refLiquidacion;
		this.fCargo = fCargo;
		this.importe = importe;
		this.estado = estado;
		this.idMotivo = idMotivo;
		this.motivoDescEs = motivoDescEs;
		this.motivoDescEu = motivoDescEu;
		this.fecModifIban = fecModifIban;
	}

	/**
	 * Method 'CopagosCargosMensuales'.
	 * 
	 * @param idLiquidacion  Long
	 * @param idBeneficiario Long
	 */
	public CopagosCargosMensuales(Long idLiquidacion) {
		this.idLiquidacion = idLiquidacion;
	}

	/**
	 * Method 'getIdLiquidacion'.
	 * 
	 * @return Long
	 */
	public Long getIdLiquidacion() {
		return idLiquidacion;
	}

	/**
	 * Method 'setIdLiquidacion'.
	 *
	 * @param idLiquidacion Long
	 */
	public void setIdLiquidacion(Long idLiquidacion) {
		this.idLiquidacion = idLiquidacion;
	}

	/**
	 * Method 'getIdBeneficiario'.
	 * 
	 * @return Long
	 */
	public String getIdSolicitante() {
		return idSolicitante;
	}

	/**
	 * Method 'setIdLiquidacion'.
	 *
	 * @param idBeneficiario Long
	 */
	public void setIdSolicitante(String idBeneficiario) {
		this.idSolicitante = idBeneficiario;
	}

	/**
	 * Method 'getNumIdentif'.
	 * 
	 * @return String
	 */
	public String getIdentificador() {
		return identificador;
	}

	/**
	 * Method 'setNumIdentif'.
	 *
	 * @param numIdentif String
	 */
	public void setIdentificador(String numIdentif) {
		this.identificador = numIdentif;
	}

	/**
	 * Method 'getNombre'.
	 * 
	 * @return String
	 */
	public String getNombre() {
		return nombre;
	}

	/**
	 * Method 'setNombre'.
	 *
	 * @param nombre String
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	/**
	 * Method 'getApellido1'.
	 * 
	 * @return String
	 */
	public String getApellido1() {
		return apellido1;
	}

	/**
	 * Method 'setApellido1'.
	 *
	 * @param apellido1 String
	 */
	public void setApellido1(String apellido1) {
		this.apellido1 = apellido1;
	}

	/**
	 * Method 'getApellido2'.
	 * 
	 * @return String
	 */
	public String getApellido2() {
		return apellido2;
	}

	/**
	 * Method 'setApellido2'.
	 *
	 * @param apellido2 String
	 */
	public void setApellido2(String apellido2) {
		this.apellido2 = apellido2;
	}

	/**
	 * Method 'getIdTerritorio'.
	 * 
	 * @return Integer
	 */
	public Integer getIdTerritorio() {
		return idTerritorio;
	}

	/**
	 * Method 'setIdTerritorio'.
	 *
	 * @param idTerritorio Long
	 */
	public void setIdTerritorio(Integer idTerritorio) {
		this.idTerritorio = idTerritorio;
	}

	/**
	 * Method 'getMensualidad'.
	 * 
	 * @return String
	 */
	public String getMensualidad() {
		return idMensualidad;
	}

	/**
	 * Method 'setMensualidad'.
	 *
	 * @param mensualidad String
	 */
	public void setMensualidad(String mensualidad) {
		this.idMensualidad = mensualidad;
	}

	/**
	 * Method 'getNumLiquidacion'.
	 * 
	 * @return Integer
	 */
	public Integer getNumLiquidacion() {
		return numLiquidacion;
	}

	/**
	 * Method 'setNumLiquidacion'.
	 *
	 * @param numLiquidacion Integer
	 */
	public void setNumLiquidacion(Integer numLiquidacion) {
		this.numLiquidacion = numLiquidacion;
	}

	/**
	 * Method 'getRefLiquidacion'.
	 * 
	 * @return String
	 */
	public String getRefLiquidacion() {
		return refLiquidacion;
	}

	/**
	 * Method 'setRefLiquidacion'.
	 *
	 * @param refLiquidacion String
	 */
	public void setRefLiquidacion(String refLiquidacion) {
		this.refLiquidacion = refLiquidacion;
	}

	/**
	 * Method 'getfCargo'.
	 * 
	 * @return Date
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfCargo() {
		return fCargo;
	}

	/**
	 * Method 'setfCargo'.
	 *
	 * @param fCargo Date
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setfCargo(Date fCargo) {
		this.fCargo = fCargo;
	}

	/**
	 * Method 'getImporte'.
	 * 
	 * @return BigDecimal
	 */
	public BigDecimal getImporte() {
		return importe;
	}

	/**
	 * Method 'setImporte'.
	 *
	 * @param importe BigDecimal
	 */
	public void setImporte(BigDecimal importe) {
		this.importe = importe;
	}

	/**
	 * Method 'getEstado'.
	 * 
	 * @return Long
	 */
	public Long getEstado() {
		return estado;
	}

	/**
	 * Method 'setEstado'.
	 *
	 * @param estado Long
	 */
	public void setEstado(Long estado) {
		this.estado = estado;
	}

	/**
	 * Method 'getIdMotivo'.
	 * 
	 * @return Long
	 */
	public Long getIdMotivo() {
		return idMotivo;
	}

	/**
	 * Method 'setIdMotivo'.
	 *
	 * @param idMotivo Long
	 */
	public void setIdMotivo(Long idMotivo) {
		this.idMotivo = idMotivo;
	}

	/**
	 * Method 'getMotivoDescEs'.
	 * 
	 * @return String
	 */
	public String getMotivoDescEs() {
		return motivoDescEs;
	}

	/**
	 * Method 'setMotivoDescEs'.
	 *
	 * @param motivoDescEs String
	 */
	public void setMotivoDescEs(String motivoDescEs) {
		this.motivoDescEs = motivoDescEs;
	}

	/**
	 * Method 'getMotivoDescEu'.
	 * 
	 * @return String
	 */
	public String getMotivoDescEu() {
		return motivoDescEu;
	}

	/**
	 * Method 'setMotivoDescEu'.
	 *
	 * @param motivoDescEu String
	 */
	public void setMotivoDescEu(String motivoDescEu) {
		this.motivoDescEu = motivoDescEu;
	}

	/**
	 * Method 'getMotivoDescripcion'.
	 *
	 * @return String
	 */
	public String getMotivoDescripcion() {
		if (LocaleContextHolder.getLocale().getLanguage().equalsIgnoreCase(Constantes.LOCALE_ES.getLanguage())) {
			return this.getMotivoDescEs();
		} else if (LocaleContextHolder.getLocale().getLanguage().equalsIgnoreCase(Constantes.LOCALE_EU.getLanguage())) {
			return this.getMotivoDescEu();
		}
		return "";
	}

	/**
	 * Method 'getFecModifIban'.
	 * 
	 * @return Date
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecModifIban() {
		return fecModifIban;
	}

	/**
	 * Method 'setFecModifIban'.
	 *
	 * @param fecModifIban Date
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecModifIban(Date fecModifIban) {
		this.fecModifIban = fecModifIban;
	}

	/**
	 * Method 'getNombreCompleto'.
	 *
	 * @return String
	 */
	public String getNombreCompleto() {
		StringBuilder s = new StringBuilder();
		if (!Utilidades.esBlancoNulo(this.getNombre())) {
			s.append(this.getNombre());
			s.append(" ");
		}

		if (!Utilidades.esBlancoNulo(this.getApellido1())) {
			s.append(this.getApellido1());
			s.append(" ");
		}

		if (!Utilidades.esBlancoNulo(this.getApellido2())) {
			s.append(this.getApellido2());
		}
		return s.toString().trim();
	}

	/**
	 * 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(" [ idLiquidacion: ").append(this.idLiquidacion).append(" ]");
		result.append(", [ idBeneficiario: ").append(this.idSolicitante).append(" ]");
		result.append(", [ numIdentif: ").append(this.identificador).append(" ]");
		result.append(", [ nombre: ").append(this.nombre).append(" ]");
		result.append(", [ apellido1: ").append(this.apellido1).append(" ]");
		result.append(", [ apellido2: ").append(this.apellido2).append(" ]");
		result.append(", [ idTerritorio: ").append(this.idTerritorio).append(" ]");
		result.append(", [ mensualidad: ").append(this.idMensualidad).append(" ]");
		result.append(", [ numLiquidacion: ").append(this.numLiquidacion).append(" ]");
		result.append(", [ refLiquidacion: ").append(this.refLiquidacion).append(" ]");
		result.append(", [ fCargo: ").append(this.fCargo).append(" ]");
		result.append(", [ importe: ").append(this.importe).append(" ]");
		result.append(", [ estado: ").append(this.estado).append(" ]");
		result.append(", [ idMotivo: ").append(this.idMotivo).append(" ]");
		result.append(", [ motivoDescEs: ").append(this.motivoDescEs).append(" ]");
		result.append(", [ motivoDescEu: ").append(this.motivoDescEu).append(" ]");
		result.append(", [ fecModifIban: ").append(this.fecModifIban).append(" ]");
		result.append("}");
		return result.toString();
	}

	/**
	 * Method 'getfCargoDesde'.
	 * 
	 * @return Date
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfCargoDesde() {
		return fCargoDesde;
	}

	/**
	 * Method 'setfCargoDesde'.
	 *
	 * @param fCargoDesde Date
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setfCargoDesde(Date fCargoDesde) {
		this.fCargoDesde = fCargoDesde;
	}

	/**
	 * Method 'getfCargoHasta'.
	 * 
	 * @return Date
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfCargoHasta() {
		return fCargoHasta;
	}

	/**
	 * Method 'setfCargoHasta'.
	 *
	 * @param fCargoHasta Date
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setfCargoHasta(Date fCargoHasta) {
		this.fCargoHasta = fCargoHasta;
	}

	/**
	 * Method 'getCuentasErroneas'.
	 * 
	 * @return String
	 */
	public String getCuentasErroneas() {
		return cuentasErroneas;
	}

	/**
	 * Method 'setCuentasErroneas'.
	 *
	 * @param cuentasErroneas String
	 */
	public void setCuentasErroneas(String cuentasErroneas) {
		this.cuentasErroneas = cuentasErroneas;
	}

	/**
	 * Method 'getImporteStr'.
	 *
	 * @return String
	 */
	public String getImporteStr() {
		return Utilidades.BDtoMoneda(this.importe);
	}

	public String getAnyo() {
		return anyo;
	}

	public void setAnyo(String anyo) {
		this.anyo = anyo;
	}

	public String getMes() {
		return mes;
	}

	public void setMes(String mes) {
		this.mes = mes;
	}

	public String getAnyoDesde() {
		return anyoDesde;
	}

	public void setAnyoDesde(String anyoDesde) {
		this.anyoDesde = anyoDesde;
	}

	public String getMesDesde() {
		return mesDesde;
	}

	public void setMesDesde(String mesDesde) {
		this.mesDesde = mesDesde;
	}

	public String getAnyoHasta() {
		return anyoHasta;
	}

	public void setAnyoHasta(String anyoHasta) {
		this.anyoHasta = anyoHasta;
	}

	public String getMesHasta() {
		return mesHasta;
	}

	public void setMesHasta(String mesHasta) {
		this.mesHasta = mesHasta;
	}

	public Long getExoneracion() {
		return exoneracion;
	}

	public void setExoneracion(Long exoneracion) {
		this.exoneracion = exoneracion;
	}

	public Integer getActivo() {
		return activo;
	}

	public void setActivo(Integer activo) {
		this.activo = activo;
	}

	public Integer getBeneficiario() {
		return beneficiario;
	}

	public void setBeneficiario(Integer beneficiario) {
		this.beneficiario = beneficiario;
	}
}
