All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.cnr.contab.compensi00.docs.bulk.CompensoBulk Maven / Gradle / Ivy

/*
 * Copyright (C) 2019  Consiglio Nazionale delle Ricerche
 *
 *     This program is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU Affero General Public License as
 *     published by the Free Software Foundation, either version 3 of the
 *     License, or (at your option) any later version.
 *
 *     This program is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU Affero General Public License for more details.
 *
 *     You should have received a copy of the GNU Affero General Public License
 *     along with this program.  If not, see .
 */

package it.cnr.contab.compensi00.docs.bulk;

import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;

import it.cnr.contab.anagraf00.core.bulk.BancaBulk;
import it.cnr.contab.anagraf00.core.bulk.TerzoBulk;
import it.cnr.contab.anagraf00.tabrif.bulk.Codici_altra_forma_ass_inpsBulk;
import it.cnr.contab.anagraf00.tabrif.bulk.Codici_attivita_inpsBulk;
import it.cnr.contab.anagraf00.tabrif.bulk.Codici_rapporti_inpsBulk;
import it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk;
import it.cnr.contab.anagraf00.tabrif.bulk.Rif_termini_pagamentoBulk;
import it.cnr.contab.anagraf00.tabrif.bulk.Tipo_rapportoBulk;
import it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk;
import it.cnr.contab.compensi00.tabrif.bulk.Tipo_prestazione_compensoBulk;
import it.cnr.contab.compensi00.tabrif.bulk.Tipo_trattamentoBulk;
import it.cnr.contab.compensi00.tabrif.bulk.Tipologia_rischioBulk;
import it.cnr.contab.config00.bulk.CigBulk;
import it.cnr.contab.config00.contratto.bulk.ContrattoBulk;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
import it.cnr.contab.docamm00.docs.bulk.Fattura_passivaBulk;
import it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_IBulk;
import it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaIBulk;
import it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoSpesaBulk;
import it.cnr.contab.docamm00.docs.bulk.TrovatoBulk;
import it.cnr.contab.doccont00.core.bulk.IDefferUpdateSaldi;
import it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk;
import it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_annoBulk;
import it.cnr.contab.missioni00.docs.bulk.MissioneBulk;
import it.cnr.contab.util.Utility;
import it.cnr.contab.util00.bulk.storage.AllegatoStorePath;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.bulk.BulkCollection;
import it.cnr.jada.bulk.BulkCollections;
import it.cnr.jada.bulk.BulkList;
import it.cnr.jada.bulk.FieldValidationMap;
import it.cnr.jada.bulk.FillException;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.bulk.PrimaryKeyHashMap;
import it.cnr.jada.bulk.ValidationException;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.si.spring.storage.annotation.StoragePolicy;
import it.cnr.si.spring.storage.annotation.StorageProperty;
import it.cnr.si.spring.storage.annotation.StorageType;
import it.siopeplus.StMotivoEsclusioneCigSiope;

@StorageType(name = "D:emppay:compenso", parentName = "D:emppay:document")
@JsonInclude(value=Include.NON_NULL)
public class CompensoBulk extends CompensoBase implements IDefferUpdateSaldi, IDocumentoAmministrativoSpesaBulk, AllegatoStorePath {

	private BancaBulk banca;
	private Rif_termini_pagamentoBulk terminiPagamento;
	private Rif_modalita_pagamentoBulk modalitaPagamento;
	private java.util.Collection modalita;
	private java.util.Collection termini;
	private Tipo_rapportoBulk tipoRapporto;
	private Tipo_trattamentoBulk tipoTrattamento = new Tipo_trattamentoBulk();
	private V_terzo_per_compensoBulk v_terzo = new V_terzo_per_compensoBulk();
	private java.util.Collection tipiRapporto;
	private java.util.Collection tipiTrattamento;
	private Codici_rapporti_inpsBulk codici_rapporti_inps;
	private boolean visualizzaCodici_rapporti_inps = false;
	private Codici_attivita_inpsBulk codici_attivita_inps;
	private boolean visualizzaCodici_attivita_inps = false;
	private Codici_altra_forma_ass_inpsBulk codici_altra_forma_ass_inps;
	private boolean visualizzaCodici_altra_forma_ass_inps = false;
	private java.util.Collection contributi;
	private it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk obbligazioneScadenzario;
	// Unità Organizzativa
	private Unita_organizzativaBulk unitaOrganizzativa;

	private ComuneBulk comune_inps;
	private Incarichi_repertorio_annoBulk incarichi_repertorio_anno;
	private java.lang.String incarichi_oggetto;
	private java.math.BigDecimal importo_iniziale;
	private java.math.BigDecimal importo_complessivo;
	private java.math.BigDecimal importo_utilizzato;

	private ContrattoBulk contratto;
	private java.lang.String oggetto_contratto;

	private PrimaryKeyHashMap deferredSaldi = new PrimaryKeyHashMap();
	private PrimaryKeyHashMap relationsDocContForSaldi = null;
	private TrovatoBulk trovato = new TrovatoBulk(); // inizializzazione
														// necessaria per i bulk
														// non persistenti

	private java.sql.Timestamp dataInizioFatturaElettronica;

	private it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk voceIvaFattura;
	private Fattura_passivaBulk fatturaPassiva;

	private int annoSolare;
	private int esercizioScrivania;

	// Stato COAN
	public final static java.lang.String CONTABILIZZATO_COAN = "C";
	public final static java.lang.String NON_CONTABILIZZATO_COAN = "N";
	public final static java.lang.String DA_RICONTABILIZZARE_COAN = "R";

	// Stato COGE
	public final static java.lang.String CONTABILIZZATO_COGE = "C";
	public final static java.lang.String NON_CONTABILIZZATO_COGE = "N";
	public final static java.lang.String DA_RICONTABILIZZARE_COGE = "R";

	// Stato FONDO_ECONOMALE
	public final static java.lang.String ASSEGNATO_FONDO_ECO = "A";
	public final static java.lang.String REGISTRATO_FONDO_ECO = "R";
	public final static java.lang.String LIBERO_FONDO_ECO = "N";

	// Stato MANREV
	public final static java.lang.String NON_ASSOCIATO_MANREV = "N";
	public final static java.lang.String ASSOCIATO_MANREV = "T";

	// Stato COFI
	public final static java.lang.String STATO_INIZIALE = "I";
	public final static java.lang.String STATO_CONTABILIZZATO = "C";
	public final static java.lang.String STATO_PAGATO = "P";
	public final static java.lang.String STATO_ANNULLATO = "A";

	public final static java.util.Dictionary STATO_FONDO_ECO;
	public final static java.util.Dictionary TI_ASSOCIATO_MANREV;
	public final static java.util.Dictionary STATO_COFI;
	public final static Dictionary STATI_RIPORTO;

	// Tipo compenso
	public final static String TIPO_COMPENSO_COMMERCIALE = "C";
	public final static String TIPO_COMPENSO_ISTITUZIONALE = "I";
	public final static java.util.Dictionary TIPI_COMPENSO;

	// Tipo prestazione
	/*
	 * public final static String TIPO_PRESTAZIONE_SERVIZI = "C"; public final
	 * static String TIPO_PRESTAZIONE_COLLABORAZIONE_IND = "I"; public final
	 * static Dictionary TIPI_PRESTAZIONE;
	 */

	public final static Dictionary STATO_LIQUIDAZIONE;
	public final static Dictionary CAUSALE;
	static {
		STATO_FONDO_ECO = new it.cnr.jada.util.OrderedHashtable();
		STATO_FONDO_ECO.put(LIBERO_FONDO_ECO, "Non usare fondo economale");
		STATO_FONDO_ECO.put(ASSEGNATO_FONDO_ECO, "Usa fondo economale");
		STATO_FONDO_ECO.put(REGISTRATO_FONDO_ECO, "Registrato in fondo economale");

		TI_ASSOCIATO_MANREV = new it.cnr.jada.util.OrderedHashtable();
		TI_ASSOCIATO_MANREV.put(ASSOCIATO_MANREV, "Man/rev associato");
		TI_ASSOCIATO_MANREV.put(NON_ASSOCIATO_MANREV, "Man/rev non associato");

		STATO_COFI = new it.cnr.jada.util.OrderedHashtable();
		STATO_COFI.put(STATO_INIZIALE, "Iniziale");
		STATO_COFI.put(STATO_CONTABILIZZATO, "Contabilizzato");
		STATO_COFI.put(STATO_PAGATO, "Pagato");
		STATO_COFI.put(STATO_ANNULLATO, "Annullato");

		STATI_RIPORTO = new it.cnr.jada.util.OrderedHashtable();
		STATI_RIPORTO.put(NON_RIPORTATO, "Non riportata");
		STATI_RIPORTO.put(PARZIALMENTE_RIPORTATO, "Parzialmente riportata");
		STATI_RIPORTO.put(COMPLETAMENTE_RIPORTATO, "Completamente riportata");

		TIPI_COMPENSO = new it.cnr.jada.util.OrderedHashtable();
		TIPI_COMPENSO.put(TIPO_COMPENSO_COMMERCIALE, "Commerciale");
		TIPI_COMPENSO.put(TIPO_COMPENSO_ISTITUZIONALE, "Istituzionale");
		/*
		 * TIPI_PRESTAZIONE = new it.cnr.jada.util.OrderedHashtable();
		 * TIPI_PRESTAZIONE .put(TIPO_PRESTAZIONE_SERVIZI,
		 * "Prestazione di Servizi");
		 * TIPI_PRESTAZIONE.put(TIPO_PRESTAZIONE_COLLABORAZIONE_IND,
		 * "Incarico di collaborazione individuale");
		 */
		STATO_LIQUIDAZIONE = new it.cnr.jada.util.OrderedHashtable();
		STATO_LIQUIDAZIONE.put(LIQ, "Liquidabile");
		STATO_LIQUIDAZIONE.put(NOLIQ, "Non Liquidabile");
		STATO_LIQUIDAZIONE.put(SOSP, "Liquidazione sospesa");

		CAUSALE = new it.cnr.jada.util.OrderedHashtable();
		CAUSALE.put(ATTLIQ, "In attesa di liquidazione");
		CAUSALE.put(CONT, "Contenzioso");
	}
    public final static Map motivoEsclusioneCigSIOPEKeys = Arrays.asList(StMotivoEsclusioneCigSiope.values())
            .stream()
            .collect(Collectors.toMap(
                    StMotivoEsclusioneCigSiope::name,
                    StMotivoEsclusioneCigSiope::value,
                    (oldValue, newValue) -> oldValue,
                    Hashtable::new
            ));


	// Stato compenso - mi serve per gestire i bottoni di Esegui Calcolo,
	// Crea/Modifica obbligazione
	public final static int STATO_COMPENSO_NORMALE = 0;
	public final static int STATO_COMPENSO_ESEGUI_CALCOLO = 1;
	public final static int STATO_COMPENSO_SINCRONIZZA_OBBLIGAZIONE = 2;
	public final static int STATO_COMPENSO_OBBLIGAZIONE_SINCRONIZZATA = 3;
	public final static int STATO_COMPENSO_CONTABILIZZA_COFI = 4;
	private int statoCompenso = STATO_COMPENSO_NORMALE;

	private java.lang.Long pgCompensoPerClone;
	private it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk voceIva;
	private it.cnr.contab.anagraf00.tabter.bulk.RegioneBulk regioneIrap;
	private it.cnr.contab.compensi00.tabrif.bulk.Tipologia_rischioBulk tipologiaRischio;
	private boolean visualizzaVoceIva = false;
	private boolean visualizzaRegioneIrap = false;
	private boolean trattamentoSoloEnte = false;
	private boolean visualizzaTipologiaRischio = false;
	private boolean isCompensoSoloInailEnte = false;
	public final static java.lang.String CODICE_IRAP = "IRAP";
	public final static java.lang.String CODICE_INAIL = "INAIL";
	public final static java.lang.String CODICE_IVA = "IVA";
	private it.cnr.contab.missioni00.docs.bulk.MissioneBulk missione;
	private MinicarrieraBulk minicarriera;
	private it.cnr.contab.config00.latt.bulk.WorkpackageBulk lineaAttivita;
	private ConguaglioBulk conguaglio;
	public final static int CANCELLAZIONE_FISICA = 2;
	public final static int CANCELLAZIONE_LOGICA = 1;

	private java.util.Vector documentiContabiliCancellati = new java.util.Vector();
	private java.util.Vector dettagliCancellati = new java.util.Vector();
	private java.util.List docContAssociati;
	private java.util.List mandatiRigaAssociati;
	private V_doc_cont_compBulk docContPrincipale;
	private java.lang.Boolean aperturaDaMinicarriera = java.lang.Boolean.FALSE;
	private java.lang.String riportata = NON_RIPORTATO;
	private java.lang.String riportataInScrivania = NON_RIPORTATO;
	private java.lang.Boolean roQuota_esente_inps = java.lang.Boolean.FALSE;
	private BonusBulk bonus;
	private it.cnr.contab.anagraf00.core.bulk.TerzoBulk pignorato = new it.cnr.contab.anagraf00.core.bulk.TerzoBulk();
	private boolean visualizzaPignorato = false;
	private Tipo_prestazione_compensoBulk tipoPrestazioneCompenso;
	private java.util.Collection tipiPrestazioneCompenso;
	private java.sql.Timestamp dataInizioObbligoRegistroUnico;
	private boolean userAbilitatoSenzaCalcolo = false;
	private CigBulk cig;

	public CompensoBulk() {
		super();
	}

	public CompensoBulk(java.lang.String cd_cds, java.lang.String cd_unita_organizzativa, java.lang.Integer esercizio,
			java.lang.Long pg_compenso) {
		super(cd_cds, cd_unita_organizzativa, esercizio, pg_compenso);
	}

	public boolean hasCompetenzaCOGEInAnnoPrecedente() {

		return getDateCalendar(getDt_a_competenza_coge()).get(Calendar.YEAR) == getEsercizio().intValue() - 1;
	}

	/**
	 * Insert the method's description here. Creation date: (24/05/2002
	 * 13.01.57)
	 * 
	 * @param docCont
	 *            it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk
	 * @param map
	 *            java.util.Map
	 */
	public void addToDefferredSaldi(IDocumentoContabileBulk docCont, java.util.Map values) {

		if (docCont != null) {
			if (deferredSaldi == null)
				deferredSaldi = new PrimaryKeyHashMap();
			if (!deferredSaldi.containsKey(docCont))
				deferredSaldi.put(docCont, values);
			else {
				java.util.Map firstValues = (java.util.Map) deferredSaldi.get(docCont);
				deferredSaldi.remove(docCont);
				deferredSaldi.put(docCont, firstValues);
			}
		}
	}

	/**
	 * per interfaccia IDocumentoAmministrativoBulk
	 */
	public void addToDettagliCancellati(it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoRigaBulk dettaglio) {

		if (dettaglio != null && ((OggettoBulk) dettaglio).getCrudStatus() == OggettoBulk.NORMAL) {
			getDettagliCancellati().addElement(dettaglio);
			addToDocumentiContabiliCancellati(dettaglio.getScadenzaDocumentoContabile());
		}
	}

	/**
	 * per interfaccia IDocumentoAmministrativoSpesaBulk
	 */
	public void addToDocumentiContabiliCancellati(
			it.cnr.contab.doccont00.core.bulk.IScadenzaDocumentoContabileBulk scadenza) {

		if (getDocumentiContabiliCancellati() == null)
			setDocumentiContabiliCancellati(new java.util.Vector());

		// documentiContabiliCancellati contiene le scadenze non piu' agganciate
		// al compenso
		// che pero' devo essere inserite op aggiornate in tabella
		if ((scadenza != null) && (((OggettoBulk) scadenza).getCrudStatus() == OggettoBulk.NORMAL)
				&& (!BulkCollections.containsByPrimaryKey(getDocumentiContabiliCancellati(), (OggettoBulk) scadenza))) {
			// scadenza.setIm_associato_doc_amm(new java.math.BigDecimal(0));
			getDocumentiContabiliCancellati().addElement(scadenza);
		}
	}

	/**
	 * Insert the method's description here. Creation date: (5/15/2002 10:50:29
	 * AM)
	 * 
	 * @param docCont
	 *            it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk
	 */
	public void addToRelationsDocContForSaldi(it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk docCont,
			Long progTemporaneo) {

		if (docCont != null) {
			if (relationsDocContForSaldi == null)
				relationsDocContForSaldi = new PrimaryKeyHashMap();
			if (!relationsDocContForSaldi.containsKey(docCont))
				relationsDocContForSaldi.put(docCont, progTemporaneo);
		}
	}

	public void azzeraTipoTrattamento() {

		setTipiTrattamento(null);
		setTipoTrattamento(null);
		setTipoPrestazioneCompenso(null);
		resetDatiLiquidazione();
	}

	public static java.sql.Timestamp decrementaData(java.sql.Timestamp data) {

		java.util.GregorianCalendar gc = (java.util.GregorianCalendar) java.util.GregorianCalendar.getInstance();
		gc.setTime(data);
		gc.add(java.util.Calendar.DATE, -1);
		return new java.sql.Timestamp(gc.getTime().getTime());
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.21)
	 * 
	 * @return it.cnr.contab.docamm00.docs.bulk.ObbligazioniTable
	 */
	public it.cnr.contab.docamm00.docs.bulk.AccertamentiTable getAccertamentiHash() {
		return null;
	}

	/**
	 * Insert the method's description here. Creation date: (14/07/2003
	 * 11.14.16)
	 * 
	 * @return int
	 */
	public int getAnnoSolare() {
		return annoSolare;
	}

	/**
	 * Insert the method's description here. Creation date: (12/12/2002
	 * 15.47.14)
	 * 
	 * @return java.lang.Boolean
	 */
	public java.lang.Boolean getAperturaDaMinicarriera() {
		return aperturaDaMinicarriera;
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.22.21)
	 * 
	 * @return it.cnr.contab.anagraf00.core.bulk.BancaBulk
	 */
	public BancaBulk getBanca() {
		return banca;
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.22.21)
	 * 
	 * @return it.cnr.contab.anagraf00.core.bulk.BancaBulk
	 */
	public BulkCollection[] getBulkLists() {
		return new it.cnr.jada.bulk.BulkCollection[] { new BulkList(contributi) };
	}

	public java.lang.String getCd_cdr_genrc() {
		it.cnr.contab.config00.latt.bulk.WorkpackageBulk lineaAttivita = this.getLineaAttivita();
		if (lineaAttivita == null)
			return null;
		it.cnr.contab.config00.sto.bulk.CdrBulk centro_responsabilita = lineaAttivita.getCentro_responsabilita();
		if (centro_responsabilita == null)
			return null;
		return centro_responsabilita.getCd_centro_responsabilita();
	}

	public java.lang.String getCd_cds_missione() {
		it.cnr.contab.missioni00.docs.bulk.MissioneBulk missione = this.getMissione();
		if (missione == null)
			return null;
		return missione.getCd_cds();
	}

	public java.lang.String getCd_cds_obbligazione() {
		it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk obbligazioneScadenzario = this
				.getObbligazioneScadenzario();
		if (obbligazioneScadenzario == null)
			return null;
		it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk obbligazione = obbligazioneScadenzario.getObbligazione();
		if (obbligazione == null)
			return null;
		it.cnr.contab.config00.sto.bulk.CdsBulk cds = obbligazione.getCds();
		if (cds == null)
			return null;
		return cds.getCd_unita_organizzativa();
	}

	public java.lang.String getCd_linea_attivita_genrc() {
		it.cnr.contab.config00.latt.bulk.WorkpackageBulk lineaAttivita = this.getLineaAttivita();
		if (lineaAttivita == null)
			return null;
		return lineaAttivita.getCd_linea_attivita();
	}

	public java.lang.String getCd_modalita_pag() {
		it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk modalitaPagamento = this.getModalitaPagamento();
		if (modalitaPagamento == null)
			return null;
		return modalitaPagamento.getCd_modalita_pag();
	}

	public java.lang.String getCd_regione_irap() {
		it.cnr.contab.anagraf00.tabter.bulk.RegioneBulk regioneIrap = this.getRegioneIrap();
		if (regioneIrap == null)
			return null;
		return regioneIrap.getCd_regione();
	}

	public java.lang.String getCd_termini_pag() {
		it.cnr.contab.anagraf00.tabrif.bulk.Rif_termini_pagamentoBulk terminiPagamento = this.getTerminiPagamento();
		if (terminiPagamento == null)
			return null;
		return terminiPagamento.getCd_termini_pag();
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.22)
	 * 
	 * @return java.lang.Integer
	 */
	public java.lang.String getCd_tipo_doc_amm() {

		return it.cnr.contab.docamm00.docs.bulk.Numerazione_doc_ammBulk.TIPO_COMPENSO;
	}

	public java.lang.String getCd_tipo_rapporto() {
		it.cnr.contab.anagraf00.tabrif.bulk.Tipo_rapportoBulk tipoRapporto = this.getTipoRapporto();
		if (tipoRapporto == null)
			return null;
		return tipoRapporto.getCd_tipo_rapporto();
	}

	public java.lang.String getCd_trattamento() {
		it.cnr.contab.compensi00.tabrif.bulk.Tipo_trattamentoBulk tipoTrattamento = this.getTipoTrattamento();
		if (tipoTrattamento == null)
			return null;
		return tipoTrattamento.getCd_trattamento();
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.21)
	 * 
	 * @return java.lang.Integer
	 */
	public java.lang.String getCd_uo() {

		return getCd_unita_organizzativa();
	}

	public java.lang.String getCd_uo_missione() {
		it.cnr.contab.missioni00.docs.bulk.MissioneBulk missione = this.getMissione();
		if (missione == null)
			return null;
		return missione.getCd_unita_organizzativa();
	}

	public java.lang.String getCd_voce_iva() {
		it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk voceIva = this.getVoceIva();
		if (voceIva == null)
			return null;
		return voceIva.getCd_voce_iva();
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.21)
	 * 
	 * @return it.cnr.contab.docamm00.docs.bulk.ObbligazioniTable
	 */
	public java.lang.Class getChildClass() {
		return Contributo_ritenutaBulk.class;
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.21)
	 * 
	 * @return it.cnr.contab.docamm00.docs.bulk.ObbligazioniTable
	 */
	public java.util.List getChildren() {
		return (java.util.List) contributi;
	}

	/**
	 * Insert the method's description here. Creation date: (12/07/2002
	 * 11.45.09)
	 * 
	 * @return it.cnr.contab.compensi00.docs.bulk.ConguaglioBulk
	 */
	public ConguaglioBulk getConguaglio() {
		return conguaglio;
	}

	/**
	 * Insert the method's description here. Creation date: (04/03/2002
	 * 15.05.00)
	 * 
	 * @return java.util.Collection
	 */
	public java.util.Collection getContributi() {
		return contributi;
	}

	/**
	 * Insert the method's description here. Creation date: (24/05/2002
	 * 13.01.57)
	 * 
	 * @param docCont
	 *            it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk
	 * @param map
	 *            java.util.Map
	 */
	public static java.sql.Timestamp getDataOdierna() throws it.cnr.jada.action.BusinessProcessException {
		try {
			return getDataOdierna(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate());
		} catch (javax.ejb.EJBException e) {
			throw new it.cnr.jada.action.BusinessProcessException(e);
		}
	}

	/**
	 * Insert the method's description here. Creation date: (24/05/2002
	 * 13.01.57)
	 * 
	 * @param docCont
	 *            it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk
	 * @param map
	 *            java.util.Map
	 */
	public static java.sql.Timestamp getDataOdierna(java.sql.Timestamp dataOdierna) {

		java.util.Calendar gc = java.util.Calendar.getInstance();
		gc.setTime(dataOdierna);
		gc.set(java.util.Calendar.HOUR, 0);
		gc.set(java.util.Calendar.MINUTE, 0);
		gc.set(java.util.Calendar.SECOND, 0);
		gc.set(java.util.Calendar.MILLISECOND, 0);
		gc.set(java.util.Calendar.AM_PM, java.util.Calendar.AM);
		return new java.sql.Timestamp(gc.getTime().getTime());
	}

	public java.util.Calendar getDateCalendar(java.sql.Timestamp date) {

		if (date == null)
			date = new java.sql.Timestamp(System.currentTimeMillis());

		java.util.Calendar calendar = java.util.Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(java.util.Calendar.HOUR, 0);
		calendar.set(java.util.Calendar.MINUTE, 0);
		calendar.set(java.util.Calendar.SECOND, 0);
		calendar.set(java.util.Calendar.MILLISECOND, 0);
		calendar.set(java.util.Calendar.AM_PM, java.util.Calendar.AM);
		return calendar;
	}

	/**
	 * Insert the method's description here. Creation date: (24/05/2002
	 * 13.10.04)
	 * 
	 * @return it.cnr.jada.bulk.PrimaryKeyHashMap
	 */
	public PrimaryKeyHashMap getDefferredSaldi() {

		return deferredSaldi;
	}

	/**
	 * Insert the method's description here. Creation date: (24/05/2002
	 * 13.08.43)
	 * 
	 * @return it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk
	 * @param docCont
	 *            it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk
	 */
	public IDocumentoContabileBulk getDefferredSaldoFor(IDocumentoContabileBulk docCont) {

		if (docCont != null && deferredSaldi != null)
			for (java.util.Iterator i = deferredSaldi.keySet().iterator(); i.hasNext();) {
				IDocumentoContabileBulk key = (IDocumentoContabileBulk) i.next();
				if (((OggettoBulk) docCont).equalsByPrimaryKey((OggettoBulk) key))
					return key;
			}
		return null;
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.22)
	 * 
	 * @return java.lang.String
	 */
	public java.lang.String getDescrizione_spesa() {
		return getDs_compenso();
	}

	/**
	 * Insert the method's description here. Creation date: (27/08/2002
	 * 17.27.47)
	 * 
	 * @return java.util.Vector
	 */
	public java.util.Vector getDettagliCancellati() {
		return dettagliCancellati;
	}

	/**
	 * Insert the method's description here. Creation date: (10/10/2002
	 * 10.46.05)
	 * 
	 * @return java.util.List
	 */
	public java.util.List getDocContAssociati() {
		return docContAssociati;
	}

	/**
	 * Insert the method's description here. Creation date: (23/10/2002
	 * 13.00.41)
	 * 
	 * @return it.cnr.contab.compensi00.docs.bulk.V_doc_cont_compBulk
	 */
	public V_doc_cont_compBulk getDocContPrincipale() {
		return docContPrincipale;
	}

	/**
	 * Insert the method's description here. Creation date: (27/08/2002
	 * 17.28.36)
	 * 
	 * @return java.util.Vector
	 */
	public java.util.Vector getDocumentiContabiliCancellati() {
		return documentiContabiliCancellati;
	}

	/**
	 * getDocumentoAmministrativoClassForDelete method comment.
	 */
	public java.lang.Class getDocumentoAmministrativoClassForDelete() {
		return null;
	}

	/**
	 * getDocumentoContabileClassForDelete method comment.
	 */
	public java.lang.Class getDocumentoContabileClassForDelete() {
		return null;
	}

	public String getDsDocContPrincipale() {

		if (getDocContPrincipale() == null)
			return null;
		return getDocContPrincipale().getDs_doc_cont();
	}

	public java.lang.Integer getEsercizio_missione() {
		it.cnr.contab.missioni00.docs.bulk.MissioneBulk missione = this.getMissione();
		if (missione == null)
			return null;
		return missione.getEsercizio();
	}

	public java.lang.Integer getEsercizio_obbligazione() {
		it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk obbligazioneScadenzario = this
				.getObbligazioneScadenzario();
		if (obbligazioneScadenzario == null)
			return null;
		it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk obbligazione = obbligazioneScadenzario.getObbligazione();
		if (obbligazione == null)
			return null;
		return obbligazione.getEsercizio();
	}

	/**
	 * Insert the method's description here. Creation date: (14/07/2003
	 * 11.14.16)
	 * 
	 * @return int
	 */
	public int getEsercizioScrivania() {
		return esercizioScrivania;
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.22)
	 * 
	 * @return java.math.BigDecimal
	 */
	public java.math.BigDecimal getImporto_netto_spesa() {

		java.math.BigDecimal importoNettoSpesa = getIm_netto_percipiente();

		if (isDaMissione() && getMissione().getAnticipo() != null) {
			java.math.BigDecimal imAnticipo = getMissione().getAnticipo().getIm_anticipo();
			importoNettoSpesa = importoNettoSpesa.add(imAnticipo.negate());
		}
		return importoNettoSpesa;
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.22)
	 * 
	 * @return java.math.BigDecimal
	 */
	public java.math.BigDecimal getImporto_spesa() {

		java.math.BigDecimal importoSpesa = getIm_totale_compenso();

		if (isDaMissione() && getMissione().getAnticipo() != null) {
			java.math.BigDecimal imAnticipo = getMissione().getAnticipo().getIm_anticipo();
			importoSpesa = importoSpesa.add(imAnticipo.negate());
		}
		return importoSpesa;
	}

	public java.math.BigDecimal getImportoObbligazione() {

		java.math.BigDecimal importoObbligazione = getIm_totale_compenso();

		if (isDaMissione() && getMissione().getAnticipo() != null) {
			java.math.BigDecimal imAnticipo = getMissione().getAnticipo().getIm_anticipo();
			if (imAnticipo.compareTo(getIm_netto_percipiente()) <= 0)
				importoObbligazione = importoObbligazione.add(imAnticipo.negate());
			else
				importoObbligazione = importoObbligazione.add(getIm_netto_percipiente().negate());
		}
			
		return importoObbligazione;
	}

	/**
	 * getImportoSignForDelete method comment.
	 */
	public java.math.BigDecimal getImportoSignForDelete(java.math.BigDecimal importo) {
		return getIm_totale_compenso();
	}

	/**
	 * Insert the method's description here. Creation date: (22/02/2002
	 * 18.34.06)
	 * 
	 * @return java.lang.String
	 */
	public java.lang.String getIndirizzoTerzo() {

		if (getTerzo() == null)
			return null;

		String indirizzo = "";
		if (getTerzo().getVia_sede() != null)
			indirizzo = indirizzo + getTerzo().getVia_sede();
		if (getTerzo().getNumero_civico_sede() != null)
			indirizzo = indirizzo + " " + getTerzo().getNumero_civico_sede();

		return indirizzo;
	}

	/**
	 * Insert the method's description here. Creation date: (02/07/2002
	 * 15.33.58)
	 * 
	 * @return it.cnr.contab.doccont00.core.bulk.Linea_attivitaBulk
	 */
	public it.cnr.contab.config00.latt.bulk.WorkpackageBulk getLineaAttivita() {
		return lineaAttivita;
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.21)
	 * 
	 * @return it.cnr.contab.docamm00.docs.bulk.ObbligazioniTable
	 */
	public java.lang.String getManagerName() {
		return "CRUDCompensoBP";
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.21)
	 * 
	 * @return it.cnr.contab.docamm00.docs.bulk.ObbligazioniTable
	 */
	public java.lang.String getManagerOptions() {
		return "VTh";
	}

	/**
	 * Insert the method's description here. Creation date: (7/3/2002 12:47:28
	 * PM)
	 * 
	 * @return it.cnr.contab.compensi00.docs.bulk.MinicarrieraBulk
	 */
	public MinicarrieraBulk getMinicarriera() {
		return minicarriera;
	}

	/**
	 * Insert the method's description here. Creation date: (01/07/2002
	 * 13.01.53)
	 * 
	 * @return it.cnr.contab.missioni00.docs.bulk.MissioneBulk
	 */
	public it.cnr.contab.missioni00.docs.bulk.MissioneBulk getMissione() {
		return missione;
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.24.54)
	 * 
	 * @return java.util.Collection
	 */
	public java.util.Collection getModalita() {
		return modalita;
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.23.02)
	 * 
	 * @return it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk
	 */
	public Rif_modalita_pagamentoBulk getModalitaPagamento() {
		return modalitaPagamento;
	}

	/**
	 * Insert the method's description here. Creation date: (14/05/2002
	 * 12.35.18)
	 * 
	 * @return it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk
	 */
	public it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk getObbligazioneScadenzario() {
		return obbligazioneScadenzario;
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.21)
	 * 
	 * @return it.cnr.contab.docamm00.docs.bulk.ObbligazioniTable
	 */
	public it.cnr.contab.docamm00.docs.bulk.ObbligazioniTable getObbligazioniHash() {

		it.cnr.contab.docamm00.docs.bulk.ObbligazioniTable table = new it.cnr.contab.docamm00.docs.bulk.ObbligazioniTable();
		if (getObbligazioneScadenzario() != null)
			table.put(getObbligazioneScadenzario(), new java.util.Vector());
		return table;
	}

	public java.lang.Long getPg_banca() {
		it.cnr.contab.anagraf00.core.bulk.BancaBulk banca = this.getBanca();
		if (banca == null)
			return null;
		return banca.getPg_banca();
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.22)
	 * 
	 * @return java.lang.Integer
	 */
	public java.lang.Long getPg_doc_amm() {

		return getPg_compenso();
	}

	public java.lang.Long getPg_missione() {
		it.cnr.contab.missioni00.docs.bulk.MissioneBulk missione = this.getMissione();
		if (missione == null)
			return null;
		return missione.getPg_missione();
	}

	public Integer getEsercizio_ori_obbligazione() {
		it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk obbligazioneScadenzario = this
				.getObbligazioneScadenzario();
		if (obbligazioneScadenzario == null)
			return null;
		it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk obbligazione = obbligazioneScadenzario.getObbligazione();
		if (obbligazione == null)
			return null;
		return obbligazione.getEsercizio_originale();
	}

	public java.lang.Long getPg_obbligazione() {
		it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk obbligazioneScadenzario = this
				.getObbligazioneScadenzario();
		if (obbligazioneScadenzario == null)
			return null;
		it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk obbligazione = obbligazioneScadenzario.getObbligazione();
		if (obbligazione == null)
			return null;
		return obbligazione.getPg_obbligazione();
	}

	public java.lang.Long getPg_obbligazione_scadenzario() {
		it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk obbligazioneScadenzario = this
				.getObbligazioneScadenzario();
		if (obbligazioneScadenzario == null)
			return null;
		return obbligazioneScadenzario.getPg_obbligazione_scadenzario();
	}

	/**
	 * Insert the method's description here. Creation date: (17/06/2002
	 * 12.51.45)
	 * 
	 * @return java.lang.Long
	 */
	public java.lang.Long getPgCompensoPerClone() {
		return pgCompensoPerClone;
	}

	/**
	 * Insert the method's description here. Creation date: (23/04/2002
	 * 12.40.29)
	 * 
	 * @return java.lang.Long
	 */
	public java.lang.Long getPgCompensoPos() {

		if (getPg_compenso() != null && getPg_compenso().intValue() < 0)
			return null;

		return getPg_compenso();
	}

	public Long getPgDocContPrincipale() {

		if (getDocContPrincipale() == null)
			return null;
		return getDocContPrincipale().getPg_doc_cont();
	}

	public java.lang.Long getPgObbligazionePos() {
		if (getPg_obbligazione() != null && getPg_obbligazione().longValue() < 0)
			return null;

		return getPg_obbligazione();
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 16.28.24)
	 * 
	 * @return it.cnr.contab.anagraf00.tabter.bulk.RegioneBulk
	 */
	public it.cnr.contab.anagraf00.tabter.bulk.RegioneBulk getRegioneIrap() {
		return regioneIrap;
	}

	/**
	 * Insert the method's description here. Creation date: (7/22/2002 2:17:18
	 * PM)
	 * 
	 * @return it.cnr.jada.bulk.PrimaryKeyHashMap
	 */
	public it.cnr.jada.bulk.PrimaryKeyHashMap getRelationsDocContForSaldi() {
		return relationsDocContForSaldi;
	}

	/**
	 * Insert the method's description here. Creation date: (30/05/2003
	 * 15.55.11)
	 * 
	 * @return java.lang.String
	 */
	public java.lang.String getRiportata() {
		return riportata;
	}

	/**
	 * Insert the method's description here. Creation date: (02/11/2004
	 * 14.28.41)
	 * 
	 * @return java.lang.String
	 */
	public java.lang.String getRiportataInScrivania() {
		return riportataInScrivania;
	}

	public java.util.Dictionary getStato_cofiKeys() {

		return STATO_COFI;
	}

	public java.util.Dictionary getStato_cofiKeysForSearch() {

		it.cnr.jada.util.OrderedHashtable oh = (it.cnr.jada.util.OrderedHashtable) ((it.cnr.jada.util.OrderedHashtable) STATO_COFI)
				.clone();
		oh.remove(STATO_INIZIALE);
		return oh;
	}

	public java.util.Dictionary getStato_pagamento_fondo_ecoKeys() {

		if (getStato_pagamento_fondo_eco() != null
				&& REGISTRATO_FONDO_ECO.equalsIgnoreCase(getStato_pagamento_fondo_eco())) {
			return STATO_FONDO_ECO;
		}

		it.cnr.jada.util.OrderedHashtable oh = (it.cnr.jada.util.OrderedHashtable) ((it.cnr.jada.util.OrderedHashtable) STATO_FONDO_ECO)
				.clone();
		oh.remove(REGISTRATO_FONDO_ECO);
		return oh;
	}

	public java.util.Dictionary getStato_pagamento_fondo_ecoKeysForSearch() {

		return STATO_FONDO_ECO;
	}

	/**
	 * Insert the method's description here. Creation date: (20/06/2002
	 * 11.50.31)
	 * 
	 * @return java.lang.String
	 */
	public int getStatoCompenso() {
		return statoCompenso;
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.25.07)
	 * 
	 * @return java.util.Collection
	 */
	public java.util.Collection getTermini() {
		return termini;
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.22.43)
	 * 
	 * @return it.cnr.contab.anagraf00.tabrif.bulk.Rif_termini_pagamentoBulk
	 */
	public Rif_termini_pagamentoBulk getTerminiPagamento() {
		return terminiPagamento;
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.25.23)
	 * 
	 * @return it.cnr.contab.anagraf00.core.bulk.TerzoBulk
	 */
	public TerzoBulk getTerzo() {

		if (getV_terzo() == null)
			return null;
		return getV_terzo().getTerzo();
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.22)
	 * 
	 * @return it.cnr.contab.anagraf00.core.bulk.TerzoBulk
	 */
	public it.cnr.contab.anagraf00.core.bulk.TerzoBulk getTerzo_spesa() {

		return getTerzo();
	}

	/**
	 * Insert the method's description here. Creation date: (12/02/2002
	 * 11.49.26)
	 * 
	 * @return java.util.Dictionary
	 */
	public java.util.Dictionary getTi_anagraficoKeys() {
		return Tipo_rapportoBulk.DIPENDENTE_ALTRO;
	}

	public java.util.Dictionary getTi_associato_manrevKeys() {

		return TI_ASSOCIATO_MANREV;
	}

	/**
	 * Restituisce il Dictionary per la gestione dei tipi di
	 * compenso.
	 * 
	 * @return java.util.Dictionary
	 */

	public java.util.Dictionary getTi_istituz_commercKeys() {
		return TIPI_COMPENSO;
	}

	/**
	 * Insert the method's description here. Creation date: (26/02/2002
	 * 11.19.49)
	 * 
	 * @return java.util.Collection
	 */
	public java.util.Collection getTipiRapporto() {
		return tipiRapporto;
	}

	/**
	 * Insert the method's description here. Creation date: (26/02/2002
	 * 11.58.06)
	 * 
	 * @return java.util.Collection
	 */
	public java.util.Collection getTipiTrattamento() {
		return tipiTrattamento;
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 16.28.54)
	 * 
	 * @return it.cnr.contab.compensi00.tabrif.bulk.Tipologia_rischioBulk
	 */
	public it.cnr.contab.compensi00.tabrif.bulk.Tipologia_rischioBulk getTipologiaRischio() {
		return tipologiaRischio;
	}

	/**
	 * Insert the method's description here. Creation date: (21/02/2002
	 * 14.43.50)
	 * 
	 * @return it.cnr.contab.anagraf00.tabrif.bulk.Tipo_rapportoBulk
	 */
	public Tipo_rapportoBulk getTipoRapporto() {
		return tipoRapporto;
	}

	/**
	 * Insert the method's description here. Creation date: (21/02/2002
	 * 14.46.57)
	 * 
	 * @return it.cnr.contab.compensi00.tabrif.bulk.Tipo_trattamentoBulk
	 */
	public Tipo_trattamentoBulk getTipoTrattamento() {
		return tipoTrattamento;
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 14.36.31)
	 * 
	 * @return it.cnr.contab.compensi00.docs.bulk.V_terzo_per_compensoBulk
	 */
	public V_terzo_per_compensoBulk getV_terzo() {
		return v_terzo;
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 16.27.56)
	 * 
	 * @return it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk
	 */
	public it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk getVoceIva() {
		return voceIva;
	}

	/**
	 * Ritorna TRUE se ho selezionato una linea di attività valida, FALSE
	 * altrimenti
	 * 
	 */
	public boolean hasLineaAttivita() {

		return getCd_linea_attivita_genrc() != null;
	}

	/**
	 * Insert the method's description here. Creation date: (21/02/2002
	 * 14.43.50)
	 * 
	 * @return it.cnr.contab.anagraf00.tabrif.bulk.Tipo_rapportoBulk
	 */
	public void impostaModalitaPagamento(Rif_modalita_pagamentoBulk newModPag) {

		for (java.util.Iterator i = getModalita().iterator(); i.hasNext();) {
			Rif_modalita_pagamentoBulk modPag = (Rif_modalita_pagamentoBulk) i.next();
			if (modPag.equalsByPrimaryKey(newModPag))
				setModalitaPagamento(modPag);
		}
	}

	/**
	 * Insert the method's description here. Creation date: (21/02/2002
	 * 14.43.50)
	 * 
	 * @return it.cnr.contab.anagraf00.tabrif.bulk.Tipo_rapportoBulk
	 */
	public void impostaTerminiPagamento(Rif_termini_pagamentoBulk newTermPag) {

		for (java.util.Iterator i = getTermini().iterator(); i.hasNext();) {
			Rif_termini_pagamentoBulk termPag = (Rif_termini_pagamentoBulk) i.next();
			if (termPag.equalsByPrimaryKey(newTermPag))
				setTerminiPagamento(termPag);
		}
	}

	/**
	 * Insert the method's description here. Creation date: (21/02/2002
	 * 14.43.50)
	 * 
	 * @return it.cnr.contab.anagraf00.tabrif.bulk.Tipo_rapportoBulk
	 */
	public void impostaTipoRapporto(Tipo_rapportoBulk newTipoRapporto) {

		for (java.util.Iterator i = getTipiRapporto().iterator(); i.hasNext();) {
			Tipo_rapportoBulk tipo = (Tipo_rapportoBulk) i.next();
			if (tipo.equalsByPrimaryKey(newTipoRapporto))
				setTipoRapporto(tipo);
		}
	}

	public void impostaTipoTratt(Tipo_trattamentoBulk newTipoTrattamento) {

		for (java.util.Iterator i = getTipiTrattamento().iterator(); i.hasNext();) {
			Tipo_trattamentoBulk tipo = (Tipo_trattamentoBulk) i.next();
			if (tipo.equalsByPrimaryKey(newTipoTrattamento))
				setTipoTrattamento(tipo);
		}
	}

	/**
	 * Insert the method's description here. Creation date: (21/02/2002
	 * 14.43.50)
	 * 
	 * @return it.cnr.contab.anagraf00.tabrif.bulk.Tipo_rapportoBulk
	 */
	public void impostaTipoTrattamento(Tipo_trattamentoBulk newTipoTrattamento) {

		setTipiTrattamento(new java.util.Vector());
		getTipiTrattamento().add(newTipoTrattamento);
		setTipoTrattamento(newTipoTrattamento);
	}

	public void impostaTipoPrestazioneCompenso(Tipo_prestazione_compensoBulk newTipoPrestazioneCompenso) {

		setTipiPrestazioneCompenso(new java.util.Vector());
		getTipiPrestazioneCompenso().add(newTipoPrestazioneCompenso);
		setTipoPrestazioneCompenso(newTipoPrestazioneCompenso);
	}

	public static java.sql.Timestamp incrementaData(java.sql.Timestamp data) {

		java.util.GregorianCalendar gc = (java.util.GregorianCalendar) java.util.GregorianCalendar.getInstance();
		gc.setTime(data);
		gc.add(java.util.Calendar.DATE, 1);
		return new java.sql.Timestamp(gc.getTime().getTime());
	}

	public OggettoBulk initialize(it.cnr.jada.util.action.CRUDBP bp, it.cnr.jada.action.ActionContext context) {

		it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk unita_organizzativa = it.cnr.contab.utenze00.bulk.CNRUserInfo
				.getUnita_organizzativa(context);
		setCd_cds(unita_organizzativa.getCd_unita_padre());
		setCd_unita_organizzativa(unita_organizzativa.getCd_unita_organizzativa());
		setEsercizio(it.cnr.contab.utenze00.bulk.CNRUserInfo.getEsercizio(context));
		setCd_uo_origine(getCd_unita_organizzativa());
		setCd_cds_origine(getCd_cds());

		return this;
	}

	/**
	 * Insert the method's description here. Creation date: (18/01/2002
	 * 14.52.26)
	 */
	public OggettoBulk initializeForInsert(it.cnr.jada.util.action.CRUDBP bp,
			it.cnr.jada.action.ActionContext context) {

		super.initializeForInsert(bp, context);

		setNumero_giorni(new Integer(0));

		setTi_anagrafico(Tipo_rapportoBulk.DIPENDENTE);
		resetFlags();
		resetStati();
		resetImporti();
		resetDetrazioni();

		resetDatiLiquidazione();

		setFl_escludi_qvaria_deduzione(Boolean.FALSE);
		setFl_intera_qfissa_deduzione(Boolean.FALSE);
		setFl_recupero_rate(Boolean.FALSE);
		setFl_accantona_add_terr(Boolean.FALSE);
		setIm_detrazione_personale_anag(new java.math.BigDecimal(0));

		return this;
	}

	/**
	 * Insert the method's description here. Creation date: (18/01/2002
	 * 14.52.26)
	 */
	public OggettoBulk initializeForSearch(it.cnr.jada.util.action.CRUDBP bp,
			it.cnr.jada.action.ActionContext context) {

		super.initializeForSearch(bp, context);

		if (((it.cnr.contab.compensi00.bp.CRUDCompensoBP) bp).isSpesaBP()) {
			setStato_pagamento_fondo_eco(ASSEGNATO_FONDO_ECO);
			setStato_cofi(STATO_CONTABILIZZATO);
			setStato_liquidazione(LIQ);
			it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk uo = it.cnr.contab.utenze00.bulk.CNRUserInfo
					.getUnita_organizzativa(context);
			if (it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome.TIPO_UO_SAC
					.equalsIgnoreCase(uo.getCd_tipo_unita())) {
				setCd_unita_organizzativa(null);
				setCd_uo_origine(null);
			}

		}

		return this;
	}

	/**
	 * Insert the method's description here. Creation date: (21/02/2002
	 * 17.01.17)
	 * 
	 * @return boolean
	 */
	public boolean isAbledToInsertBank() {

		return !(getTerzo() != null && getModalitaPagamento() != null && !isROModalitaPagamento());
	}

	/**
	 * Insert the method's description here. Creation date: (24/05/2002
	 * 12.55.59)
	 * 
	 * @param bulk
	 *            it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk
	 */
	public boolean isAnnullato() {
		return Optional.ofNullable(getStato_cofi()).map(x -> x.equals(STATO_ANNULLATO)).orElse(false);
	}

	public boolean isStatoCofiPagato() {
		return Optional.ofNullable(getStato_cofi()).map(x -> x.equals(STATO_PAGATO)).orElse(false);
	}

	public boolean isApertoDaMinicarriera() {
		return isDaMinicarriera() && getAperturaDaMinicarriera().booleanValue();
	}

	/**
	 * Insert the method's description here. Creation date: (24/05/2002
	 * 12.55.59)
	 * 
	 * @param bulk
	 *            it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk
	 */
	public boolean isAssegnatoAFondoEconomale() {
		return ASSEGNATO_FONDO_ECO.equals(getStato_pagamento_fondo_eco());
	}

	/**
	 * Se il compenso è associato a Missione, Minicarriera o Conguaglio la Data
	 * Competenza Coge non è modificabile
	 * 
	 * @return boolean
	 */

	public boolean isAssociatoADocumento() {

		return isDaMissione() || isDaMinicarriera() || isDaConguaglio() || isDaBonus()
				|| (isDaFatturaPassiva() && getFatturaPassiva() == null);
	}

	public boolean isAssociatoAMandato() {

		return ASSOCIATO_MANREV.equals(getTi_associato_manrev());
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isCancellabile() {
		return (Optional.ofNullable(getStato_cofi()).map(x -> x.equals(STATO_INIZIALE) || x.equals(STATO_CONTABILIZZATO)).orElse(true)
				&& Optional.ofNullable(getTi_associato_manrev()).map(x -> x.equals(NON_ASSOCIATO_MANREV)).orElse(true));
	}

	public boolean isDaConguaglio() {

		return (getConguaglio() != null);
	}

	public boolean isDaMinicarriera() {

		return (getMinicarriera() != null);
	}

	public boolean isDaMissione() {

		return (getMissione() != null);
	}

	public boolean isDaBonus() {

		return (getBonus() != null);
	}

	public boolean isDaFatturaPassiva() {
		return (isGestione_doc_ele() && (getFl_generata_fattura() != null && getFl_generata_fattura()));
	}

	/**
	 * isDeleting method comment.
	 */
	public boolean isDeleting() {
		return false;
	}

	/**
	 * isEditable method comment.
	 */
	public boolean isEditable() {
		return (getEsercizioScrivania() == Optional.ofNullable(getEsercizio()).map(Integer::intValue).orElse(0)) && !isRiportata();
	}

	/**
	 * Puo' capitare che il compenso risulti riportato ma in realtà non ha
	 * obbligazione.
	 */

	public boolean isLabelRiportoToShow() {
		return isObbligazioneObbligatoria();
	}

	/**
	 * E' obbligatorio associare al compenso un'obbligazione solo se l'importo
	 * lordo è strettamente positivo
	 * 
	 **/
	public boolean isObbligazioneObbligatoria() {
		return Optional.ofNullable(getImportoObbligazione()).map(x -> x.compareTo(BigDecimal.ZERO) > 0).orElse(false);
	}

	/**
	 * Insert the method's description here. Creation date: (24/05/2002
	 * 12.55.59)
	 * 
	 * @param bulk
	 *            it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk
	 */
	public boolean isPagato() {

		return (STATO_PAGATO.equals(getStato_cofi()) || (REGISTRATO_FONDO_ECO.equals(getStato_pagamento_fondo_eco())
				&& STATO_CONTABILIZZATO.equals(getStato_cofi())));
	}

	public boolean isRiportata() {

		return !NON_RIPORTATO.equals(riportata);
	}

	/**
	 * isRiportataInScrivania method comment.
	 */
	public boolean isRiportataInScrivania() {

		return !NON_RIPORTATO.equals(riportataInScrivania);
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROCdLineaAttivita() {

		return isROLineaAttivita()
				|| (getLineaAttivita() == null || getLineaAttivita().getCrudStatus() == OggettoBulk.NORMAL);
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROCdTerzo() {

		return isROTerzo() || (getV_terzo() == null || getV_terzo().getCrudStatus() == OggettoBulk.NORMAL);
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isRODatiFattura() {

		return isSenzaCalcoli() || isDaConguaglio() || isROPerChiusura() || isGestione_doc_ele();
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isRODsCompenso() {
		return isROPerChiusura();
	}

	/**
	 * Se il compenso è associato a Missione, Minicarriera o Conguaglio la Data
	 * Competenza Coge non è modificabile
	 * 
	 * @return boolean
	 */
	public boolean isRODtACompetenzaCoge() {

		if (isAssociatoADocumento() || isROPerChiusura() || getFatturaPassiva() != null)
			return true;
		return false;
	}

	/**
	 * Se il compenso è associato a Missione, Minicarriera o Conguaglio la Data
	 * Competenza Coge non è modificabile
	 * 
	 * @return boolean
	 */
	public boolean isRODtDaCompetenzaCoge() {

		if (isAssociatoADocumento() || isROPerChiusura() || getFatturaPassiva() != null)
			return true;
		return false;
	}

	/**
	 * Se il compenso è associato a Missione, Minicarriera o Conguaglio la Data
	 * Registrazione non è modificabile
	 * 
	 * @return boolean
	 */
	public boolean isRODtRegistrazione() {

		if (isAssociatoADocumento() || isROPerChiusura() || getFatturaPassiva() != null)
			return true;
		return false;
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROFindRegioneIrap() {
		return isROPerChiusura();
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROFindTipologiaRischio() {
		return isROPerChiusura();
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROFindVoceIva() {

		return false;
	}

	/**
	 * Se il compenso è associato a Missione, Minicarriera o Conguaglio il flag
	 * Senza Calcoli non è modificabile
	 * 
	 * @return boolean
	 */
	public boolean isROFlagSenzaCalcoli() {

		if (isDaMissione() || isDaMinicarriera() || isDaConguaglio() || isDaBonus() || isROPerChiusura() || (isDaFatturaPassiva() && !isUserAbilitatoSenzaCalcolo()))
			return true;
		return false;
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROImLordoPercipiente() {
		return isAssociatoADocumento() || isROPerChiusura();
	}

	public boolean isROImportoNoFiscale() {
		if (isAssociatoADocumento() || isROPerChiusura())
			return true;

		return false;
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROLineaAttivita() {

		if (isStatoCompensoNormale() || isStatoCompensoEseguiCalcolo() || isROPerChiusura())
			return true;

		return getImportoObbligazione().compareTo(new java.math.BigDecimal(0)) >= 0;
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROModalitaPagamento() {
		return isROPerChiusura();// || isDaFatturaPassiva();
	}

	/**
	 * Chiusura : se carico un compenso con esercizio precedente a quello solare
	 * : - esercizio scrivania != anno solare e obbligazione riportata -->
	 * nessuna modifica al documento - esercizio scrivania != anno solare e
	 * obbligazione non riportata --> qualsiasi modifica consentita - esercizio
	 * scrivania = anno solare e obbligazione riportata --> nessuna modifica
	 * tranne CoFi e Annulla - esercizio scrivania = anno solare e obbligazione
	 * non riportata --> nessuna modifica al documento
	 */

	public boolean isROPerChiusura() {

		if (getEsercizio() == null)
			return false;

		// if(getEsercizio().intValue() == getAnnoSolare())
		// return false;

		// if(getEsercizioScrivania() != getAnnoSolare())
		// return isRiportata();

		// return true;

		// Gennaro Borriello/Farinella Luisa - (05/11/2004 12.23.28)
		// Modif. relativa alla nuova gestione di isRiportata()
		// MB - (06/11/2004 12.23.28)
		if (getEsercizio().intValue() == getEsercizioScrivania()) {
			return isRiportata();
		} else
			return true;
	}

	public boolean isROQuotaEsente() {
		if (isAssociatoADocumento() || isROPerChiusura())
			return true;

		return false;
	}

	public boolean isROQuotaEsenteNoIva() {
		if (isAssociatoADocumento() || isROPerChiusura())
			return true;

		return false;
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isRORecuperoRate() {
		return Boolean.FALSE.equals(getFl_senza_calcoli()) || isROPerChiusura();
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isRORegioneIrap() {

		return isROFindRegioneIrap()
				|| (getRegioneIrap() == null || getRegioneIrap().getCrudStatus() == OggettoBulk.NORMAL);
	}

	public boolean isROStato_pagamento_fondo_eco() {

		return REGISTRATO_FONDO_ECO.equals(getStato_pagamento_fondo_eco()) || isROPerChiusura() || isElettronica();
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROTerminiPagamento() {
		return isROPerChiusura();
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROTerzo() {

		return isAssociatoADocumento() || isROPerChiusura() || getFatturaPassiva() != null;
	}

	/**
	 * Se il compenso è associato a Missione, Minicarriera o Conguaglio il flag
	 * Senza Calcoli non è modificabile
	 * 
	 * @return boolean
	 */
	public boolean isROTi_istituz_commerc() {

		if (isAssociatoADocumento() || isROPerChiusura() || getFatturaPassiva() != null)
			return true;
		return false;
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROTipologiaRischio() {

		return isROFindTipologiaRischio()
				|| (getTipologiaRischio() == null || getTipologiaRischio().getCrudStatus() == OggettoBulk.NORMAL);
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROTipoRapporto() {

		return isROTerzo();
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROTipoTrattamento() {

		return isROTerzo() && getFatturaPassiva() == null;
	}

	public boolean isROTipoPrestazioneCompenso() {

		return isROTerzo() && getFatturaPassiva() == null;
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROVoceIva() {

		return isROFindVoceIva() || (getVoceIva() == null || getVoceIva().getCrudStatus() == OggettoBulk.NORMAL);
	}

	/**
	 * Inserito per recuperare i Parametri_cnr e gestire la
	 * isROQuota_esente_inps
	 * 
	 * @autor Marco Spasiano Creation date: (25/02/2002 11.24.00)
	 * @see it.cnr.jada.bulk.OggettoBulk#fillFromActionContext(it.cnr.jada.action.ActionContext,
	 *      java.lang.String, int, it.cnr.jada.bulk.FieldValidationMap)
	 */
	public boolean fillFromActionContext(ActionContext actioncontext, String s, int i,
			FieldValidationMap fieldvalidationmap) throws FillException {
		if (getTipoRapporto() != null && getTipoRapporto().getCd_tipo_rapporto()
				.equals(it.cnr.contab.utenze00.bulk.CNRUserInfo.getCd_tipo_rapporto(actioncontext))) {
			roQuota_esente_inps = java.lang.Boolean.FALSE;
		} else {
			roQuota_esente_inps = java.lang.Boolean.TRUE;
		}
		return super.fillFromActionContext(actioncontext, s, i, fieldvalidationmap);
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isROQuota_esente_inps() {
		return (getTipoRapporto() == null || roQuota_esente_inps.booleanValue());
	}

	/**
	 * Insert the method's description here. Creation date: (02/07/2002
	 * 17.16.49)
	 * 
	 * @return boolean
	 */
	public boolean isSenzaCalcoli() {

		return Boolean.TRUE.equals(getFl_senza_calcoli());
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 11.24.00)
	 * 
	 * @return boolean
	 */
	public boolean isStatoCofiIniziale() {

		return STATO_INIZIALE.equals(getStato_cofi());
	}

	public boolean isStatoCompensoContabilizzaCofi() {

		return getStatoCompenso() == STATO_COMPENSO_CONTABILIZZA_COFI;
	}

	public boolean isStatoCompensoEseguiCalcolo() {

		return getStatoCompenso() == STATO_COMPENSO_ESEGUI_CALCOLO;
	}

	public boolean isStatoCompensoNormale() {

		return getStatoCompenso() == STATO_COMPENSO_NORMALE;
	}

	public boolean isStatoCompensoObbligazioneSincronizzata() {

		return getStatoCompenso() == STATO_COMPENSO_OBBLIGAZIONE_SINCRONIZZATA;
	}

	public boolean isStatoCompensoSincronizzaObbligazione() {

		return getStatoCompenso() == STATO_COMPENSO_SINCRONIZZA_OBBLIGAZIONE;
	}

	public boolean isTemporaneo() {

		if (getPg_compenso() == null)
			return false;
		return getPg_compenso().longValue() < 0;
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 17.52.30)
	 * 
	 * @return boolean
	 */
	public boolean isVisualizzaRegioneIrap() {
		return visualizzaRegioneIrap;
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 17.52.50)
	 * 
	 * @return boolean
	 */
	public boolean isVisualizzaTipologiaRischio() {
		return visualizzaTipologiaRischio;
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 17.52.13)
	 * 
	 * @return boolean
	 */
	public boolean isVisualizzaVoceIva() {
		return visualizzaVoceIva;
	}

	public boolean isVisualizzaCodici_rapporti_inps() {
		return visualizzaCodici_rapporti_inps;
	}

	public boolean isVisualizzaCodici_attivita_inps() {
		return visualizzaCodici_attivita_inps;
	}

	public boolean isVisualizzaCodici_altra_forma_ass_inps() {
		return visualizzaCodici_altra_forma_ass_inps;
	}

	/**
	 * Insert the method's description here. Creation date: (24/05/2002
	 * 12.55.59)
	 * 
	 * @param bulk
	 *            it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk
	 */
	public void removeFromDefferredSaldi(it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk docCont) {

		if (docCont != null && deferredSaldi != null && deferredSaldi.containsKey(docCont))
			deferredSaldi.remove(docCont);
	}

	/**
	 * per interfaccia IDocumentoAmministrativoSpesaBulk
	 */
	public int removeFromDettagliCancellati(
			it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoRigaBulk dettaglio) {

		if (BulkCollections.containsByPrimaryKey(getDettagliCancellati(), (OggettoBulk) dettaglio))
			getDettagliCancellati()
					.remove(BulkCollections.indexOfByPrimaryKey(getDettagliCancellati(), (OggettoBulk) dettaglio));

		return getDettagliCancellati().size() - 1;
	}

	/**
	 * per interfaccia IDocumentoAmministrativoSpesaBulk
	 */
	public int removeFromDocumentiContabiliCancellati(
			it.cnr.contab.doccont00.core.bulk.IScadenzaDocumentoContabileBulk scadenza) {

		if (getDocumentiContabiliCancellati() == null)
			return -1;

		if (scadenza != null
				&& BulkCollections.containsByPrimaryKey(getDocumentiContabiliCancellati(), (OggettoBulk) scadenza))
			getDocumentiContabiliCancellati().remove(
					BulkCollections.indexOfByPrimaryKey(getDocumentiContabiliCancellati(), (OggettoBulk) scadenza));

		return getDocumentiContabiliCancellati().size() - 1;
	}

	/**
	 * Insert the method's description here. Creation date: (5/15/2002 10:50:29
	 * AM)
	 * 
	 * @param docCont
	 *            it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk
	 */
	public void removeFromRelationsDocContForSaldi(it.cnr.contab.doccont00.core.bulk.IDocumentoContabileBulk docCont) {

		if (docCont != null && relationsDocContForSaldi != null && relationsDocContForSaldi.containsKey(docCont))
			relationsDocContForSaldi.remove(docCont);
	}

	public void resetDatiFattura() {

		setEsercizio_fattura_fornitore(null);
		setDt_fattura_fornitore(null);
		setNr_fattura_fornitore(null);
		setFl_generata_fattura(Boolean.FALSE);
		setFl_liquidazione_differita(Boolean.FALSE);
		setData_protocollo(null);
		setNumero_protocollo(null);
		setDt_scadenza(null);
	}

	public void resetDatiLiquidazione() {

		setRegioneIrap(new it.cnr.contab.anagraf00.tabter.bulk.RegioneBulk());
		setVoceIva(new it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk());
		setTipologiaRischio(new Tipologia_rischioBulk());
		setImponibile_inail(new java.math.BigDecimal(0));

		setVisualizzaRegioneIrap(false);
		setVisualizzaTipologiaRischio(false);
		setCompensoSoloInailEnte(false);
		setVisualizzaVoceIva(false);
	}

	/**
	 * Insert the method's description here. Creation date: (24/05/2002
	 * 13.07.35)
	 */
	public void resetDefferredSaldi() {

		deferredSaldi = null;
	}

	private void resetDetrazioni() {

		setDetrazione_altri(new java.math.BigDecimal(0));
		setDetrazione_coniuge(new java.math.BigDecimal(0));
		setDetrazione_figli(new java.math.BigDecimal(0));
		setDetrazioni_la(new java.math.BigDecimal(0));
		setDetrazioni_personali(new java.math.BigDecimal(0));

		setDetrazione_altri_netto(new java.math.BigDecimal(0));
		setDetrazione_coniuge_netto(new java.math.BigDecimal(0));
		setDetrazione_figli_netto(new java.math.BigDecimal(0));
		setDetrazioni_la_netto(new java.math.BigDecimal(0));
		setDetrazioni_personali_netto(new java.math.BigDecimal(0));
	}

	private void resetFlags() {

		setFl_diaria(Boolean.FALSE);
		setFl_senza_calcoli(Boolean.FALSE);
		setFl_compenso_conguaglio(Boolean.FALSE);
		setFl_compenso_stipendi(Boolean.FALSE);
		setFl_compenso_minicarriera(Boolean.FALSE);
		setFl_compenso_mcarriera_tassep(Boolean.FALSE);
		setFl_generata_fattura(Boolean.FALSE);
		setFl_liquidazione_differita(Boolean.FALSE);
		setFl_documento_ele(Boolean.FALSE);
		setFl_split_payment(Boolean.FALSE);
	}

	private void resetImporti() {

		setIm_totale_compenso(new java.math.BigDecimal(0));
		setIm_lordo_percipiente(new java.math.BigDecimal(0));
		setIm_netto_percipiente(new java.math.BigDecimal(0));
		setIm_cr_percipiente(new java.math.BigDecimal(0));
		setQuota_esente_inps(new java.math.BigDecimal(0));
		setIm_cr_ente(new java.math.BigDecimal(0));
		setQuota_esente(new java.math.BigDecimal(0));
		setQuota_esente_no_iva(new java.math.BigDecimal(0));
		setIm_no_fiscale(new java.math.BigDecimal(0));
		setImponibile_fiscale(new java.math.BigDecimal(0));
		setImponibile_iva(new java.math.BigDecimal(0));
		setAliquota_irpef_da_missione(new java.math.BigDecimal(0));
		setAliquota_irpef_tassep(new java.math.BigDecimal(0));
		setIm_deduzione_irpef(new java.math.BigDecimal(0));
		setImponibile_fiscale_netto(new java.math.BigDecimal(0));
	}

	private void resetStati() {

		setStato_cofi(STATO_INIZIALE);
		setStato_coge(NON_CONTABILIZZATO_COGE);
		setStato_coan(NON_CONTABILIZZATO_COAN);
		setStato_pagamento_fondo_eco(LIBERO_FONDO_ECO);
		setTi_associato_manrev(NON_ASSOCIATO_MANREV);
		setTi_anagrafico(Tipo_rapportoBulk.ALTRO);
		setTi_istituz_commerc(MinicarrieraBulk.TIPO_COMPENSO_ISTITUZIONALE);
	}

	public void resetStatoCogeCoan() {

		if (CONTABILIZZATO_COAN.equals(getStato_coan()))
			setStato_coan(DA_RICONTABILIZZARE_COAN);

		if (CONTABILIZZATO_COGE.equals(getStato_coge()))
			setStato_coge(DA_RICONTABILIZZARE_COGE);
	}

	/**
	 * Insert the method's description here. Creation date: (14/07/2003
	 * 11.14.16)
	 * 
	 * @param newAnnoSolare
	 *            int
	 */
	public void setAnnoSolare(int newAnnoSolare) {
		annoSolare = newAnnoSolare;
	}

	/**
	 * Insert the method's description here. Creation date: (12/12/2002
	 * 15.47.14)
	 * 
	 * @param newAperturaDaMinicarriera
	 *            java.lang.Boolean
	 */
	public void setAperturaDaMinicarriera(java.lang.Boolean newAperturaDaMinicarriera) {
		aperturaDaMinicarriera = newAperturaDaMinicarriera;
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.22.21)
	 * 
	 * @param newBanca
	 *            it.cnr.contab.anagraf00.core.bulk.BancaBulk
	 */
	public void setBanca(BancaBulk newBanca) {
		banca = newBanca;
	}

	public void setCd_cdr_genrc(java.lang.String cd_cdr_genrc) {
		this.getLineaAttivita().getCentro_responsabilita().setCd_centro_responsabilita(cd_cdr_genrc);
	}

	public void setCd_cds_missione(java.lang.String cd_cds_missione) {
		this.getMissione().setCd_cds(cd_cds_missione);
	}

	public void setCd_cds_obbligazione(java.lang.String cd_cds_obbligazione) {
		this.getObbligazioneScadenzario().getObbligazione().getCds().setCd_unita_organizzativa(cd_cds_obbligazione);
	}

	public void setCd_linea_attivita_genrc(java.lang.String cd_linea_attivita_genrc) {
		this.getLineaAttivita().setCd_linea_attivita(cd_linea_attivita_genrc);
	}

	public void setCd_modalita_pag(java.lang.String cd_modalita_pag) {
		this.getModalitaPagamento().setCd_modalita_pag(cd_modalita_pag);
	}

	public void setCd_regione_irap(java.lang.String cd_regione_irap) {
		this.getRegioneIrap().setCd_regione(cd_regione_irap);
	}

	public void setCd_termini_pag(java.lang.String cd_termini_pag) {
		this.getTerminiPagamento().setCd_termini_pag(cd_termini_pag);
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.22)
	 * 
	 * @return java.lang.Integer
	 */
	public void setCd_tipo_doc_amm(java.lang.String newCd_tipo_doc_amm) {
	}

	public void setCd_tipo_rapporto(java.lang.String cd_tipo_rapporto) {
		this.getTipoRapporto().setCd_tipo_rapporto(cd_tipo_rapporto);
	}

	public void setCd_trattamento(java.lang.String cd_trattamento) {
		this.getTipoTrattamento().setCd_trattamento(cd_trattamento);
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.22)
	 * 
	 * @return java.lang.Integer
	 */
	public void setCd_uo(java.lang.String newCd_uo) {

		setCd_unita_organizzativa(newCd_uo);
	}

	public void setCd_uo_missione(java.lang.String cd_uo_missione) {
		this.getMissione().setCd_unita_organizzativa(cd_uo_missione);
	}

	public void setCd_voce_iva(java.lang.String cd_voce_iva) {
		this.getVoceIva().setCd_voce_iva(cd_voce_iva);
	}

	/**
	 * Insert the method's description here. Creation date: (12/07/2002
	 * 11.45.09)
	 * 
	 * @param newConguaglio
	 *            it.cnr.contab.compensi00.docs.bulk.ConguaglioBulk
	 */
	public void setConguaglio(ConguaglioBulk newConguaglio) {
		conguaglio = newConguaglio;
	}

	/**
	 * Insert the method's description here. Creation date: (04/03/2002
	 * 15.05.00)
	 * 
	 * @param newContributi
	 *            java.util.Collection
	 */
	public void setContributi(java.util.Collection newContributi) {
		contributi = newContributi;
	}

	/**
	 * getImportoSignForDelete method comment.
	 */
	public void setDefferredSaldi(PrimaryKeyHashMap newDefferredSaldi) {
		deferredSaldi = newDefferredSaldi;
	}

	/**
	 * Insert the method's description here. Creation date: (27/08/2002
	 * 17.27.47)
	 * 
	 * @param newDettagliCancellati
	 *            java.util.Vector
	 */
	public void setDettagliCancellati(java.util.Vector newDettagliCancellati) {
		dettagliCancellati = newDettagliCancellati;
	}

	/**
	 * Insert the method's description here. Creation date: (10/10/2002
	 * 10.46.05)
	 * 
	 * @param newDocContAssociati
	 *            java.util.List
	 */
	public void setDocContAssociati(java.util.List newDocContAssociati) {

		if (newDocContAssociati != null) {

			docContAssociati = new java.util.LinkedList();
			for (java.util.Iterator i = newDocContAssociati.iterator(); i.hasNext();) {
				V_doc_cont_compBulk docCont = (V_doc_cont_compBulk) i.next();
				if (docCont.isDocumentoPrincipale())
					setDocContPrincipale(docCont);
				else
					docContAssociati.add(docCont);
			}
		}
	}

	/**
	 * Insert the method's description here. Creation date: (23/10/2002
	 * 13.00.41)
	 * 
	 * @param newDocContPrincipale
	 *            it.cnr.contab.compensi00.docs.bulk.V_doc_cont_compBulk
	 */
	public void setDocContPrincipale(V_doc_cont_compBulk newDocContPrincipale) {
		docContPrincipale = newDocContPrincipale;
	}

	/**
	 * Insert the method's description here. Creation date: (27/08/2002
	 * 17.28.36)
	 * 
	 * @param newDocumentiContabiliCancellati
	 *            java.util.Vector
	 */
	public void setDocumentiContabiliCancellati(java.util.Vector newDocumentiContabiliCancellati) {
		documentiContabiliCancellati = newDocumentiContabiliCancellati;
	}

	public void setEsercizio_missione(java.lang.Integer esercizio_missione) {
		this.getMissione().setEsercizio(esercizio_missione);
	}

	public void setEsercizio_obbligazione(java.lang.Integer esercizio_obbligazione) {
		this.getObbligazioneScadenzario().getObbligazione().setEsercizio(esercizio_obbligazione);
	}

	/**
	 * Insert the method's description here. Creation date: (14/07/2003
	 * 11.14.16)
	 * 
	 * @param newEsercizioScrivania
	 *            int
	 */
	public void setEsercizioScrivania(int newEsercizioScrivania) {
		esercizioScrivania = newEsercizioScrivania;
	}

	/**
	 * setIsDeleting method comment.
	 */
	public void setIsDeleting(boolean deletingStatus) {
	}

	/**
	 * Insert the method's description here. Creation date: (02/07/2002
	 * 15.33.58)
	 * 
	 * @param newLineaAttivita
	 *            it.cnr.contab.config00.latt.bulk.Linea_attivitaBulk
	 */
	public void setLineaAttivita(it.cnr.contab.config00.latt.bulk.WorkpackageBulk newLineaAttivita) {
		lineaAttivita = newLineaAttivita;
	}

	/**
	 * Insert the method's description here. Creation date: (7/3/2002 12:47:28
	 * PM)
	 * 
	 * @param newMinicarriera
	 *            it.cnr.contab.compensi00.docs.bulk.MinicarrieraBulk
	 */
	public void setMinicarriera(MinicarrieraBulk newMinicarriera) {
		minicarriera = newMinicarriera;
	}

	/**
	 * Insert the method's description here. Creation date: (01/07/2002
	 * 13.01.53)
	 * 
	 * @param newMissione
	 *            it.cnr.contab.missioni00.docs.bulk.MissioneBulk
	 */
	public void setMissione(it.cnr.contab.missioni00.docs.bulk.MissioneBulk newMissione) {
		missione = newMissione;
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.24.54)
	 * 
	 * @param newModalita
	 *            java.util.Collection
	 */
	public void setModalita(java.util.Collection newModalita) {
		modalita = newModalita;
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.23.02)
	 * 
	 * @param newModalitaPagamento
	 *            it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk
	 */
	public void setModalitaPagamento(Rif_modalita_pagamentoBulk newModalitaPagamento) {
		modalitaPagamento = newModalitaPagamento;
	}

	/**
	 * Insert the method's description here. Creation date: (14/05/2002
	 * 12.35.18)
	 * 
	 * @param newObbligazioneScadenzario
	 *            it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk
	 */
	public void setObbligazioneScadenzario(
			it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk newObbligazioneScadenzario) {
		obbligazioneScadenzario = newObbligazioneScadenzario;
	}

	public void setPg_banca(java.lang.Long pg_banca) {
		this.getBanca().setPg_banca(pg_banca);
	}

	/**
	 * Insert the method's description here. Creation date: (27/05/2002
	 * 12.54.21)
	 * 
	 * @return java.lang.Integer
	 */
	public void setPg_doc_amm(java.lang.Long newPg) {

		setPg_compenso(newPg);
	}

	public void setPg_missione(java.lang.Long pg_missione) {
		this.getMissione().setPg_missione(pg_missione);
	}

	public void setEsercizio_ori_obbligazione(Integer esercizio_ori_obbligazione) {
		this.getObbligazioneScadenzario().getObbligazione().setEsercizio_originale(esercizio_ori_obbligazione);
	}

	public void setPg_obbligazione(java.lang.Long pg_obbligazione) {
		this.getObbligazioneScadenzario().getObbligazione().setPg_obbligazione(pg_obbligazione);
	}

	public void setPg_obbligazione_scadenzario(java.lang.Long pg_obbligazione_scadenzario) {
		this.getObbligazioneScadenzario().setPg_obbligazione_scadenzario(pg_obbligazione_scadenzario);
	}

	/**
	 * Insert the method's description here. Creation date: (17/06/2002
	 * 12.51.45)
	 * 
	 * @param newPgCompensoPerClone
	 *            java.lang.Long
	 */
	public void setPgCompensoPerClone(java.lang.Long newPgCompensoPerClone) {
		pgCompensoPerClone = newPgCompensoPerClone;
	}

	/**
	 * Insert the method's description here. Creation date: (23/04/2002
	 * 12.40.29)
	 * 
	 * @param newPgCompensoPos
	 *            java.lang.Long
	 */
	public void setPgCompensoPos(java.lang.Long newPgCompensoPos) {
		setPg_compenso(newPgCompensoPos);
	}

	public void setPgObbligazionePos(Long newLong) {
		setPg_obbligazione(newLong);
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 16.28.24)
	 * 
	 * @param newRegioneIrap
	 *            it.cnr.contab.anagraf00.tabter.bulk.RegioneBulk
	 */
	public void setRegioneIrap(it.cnr.contab.anagraf00.tabter.bulk.RegioneBulk newRegioneIrap) {
		regioneIrap = newRegioneIrap;
	}

	/**
	 * Insert the method's description here. Creation date: (7/22/2002 2:17:18
	 * PM)
	 * 
	 * @param newRelationsDocContForSaldi
	 *            it.cnr.jada.bulk.PrimaryKeyHashMap
	 */
	public void setRelationsDocContForSaldi(it.cnr.jada.bulk.PrimaryKeyHashMap newRelationsDocContForSaldi) {
		relationsDocContForSaldi = newRelationsDocContForSaldi;
	}

	/**
	 * Insert the method's description here. Creation date: (30/05/2003
	 * 15.55.11)
	 * 
	 * @param newRiportata
	 *            java.lang.String
	 */
	public void setRiportata(java.lang.String newRiportata) {
		riportata = newRiportata;
	}

	/**
	 * Insert the method's description here. Creation date: (02/11/2004
	 * 14.28.41)
	 * 
	 * @param newRiportataInScrivania
	 *            java.lang.String
	 */
	public void setRiportataInScrivania(java.lang.String newRiportataInScrivania) {
		riportataInScrivania = newRiportataInScrivania;
	}

	/**
	 * Insert the method's description here. Creation date: (20/06/2002
	 * 11.50.31)
	 * 
	 * @param newStatoCompenso
	 *            java.lang.String
	 */
	private void setStatoCompenso(int newStatoCompenso) {
		statoCompenso = newStatoCompenso;
	}

	public void setStatoCompensoToContabilizzaCofi() {

		setStatoCompenso(STATO_COMPENSO_CONTABILIZZA_COFI);
	}

	public void setStatoCompensoToEseguiCalcolo() {

		setStatoCompenso(STATO_COMPENSO_ESEGUI_CALCOLO);
	}

	public void setStatoCompensoToNormale() {

		setStatoCompenso(STATO_COMPENSO_NORMALE);
	}

	public void setStatoCompensoToObbligazioneSincronizzata() {

		setStatoCompenso(STATO_COMPENSO_OBBLIGAZIONE_SINCRONIZZATA);
	}

	public void setStatoCompensoToSincronizzaObbligazione() {

		setStatoCompenso(STATO_COMPENSO_SINCRONIZZA_OBBLIGAZIONE);
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.25.07)
	 * 
	 * @param newTermini
	 *            java.util.Collection
	 */
	public void setTermini(java.util.Collection newTermini) {
		termini = newTermini;
	}

	/**
	 * Insert the method's description here. Creation date: (19/02/2002
	 * 14.22.43)
	 * 
	 * @param newTerminiPagamento
	 *            it.cnr.contab.anagraf00.tabrif.bulk.Rif_termini_pagamentoBulk
	 */
	public void setTerminiPagamento(Rif_termini_pagamentoBulk newTerminiPagamento) {
		terminiPagamento = newTerminiPagamento;
	}

	/**
	 * Insert the method's description here. Creation date: (26/02/2002
	 * 11.19.49)
	 * 
	 * @param newTipiRapporto
	 *            java.util.Collection
	 */
	public void setTipiRapporto(java.util.Collection newTipiRapporto) {
		tipiRapporto = newTipiRapporto;
	}

	/**
	 * Insert the method's description here. Creation date: (26/02/2002
	 * 11.58.06)
	 * 
	 * @param newTipiTrattamento
	 *            java.util.Collection
	 */
	public void setTipiTrattamento(java.util.Collection newTipiTrattamento) {
		tipiTrattamento = newTipiTrattamento;
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 16.28.54)
	 * 
	 * @param newTipologiaRischio
	 *            it.cnr.contab.compensi00.tabrif.bulk.Tipologia_rischioBulk
	 */
	public void setTipologiaRischio(it.cnr.contab.compensi00.tabrif.bulk.Tipologia_rischioBulk newTipologiaRischio) {
		tipologiaRischio = newTipologiaRischio;
		setCd_tipologia_rischio(newTipologiaRischio.getCd_tipologia_rischio());
	}

	/**
	 * Insert the method's description here. Creation date: (21/02/2002
	 * 14.43.50)
	 * 
	 * @param newTipoRapporto
	 *            it.cnr.contab.anagraf00.tabrif.bulk.Tipo_rapportoBulk
	 */
	public void setTipoRapporto(Tipo_rapportoBulk newTipoRapporto) {
		tipoRapporto = newTipoRapporto;
	}

	/**
	 * Insert the method's description here. Creation date: (21/02/2002
	 * 14.46.57)
	 * 
	 * @param newTipoTrattamento
	 *            it.cnr.contab.compensi00.tabrif.bulk.Tipo_trattamentoBulk
	 */
	public void setTipoTrattamento(Tipo_trattamentoBulk newTipoTrattamento) {
		tipoTrattamento = newTipoTrattamento;
	}

	/**
	 * Insert the method's description here. Creation date: (25/02/2002
	 * 14.36.31)
	 * 
	 * @param newV_terzo
	 *            it.cnr.contab.compensi00.docs.bulk.V_terzo_per_compensoBulk
	 */
	public void setV_terzo(V_terzo_per_compensoBulk newV_terzo) {
		v_terzo = newV_terzo;
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 17.52.30)
	 * 
	 * @param newVisualizzaRegioneIrap
	 *            boolean
	 */
	public void setVisualizzaRegioneIrap(boolean newVisualizzaRegioneIrap) {
		visualizzaRegioneIrap = newVisualizzaRegioneIrap;
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 17.52.50)
	 * 
	 * @param newVisualizzaTipologiaRischio
	 *            boolean
	 */
	public void setVisualizzaTipologiaRischio(boolean newVisualizzaTipologiaRischio) {
		visualizzaTipologiaRischio = newVisualizzaTipologiaRischio;
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 17.52.13)
	 * 
	 * @param newVisualizzaVoceIva
	 *            boolean
	 */
	public void setVisualizzaVoceIva(boolean newVisualizzaVoceIva) {
		visualizzaVoceIva = newVisualizzaVoceIva;
	}

	public void setVisualizzaCodici_rapporti_inps(boolean newVisualizzaCodici_rapporti_inps) {
		visualizzaCodici_rapporti_inps = newVisualizzaCodici_rapporti_inps;
	}

	public void setVisualizzaCodici_attivita_inps(boolean newVisualizzaCodici_attivita_inps) {
		visualizzaCodici_attivita_inps = newVisualizzaCodici_attivita_inps;
	}

	public void setVisualizzaCodici_altra_forma_ass_inps(boolean newVisualizzaCodici_altra_forma_ass_inps) {
		visualizzaCodici_altra_forma_ass_inps = newVisualizzaCodici_altra_forma_ass_inps;
	}

	/**
	 * Insert the method's description here. Creation date: (24/06/2002
	 * 16.27.56)
	 * 
	 * @param newVoceIva
	 *            it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk
	 */
	public void setVoceIva(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk newVoceIva) {
		voceIva = newVoceIva;
	}

	/**
	 * Al rientro da ogni aggiornamento manuale della scadenza associata a
	 * compenso devo sincronizzare anche le scadenze che ho messo tra le
	 * cancellate perche' l'utente potrebbe averle modificate. Se non dovessi
	 * trovare una delle mie scadenze cancellate tra quelle della obbligazione
	 * significa che l'utente l'ha eliminata fisicamente.
	 */
	public void sincronizzaScadenzeCancellate(Obbligazione_scadenzarioBulk newScadenza) {
		if (getDocumentiContabiliCancellati() == null || getDocumentiContabiliCancellati().isEmpty())
			return;

		if (getObbligazioneScadenzario() == null)
			return;

		if (!newScadenza.getObbligazione().equalsByPrimaryKey(getObbligazioneScadenzario().getObbligazione()))
			return;

		boolean trovata = false;
		BulkList coll = newScadenza.getObbligazione().getObbligazione_scadenzarioColl();
		if (coll == null)
			return;

		for (Iterator c = ((Vector) getDocumentiContabiliCancellati().clone()).iterator(); c.hasNext();) {
			Obbligazione_scadenzarioBulk aScadCanc = (Obbligazione_scadenzarioBulk) c.next();
			trovata = false;

			for (Iterator i = coll.iterator(); i.hasNext();) {
				Obbligazione_scadenzarioBulk aScadenza = (Obbligazione_scadenzarioBulk) i.next();

				if (aScadenza.equalsByPrimaryKey(aScadCanc)) {
					getDocumentiContabiliCancellati().remove(aScadCanc);
					getDocumentiContabiliCancellati().add(aScadenza);
					trovata = true;
				}
			}
			if (!trovata && aScadCanc.getObbligazione().equalsByPrimaryKey(newScadenza.getObbligazione()))
				getDocumentiContabiliCancellati().remove(aScadCanc);
		}
	}

	public void validaDate() throws it.cnr.jada.comp.ApplicationException, it.cnr.jada.action.BusinessProcessException,
			java.text.ParseException, javax.ejb.EJBException {
		if (getDt_registrazione() == null)
			throw new it.cnr.jada.comp.ApplicationException("Inserire la data registrazione");

		Calendar calendar = getDateCalendar(getDt_registrazione());
		int annoDataRegistrazione = calendar.get(Calendar.YEAR);

		if (annoDataRegistrazione != getEsercizio().intValue())
			throw new it.cnr.jada.comp.ApplicationException(
					"La Data registrazione deve essere nell'esercizio in corso");
		if (getDt_registrazione().compareTo(getDataOdierna()) > 0)
			throw new it.cnr.jada.comp.ApplicationException(
					"La Data registrazione non può essere superiore alla data odierna");

		validaDateCompetenzaCoge();
	}

	public void validaDateCompetenzaCoge() throws ApplicationException {
		if (getDt_da_competenza_coge() == null)
			throw new ApplicationException("Inserire la Data Inizio Competenza COGE.");
		if (getDt_a_competenza_coge() == null)
			throw new ApplicationException("Inserire la Data Fine Competenza COGE.");

		if (getDt_a_competenza_coge().before(getDt_da_competenza_coge()))
			throw new ApplicationException("La Data Inizio Competenza deve essere inferiore alla Data Fine Competenza");

		Calendar competenzaDa = getDateCalendar(getDt_da_competenza_coge());
		Calendar competenzaA = getDateCalendar(getDt_a_competenza_coge());
		int annoCompetenzaDa = competenzaDa.get(Calendar.YEAR);
		int annoCompetenzaA = competenzaA.get(Calendar.YEAR);

		if (annoCompetenzaDa <= getEsercizio().intValue() - 2)
			throw new ApplicationException(
					"La Data di Inizio Competenza deve appartenere all'esercizio di scrivania o al precedente!");
		if (annoCompetenzaA >= getEsercizio().intValue() + 2)
			throw new ApplicationException(
					"La data di Fine Competenza deve appartenere all'esercizio di scrivania o al successivo!");
	}

	public void validaDatiFattura() throws it.cnr.jada.comp.ApplicationException {

		// Non ho inserito nessun dato oppure ho inserito tutti i dati relativi
		// alla fattura fornitore
		boolean tuttiNull = getEsercizio_fattura_fornitore() == null && getNr_fattura_fornitore() == null
				&& getDt_fattura_fornitore() == null;
		boolean tuttiNotNull = getEsercizio_fattura_fornitore() != null && getNr_fattura_fornitore() != null
				&& getDt_fattura_fornitore() != null;
		if (tuttiNull && Boolean.TRUE.equals(getFl_generata_fattura()))
			throw new it.cnr.jada.comp.ApplicationException(
					"Inserire gli estremi identificativi della fattura fornitore");
		if (tuttiNotNull && Boolean.FALSE.equals(getFl_generata_fattura()))
			throw new it.cnr.jada.comp.ApplicationException(
					"Indicare generare fattura o eliminare gli estremi identificativi della fattura");
		if (!(tuttiNull || tuttiNotNull))
			throw new it.cnr.jada.comp.ApplicationException(
					"Completare gli estremi identificativi della fattura fornitore.");

		if (getDt_registrazione().after(dataInizioObbligoRegistroUnico)
				&& Boolean.TRUE.equals(getFl_generata_fattura() && Boolean.FALSE.equals(isGestione_doc_ele()))) {
			if (getDt_scadenza() == null)
				throw new ApplicationException("Inserire la data di scadenza.");
			if (getData_protocollo() == null)
				throw new ApplicationException("Inserire la data di protocollo di entrata.");
			if (getNumero_protocollo() == null)
				throw new ApplicationException("Inserire il numero di protocollo di entrata!");
			if (getData_protocollo() != null && getData_protocollo().before(getDt_fattura_fornitore()))
				throw new it.cnr.jada.comp.ApplicationException(
						"La data di protocollo non può essere precedente alla data di emissione del documento del fornitore!");
		}

		if (getData_protocollo() != null && getData_protocollo().after(getDt_registrazione()))
			throw new it.cnr.jada.comp.ApplicationException(
					"La data protocollo di entrata non può essere superiore alla data registrazione del compenso");
		if (getDt_fattura_fornitore() != null && getDt_fattura_fornitore().compareTo(getDt_registrazione()) > 0)
			throw new it.cnr.jada.comp.ApplicationException(
					"La data fattura fornitore non può essere superiore alla data registrazione del compenso");

		// E' stato richiesta la generazione di una fattura ma è stato
		// selezionato un tipo trattamento non compatibile
		if (getTipoTrattamento() != null)
			if (Boolean.TRUE.equals(getFl_generata_fattura())
					&& Boolean.FALSE.equals(getTipoTrattamento().getFl_registra_fattura()))
				throw new it.cnr.jada.comp.ApplicationException(
						"Il Tipo Trattamento selezionato non prevede la gestione Genera Fattura");
	}

	public void validate() throws ValidationException {

		if (getDs_compenso() == null)
			throw new ValidationException("Inserire la Descrizione");

		if (getV_terzo() == null)
			throw new ValidationException("Selezionare un Terzo");

		if (Utility.nvl(getIm_netto_da_trattenere()).compareTo(new BigDecimal(0)) < 0) {
			throw new ValidationException("L'importo Netto da sospendere non può essere negativo.");
		}
		if (Utility.nvl(getIm_netto_da_trattenere()).compareTo(new BigDecimal(0)) > 0) {
			if (Utility.nvl(getIm_netto_percipiente()).compareTo(Utility.nvl(getIm_netto_da_trattenere())) < 0) {
				throw new ValidationException(
						"L'importo Netto da sospendere non può superare l'importo netto da pagare.");
			}
		}
//        if (!(isEstera() ||isSanMarinoConIVA() || isSanMarinoSenzaIVA()) &&
//                (!Optional.ofNullable(getCd_cig()).isPresent() && !Optional.ofNullable(getMotivo_assenza_cig()).isPresent())) {
//            throw new ValidationException("Inserire il CIG o il motivo di assenza dello stesso!");
//        }
	}

	public void validaTerzo() throws it.cnr.jada.comp.ApplicationException {

		// Controllo se il terzo è valido
		if (getTerzo().getDt_fine_rapporto() != null)
			if (getTerzo().getDt_fine_rapporto().compareTo(getDt_registrazione()) < 0)
				throw new it.cnr.jada.comp.ApplicationException("Il terzo selezionato non è valido");

		// Controllo se ho inserito le modalità di pagamento
		if (getModalitaPagamento() == null)
			throw new it.cnr.jada.comp.ApplicationException("Inserire le modalità di pagamento");

		// Controllo se ho inserito il tipo rapporto
		if (getTipoRapporto() == null)
			throw new it.cnr.jada.comp.ApplicationException("Inserire il tipo rapporto");

		// Controllo se ho inserito il tipo trattamento
		if (getTipoTrattamento() == null)
			throw new it.cnr.jada.comp.ApplicationException("Inserire il tipo trattamento");

		// Controllo se ho inserito il tipo prestazione
		/*
		 * if (getTipoPrestazioneCompenso() == null &&
		 * isPrestazioneCompensoEnabled()) throw new
		 * it.cnr.jada.comp.ApplicationException( "Inserire il tipo prestazione"
		 * );
		 */
	}

	public void validaTestata() throws it.cnr.jada.comp.ApplicationException,
			it.cnr.jada.action.BusinessProcessException, javax.ejb.EJBException, java.text.ParseException {
		// Validazione Date
		validaDate();
		if (getMissione() != null && getMissione().getDataInizioObbligoRegistroUnico() != null) {
			setDataInizioObbligoRegistroUnico(getMissione().getDataInizioObbligoRegistroUnico());
		}
		if (dataInizioObbligoRegistroUnico != null && (getDt_registrazione().after(dataInizioObbligoRegistroUnico))) {
			if (getStato_liquidazione() == null)
				throw new ApplicationException("Inserire lo stato della liquidazione!");
			if (getStato_liquidazione() != null && getStato_liquidazione().compareTo(this.LIQ) != 0
					&& getCausale() == null)
				throw new ApplicationException("Inserire la causale.");
		}

		// Validazione Descrizione
		if (getDs_compenso() == null)
			throw new it.cnr.jada.comp.ApplicationException("Inserire la Descrizione");
	}

	/**
	 * @return
	 */
	public Codici_rapporti_inpsBulk getCodici_rapporti_inps() {
		return this.codici_rapporti_inps;
	}

	/**
	 * @param bulk
	 */
	public void setCodici_rapporti_inps(Codici_rapporti_inpsBulk bulk) {
		codici_rapporti_inps = bulk;
	}

	/**
	 * @return
	 */

	public java.lang.String getCd_rapporto_inps() {
		if (getCodici_rapporti_inps() == null)
			return null;
		return this.getCodici_rapporti_inps().getCd_rapporto_inps();
	}

	/**
	 * @param string
	 */

	public void setCd_rapporto_inps(java.lang.String string) {
		this.getCodici_rapporti_inps().setCd_rapporto_inps(string);
	}

	/**
	 * @return
	 */
	public Codici_attivita_inpsBulk getCodici_attivita_inps() {
		return codici_attivita_inps;
	}

	/**
	 * @param bulk
	 */
	public void setCodici_attivita_inps(Codici_attivita_inpsBulk bulk) {
		codici_attivita_inps = bulk;
	}

	/**
	 * @return
	 */
	public java.lang.String getCd_attivita_inps() {
		if (getCodici_attivita_inps() == null)
			return null;
		return this.getCodici_attivita_inps().getCd_attivita_inps();
	}

	/**
	 * @param string
	 */
	public void setCd_attivita_inps(java.lang.String string) {
		this.getCodici_attivita_inps().setCd_attivita_inps(string);
	}

	/**
	 * @return
	 */
	public Codici_altra_forma_ass_inpsBulk getCodici_altra_forma_ass_inps() {
		return codici_altra_forma_ass_inps;
	}

	/**
	 * @param bulk
	 */
	public void setCodici_altra_forma_ass_inps(Codici_altra_forma_ass_inpsBulk bulk) {
		codici_altra_forma_ass_inps = bulk;
	}

	/**
	 * @return
	 */
	public java.lang.String getCd_altra_ass_inps() {
		if (getCodici_altra_forma_ass_inps() == null)
			return null;
		return this.getCodici_altra_forma_ass_inps().getAltra_ass_previd_inps();
	}

	/**
	 * @param string
	 */
	public void setCd_altra_ass_inps(java.lang.String string) {
		this.getCodici_altra_forma_ass_inps().setAltra_ass_previd_inps(string);
	}

	public it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk getComune_inps() {
		return comune_inps;
	}

	public void setComune_inps(it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk newComune_inps) {
		comune_inps = newComune_inps;
	}

	public java.lang.Long getPg_comune_inps() {
		it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk comune_inps = this.getComune_inps();
		if (comune_inps == null)
			return null;
		return comune_inps.getPg_comune();
	}

	public void setPg_comune_inps(java.lang.Long pg_comune_inps) {
		this.getComune_inps().setPg_comune(pg_comune_inps);
	}

	public boolean isROds_comune_inps() {
		return comune_inps == null || comune_inps.getCrudStatus() == OggettoBulk.NORMAL;
	}

	public Incarichi_repertorio_annoBulk getIncarichi_repertorio_anno() {
		return incarichi_repertorio_anno;
	}

	public void setIncarichi_repertorio_anno(Incarichi_repertorio_annoBulk incarichi_repertorio_anno) {
		this.incarichi_repertorio_anno = incarichi_repertorio_anno;
	}

	public java.lang.Integer getEsercizio_rep() {
		if (getIncarichi_repertorio_anno() == null)
			return null;
		return getIncarichi_repertorio_anno().getEsercizio();
	}

	public void setEsercizio_rep(java.lang.Integer esercizio_rep) {
		this.getIncarichi_repertorio_anno().setEsercizio(esercizio_rep);
	}

	public java.lang.Long getPg_repertorio() {
		if (getIncarichi_repertorio_anno() == null)
			return null;
		return getIncarichi_repertorio_anno().getPg_repertorio();
	}

	public void setPg_repertorio(java.lang.Long pg_repertorio) {
		this.getIncarichi_repertorio_anno().getIncarichi_repertorio().setPg_repertorio(pg_repertorio);
	}

	public java.lang.Integer getEsercizio_limite_rep() {
		if (getIncarichi_repertorio_anno() == null)
			return null;
		return this.getIncarichi_repertorio_anno().getEsercizio_limite();
	}

	public void setEsercizio_limite_rep(java.lang.Integer esercizio_limite) {
		this.getIncarichi_repertorio_anno().setEsercizio_limite(esercizio_limite);
	}

	public boolean isIncaricoEnabled() {
		if (this.isDaMissione() || this.isSenzaCalcoli() || this.getTipoPrestazioneCompenso() == null
		/*
		 * || (this.getTipoTrattamento() != null &&
		 * this.getTipoTrattamento().getFl_incarico() != null && !this
		 * .getTipoTrattamento().getFl_incarico())
		 */
		/*
		 * || (this.getTerzo() != null && this.getTerzo().isStudioAssociato() &&
		 * (this .getTi_prestazione() == null || this
		 * .getTi_prestazione().equals( CompensoBulk.TIPO_PRESTAZIONE_SERVIZI)))
		 */
				|| (this.isPrestazioneCompensoEnabled() && this.getTipoPrestazioneCompenso() != null
						&& this.getTipoPrestazioneCompenso().getFl_incarico() != null
						&& !this.getTipoPrestazioneCompenso().getFl_incarico()))
			return false;
		return true;
	}

	public boolean isContrattoEnabled() {
		if (this.isDaMissione() || this.isSenzaCalcoli() || this.getTipoPrestazioneCompenso() == null
				|| (this.isPrestazioneCompensoEnabled() && this.getTipoPrestazioneCompenso() != null
						&& this.getTipoPrestazioneCompenso().getFl_contratto() != null
						&& !this.getTipoPrestazioneCompenso().getFl_contratto()))
			return false;
		return true;
	}

	public boolean isPrestazioneCompensoEnabled() {
		if (this.isDaMissione() || this.isSenzaCalcoli()
				|| (this.getTipoTrattamento() != null && this.getTipoTrattamento().getFl_tipo_prestazione_obbl() != null
						&& !this.getTipoTrattamento().getFl_tipo_prestazione_obbl()))
			return false;
		return true;
	}

	public java.lang.String getIncarichi_oggetto() {
		if (this.getIncarichi_repertorio_anno() == null
				|| this.getIncarichi_repertorio_anno().getIncarichi_repertorio() == null
				|| this.getIncarichi_repertorio_anno().getIncarichi_repertorio().getIncarichi_procedura() == null)
			return null;
		return this.getIncarichi_repertorio_anno().getIncarichi_repertorio().getIncarichi_procedura().getOggetto();
		// return incarichi_oggetto;
	}

	public void setIncarichi_oggetto(java.lang.String incarichi_oggetto) {
		this.getIncarichi_repertorio_anno().getIncarichi_repertorio().getIncarichi_procedura()
				.setOggetto(incarichi_oggetto);
		// this.incarichi_oggetto = incarichi_oggetto;
	}

	public java.math.BigDecimal getImporto_complessivo() {
		if (getIncarichi_repertorio_anno() == null)
			return null;
		return this.getIncarichi_repertorio_anno().getImporto_complessivo();
	}

	public void setImporto_complessivo(java.math.BigDecimal importo_complessivo) {
		this.getIncarichi_repertorio_anno().setImporto_complessivo(importo_complessivo);
	}

	public java.math.BigDecimal getImporto_iniziale() {
		if (getIncarichi_repertorio_anno() == null)
			return null;
		return this.getIncarichi_repertorio_anno().getImporto_iniziale();
	}

	public void setImporto_iniziale(java.math.BigDecimal importo_iniziale) {
		this.getIncarichi_repertorio_anno().setImporto_iniziale(importo_iniziale);
	}

	/*
	 * public java.math.BigDecimal getImporto_utilizzato() { if
	 * (getIncarichi_repertorio_anno() == null) return null; return
	 * this.getIncarichi_repertorio_anno().getImporto_utilizzato(); } public
	 * void setImporto_utilizzato(java.math.BigDecimal importo_utilizzato) {
	 * this
	 * .getIncarichi_repertorio_anno().setImporto_utilizzato(importo_utilizzato
	 * ); }
	 */
	public java.lang.Boolean getRoQuota_esente_inps() {
		return roQuota_esente_inps;
	}

	public void setRoQuota_esente_inps(java.lang.Boolean roQuota_esente_inps) {
		this.roQuota_esente_inps = roQuota_esente_inps;
	}

	public java.math.BigDecimal getImporto_utilizzato() {
		return importo_utilizzato;
	}

	public void setImporto_utilizzato(java.math.BigDecimal importo_utilizzato) {
		this.importo_utilizzato = importo_utilizzato;
	}

	public boolean isROIm_netto_da_trattenere() {
		return (isDaConguaglio() || isDaMissione());
	}

	/*
	 * public java.util.Dictionary getTi_prestazioneKeys() { return
	 * TIPI_PRESTAZIONE; }
	 */
	public BonusBulk getBonus() {
		return bonus;
	}

	public void setBonus(BonusBulk bonus) {
		this.bonus = bonus;
	}

	public java.lang.Integer getEsercizio_bonus() {
		if (getBonus() == null)
			return null;
		return getBonus().getEsercizio();
	}

	public void setEsercizio_bonus(java.lang.Integer esercizio_bonus) {
		this.getBonus().setEsercizio(esercizio_bonus);
	}

	public java.lang.Long getPg_bonus() {
		if (getBonus() == null)
			return null;
		return getBonus().getPg_bonus();
	}

	public void setPg_bonus(java.lang.Long pg_bonus) {
		this.getBonus().setPg_bonus(pg_bonus);
	}

	public Unita_organizzativaBulk getUnitaOrganizzativa() {
		return unitaOrganizzativa;
	}

	public void setUnitaOrganizzativa(Unita_organizzativaBulk unitaOrganizzativa) {
		this.unitaOrganizzativa = unitaOrganizzativa;
	}

	@StoragePolicy(name = "P:strorg:uo", property = @StorageProperty(name = "strorg:descrizione"))
	public String getDsUnitaOrganizzativa() {
		if (getUnitaOrganizzativa() == null)
			return null;
		return getUnitaOrganizzativa().getDs_unita_organizzativa();
	}

	public Tipo_prestazione_compensoBulk getTipoPrestazioneCompenso() {
		return tipoPrestazioneCompenso;
	}

	public void setTipoPrestazioneCompenso(Tipo_prestazione_compensoBulk tipoPrestazioneCompenso) {
		this.tipoPrestazioneCompenso = tipoPrestazioneCompenso;
	}

	public java.lang.String getTi_prestazione() {
		Tipo_prestazione_compensoBulk tipoPrestazioneCompenso = this.getTipoPrestazioneCompenso();
		if (tipoPrestazioneCompenso == null)
			return null;
		return tipoPrestazioneCompenso.getCd_ti_prestazione();
	}

	public void setTi_prestazione(java.lang.String ti_prestazione) {
		this.getTipoPrestazioneCompenso().setCd_ti_prestazione(ti_prestazione);
	}

	public java.util.Collection getTipiPrestazioneCompenso() {
		return tipiPrestazioneCompenso;
	}

	public void setTipiPrestazioneCompenso(java.util.Collection tipiPrestazioneCompenso) {
		this.tipiPrestazioneCompenso = tipiPrestazioneCompenso;
	}

	public it.cnr.contab.anagraf00.core.bulk.TerzoBulk getPignorato() {
		return pignorato;
	}

	public void setPignorato(it.cnr.contab.anagraf00.core.bulk.TerzoBulk pignorato) {
		this.pignorato = pignorato;
	}

	public java.lang.String getDs_pignorato() {
		if (pignorato != null)
			return pignorato.getDenominazione_sede();
		return "";
	}

	public void setCd_terzo_pignorato(java.lang.Integer cd_terzo_pignorato) {
		this.getPignorato().setCd_terzo(cd_terzo_pignorato);
	}

	public java.lang.Integer getCd_terzo_pignorato() {
		it.cnr.contab.anagraf00.core.bulk.TerzoBulk pignorato = this.getPignorato();
		if (pignorato == null)
			return null;
		return pignorato.getCd_terzo();
	}

	public boolean isROPignorato() {
		return pignorato == null || pignorato.getCrudStatus() == NORMAL;
	}

	public boolean isVisualizzaPignorato() {
		return visualizzaPignorato;
	}

	public void setVisualizzaPignorato(boolean visualizzaPignorato) {
		this.visualizzaPignorato = visualizzaPignorato;
	}

	public ContrattoBulk getContratto() {
		return contratto;
	}

	public void setContratto(ContrattoBulk contratto) {
		this.contratto = contratto;
	}

	public java.lang.Integer getEsercizio_contratto() {
		if (getContratto() == null)
			return null;
		return getContratto().getEsercizio();
	}

	public void setEsercizio_contratto(java.lang.Integer esercizio_contratto) {
		this.getContratto().setEsercizio(esercizio_contratto);
	}

	public java.lang.String getStato_contratto() {
		if (getContratto() == null)
			return null;
		return getContratto().getStato();
	}

	public void setStato_contratto(java.lang.String stato_contratto) {
		this.getContratto().setStato(stato_contratto);
	}

	public java.lang.Long getPg_contratto() {
		if (getContratto() == null)
			return null;
		return getContratto().getPg_contratto();
	}

	public void setPg_contratto(java.lang.Long pg_contratto) {
		this.getContratto().setPg_contratto(pg_contratto);
	}

	public java.lang.String getOggetto_contratto() {
		if (this.getContratto() == null)
			return null;
		return this.getContratto().getOggetto();
	}

	public void setOggetto_contratto(java.lang.String oggetto_contratto) {
		this.oggetto_contratto = oggetto_contratto;
		// this.getContratto().setOggetto(oggetto_contratto);
	}

	public TrovatoBulk getTrovato() {
		return trovato;
	}

	public void setTrovato(TrovatoBulk trovato) {
		this.trovato = trovato;
	}

	public java.lang.Long getPg_trovato() {
		if (this.getTrovato() == null)
			return null;
		return this.getTrovato().getPg_trovato();
	}
	public void setPg_trovato(java.lang.Long pg_trovato) {
		if (this.getTrovato() != null)
			this.getTrovato().setPg_trovato(pg_trovato);
	}
	
	public Boolean isCollegatoCapitoloPerTrovato() {
		// return collegatoCapitoloPerTrovato;
		if (getObbligazioneScadenzario() == null || getObbligazioneScadenzario().getObbligazione() == null)
			return false;
		return getObbligazioneScadenzario().getObbligazione().getElemento_voce().isVocePerTrovati();
	}

	public java.sql.Timestamp getDataInizioObbligoRegistroUnico() {
		return dataInizioObbligoRegistroUnico;
	}

	public void setDataInizioObbligoRegistroUnico(java.sql.Timestamp dataInizioObbligoRegistroUnico) {
		this.dataInizioObbligoRegistroUnico = dataInizioObbligoRegistroUnico;
	}

	public Dictionary getStato_liquidazioneKeys() {
		return STATO_LIQUIDAZIONE;
	}

	public Dictionary getCausaleKeys() {
		return CAUSALE;
	}

	public java.sql.Timestamp getDataInizioFatturaElettronica() {
		return dataInizioFatturaElettronica;
	}

	public void setDataInizioFatturaElettronica(java.sql.Timestamp dataInizioFatturaElettronica) {
		this.dataInizioFatturaElettronica = dataInizioFatturaElettronica;
	}

	public boolean isGestione_doc_ele() {
		if (this.getDt_registrazione() != null && this.getDataInizioFatturaElettronica() != null) {
			if ((this.getDt_registrazione().compareTo(this.getDataInizioFatturaElettronica()) < 0))
				return false;
			else
				return true;
		}
		return true; // non dovrebbe mai verificarsi
	}

	public it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk getVoceIvaFattura() {
		return voceIvaFattura;
	}

	public void setVoceIvaFattura(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk voceIvaFattura) {
		this.voceIvaFattura = voceIvaFattura;
	}

	public Fattura_passivaBulk getFatturaPassiva() {
		return fatturaPassiva;
	}

	public void setFatturaPassiva(Fattura_passivaBulk fatturaPassiva) {
		this.fatturaPassiva = fatturaPassiva;
	}

	public boolean isElettronica() {
		if (getFl_documento_ele() != null && getFl_documento_ele())
			return true;
		return false;
	}

	public boolean isTrattamentoSoloEnte() {
		return trattamentoSoloEnte;
	}

	public void setTrattamentoSoloEnte(boolean trattamentoSoloEnte) {
		this.trattamentoSoloEnte = trattamentoSoloEnte;
	}

	public void impostaVoceIva(Fattura_passiva_IBulk fp) {

		for (java.util.Iterator i = fp.getFattura_passiva_dettColl().iterator(); i.hasNext();) {
			Fattura_passiva_rigaIBulk riga = (Fattura_passiva_rigaIBulk) i.next();

			if (riga.getVoce_iva() != null && riga.getVoce_iva().getPercentuale().compareTo(new BigDecimal(0)) != 0) {
				setVoceIva(riga.getVoce_iva());
				setVoceIvaFattura(riga.getVoce_iva());
			}
		}

		if (getVoceIva() == null) {
			for (java.util.Iterator i = fp.getFattura_passiva_dettColl().iterator(); i.hasNext();) {
				Fattura_passiva_rigaIBulk riga = (Fattura_passiva_rigaIBulk) i.next();

				if (riga.getVoce_iva() != null) {
					setVoceIva(riga.getVoce_iva());
					setVoceIvaFattura(riga.getVoce_iva());
				}
			}
		}
	}

	public boolean isCompensoSoloInailEnte() {
		return isCompensoSoloInailEnte;
	}

	public void setCompensoSoloInailEnte(boolean isCompensoSoloInailEnte) {
		this.isCompensoSoloInailEnte = isCompensoSoloInailEnte;
	}

	public java.util.List getMandatiRigaAssociati() {
		return mandatiRigaAssociati;
	}

	public void setMandatiRigaAssociati(java.util.List mandatiRigaAssociati) {
		this.mandatiRigaAssociati = mandatiRigaAssociati;
	}

	public void setUserAbilitatoSenzaCalcolo(boolean b) {
		this.userAbilitatoSenzaCalcolo=b;
		
	}

	public boolean isUserAbilitatoSenzaCalcolo() {
		return userAbilitatoSenzaCalcolo;
	}

	public CigBulk getCig() {
		return cig;
	}

	public void setCig(CigBulk cig) {
		this.cig = cig;
	}

	@Override
	public List getStorePath() {
		return Optional.ofNullable(missione)
					.map(MissioneBulk::getStorePath)
					.orElse(Collections.emptyList());
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy