it.cnr.contab.incarichi00.bp.CRUDIncarichiProceduraBP 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.incarichi00.bp;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import java.util.TreeMap;
import javax.servlet.ServletException;
import it.cnr.jada.comp.ApplicationRuntimeException;
import it.cnr.jada.util.action.Selection;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import it.cnr.contab.anagraf00.core.bulk.TerzoBulk;
import it.cnr.contab.compensi00.docs.bulk.CompensoBulk;
import it.cnr.contab.compensi00.docs.bulk.V_terzo_per_compensoBulk;
import it.cnr.contab.config00.bulk.Configurazione_cnrBulk;
import it.cnr.contab.config00.contratto.bulk.Procedure_amministrativeBulk;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
import it.cnr.contab.doccont00.comp.DateServices;
import it.cnr.contab.incarichi00.bulk.Ass_incarico_uoBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_archivioBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_proceduraBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_procedura_annoBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_procedura_archivioBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_procedura_noteBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_repertorioBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_annoBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_archivioBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_rappBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_rapp_detBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_varBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_richiestaBulk;
import it.cnr.contab.incarichi00.bulk.Repertorio_limitiBulk;
import it.cnr.contab.incarichi00.ejb.IncarichiProceduraComponentSession;
import it.cnr.contab.incarichi00.service.ContrattiService;
import it.cnr.contab.incarichi00.tabrif.bulk.Incarichi_parametriBulk;
import it.cnr.contab.incarichi00.tabrif.bulk.Tipo_attivitaBulk;
import it.cnr.contab.incarichi00.tabrif.bulk.Tipo_incaricoBulk;
import it.cnr.contab.service.SpringUtil;
import it.cnr.contab.utenze00.bulk.UtenteBulk;
import it.cnr.contab.util.Utility;
import it.cnr.jada.UserContext;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.action.Config;
import it.cnr.jada.action.HttpActionContext;
import it.cnr.jada.bulk.BulkList;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.bulk.ValidationException;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.util.DateUtils;
import it.cnr.jada.util.RemoteIterator;
import it.cnr.jada.util.action.CRUDBP;
import it.cnr.jada.util.action.SimpleDetailCRUDController;
import it.cnr.jada.util.ejb.EJBCommonServices;
import it.cnr.jada.util.jsp.Button;
import it.cnr.si.spring.storage.StorageObject;
import it.cnr.si.spring.storage.config.StoragePropertyNames;
public class CRUDIncarichiProceduraBP extends it.cnr.jada.util.action.SimpleCRUDBP {
private transient static final Logger logger = LoggerFactory.getLogger(CRUDIncarichiProceduraBP.class);
private final SimpleDetailCRUDController ripartizionePerAnno = new SimpleDetailCRUDController("ProceduraAnno",Incarichi_procedura_annoBulk.class,"incarichi_procedura_annoColl",this){
protected void validate(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException {
Incarichi_procedura_annoBulk proceduraAnno = (Incarichi_procedura_annoBulk)oggettobulk;
if (proceduraAnno.getEsercizio_limite()==null)
throw new ValidationException("Valorizzare l'esercizio di imputazione finanziaria.");
if (proceduraAnno.getIncarichi_procedura().getFaseProcesso().equals(Incarichi_proceduraBulk.FASE_INSERIMENTO_INCARICO))
proceduraAnno.setImporto_complessivo(proceduraAnno.getImporto_iniziale());
super.validate(actioncontext,oggettobulk);
}
public void validateForDelete(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException {
Incarichi_procedura_annoBulk proceduraAnno = (Incarichi_procedura_annoBulk)oggettobulk;
if (proceduraAnno != null)
if (proceduraAnno.getImporto_utilizzato() != null &&
proceduraAnno.getImporto_utilizzato().compareTo(Utility.ZERO)!=0)
throw new ValidationException("Eliminazione non possibile!\nL'importo relativo all'anno selezionato risulta già utilizzato.");
if (proceduraAnno.getIncarichi_procedura() != null &&
(proceduraAnno.getIncarichi_procedura().getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_INSERIMENTO_INCARICO)==1))
if (proceduraAnno.getImporto_iniziale()!=null && proceduraAnno.getImporto_iniziale().compareTo(Utility.ZERO)!=0)
throw new ValidationException("Eliminazione non possibile!\nLa procedura di conferimento incarico è già stata pubblicata.\nE' possibile solo modificare l'importo complessivo.");
super.validateForDelete(actioncontext, oggettobulk);
}
};
private SimpleDetailCRUDController crudArchivioAllegati = new Incarichi_archivioCRUDController( "ProceduraArchivioAllegati", Incarichi_procedura_archivioBulk.class, "archivioAllegati", this){
@Override
public void writeHTMLToolbar(
javax.servlet.jsp.PageContext context,
boolean reset,
boolean find,
boolean delete, boolean closedToolbar) throws java.io.IOException, javax.servlet.ServletException {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)getParentModel();
boolean isFromBootstrap = HttpActionContext.isFromBootstrap(context);
super.openButtonGROUPToolbar(context);
if (isGrowable() &&
procedura != null &&
!procedura.isProceduraAnnullata() && !procedura.isProceduraChiusa() && !procedura.isProceduraDefinitiva()) {
if (procedura.getBando() == null && procedura.isProceduraDaPubblicare()) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-paper-plane-o text-success":"img/cnr16.gif",
"javascript:submitForm('doAddBandoToCRUD(" + getInputPrefix() + ")')",
true,
"Avviso da pubblicare",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
if (procedura.getDecisioneAContrattare() == null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-file-text-o text-info":"img/book_leaf.gif",
"javascript:submitForm('doAddDecisioneAContrattareToCRUD(" + getInputPrefix() + ")')",
true,
"Decisione a Contrattare",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
if (procedura.getProgetto()==null) {
try{
Incarichi_parametriBulk parametri = ((CRUDIncarichiProceduraBP)getParentController()).getIncarichiParametri(HttpActionContext.getUserContext(context.getSession()),procedura);
if (parametri!=null && ((parametri.getAllega_progetto()!=null && parametri.getAllega_progetto().equals("Y"))||
(parametri.getIndica_url_progetto()!=null && parametri.getIndica_url_progetto().equals("Y")))) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-lightbulb-o text-primary":"img/tipoftheday16.gif",
"javascript:submitForm('doAddProgettoToCRUD(" + getInputPrefix() + ")')",
true,
"Progetto",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
} catch (Exception e) {}
}
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-file-o text-primary":"img/new16.gif",
"javascript:submitForm('doAddAllegatoGenericoToCRUD(" + getInputPrefix() + ")')",
true,
"Allegato Generico",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
super.writeHTMLToolbar(context, false, false, delete, false, false);
} else if (procedura != null && isGrowable() &&
(procedura.isProceduraDefinitiva() || procedura.isProceduraInviataCorteConti() ||
procedura.isProceduraChiusa() || procedura.isProceduraAnnullata())) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-file-o text-primary":"img/new16.gif",
"javascript:submitForm('doAddAllegatoGenericoToCRUD(" + getInputPrefix() + ")')",
true,
"Allegato Generico",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
super.writeHTMLToolbar(context, false, false, (getModel()!=null && ((Incarichi_archivioBulk)getModel()).isAllegatoGenerico() && getModel().isToBeCreated()), false, false);
}
super.closeButtonGROUPToolbar(context);
}
};
private SimpleDetailCRUDController crudArchivioAllegatiMI = new Incarichi_archivioCRUDController( "ProceduraArchivioAllegatiMI", Incarichi_archivioBulk.class, "archivioAllegatiMI", this){
public OggettoBulk removeDetail(OggettoBulk oggettobulk, int i) {
SimpleDetailCRUDController controller;
if (oggettobulk instanceof Incarichi_procedura_archivioBulk)
controller = ((CRUDIncarichiProceduraBP)getParentController()).getCrudArchivioAllegati();
else
controller = ((CRUDIncarichiProceduraBP)getParentController()).getCrudIncarichiArchivioAllegati();
controller.removeDetail(oggettobulk, controller.getDetails().indexOf(oggettobulk));
return super.removeDetail(oggettobulk, i);
}
public int addDetail(OggettoBulk oggettobulk) throws BusinessProcessException {
SimpleDetailCRUDController controller;
if (oggettobulk instanceof Incarichi_procedura_archivioBulk)
controller = ((CRUDIncarichiProceduraBP)getParentController()).getCrudArchivioAllegati();
else
controller = ((CRUDIncarichiProceduraBP)getParentController()).getCrudIncarichiArchivioAllegati();
controller.addDetail(oggettobulk);
return super.addDetail(oggettobulk);
}
public void addBando(ActionContext actioncontext) throws BusinessProcessException {
Incarichi_procedura_archivioBulk model = new Incarichi_procedura_archivioBulk();
model.initializeForInsert(null, actioncontext);
model.setTipo_archivio(Incarichi_procedura_archivioBulk.TIPO_BANDO);
add(actioncontext, model);
}
public void addDecisioneAContrattare(ActionContext actioncontext) throws BusinessProcessException {
Incarichi_procedura_archivioBulk model = new Incarichi_procedura_archivioBulk();
model.initializeForInsert(null, actioncontext);
model.setTipo_archivio(Incarichi_procedura_archivioBulk.TIPO_DECISIONE_A_CONTRATTARE);
add(actioncontext, model);
}
public void addDecretoDiNomina(ActionContext actioncontext) throws BusinessProcessException {
Incarichi_repertorio_archivioBulk model = new Incarichi_repertorio_archivioBulk();
model.initializeForInsert(null, actioncontext);
model.setTipo_archivio(Incarichi_repertorio_archivioBulk.TIPO_DECRETO_DI_NOMINA);
add(actioncontext, model);
}
public void addAttoEsitoControllo(ActionContext actioncontext) throws BusinessProcessException {
Incarichi_repertorio_archivioBulk model = new Incarichi_repertorio_archivioBulk();
model.initializeForInsert(null, actioncontext);
model.setTipo_archivio(Incarichi_repertorio_archivioBulk.TIPO_ATTO_ESITO_CONTROLLO);
add(actioncontext, model);
}
public void addContratto(ActionContext actioncontext) throws BusinessProcessException {
Incarichi_repertorio_archivioBulk model = new Incarichi_repertorio_archivioBulk();
model.initializeForInsert(null, actioncontext);
model.setTipo_archivio(Incarichi_repertorio_archivioBulk.TIPO_CONTRATTO);
add(actioncontext, model);
}
public void addCurriculumVincitore(ActionContext actioncontext) throws BusinessProcessException {
Incarichi_repertorio_archivioBulk model = new Incarichi_repertorio_archivioBulk();
model.initializeForInsert(null, actioncontext);
model.setTipo_archivio(Incarichi_repertorio_archivioBulk.TIPO_CURRICULUM_VINCITORE);
add(actioncontext, model);
}
public void addAggiornamentoCurriculumVincitore(ActionContext actioncontext) throws BusinessProcessException {
Incarichi_repertorio_archivioBulk model = new Incarichi_repertorio_archivioBulk();
model.initializeForInsert(null, actioncontext);
model.setTipo_archivio(Incarichi_repertorio_archivioBulk.TIPO_AGGIORNAMENTO_CURRICULUM_VINCITORE);
add(actioncontext, model);
}
public void addProgetto(ActionContext actioncontext) throws BusinessProcessException {
Incarichi_procedura_archivioBulk model = new Incarichi_procedura_archivioBulk();
model.initializeForInsert(null, actioncontext);
model.setTipo_archivio(Incarichi_procedura_archivioBulk.TIPO_PROGETTO);
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)getParentModel();
Incarichi_parametriBulk parametri = null;
try{
parametri = ((CRUDIncarichiProceduraBP)getParentController()).getIncarichiParametri(actioncontext.getUserContext(),procedura);
} catch (Exception e) {}
if (!(parametri!=null && parametri.getAllega_progetto()!=null && parametri.getAllega_progetto().equals("Y")))
model.setFileRequired(Boolean.FALSE);
if (parametri!=null && parametri.getIndica_url_progetto()!=null && parametri.getIndica_url_progetto().equals("Y"))
model.setUrlRequired(Boolean.TRUE);
add(actioncontext, model);
}
public void addAllegatoGenerico(ActionContext actioncontext) throws BusinessProcessException {
Incarichi_procedura_archivioBulk model = new Incarichi_procedura_archivioBulk();
model.initializeForInsert(null, actioncontext);
model.setTipo_archivio(Incarichi_procedura_archivioBulk.TIPO_GENERICO);
add(actioncontext, model);
}
@Override
public void writeHTMLToolbar(
javax.servlet.jsp.PageContext context,
boolean reset,
boolean find,
boolean delete, boolean closedToolbar) throws java.io.IOException, javax.servlet.ServletException {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)getParentModel();
Incarichi_parametriBulk parametri = null;
try{
parametri = ((CRUDIncarichiProceduraBP)getParentController()).getIncarichiParametri(HttpActionContext.getUserContext(context.getSession()),procedura);
} catch (Exception e) {}
boolean isFromBootstrap = HttpActionContext.isFromBootstrap(context);
boolean innerDelete = delete;
super.openButtonGROUPToolbar(context);
if (procedura != null && !procedura.isProceduraAnnullata() && !procedura.isProceduraChiusa() &&
!procedura.isProceduraDefinitiva() && isGrowable()) {
if (procedura.getBando() == null && procedura.isProceduraDaPubblicare()) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-paper-plane-o text-success":"img/cnr16.gif",
"javascript:submitForm('doAddBandoToCRUD(" + getInputPrefix() + ")')",
true,
"Avviso da pubblicare",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
if (procedura.getDecisioneAContrattare() == null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-file-text-o text-info":"img/book_leaf.gif",
"javascript:submitForm('doAddDecisioneAContrattareToCRUD(" + getInputPrefix() + ")')",
true,
"Decisione a Contrattare",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
if (procedura.getProgetto()==null) {
if (parametri!=null && ((parametri.getAllega_progetto()!=null && parametri.getAllega_progetto().equals("Y"))||
(parametri.getIndica_url_progetto()!=null && parametri.getIndica_url_progetto().equals("Y")))) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-lightbulb-o text-primary":"img/tipoftheday16.gif",
"javascript:submitForm('doAddProgettoToCRUD(" + getInputPrefix() + ")')",
true,
"Progetto",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
}
if (procedura.getNr_contratti().compareTo(1)==0 &&
procedura.getIncarichi_repertorioValidiColl() != null &&
procedura.getIncarichi_repertorioValidiColl().size() == 1 ) {
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)procedura.getIncarichi_repertorioValidiColl().get(0);
if (incarico.getContratto()==null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-handshake-o text-primary":"img/history16.gif",
"javascript:submitForm('doAddContrattoToCRUD(" + getInputPrefix() + ")')",
true,
"Contratto",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
if (parametri!=null && parametri.getAllega_curriculum_vitae()!=null && parametri.getAllega_curriculum_vitae().equals("Y")) {
if (incarico.getCurriculumVincitore()==null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-address-card-o text-primary":"img/paste16.gif",
"javascript:submitForm('doAddCurriculumVincitoreToCRUD(" + getInputPrefix() + ")')",
true,
"Curriculum Vincitore",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
} else {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-address-card text-primary":"img/paste16.gif",
"javascript:submitForm('doAddAggiornamentoCurriculumVincitoreToCRUD(" + getInputPrefix() + ")')",
true,
"Aggiornamento Curriculum Vincitore",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
}
if (incarico.getDecretoDiNomina()==null) {
if (parametri!=null && parametri.getAllega_decreto_nomina()!=null && parametri.getAllega_decreto_nomina().equals("Y")) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-book text-primary":"img/book_closed.gif",
"javascript:submitForm('doAddDecretoDiNominaToCRUD(" + getInputPrefix() + ")')",
true,
"Decreto di Nomina",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
}
if (incarico.getFl_inviato_corte_conti() && incarico.getEsito_corte_conti()!=null &&
incarico.getAttoEsitoControllo()==null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-certificate text-primary":"img/bookmarks16.gif",
"javascript:submitForm('doAddAttoEsitoControlloToCRUD(" + getInputPrefix() + ")')",
true,
"Documentazione ricevuta dalla Corte dei Conti o Provvedimento Amm. Direttore",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
}
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-file-o text-primary":"img/new16.gif",
"javascript:submitForm('doAddAllegatoGenericoToCRUD(" + getInputPrefix() + ")')",
true,
"Allegato Generico",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
innerDelete = delete;
} else if (procedura != null && isGrowable() &&
(procedura.isProceduraDefinitiva() || procedura.isProceduraInviataCorteConti() ||
procedura.isProceduraChiusa() || procedura.isProceduraAnnullata())) {
if (((CRUDIncarichiProceduraBP)getParentController()).isSuperUtente() ||
((CRUDIncarichiProceduraBP)getParentController()).isUtenteAbilitatoModificaAllegatoContratto()) {
if (procedura.getNr_contratti().compareTo(1)==0 &&
procedura.getIncarichi_repertorioValidiColl() != null &&
procedura.getIncarichi_repertorioValidiColl().size() == 1 ) {
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)procedura.getIncarichi_repertorioValidiColl().get(0);
if (incarico.getContratto()==null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-handshake-o text-primary":"img/history16.gif",
"javascript:submitForm('doAddContrattoToCRUD(" + getInputPrefix() + ")')",
true,
"Contratto",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
innerDelete = Optional.ofNullable(getModel())
.filter(Incarichi_archivioBulk.class::isInstance)
.map(Incarichi_archivioBulk.class::cast)
.filter(el->el.isContratto())
.isPresent();
}
}
if (procedura.getNr_contratti().compareTo(1)==0 &&
procedura.getIncarichi_repertorioValidiColl() != null &&
procedura.getIncarichi_repertorioValidiColl().size() == 1 ) {
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)procedura.getIncarichi_repertorioValidiColl().get(0);
if (parametri!=null && parametri.getAllega_curriculum_vitae()!=null && parametri.getAllega_curriculum_vitae().equals("Y")) {
if (incarico.getCurriculumVincitore()==null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-address-card-o text-primary":"img/paste16.gif",
"javascript:submitForm('doAddCurriculumVincitoreToCRUD(" + getInputPrefix() + ")')",
true,
"Curriculum Vincitore",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
} else {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-address-card text-primary":"img/paste16.gif",
"javascript:submitForm('doAddAggiornamentoCurriculumVincitoreToCRUD(" + getInputPrefix() + ")')",
true,
"Aggiornamento Curriculum Vincitore",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
innerDelete = innerDelete || Optional.ofNullable(getModel())
.filter(Incarichi_archivioBulk.class::isInstance)
.map(Incarichi_archivioBulk.class::cast)
.filter(el->el.isToBeCreated())
.filter(el->el.isAggiornamentoCurriculumVincitore())
.isPresent();
if (((CRUDIncarichiProceduraBP)getParentController()).isSuperUtente() ||
((CRUDIncarichiProceduraBP)getParentController()).isUtenteAbilitatoModificaAllegatoCurriculum()) {
innerDelete = innerDelete || Optional.ofNullable(getModel())
.filter(Incarichi_archivioBulk.class::isInstance)
.map(Incarichi_archivioBulk.class::cast)
.filter(el->el.isCurriculumVincitore() || el.isAggiornamentoCurriculumVincitore())
.isPresent();
}
}
}
if (incarico.getDecretoDiNomina()==null) {
if (parametri!=null && parametri.getAllega_decreto_nomina()!=null && parametri.getAllega_decreto_nomina().equals("Y")) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-book text-primary":"img/book_closed.gif",
"javascript:submitForm('doAddDecretoDiNominaToCRUD(" + getInputPrefix() + ")')",
true,
"Decreto di Nomina",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
}
}
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap? "fa fa-plus text-primary":"img/new16.gif",
"javascript:submitForm('doAddAllegatoGenericoToCRUD(" + getInputPrefix() + ")')",
true,
"Allegato Generico",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
innerDelete = innerDelete || Optional.ofNullable(getModel())
.filter(Incarichi_archivioBulk.class::isInstance)
.map(Incarichi_archivioBulk.class::cast)
.filter(el->el.isToBeCreated())
.filter(el->el.isAllegatoGenerico())
.isPresent();
}
super.writeHTMLToolbar(context, false, false, innerDelete, false, false);
super.closeButtonGROUPToolbar(context);
}
};
private SimpleDetailCRUDController compensiAllegati = new SimpleDetailCRUDController( "CompensiAllegati", CompensoBulk.class, "compensiColl", ripartizionePerAnno);
//Controller per gestione incarichi allegati
private SimpleDetailCRUDController incarichiColl = new SimpleDetailCRUDController( "IncarichiColl", Incarichi_repertorioBulk.class, "incarichi_repertorioColl", this){
public boolean isGrowable() {
return super.isGrowable() && !((Incarichi_proceduraBulk)getParentModel()).isProceduraScaduta() &&
((Incarichi_proceduraBulk)getParentModel()).getNr_contratti().compareTo(getDetails().size())==1;
}
public OggettoBulk removeDetail(OggettoBulk oggettobulk, int i) {
if (oggettobulk instanceof Incarichi_repertorioBulk) {
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)oggettobulk;
if ( incarico.getStato().equals(Incarichi_repertorioBulk.STATO_PROVVISORIO) )
{
incarico.setToBeDeleted();
for ( Iterator dett = incarico.getIncarichi_repertorio_annoColl().iterator(); dett.hasNext(); )
((Incarichi_repertorio_annoBulk) dett.next()).setToBeDeleted();
for ( Iterator dett = incarico.getArchivioAllegati().iterator(); dett.hasNext(); )
((Incarichi_repertorio_archivioBulk) dett.next()).setToBeDeleted();
return super.removeDetail(oggettobulk, i);
}
else
{
incarico.setStato(Incarichi_repertorioBulk.STATO_PROVVISORIO);
}
}
return oggettobulk;
}
@Override
public void writeHTMLToolbar(
javax.servlet.jsp.PageContext context,
boolean reset,
boolean find,
boolean delete, boolean closedToolbar) throws java.io.IOException, javax.servlet.ServletException {
CRUDIncarichiProceduraBP bp = (CRUDIncarichiProceduraBP)getParentController();
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)bp.getModel();
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)getModel();
super.writeHTMLToolbar(context, reset, false, delete&&incarico!=null&&incarico.isIncaricoProvvisorio(), false);
boolean isFromBootstrap = HttpActionContext.isFromBootstrap(context);
if (getModel()!=null) {
if (isEditing() && !incarico.isROIncarico()) {
String command = "javascript:submitForm('doSalvaDefinitivoContratto')";
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap? "fa fa-floppy-o text-primary":"img/saveall16.gif",
!(isInputReadonly() ||
getDetails().isEmpty() ||
((CRUDIncarichiProceduraBP)getParentController()).isSearching() ||
getModel()==null ||
incarico.isIncaricoAnnullato()||
incarico.isIncaricoChiuso()||
incarico.isIncaricoDefinitivo())? command : null,
true,
"Salva Definitivo",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
if (((Incarichi_repertorioBulk)getModel()).isIncaricoDefinitivo() &&
((CRUDIncarichiProceduraBP)getParentController()).isUoEnte()) {
String command = "javascript:submitForm('doAnnullaDefinitivoContratto')";
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap? "fa fa-undo text-primary":"img/import16.gif",
!(isInputReadonly() ||
getDetails().isEmpty() ||
((CRUDIncarichiProceduraBP)getParentController()).isSearching() ||
getModel()==null ||
!((Incarichi_repertorioBulk)getModel()).isIncaricoDefinitivo())? command : null,
true,
"Annulla Definitivo",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
if (bp.isConcludiMonoIncaricoButtonHidden() && isEditing()) {
String command2 = "javascript:submitForm('doConcludiIncarico')";
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
"img/close.gif",
!(isInputReadonly() ||
getDetails().isEmpty() ||
((CRUDIncarichiProceduraBP)getParentController()).isSearching() ||
getModel()==null )? command2 : null,
true,
"Concludi Incarico",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
}
}
super.closeButtonGROUPToolbar(context);
}
};
private final SimpleDetailCRUDController ripartizioneIncarichiPerAnno = new SimpleDetailCRUDController("IncarichiAnno",Incarichi_repertorio_annoBulk.class,"incarichi_repertorio_annoColl",incarichiColl){
protected void validate(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException {
Incarichi_repertorio_annoBulk incaricoAnno = (Incarichi_repertorio_annoBulk)oggettobulk;
if (incaricoAnno.getEsercizio_limite()==null)
throw new ValidationException("Valorizzare l'esercizio di imputazione finanziaria.");
if (incaricoAnno.getIncarichi_repertorio().getIncarichi_procedura().getFaseProcesso().equals(Incarichi_proceduraBulk.FASE_INSERIMENTO_INCARICO))
incaricoAnno.setImporto_complessivo(incaricoAnno.getImporto_iniziale());
super.validate(actioncontext,oggettobulk);
}
public void validateForDelete(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException {
Incarichi_repertorio_annoBulk incaricoAnno = (Incarichi_repertorio_annoBulk)oggettobulk;
if (incaricoAnno != null)
if (incaricoAnno.getImporto_utilizzato() != null &&
incaricoAnno.getImporto_utilizzato().compareTo(Utility.ZERO)!=0)
throw new ValidationException("Eliminazione non possibile!\nL'importo relativo all'anno selezionato risulta già utilizzato.");
if (incaricoAnno.getIncarichi_repertorio().getIncarichi_procedura() != null &&
(incaricoAnno.getIncarichi_repertorio().getIncarichi_procedura().getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_INSERIMENTO_INCARICO)==1))
if (incaricoAnno.getImporto_iniziale()!=null && incaricoAnno.getImporto_iniziale().compareTo(Utility.ZERO)!=0)
throw new ValidationException("Eliminazione non possibile!\nLa procedura di conferimento incarico è già stata pubblicata.\nE' possibile solo modificare l'importo complessivo.");
super.validateForDelete(actioncontext, oggettobulk);
}
};
private SimpleDetailCRUDController crudIncarichiArchivioAllegati = new Incarichi_archivioCRUDController( "IncarichiArchivioAllegati", Incarichi_repertorio_archivioBulk.class, "archivioAllegati", incarichiColl){
@Override
public void writeHTMLToolbar(
javax.servlet.jsp.PageContext context,
boolean reset,
boolean find,
boolean delete, boolean closedToolbar) throws java.io.IOException, javax.servlet.ServletException {
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)getParentModel();
Incarichi_parametriBulk parametri = null;
try{
parametri = ((CRUDIncarichiProceduraBP)getParentController().getParentController()).getIncarichiParametri(HttpActionContext.getUserContext(context.getSession()),incarico.getIncarichi_procedura());
} catch (Exception e) {}
boolean isFromBootstrap = HttpActionContext.isFromBootstrap(context);
boolean innerDelete = delete;
super.openButtonGROUPToolbar(context);
if (isGrowable() &&
incarico != null &&
!incarico.isIncaricoAnnullato() && !incarico.isIncaricoChiuso() && !incarico.isIncaricoDefinitivo()) {
if (incarico.getContratto()==null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-handshake-o text-primary":"img/history16.gif",
"javascript:submitForm('doAddContrattoToCRUD(" + getInputPrefix() + ")')",
true,
"Contratto",
isFromBootstrap);
}
if (parametri!=null && parametri.getAllega_curriculum_vitae()!=null && parametri.getAllega_curriculum_vitae().equals("Y")) {
if (incarico.getCurriculumVincitore()==null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-address-card-o text-primary":"img/paste16.gif",
"javascript:submitForm('doAddCurriculumVincitoreToCRUD(" + getInputPrefix() + ")')",
true,
"Curriculum Vincitore",
isFromBootstrap);
} else {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-address-card text-primary":"img/paste16.gif",
"javascript:submitForm('doAddAggiornamentoCurriculumVincitoreToCRUD(" + getInputPrefix() + ")')",
true,
"AggiornamentoCurriculum Vincitore",
isFromBootstrap);
}
}
if (incarico.getDecretoDiNomina()==null) {
if (parametri!=null && parametri.getAllega_decreto_nomina()!=null && parametri.getAllega_decreto_nomina().equals("Y")) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-book text-primary":"img/book_closed.gif",
"javascript:submitForm('doAddDecretoDiNominaToCRUD(" + getInputPrefix() + ")')",
true,
"Decreto di Nomina",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
}
if (incarico.getFl_inviato_corte_conti() && incarico.getEsito_corte_conti()!=null &&
incarico.getAttoEsitoControllo()==null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-certificate text-primary":"img/bookmarks16.gif",
"javascript:submitForm('doAddAttoEsitoControlloToCRUD(" + getInputPrefix() + ")')",
true,
"Documentazione ricevuta dalla Corte dei Conti o Provvedimento Amm. Direttore",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
}
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap? "fa fa-plus text-primary":"img/new16.gif",
"javascript:submitForm('doAddAllegatoGenericoToCRUD(" + getInputPrefix() + ")')",
true,
"Allegato Generico",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
innerDelete = delete;
} else if (incarico != null && isGrowable() &&
(incarico.isIncaricoDefinitivo() || incarico.isIncaricoChiuso() || incarico.isIncaricoAnnullato())) {
if (((CRUDIncarichiProceduraBP)getParentController().getParentController()).isSuperUtente() ||
((CRUDIncarichiProceduraBP)getParentController().getParentController()).isUtenteAbilitatoModificaAllegatoContratto()) {
if (incarico.getContratto()==null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap?"fa fa-fw fa-handshake-o text-primary":"img/history16.gif",
"javascript:submitForm('doAddContrattoToCRUD(" + getInputPrefix() + ")')",
true,
"Contratto",
isFromBootstrap);
}
innerDelete = Optional.ofNullable(getModel())
.filter(Incarichi_archivioBulk.class::isInstance)
.map(Incarichi_archivioBulk.class::cast)
.filter(el->el.isContratto())
.isPresent();
}
if (parametri!=null && parametri.getAllega_curriculum_vitae()!=null && parametri.getAllega_curriculum_vitae().equals("Y")) {
if (incarico.getCurriculumVincitore()==null) {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap? "fa fa-fw fa-address-card-o text-primary":"img/paste16.gif",
"javascript:submitForm('doAddCurriculumVincitoreToCRUD(" + getInputPrefix() + ")')",
true,
"Curriculum Vincitore",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
} else {
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap? "fa fa-fw fa-address-card text-primary":"img/paste16.gif",
"javascript:submitForm('doAddAggiornamentoCurriculumVincitoreToCRUD(" + getInputPrefix() + ")')",
true,
"Aggiornamento Curriculum Vincitore",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
innerDelete = innerDelete || Optional.ofNullable(getModel())
.filter(Incarichi_archivioBulk.class::isInstance)
.map(Incarichi_archivioBulk.class::cast)
.filter(el->el.isToBeCreated())
.filter(el->el.isAggiornamentoCurriculumVincitore())
.isPresent();
if (((CRUDIncarichiProceduraBP)getParentController().getParentController()).isSuperUtente() ||
((CRUDIncarichiProceduraBP)getParentController().getParentController()).isUtenteAbilitatoModificaAllegatoCurriculum()) {
innerDelete = innerDelete || Optional.ofNullable(getModel())
.filter(Incarichi_archivioBulk.class::isInstance)
.map(Incarichi_archivioBulk.class::cast)
.filter(el->el.isCurriculumVincitore()||el.isAggiornamentoCurriculumVincitore())
.isPresent();
}
}
}
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
isFromBootstrap? "fa fa-plus text-primary":"img/new16.gif",
"javascript:submitForm('doAddAllegatoGenericoToCRUD(" + getInputPrefix() + ")')",
true,
"Allegato Generico",
"btn btn-sm btn-secondary btn-outline-secondary",
isFromBootstrap);
innerDelete = innerDelete || Optional.ofNullable(getModel())
.filter(Incarichi_archivioBulk.class::isInstance)
.map(Incarichi_archivioBulk.class::cast)
.filter(el->el.isToBeCreated())
.filter(el->el.isAllegatoGenerico())
.isPresent();
}
super.writeHTMLToolbar(context, false, false, innerDelete, false, false);
super.closeButtonGROUPToolbar(context);
}
};
private SimpleDetailCRUDController compensiAllegatiIncarico = new SimpleDetailCRUDController( "CompensiAllegatiIncarico", CompensoBulk.class, "compensiColl", ripartizioneIncarichiPerAnno);
private SimpleDetailCRUDController crudIncarichiVariazioni = new Incarichi_archivioCRUDController( "IncarichiVariazioni", Incarichi_repertorio_varBulk.class, "incarichi_repertorio_varColl", incarichiColl) {
@Override
public void validateForDelete(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException {
Incarichi_repertorio_varBulk variazione = (Incarichi_repertorio_varBulk)oggettobulk;
if (variazione.isDefinitivo())
throw new ValidationException("Eliminazione non possibile!\nLa variazione e' gia' stata resa definitiva.");
if (variazione.isAnnullato())
throw new ValidationException("Eliminazione non possibile!\nLa variazione e' gia' stata annullata.");
super.validateForDelete(actioncontext, oggettobulk);
}
@Override
protected void validate(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException {
super.validate(actioncontext, oggettobulk);
Incarichi_repertorio_varBulk variazione = (Incarichi_repertorio_varBulk)oggettobulk;
if (variazione.getTipo_variazione()==null)
throw new ValidationException("Attenzione: indicare il tipo di variazione.");
if (variazione.isVariazioneIntegrazioneIncarico() || variazione.isVariazioneIntegrazioneContributi() || variazione.isVariazioneIntegrazioneMaternita()) {
for (Iterator i = variazione.getIncarichi_repertorio().getIncarichi_repertorio_varColl().iterator(); i.hasNext();) {
Incarichi_repertorio_varBulk varia = i.next();
if (!varia.equalsByPrimaryKey(variazione))
if (varia.getStato().equals(Incarichi_archivioBulk.STATO_VALIDO) &&
varia.getTipo_variazione().equals(variazione.getTipo_variazione()))
throw new ValidationException("Attenzione: non è possibile inserire più di una variazione di tipo \""+Incarichi_repertorio_varBulk.tipo_variazioneForEnteKeys.get(varia.getTipo_variazione())+"\"");
}
}
if (variazione.isVariazioneIntegrazioneIncarico()){
if (variazione.isVariazioneIntegrazioneIncaricoTransitorio()){
if (variazione.isDefinitivo()) {
if (variazione.getDt_variazione()==null)
throw new ValidationException("Attenzione: è obbligatorio indicare la data di stipula della variazione.");
if (variazione.getDt_fine_validita()==null)
throw new ValidationException("Attenzione: è obbligatorio indicare la nuova data di fine incarico.");
}
if (variazione.getImporto_lordo()==null||
variazione.getImporto_lordo().compareTo(BigDecimal.ZERO)==0)
throw new ValidationException("Attenzione: è obbligatorio indicare l'importo dell'integrazione del lordo percipiente.");
} else {
if (variazione.getDt_fine_validita()==null &&
(variazione.getImporto_lordo()==null||variazione.getImporto_lordo().compareTo(BigDecimal.ZERO)==0))
throw new ValidationException("Attenzione: indicare almeno un dato variato (\"data fine\" o \"integrazione lordo percipiente\") dell'incarico.");
}
}
else if (variazione.getImporto_complessivo()==null || variazione.getImporto_complessivo().compareTo(BigDecimal.ZERO)==0)
throw new ValidationException("Attenzione: è obbligatorio indicare l'importo dell'integrazione della \"Spesa complessiva presunta calcolata\".");
else if (!variazione.isAnnullato() && variazione.isVariazioneIntegrazioneContributi()){
java.math.BigDecimal prcIncrementoVar = Utility.nvl(variazione.getIncarichi_repertorio().getIncarichi_procedura().getTipo_incarico().getPrc_incremento_var());
BigDecimal importoMaxVar = variazione.getIncarichi_repertorio().getIncarichi_procedura().getImporto_complessivo().multiply(prcIncrementoVar.divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_EVEN));
if (variazione.getImporto_complessivo().compareTo(importoMaxVar)==1)
throw new ValidationException("Attenzione: la variazione massima consentita per \"Adeguamento Incremento Aliquote\" è " + new it.cnr.contab.util.EuroFormat().format(importoMaxVar)+".");
}
};
/*
* Metodo che attiva il tasto di cancellazione nel CRUDController
*/
@Override
public boolean isShrinkable() {
return super.isShrinkable() && ((getModel()!=null && getModel().isToBeCreated())||((CRUDIncarichiProceduraBP)getParentController().getParentController()).isUoEnte());
}
@Override
public void writeHTMLToolbar(
javax.servlet.jsp.PageContext context,
boolean reset,
boolean find,
boolean delete, boolean closedToolbar) throws java.io.IOException, javax.servlet.ServletException {
Incarichi_repertorio_varBulk incaricoVar = (Incarichi_repertorio_varBulk)getModel();
super.writeHTMLToolbar(context, reset, find, delete, false);
if (incaricoVar!=null) {
if (isEditing() &&
incaricoVar.isProvvisorio() &&
incaricoVar.isVariazioneIntegrazioneIncarico() &&
incaricoVar.getIncarichi_repertorio().isIncaricoDefinitivo()) {
String command = "javascript:submitForm('doSalvaDefinitivoVariazioneContratto')";
boolean isFromBootstrap = HttpActionContext.isFromBootstrap(context);
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(
context,
"img/saveall16.gif",
command,
true,
"Salva Definitivo Variazione Contratto",
isFromBootstrap);
}
}
super.closeButtonGROUPToolbar(context);
}
};
private SimpleDetailCRUDController crudAssUO = new SimpleDetailCRUDController( "Associazione UO", Ass_incarico_uoBulk.class, "associazioneUO", incarichiColl);
private SimpleDetailCRUDController crudAssUODisponibili = new SimpleDetailCRUDController( "Associazione UO Disponibili", Unita_organizzativaBulk.class, "associazioneUODisponibili", incarichiColl);
private SimpleDetailCRUDController crudNote = new SimpleDetailCRUDController( "Annotazioni", Incarichi_procedura_noteBulk.class, "incarichi_procedura_noteColl", this) {
public void validateForDelete(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException {
if (oggettobulk!=null && !oggettobulk.isToBeCreated())
throw new ValidationException("Eliminazione di un record confermato non possibile!.");
super.validateForDelete(actioncontext, oggettobulk);
}
};
private SimpleDetailCRUDController incarichiRappColl = new Incarichi_archivioCRUDController( "IncarichiRapp", Incarichi_repertorio_rappBulk.class, "incarichi_repertorio_rappColl", incarichiColl) {
@Override
public void validateForDelete(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException {
Incarichi_repertorio_rappBulk rapporto = (Incarichi_repertorio_rappBulk)oggettobulk;
if (rapporto.isAnnullato())
throw new ValidationException("Eliminazione non possibile!\nLa dichiarazione e' gia' stata annullata.");
super.validateForDelete(actioncontext, oggettobulk);
}
public boolean isGrowable() {
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)((SimpleDetailCRUDController)getParentController()).getModel();
return super.isShrinkable() && incarico.getDt_stipula()!=null;
};
/*
* Metodo che attiva il tasto di cancellazione nel CRUDController
*/
@Override
public boolean isShrinkable() {
return super.isShrinkable() && ((getModel()!=null && getModel().isToBeCreated())||((CRUDIncarichiProceduraBP)getParentController().getParentController()).isUoEnte());
};
};
private SimpleDetailCRUDController incarichiRappDetColl = new SimpleDetailCRUDController( "IncarichiRappDet", Incarichi_repertorio_rapp_detBulk.class, "incarichi_repertorio_rapp_detColl", incarichiColl){
public OggettoBulk removeDetail(OggettoBulk oggettobulk, int i) {
if (oggettobulk instanceof Incarichi_repertorio_rapp_detBulk) {
if (!oggettobulk.isToBeCreated() && !oggettobulk.isToBeDeleted() &&
oggettobulk.getCrudStatus()!=OggettoBulk.UNDEFINED) {
((Incarichi_repertorio_rapp_detBulk)oggettobulk).setStato(Incarichi_archivioBulk.STATO_ANNULLATO);
((Incarichi_repertorio_rapp_detBulk)oggettobulk).setDt_annullamento(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate());
oggettobulk.setToBeUpdated();
return oggettobulk;
}
}
return super.removeDetail(oggettobulk, i);
}
};
private Incarichi_richiestaBulk incaricoRichiestaOrigine;
private Incarichi_repertorioBulk incaricoRepertorioOrigine;
private boolean utenteAbilitatoPubblicazioneSito;
private boolean utenteAbilitatoFunzioniIncarichi;
private Unita_organizzativaBulk uoSrivania;
private boolean verificaFormatoBando = Boolean.FALSE;
private boolean utenteAbilitatoInvioMail = Boolean.FALSE;
private boolean utenteAbilitatoSbloccoProcedura = Boolean.FALSE;
private boolean superUtente = Boolean.FALSE;
private boolean creaERiportaNuovoIncarico=false;
private Date dtLimiteVariazione = null;
private boolean utenteAbilitatoModificaAllegatoContratto = Boolean.FALSE;
private boolean utenteAbilitatoModificaAllegatoCurriculum = Boolean.FALSE;
/**
* Primo costruttore della classe CRUDIncarichiRepertorioBP.
*/
public CRUDIncarichiProceduraBP() {
super();
}
/**
* Secondo costruttore della classe CRUDIncarichiRepertorioBP.
* @param String function
*/
public CRUDIncarichiProceduraBP(String function) {
super(function);
}
public CRUDIncarichiProceduraBP(String function, OggettoBulk bulk) {
super(function);
if (bulk instanceof Incarichi_richiestaBulk)
setIncaricoRichiestaOrigine((Incarichi_richiestaBulk)bulk);
else if (bulk instanceof Incarichi_repertorioBulk)
setIncaricoRepertorioOrigine((Incarichi_repertorioBulk)bulk);
}
public OggettoBulk initializeModelForInsert(ActionContext actioncontext, OggettoBulk oggettobulk) throws BusinessProcessException {
oggettobulk=super.initializeModelForInsert(actioncontext, oggettobulk);
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)oggettobulk;
if (getIncaricoRichiestaOrigine()!=null){
procedura.setOggetto(getIncaricoRichiestaOrigine().getAttivita());
procedura.setIncarichi_richiesta(getIncaricoRichiestaOrigine());
procedura.setCds(getIncaricoRichiestaOrigine().getCds());
procedura.setUnita_organizzativa(getIncaricoRichiestaOrigine().getUnita_organizzativa());
procedura.setIndirizzo_unita_organizzativa(getIncaricoRichiestaOrigine().getIndirizzo_unita_organizzativa());
procedura.setProcedura_amministrativa(new Procedure_amministrativeBulk());
procedura.getProcedura_amministrativa().setFl_ricerca_incarico(Boolean.TRUE);
procedura.setNr_contratti(getIncaricoRichiestaOrigine().getNrRisorseNonTrovate()-
getIncaricoRichiestaOrigine().getNrContrattiAttivati());
RemoteIterator ri = find(actioncontext,null,procedura.getProcedura_amministrativa(),procedura,"procedura_amministrativa");
//metodo per riempire immediatamente la Procedura Amministrativa se ne esiste 1 sola
try {
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(actioncontext, ri);
if (ri != null && ri.countElements() == 1)
procedura.setProcedura_amministrativa((Procedure_amministrativeBulk)ri.nextElement());
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(actioncontext, ri);
} catch (Exception e) {
}
//ripulisco il dato per evitare che, se crea un nuovo incarico, riproponga il
//collegamento
setIncaricoRichiestaOrigine(null);
}
procedura.setUtenteCollegatoUoEnte(it.cnr.contab.utenze00.bulk.CNRUserInfo.getUnita_organizzativa(actioncontext).getCd_tipo_unita().compareTo(it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome.TIPO_UO_ENTE)==0);
procedura.setUtenteCollegatoSuperUtente(isSuperUtente());
procedura.setDt_registrazione(DateServices.getDt_valida(actioncontext.getUserContext()));
if (this.isBorseStudioBP() || this.isAssegniRicercaBP()) {
//metodo per riempire immediatamente la Procedura Amministrativa
try {
RemoteIterator ri = this.find(actioncontext,null,new Procedure_amministrativeBulk("INC3"),procedura,"procedura_amministrativa");
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(actioncontext, ri);
if (ri != null && ri.countElements() == 1)
procedura = this.initializeProcedura_amministrativa(actioncontext, procedura, (Procedure_amministrativeBulk)ri.nextElement());
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(actioncontext, ri);
}catch(java.rmi.RemoteException ex){
throw handleException(ex);
}
//metodo per riempire immediatamente il tipo di attivita
try {
Tipo_attivitaBulk tipoAttivita = new Tipo_attivitaBulk();
tipoAttivita.setTipo_associazione(this.isAssegniRicercaBP()?Tipo_attivitaBulk.ASS_ASSEGNI_RICERCA:Tipo_attivitaBulk.ASS_BORSE_STUDIO);
RemoteIterator ri = this.find(actioncontext,null,tipoAttivita,procedura,"tipo_attivita");
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(actioncontext, ri);
if (ri != null && ri.countElements() == 1)
procedura.setTipo_attivita((Tipo_attivitaBulk)ri.nextElement());
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(actioncontext, ri);
}catch(java.rmi.RemoteException ex){
throw handleException(ex);
}
//metodo per riempire immediatamente il tipo di incarico
try {
Tipo_incaricoBulk tipoIncarico = new Tipo_incaricoBulk();
tipoIncarico.setTipo_associazione(this.isAssegniRicercaBP()?Tipo_incaricoBulk.ASS_ASSEGNI_RICERCA:Tipo_incaricoBulk.ASS_BORSE_STUDIO);
RemoteIterator ri = this.find(actioncontext,null,tipoIncarico,procedura,"tipo_incarico");
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(actioncontext, ri);
if (ri != null && ri.countElements() == 1)
procedura = this.initializeFind_tipo_incarico(actioncontext, procedura, (Tipo_incaricoBulk)ri.nextElement());
else {
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(actioncontext, ri);
throw new it.cnr.jada.comp.ApplicationException("Errore di configurazione del tipo incarico relativamente alla tipologia "+
(this.isAssegniRicercaBP()?"Assegni di Ricerca":"Borse di Studio")+". Contattare il Customer Support Team.");
}
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(actioncontext, ri);
}catch(it.cnr.jada.comp.ComponentException ex){
throw handleException(ex);
}catch(java.rmi.RemoteException ex){
throw handleException(ex);
}
}
//metodo richiamato per precaricare i parametri sull'oggetto
this.getIncarichiParametri(actioncontext.getUserContext(),procedura);
return procedura;
}
public OggettoBulk initializeModelForEdit(ActionContext actioncontext, OggettoBulk oggettobulk) throws BusinessProcessException {
try {
oggettobulk=super.initializeModelForEdit(actioncontext, oggettobulk);
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)oggettobulk;
if (!procedura.getFl_migrata_to_cmis())
throw handleException(new ApplicationException("Procedura non utilizzabile. E' in corso una operazione di migrazione dei dati. La procedura tornera' disponibile al termine della stessa."));
// completaUnitaOrganizzativa(actioncontext, procedura, procedura.getUnita_organizzativa());
for ( Iterator i = procedura.getIncarichi_procedura_annoColl().iterator(); i.hasNext(); ) {
Incarichi_procedura_annoBulk procAnno = (Incarichi_procedura_annoBulk) i.next();
procAnno.caricaAnniList(actioncontext);
}
for ( Iterator i = procedura.getIncarichi_repertorioColl().iterator(); i.hasNext(); ) {
Incarichi_repertorioBulk repertorio = (Incarichi_repertorioBulk) i.next();
for ( Iterator y = repertorio.getIncarichi_repertorio_annoColl().iterator(); y.hasNext(); ) {
Incarichi_repertorio_annoBulk repAnno = (Incarichi_repertorio_annoBulk) y.next();
repAnno.caricaAnniList(actioncontext);
}
if (repertorio.isIncaricoDefinitivo() && (isUoEnte() || isUtenteAbilitatoPubblicazioneSito()))
repertorio.setDataProrogaEnableOnView(Boolean.TRUE);
}
for ( Iterator i = procedura.getArchivioAllegatiMI().iterator(); i.hasNext(); ) {
Incarichi_archivioBulk archivio = (Incarichi_archivioBulk) i.next();
if (archivio.isProgetto()) {
Incarichi_parametriBulk parametri = this.getIncarichiParametri(actioncontext.getUserContext(),procedura);
if (!(parametri!=null && parametri.getAllega_progetto()!=null && parametri.getAllega_progetto().equals("Y")))
archivio.setFileRequired(Boolean.FALSE);
if (parametri!=null && parametri.getIndica_url_progetto()!=null && parametri.getIndica_url_progetto().equals("Y"))
archivio.setUrlRequired(Boolean.TRUE);
}
}
procedura.setUtenteCollegatoUoEnte(isUoEnte());
procedura.setUtenteCollegatoSuperUtente(isSuperUtente());
return procedura;
} catch(javax.ejb.EJBException ejbe){
throw handleException(ejbe);
}
}
protected void init(Config config, ActionContext actioncontext) throws BusinessProcessException {
setTab("tab","tabIncarichi_procedura_contratto");
super.init(config, actioncontext);
}
public void findTipiRapporto(ActionContext context) throws BusinessProcessException{
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)getModel();
if (procedura != null) {
for ( Iterator i = procedura.getIncarichi_repertorioColl().iterator(); i.hasNext(); )
findTipiRapporto(context, (Incarichi_repertorioBulk)i.next());
}
}
private void findTipiRapporto(ActionContext context, Incarichi_repertorioBulk incarico) throws BusinessProcessException{
try{
if (incarico.getTerzo()!= null) {
java.util.Collection coll = Utility.createIncarichiRepertorioComponentSession().findTipiRapporto(context.getUserContext(), incarico);
incarico.setTipiRapporto(coll);
if(coll == null || coll.isEmpty()){
incarico.setTipo_rapporto(null);
throw new it.cnr.jada.comp.ApplicationException("Non esistono Tipi Rapporto validi associati ad uno dei contraenti selezionati (\""+incarico.getV_terzo().getCognome()+" "+incarico.getV_terzo().getNome()+"\")");
}
else if (incarico.getTipo_rapporto()!=null) {
boolean trovato=false;
for ( Iterator i = coll.iterator(); i.hasNext(); ) {
if (((OggettoBulk)i.next()).equalsByPrimaryKey(incarico.getTipo_rapporto())){
trovato=true;
break;
}
}
if (!trovato)
incarico.setTipo_rapporto(null);
}
}else{
incarico.setTipo_rapporto(null);
}
}catch(it.cnr.jada.comp.ComponentException ex){
throw handleException(ex);
}catch(java.rmi.RemoteException ex){
throw handleException(ex);
}
}
public final SimpleDetailCRUDController getRipartizionePerAnno() {
return ripartizionePerAnno;
}
private Incarichi_richiestaBulk getIncaricoRichiestaOrigine() {
return incaricoRichiestaOrigine;
}
private void setIncaricoRichiestaOrigine(
Incarichi_richiestaBulk incaricoRichiestaOrigine) {
this.incaricoRichiestaOrigine = incaricoRichiestaOrigine;
}
private Incarichi_repertorioBulk getIncaricoRepertorioOrigine() {
return incaricoRepertorioOrigine;
}
private void setIncaricoRepertorioOrigine(
Incarichi_repertorioBulk incaricoRepertorioOrigine) {
this.incaricoRepertorioOrigine = incaricoRepertorioOrigine;
}
public boolean isROIncaricoRichiesta() {
return getIncaricoRichiestaOrigine()!=null;
}
public boolean isROContraente() {
Incarichi_repertorioBulk model = (Incarichi_repertorioBulk)getModel();
return (!isSearching() &&
((model.getDt_inizio_validita()==null || model.getDt_fine_validita()==null) ||
(model.getTerzo() == null || model.getTerzo().getCrudStatus() == OggettoBulk.NORMAL)));
}
public boolean isUtenteAbilitatoPubblicazioneSito() {
return utenteAbilitatoPubblicazioneSito;
}
private void setUtenteAbilitatoPubblicazioneSito(boolean utenteAbilitatoPubblicazioneSito) {
this.utenteAbilitatoPubblicazioneSito = utenteAbilitatoPubblicazioneSito;
}
private Unita_organizzativaBulk getUoSrivania() {
return uoSrivania;
}
private void setUoSrivania(Unita_organizzativaBulk uoSrivania) {
this.uoSrivania = uoSrivania;
}
public boolean isUoEnte(){
return (getUoSrivania().getCd_tipo_unita().compareTo(it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome.TIPO_UO_ENTE)==0);
}
private boolean isUtenteAbilitatoInvioMail(){
return utenteAbilitatoInvioMail;
}
private void setUtenteAbilitatoInvioMail(boolean utenteAbilitatoInvioMail){
this.utenteAbilitatoInvioMail = utenteAbilitatoInvioMail;
}
private boolean isUtenteAbilitatoSbloccoProcedura(){
return utenteAbilitatoSbloccoProcedura;
}
private void setUtenteAbilitatoSbloccoProcedura(boolean utenteAbilitatoSbloccoProcedura){
this.utenteAbilitatoSbloccoProcedura = utenteAbilitatoSbloccoProcedura;
}
public boolean isSuperUtente(){
return superUtente;
}
private void setSuperUtente(boolean superUtente){
this.superUtente = superUtente;
}
public boolean isUtenteAbilitatoModificaAllegatoContratto(){
return utenteAbilitatoModificaAllegatoContratto;
}
private void setUtenteAbilitatoModificaAllegatoContratto(boolean utenteAbilitatoModificaAllegatoContratto){
this.utenteAbilitatoModificaAllegatoContratto = utenteAbilitatoModificaAllegatoContratto;
}
public boolean isUtenteAbilitatoModificaAllegatoCurriculum() {
return utenteAbilitatoModificaAllegatoCurriculum;
}
private void setUtenteAbilitatoModificaAllegatoCurriculum(boolean utenteAbilitatoModificaAllegatoCurriculum) {
this.utenteAbilitatoModificaAllegatoCurriculum = utenteAbilitatoModificaAllegatoCurriculum;
}
protected void initialize(ActionContext context) throws BusinessProcessException {
super.initialize(context);
try {
setUoSrivania(it.cnr.contab.utenze00.bulk.CNRUserInfo.getUnita_organizzativa(context));
setUtenteAbilitatoPubblicazioneSito(UtenteBulk.isAbilitatoPubblicazioneSito(context.getUserContext()));
setUtenteAbilitatoFunzioniIncarichi(UtenteBulk.isAbilitatoFunzioniIncarichi(context.getUserContext()));
setSuperUtente(UtenteBulk.isSuperUtenteFunzioniIncarichi(context.getUserContext()));
setDtLimiteVariazione(((it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession")).getDt01(context.getUserContext(), new Integer(0), "*", "PROCEDURA_CONFERIMENTO_INCARICHI", "DATA_LIMITE_VARIAZIONE"));
setUtenteAbilitatoInvioMail(context.getUserContext().getUser().equals("raffaele.pagano")||
context.getUserContext().getUser().equals("roberto.tatarelli")||
context.getUserContext().getUser().equals("matilde.durso")||
context.getUserContext().getUser().equals("garzenini.paola")||
context.getUserContext().getUser().equals("stanislao.fusco")||
context.getUserContext().getUser().equals("flavia.giardina")||
context.getUserContext().getUser().equals("rosangela.pucciarelli")||
context.getUserContext().getUser().equals("mario.incarnato"));
String value = ((it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession")).getVal01(context.getUserContext(), new Integer(0), "*", Configurazione_cnrBulk.PK_INCARICHI_MODIFICA_ALLEGATI, Configurazione_cnrBulk.SK_INCARICHI_MOD_CONTRATTO);
setUtenteAbilitatoModificaAllegatoContratto(value!=null && "Y".equals(value));
String value2 = ((it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession")).getVal01(context.getUserContext(), new Integer(0), "*", Configurazione_cnrBulk.PK_INCARICHI_MODIFICA_ALLEGATI, Configurazione_cnrBulk.SK_INCARICHI_MOD_CURRICULUM);
setUtenteAbilitatoModificaAllegatoCurriculum(value2!=null && "Y".equals(value2));
if (getModel()!=null && getModel() instanceof Incarichi_proceduraBulk)
((Incarichi_proceduraBulk)getModel()).setUtenteCollegatoSuperUtente(isSuperUtente());
} catch (ComponentException e1) {
throw handleException(e1);
} catch (RemoteException e1) {
throw handleException(e1);
}
}
public void completaUnitaOrganizzativa(it.cnr.jada.action.ActionContext context, Incarichi_proceduraBulk procedura, Unita_organizzativaBulk uo) throws BusinessProcessException {
try {
procedura.setUnita_organizzativa(uo);
setModel(context, ((IncarichiProceduraComponentSession)createComponentSession()).caricaSedeUnitaOrganizzativa(context.getUserContext(),procedura));
}catch(it.cnr.jada.comp.ComponentException ex){
throw handleException(ex);
}catch(java.rmi.RemoteException ex){
throw handleException(ex);
}
}
public void changeImportoLordo(it.cnr.jada.action.ActionContext context, Incarichi_proceduraBulk incarico, BigDecimal importoLordo) {
incarico.setImporto_lordo(importoLordo);
//valorizzo il numero contratti attivato se null o 0
if (incarico.getNr_contratti()==null ||incarico.getNr_contratti()==0)
incarico.setNr_contratti(1);
//BigDecimal importoLordoTotale = importoLordo.multiply(new BigDecimal(incarico.getNr_contratti()));
if (incarico.getTipo_incarico()==null || incarico.getTipo_incarico().getPrc_incremento()==null)
incarico.setImporto_complessivo(importoLordo);
else
incarico.setImporto_complessivo(importoLordo.add(importoLordo.multiply(incarico.getTipo_incarico().getPrc_incremento()).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_EVEN)));
}
public void changeImportoLordo(it.cnr.jada.action.ActionContext context, Incarichi_proceduraBulk incarico, Incarichi_repertorio_varBulk variazione, BigDecimal importoLordo) {
variazione.setImporto_lordo(importoLordo);
//BigDecimal importoLordoTotale = importoLordo.multiply(new BigDecimal(incarico.getNr_contratti()));
if (incarico.getTipo_incarico()==null || incarico.getTipo_incarico().getPrc_incremento()==null)
variazione.setImporto_complessivo(importoLordo);
else
variazione.setImporto_complessivo(importoLordo.add(importoLordo.multiply(incarico.getTipo_incarico().getPrc_incremento()).divide(new BigDecimal(100),2,BigDecimal.ROUND_HALF_EVEN)));
}
public SimpleDetailCRUDController getCrudArchivioAllegati() {
return crudArchivioAllegati;
}
public void setCrudArchivioAllegati(SimpleDetailCRUDController controller) {
crudArchivioAllegati = controller;
}
public SimpleDetailCRUDController getCrudArchivioAllegatiMI() {
return crudArchivioAllegatiMI;
}
public void setCrudArchivioAllegatiMI(SimpleDetailCRUDController controller) {
crudArchivioAllegatiMI = controller;
}
/*
* Necessario per la creazione di una form con enctype di tipo "multipart/form-data"
* Sovrascrive quello presente nelle superclassi
*
*/
public void openForm(javax.servlet.jsp.PageContext context,String action,String target) throws java.io.IOException,javax.servlet.ServletException {
if (getTab("tab").equals("tabIncarichi_procedura_allegati") ||
getTab("tab").equals("tabIncarichi_procedura_variazioni") ||
(getTab("tab").equals("tabIncarichi_procedura_rapporti") &&
getTab("tabProceduraRapporti").equals("tabProceduraRapportiAnno")) ||
(getTab("tab").equals("tabIncarichi_procedura_contratto") &&
(getTab("tabProceduraContratto").equals("tabProceduraContrattoAllegati") ||
getTab("tabProceduraContratto").equals("tabProceduraContrattoVariazioni") ||
(getTab("tabProceduraContratto").equals("tabProceduraContrattoRapporti") &&
getTab("tabProceduraRapporti").equals("tabProceduraRapportiAnno")))))
openForm(context,action,target,"multipart/form-data");
else
super.openForm(context, action, target);
}
public void delete(ActionContext actioncontext) throws BusinessProcessException {
int crudStatus = getModel().getCrudStatus();
try
{
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) getModel();
//In fase di inserimento si permette di eliminare
if ( procedura.getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_INSERIMENTO_INCARICO)!=1 )
super.delete(actioncontext);
// si tratta di uno storno
else if ( procedura.getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_INSERIMENTO_CONTRATTO)!=1)
stornaProceduraIncarico(actioncontext);
// si tratta di uno storno
else if ( procedura.getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_DEFINITIVA)==0) {
if (!isUoEnte()&&!isUtenteAbilitatoFunzioniIncarichi())
throw new it.cnr.jada.comp.ApplicationException("Eliminazione consentita solo ad utenti con l'abilitazione alle funzioni di direttore di istituto.");
if (isIncaricoUtilizzato(actioncontext))
chiudiProceduraIncarico(actioncontext);
else
stornaProceduraIncarico(actioncontext);
}
else // stato = STORNATA
throw new it.cnr.jada.comp.ApplicationException("Lo stato della procedura di conferimento incarico non ne consente la cancellazione/storno");
} catch(Exception e) {
getModel().setCrudStatus(crudStatus);
throw handleException(e);
}
}
public void saveChildren(ActionContext actioncontext) throws ValidationException, BusinessProcessException {
allineaDatiProceduraIncarichi(actioncontext.getUserContext(),(Incarichi_proceduraBulk)getModel());
super.saveChildren(actioncontext);
}
public void pubblicaSulSito(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
try {
if (((Incarichi_proceduraBulk) getModel()).getBando()==null) {
if (Incarichi_procedura_archivioBulk.tipo_archivioKeys.isEmpty()) {
//Istanzio la classe per riempire tipo_archivioKeys
new Incarichi_procedura_archivioBulk();
}
throw new it.cnr.jada.comp.ApplicationException("Allegare alla procedura di conferimento incarico un \""+Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_BANDO).toString()+"\".");
}
setModel(context,((IncarichiProceduraComponentSession)createComponentSession()).pubblicaSulSito(context.getUserContext(), getModel()));
}
catch(Exception e)
{
throw handleException(e);
}
}
public void annullaPubblicazioneSulSito(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException
{
try {
setModel(context,((IncarichiProceduraComponentSession)createComponentSession()).annullaPubblicazioneSulSito(context.getUserContext(), getModel()));
}
catch(Exception e)
{
throw handleException(e);
}
}
protected Button[] createToolbar() {
Button[] toolbar = super.createToolbar();
Button[] newToolbar = new Button[ toolbar.length + 8];
int i;
for ( i = 0; i < toolbar.length; i++ )
newToolbar[i] = toolbar[i];
newToolbar[ i ] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.pubblica");
newToolbar[ i ].setSeparator(true);
newToolbar[ i+1 ] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.annullaPubblica");
newToolbar[ i+1 ].setSeparator(true);
newToolbar[ i+2 ] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.salvaDefinitivo");
newToolbar[ i+2 ].setSeparator(true);
newToolbar[ i+3 ] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.concludiProcedura");
newToolbar[ i+3 ].setSeparator(true);
newToolbar[ i+4 ] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.concludiMonoIncarico");
newToolbar[ i+4 ].setSeparator(true);
newToolbar[ i+5 ] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.annullaDefinitivo");
newToolbar[ i+5 ].setSeparator(true);
newToolbar[ i+6 ] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.sendEmailCds");
newToolbar[ i+6 ].setSeparator(true);
newToolbar[ i+7 ] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()),"Toolbar.mergeCMIS");
newToolbar[ i+7 ].setSeparator(true);
return newToolbar;
}
public boolean isPubblicaButtonHidden() {
return !(isUoEnte()||isUtenteAbilitatoPubblicazioneSito()) ||
!((Incarichi_proceduraBulk)getModel()).isProceduraDaPubblicare() ||
!(isInserting() ||
((Incarichi_proceduraBulk)getModel()).getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_INSERIMENTO_INCARICO)!=1 );
}
public boolean isAnnullaPubblicaButtonHidden() {
return !(isUoEnte()||isUtenteAbilitatoPubblicazioneSito()) ||
!((Incarichi_proceduraBulk)getModel()).isProceduraDaPubblicare() ||
isInserting()||
((Incarichi_proceduraBulk)getModel()).getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_PUBBLICAZIONE)!=0;
}
public String[][] getTabs() {
TreeMap hash = new TreeMap();
int i=0;
hash.put(i++, new String[]{"tabTestata", "Procedura", "/incarichi00/tab_incarichi_procedura.jsp" });
if (isSearching()) {
hash.put(i++, new String[]{"tabSearchTerzo", "Terzo", "/incarichi00/tab_incarichi_procedura_search_terzo.jsp"});
hash.put(i++, new String[]{"tabSearchIncarico", "Incarico", "/incarichi00/tab_incarichi_procedura_search_incarico.jsp"});
} else {
hash.put(i++, new String[]{"tabIncarichi_procedura_anno", "Importo per anno", "/incarichi00/tab_incarichi_procedura_anno.jsp" });
if (isContrattoEnable())
hash.put(i++, new String[]{"tabIncarichi_procedura_contratto","Incarichi","/incarichi00/tab_incarichi_procedura_contratto.jsp" });
hash.put(i++, new String[]{"tabIncarichi_procedura_allegati","Allegati","/incarichi00/tab_incarichi_procedura_allegati.jsp" });
if (getModel()!=null && !((Incarichi_proceduraBulk)getModel()).isProceduraMultiIncarico() &&
!((Incarichi_proceduraBulk)getModel()).getIncarichi_repertorioColl().isEmpty()){
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)((Incarichi_proceduraBulk)getModel()).getIncarichi_repertorioColl().get(0);
if (((Incarichi_proceduraBulk)getModel()).isDichiarazioneContraenteRequired())
hash.put(i++, new String[]{"tabIncarichi_procedura_rapporti","Dichiarazione Contraente","/incarichi00/tab_incarichi_procedura_rapporti.jsp" });
if (incarico.isIncaricoDefinitivo() || !incarico.getIncarichi_repertorio_varColl().isEmpty())
hash.put(i++, new String[]{"tabIncarichi_procedura_variazioni","Variazioni","/incarichi00/tab_incarichi_procedura_variazioni.jsp" });
if (incarico.getIncarichi_procedura().isUtenteCollegatoSuperUtente())
hash.put(i++, new String[]{"tabIncarichi_procedura_ass_uo","UO","/incarichi00/tab_incarichi_procedura_ass_uo.jsp" });
}
if (this.isIncarichiProceduraBP())
hash.put(i++, new String[]{"tabIncarichi_procedura_dati_perla","Dati PERLA","/incarichi00/tab_incarichi_procedura_dati_perla.jsp" });
else
hash.put(i++, new String[]{"tabIncarichi_procedura_dati_perla","Altri Dati","/incarichi00/tab_incarichi_procedura_dati_perla.jsp" });
if (isSuperUtente())
hash.put(i++, new String[]{"tabIncarichi_procedura_note","Annotazioni","/incarichi00/tab_incarichi_procedura_note.jsp" });
}
String[][] tabs = new String[i][3];
for (int j = 0; j < i; j++) {
tabs[j]=new String[]{hash.get(j)[0],hash.get(j)[1],hash.get(j)[2]};
}
return tabs;
}
protected void basicEdit(ActionContext actioncontext, OggettoBulk oggettobulk, boolean flag) throws BusinessProcessException {
super.basicEdit(actioncontext, oggettobulk, flag);
if (((Incarichi_proceduraBulk)getModel()).isProceduraScaduta()){
if (!isUoEnte()) {
setStatus(CRUDBP.VIEW);
setMessage("Procedura di conferimento incarico scaduta. Non e' consentita la modifica.");
}
else
setMessage("Procedura di conferimento incarico scaduta. E' consentita sola la modifica della \"data di scadenza\".");
}
if (((Incarichi_proceduraBulk)getModel()).isPubblicazioneInCorso()){
setStatus(CRUDBP.VIEW);
setMessage("Procedura di conferimento incarico in fase di pubblicazione. E' consentito solo l'annullamento della pubblicazione.");
}
else if (((Incarichi_proceduraBulk)getModel()).isProceduraAnnullata()){
setStatus(CRUDBP.VIEW);
if (((Incarichi_proceduraBulk)getModel()).getDt_cancellazione() != null && ((Incarichi_proceduraBulk)getModel()).getDt_fine_pubblicazione() != null &&
((Incarichi_proceduraBulk)getModel()).getDt_cancellazione().before(((Incarichi_proceduraBulk)getModel()).getDt_fine_pubblicazione()))
setMessage("La procedura di conferimento incarico e' stata annullata. Non e' consentita la modifica.");
else
setMessage("La procedura di conferimento incarico e' stata eliminata. Non e' consentita la modifica.");
}
else if (((Incarichi_proceduraBulk)getModel()).isProceduraDefinitiva()){
// setStatus(CRUDBP.VIEW);
if (((Incarichi_proceduraBulk)getModel()).getNr_contratti().compareTo(1)==0)
setMessage("Procedura di conferimento incarico definitiva. E' consentita solo la modifica della ripartizione degli importi tra i diversi esercizi.");
else
setMessage("Procedura di conferimento incarico definitiva. E' consentita solo, per ogni contratto associato, la modifica della ripartizione degli importi tra i diversi esercizi.");
}
else if (((Incarichi_proceduraBulk)getModel()).isProceduraChiusa()){
setStatus(CRUDBP.VIEW);
if (((Incarichi_proceduraBulk)getModel()).getIncarichi_repertorioColl().size()==1 &&
((Incarichi_repertorioBulk)((Incarichi_proceduraBulk)getModel()).getIncarichi_repertorioColl().get(0)).getEsito_corte_conti()!=null &&
((Incarichi_repertorioBulk)((Incarichi_proceduraBulk)getModel()).getIncarichi_repertorioColl().get(0)).getEsito_corte_conti().equals(Incarichi_repertorioBulk.ESITO_ILLEGITTIMO))
setMessage("Procedura di conferimento annullata per esito negativo del controllo della Corte dei Conti. Non e' consentita la modifica.");
else
setMessage("Procedura di conferimento incarico definitiva e chiusa. Non e' consentita la modifica.");
}
else {
int nrChiusi = 0;
for (Iterator i = ((Incarichi_proceduraBulk)getModel()).getIncarichi_repertorioColl().iterator(); i.hasNext();) {
Incarichi_repertorioBulk incarico = i.next();
if (incarico.isIncaricoDefinitivo()){
if (((Incarichi_proceduraBulk)getModel()).getNr_contratti().compareTo(1)==0)
setMessage("Procedura di conferimento incarico definitiva. E' consentita solo la modifica della ripartizione degli importi tra i diversi esercizi.");
else
setMessage("Procedura di conferimento incarico con almeno un contratto associato definitivo. E' consentita solo, per ogni contratto associato, la modifica della ripartizione degli importi tra i diversi esercizi.");
break;
}
else if (incarico.isIncaricoChiuso())
nrChiusi++;
}
if (((Incarichi_proceduraBulk)getModel()).getNr_contratti().compareTo(nrChiusi)==0) {
setStatus(CRUDBP.VIEW);
setMessage("Procedura di conferimento incarico con tutti i contratti associati definitivi e chiusi. Non e' consentita la modifica.");
}
}
/*serve per impostare la mappa con il contratto creato già evidenziato*/
if (((Incarichi_proceduraBulk)getModel()).getNr_contratti().compareTo(1)==0 &&
!((Incarichi_proceduraBulk)getModel()).getIncarichi_repertorioColl().isEmpty()){
getIncarichiColl().setModelIndex(actioncontext, 0);
getIncarichiColl().getSelection().setFocus(0);
}
if (getIncaricoRepertorioOrigine()!=null) {
setIncaricoRepertorioOrigine(null);
setTab("tab","tabIncarichi_procedura_contratto");
}
}
public void stornaProceduraIncarico(ActionContext actioncontext) throws BusinessProcessException {
int crudStatus = getModel().getCrudStatus();
try
{
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) getModel();
if ( procedura.getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_INSERIMENTO_INCARICO)==1 )
setModel(actioncontext, ((IncarichiProceduraComponentSession)createComponentSession()).stornaProceduraIncaricoPubblicata(actioncontext.getUserContext(),getModel()));
else // stato = STORNATA
throw new it.cnr.jada.comp.ApplicationException( "Lo stato dell'incarico non ne consente lo storno");
} catch(Exception e) {
getModel().setCrudStatus(crudStatus);
throw handleException(e);
}
}
public boolean isContrattoEnable() {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) getModel();
return procedura != null &&
procedura.getProcedura_amministrativa()!=null &&
procedura.getProcedura_amministrativa().getCd_proc_amm()!=null &&
procedura.getProcedura_amministrativa().getCrudStatus()==OggettoBulk.NORMAL &&
(!procedura.isProceduraDaPubblicare()
||
procedura.getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_PUBBLICAZIONE)==1);
}
public boolean isSalvaDefinitivoButtonHidden() {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) getModel();
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk) getIncarichiColl().getModel();
return !isEditing()||!isContrattoEnable()||incarico==null||
procedura.getNr_contratti().compareTo(1)==1 ||
procedura.isProceduraScaduta() || procedura.isProceduraDefinitiva();
}
public boolean isSalvaDefinitivoButtonEnabled() {
return !isSalvaDefinitivoButtonHidden() &&
!((Incarichi_proceduraBulk) getModel()).isProceduraScaduta() &&
!((Incarichi_proceduraBulk) getModel()).isProceduraDefinitiva();
}
public void salvaDefinitivo(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
try {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)getModel();
if (procedura.getIncarichi_repertorioValidiColl().size()==0)
throw new it.cnr.jada.comp.ApplicationException("Completare le informazioni relative al terzo al quale è stato conferito l'incarico.");
if (procedura.getNr_contratti().compareTo(procedura.getIncarichi_repertorioValidiColl().size())==-1)
throw new it.cnr.jada.comp.ApplicationException("Attenzione! Risultano collegati alla procedura un numero di contratti definitivi " + procedura.getIncarichi_repertorioValidiColl().size() + " superiore a quello consentito.");
if (procedura.getProcedura_amministrativa()==null || !(procedura.getProcedura_amministrativa().getCd_proc_amm().equals("INC4"))) {
if (procedura.getDecisioneAContrattare()==null) {
Incarichi_parametriBulk parametri = ((IncarichiProceduraComponentSession)createComponentSession()).getIncarichiParametri(context.getUserContext(), procedura);
if (procedura.getDecisioneAContrattare()==null) {
if (parametri==null || parametri.getAllega_decisione_ctr()==null || parametri.getAllega_decisione_ctr().equals("Y")) {
if (Incarichi_procedura_archivioBulk.tipo_archivioKeys.isEmpty()) {
//Istanzio la classe per riempire tipo_archivioKeys
new Incarichi_procedura_archivioBulk();
}
throw new it.cnr.jada.comp.ApplicationException("Allegare alla procedura di conferimento incarico un file di tipo \""+Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_DECISIONE_A_CONTRATTARE).toString()+"\".");
}
}
}
}
if (procedura.getIncarichi_repertorioValidiColl().size()==1)
Utility.createIncarichiRepertorioComponentSession().salvaDefinitivo(context.getUserContext(), (OggettoBulk)procedura.getIncarichi_repertorioValidiColl().get(0));
setModel(context, (Incarichi_proceduraBulk)createComponentSession().inizializzaBulkPerModifica(context.getUserContext(), getModel()));
// ((IncarichiProceduraComponentSession)createComponentSession()).archiviaAllegati(context.getUserContext(), (Incarichi_proceduraBulk)getModel());
}
catch(Exception e)
{
throw handleException(e);
}
}
public void salvaDefinitivoContratto(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
try {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)getModel();
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)getIncarichiColl().getModel();
if (procedura.getProcedura_amministrativa()==null || !(procedura.getProcedura_amministrativa().getCd_proc_amm().equals("INC4"))) {
if (procedura.getDecisioneAContrattare()==null) {
Incarichi_parametriBulk parametri = ((IncarichiProceduraComponentSession)createComponentSession()).getIncarichiParametri(context.getUserContext(), procedura);
if (procedura.getDecisioneAContrattare()==null) {
if (parametri==null || parametri.getAllega_decisione_ctr()==null || parametri.getAllega_decisione_ctr().equals("Y")) {
if (Incarichi_procedura_archivioBulk.tipo_archivioKeys.isEmpty()) {
//Istanzio la classe per riempire tipo_archivioKeys
new Incarichi_procedura_archivioBulk();
}
throw new it.cnr.jada.comp.ApplicationException("Allegare alla procedura di conferimento incarico un file di tipo \""+Incarichi_procedura_archivioBulk.tipo_archivioKeys.get(Incarichi_procedura_archivioBulk.TIPO_DECISIONE_A_CONTRATTARE).toString()+"\".");
}
}
}
}
Utility.createIncarichiRepertorioComponentSession().salvaDefinitivo(context.getUserContext(), (OggettoBulk)incarico);
procedura = (Incarichi_proceduraBulk)createComponentSession().inizializzaBulkPerModifica(context.getUserContext(), getModel());
int contaDef=0, contaInv=0;
for (Iterator i=procedura.getIncarichi_repertorioColl().iterator();i.hasNext();) {
Incarichi_repertorioBulk incaricoNew = (Incarichi_repertorioBulk)i.next();
if (incaricoNew.isIncaricoDefinitivo()||incaricoNew.isIncaricoChiuso())
contaDef = contaDef+1;
if (incaricoNew.isIncaricoInviatoCorteConti())
contaInv = contaInv+1;
}
if (procedura.getNr_contratti().compareTo(contaDef+contaInv)==-1)
throw new it.cnr.jada.comp.ApplicationException("Attenzione! Risultano collegati alla procedura un numero di contratti definitivi " + contaDef + " superiore a quello consentito.");
setModel(context, procedura);
}
catch(Exception e)
{
throw handleException(e);
}
}
protected void resetTabs(ActionContext context) {
setTab("tab","tabTestata");
setTab("tabIncarichiProceduraAnno","tabIncarichiProceduraAnnoImporti");
setTab("tabProceduraContratto","tabProceduraContrattoTestata");
setTab("tabCompensiIncaricoAnno","tabCompensiIncaricoAnnoImporti");
setTab("tabProceduraRapporti","tabProceduraRapportiAnno");
}
public boolean isIncaricoUtilizzato(ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
try {
/*Ricarico l'oggetto nel caso in cui qualcuno abbia, da un'altra sessione, caricato compensi sull'incarico*/
Incarichi_proceduraBulk incDB = (Incarichi_proceduraBulk)createComponentSession().inizializzaBulkPerModifica(context.getUserContext(), getModel());
return incDB.getImporto_utilizzato().compareTo(Utility.ZERO)==1;
}
catch(Exception e)
{
throw handleException(e);
}
}
public void chiudiProceduraIncarico(ActionContext actioncontext) throws BusinessProcessException {
int crudStatus = getModel().getCrudStatus();
try
{
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) getModel();
if ( procedura.getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_INSERIMENTO_INCARICO)==1 )
setModel(actioncontext, ((IncarichiProceduraComponentSession)createComponentSession()).chiudiProceduraIncaricoPubblicata(actioncontext.getUserContext(),getModel()));
else // stato = STORNATA
throw new it.cnr.jada.comp.ApplicationException( "Lo stato della procedura di conferimento incarico non ne consente lo storno");
} catch(Exception e) {
getModel().setCrudStatus(crudStatus);
throw handleException(e);
}
}
public boolean isAnnullaDefinitivoButtonHidden() {
return Optional.ofNullable(getModel())
.filter(Incarichi_proceduraBulk.class::isInstance)
.map(Incarichi_proceduraBulk.class::cast)
.map(incarichi_proceduraBulk -> {
return !incarichi_proceduraBulk.isProceduraDefinitiva() ||
!isUoEnte() ||
Optional.ofNullable(incarichi_proceduraBulk.getNr_contratti())
.map(numeroContratti -> numeroContratti.compareTo(1) == 1)
.orElse(false);
})
.orElse(true);
}
public boolean isAnnullaDefinitivoButtonEnabled() {
return !isAnnullaDefinitivoButtonHidden() &&
((Incarichi_proceduraBulk) getModel()).isProceduraDefinitiva();
}
public void annullaDefinitivo(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
try {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)getModel();
if (procedura.getIncarichi_repertorioValidiColl().size()==1)
Utility.createIncarichiRepertorioComponentSession().annullaDefinitivo(context.getUserContext(), (OggettoBulk)procedura.getIncarichi_repertorioValidiColl().get(0));
setModel(context, (Incarichi_proceduraBulk)createComponentSession().inizializzaBulkPerModifica(context.getUserContext(), getModel()));
// ((IncarichiProceduraComponentSession)createComponentSession()).archiviaAllegati(context.getUserContext(), (Incarichi_proceduraBulk)getModel());
}
catch(Exception e)
{
throw handleException(e);
}
}
public void annullaDefinitivoContratto(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
try {
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)getIncarichiColl().getModel();
//quindi il contratto selezionato
if (incarico != null)
Utility.createIncarichiRepertorioComponentSession().annullaDefinitivo(context.getUserContext(), (OggettoBulk)incarico);
setModel(context, createComponentSession().inizializzaBulkPerModifica(context.getUserContext(), getModel()));
}
catch(Exception e)
{
throw handleException(e);
}
}
public boolean isDeleteButtonEnabled() {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) getModel();
return super.isDeleteButtonEnabled() &&
Optional.ofNullable(procedura)
.map(incarichi_proceduraBulk -> Optional.ofNullable(incarichi_proceduraBulk.getFaseProcesso()).orElse(-1))
.map(faseProcesso -> faseProcesso.compareTo(Incarichi_proceduraBulk.FASE_PUBBLICAZIONE)==-1)
.orElse(false);
}
public boolean isDeleteButtonHidden() {
return super.isDeleteButtonHidden() || isCreaERiportaNuovoIncarico();
}
public boolean isNewButtonHidden() {
return super.isNewButtonHidden() || isCreaERiportaNuovoIncarico();
}
public boolean isSearchButtonHidden() {
return super.isSearchButtonHidden() || isCreaERiportaNuovoIncarico();
}
public boolean isFreeSearchButtonHidden() {
return super.isFreeSearchButtonHidden() || isCreaERiportaNuovoIncarico();
}
public boolean isChiudiButtonEnabled() {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) getModel();
return super.isDeleteButtonEnabled()&&
!procedura.isProceduraScaduta()&&
(!procedura.isProceduraDefinitiva()||(isUoEnte()||isUtenteAbilitatoFunzioniIncarichi()));
}
public boolean isChiudiButtonHidden() {
return !isEditing()||!isContrattoEnable()||
isDeleteButtonEnabled();
}
public boolean isVerificaFormatoBando() {
return verificaFormatoBando;
}
public void setVerificaFormatoBando(boolean verificaFormatoBando) {
this.verificaFormatoBando = verificaFormatoBando;
}
public OggettoBulk initializeModelForSearch(ActionContext actioncontext, OggettoBulk oggettobulk) throws BusinessProcessException {
if (this.isBorseStudioBP() || this.isAssegniRicercaBP()) {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)oggettobulk;
//metodo per riempire immediatamente la Procedura Amministrativa
try {
RemoteIterator ri = this.find(actioncontext,null,new Procedure_amministrativeBulk("INC3"),procedura,"procedura_amministrativa");
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(actioncontext, ri);
if (ri != null && ri.countElements() == 1)
procedura = this.initializeProcedura_amministrativa(actioncontext, procedura, (Procedure_amministrativeBulk)ri.nextElement());
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(actioncontext, ri);
}catch(java.rmi.RemoteException ex){
throw handleException(ex);
}
}
return super.initializeModelForSearch(actioncontext, oggettobulk);
}
public SimpleDetailCRUDController getCompensiAllegati() {
return compensiAllegati;
}
public boolean isTabCompensiProceduraAnnoEnabled() {
return (getModel()!=null &&
getRipartizionePerAnno()!=null &&
getRipartizionePerAnno().getModel() != null &&
!((Incarichi_procedura_annoBulk)getRipartizionePerAnno().getModel()).getCompensiColl().isEmpty());
}
public boolean isTabCompensiIncaricoAnnoEnabled() {
return (getModel()!=null &&
getRipartizioneIncarichiPerAnno()!=null &&
getRipartizioneIncarichiPerAnno().getModel() != null &&
!((Incarichi_repertorio_annoBulk)getRipartizioneIncarichiPerAnno().getModel()).getCompensiColl().isEmpty());
}
public boolean isUtenteAbilitatoFunzioniIncarichi() {
return utenteAbilitatoFunzioniIncarichi;
}
private void setUtenteAbilitatoFunzioniIncarichi(boolean utenteAbilitatoFunzioniIncarichi) {
this.utenteAbilitatoFunzioniIncarichi = utenteAbilitatoFunzioniIncarichi;
}
public SimpleDetailCRUDController getIncarichiColl() {
return incarichiColl;
}
public void create(ActionContext actioncontext) throws BusinessProcessException {
super.create(actioncontext);
try {
if (isUoEnte()){
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)getModel();
StringBuffer messaggioAnno = new StringBuffer();
for (Iterator i = ((Incarichi_proceduraBulk)getModel()).getIncarichi_procedura_annoColl().iterator();i.hasNext();){
Incarichi_procedura_annoBulk procAnno = i.next();
Repertorio_limitiBulk repertorio = Utility.createRepertorioLimitiComponentSession().getRepertorioLimiti(actioncontext.getUserContext(),
procAnno.getEsercizio_limite(),
procedura.getCd_tipo_incarico(),
procedura.getCd_tipo_attivita(),
procedura.getTipo_natura());
if (repertorio.getImporto_residuo().compareTo(Utility.ZERO)==-1)
messaggioAnno.append("\n --> Esercizio: "+procAnno.getEsercizio_limite()+" - Limite superato di: " + new it.cnr.contab.util.EuroFormat().format(repertorio.getImporto_residuo().abs()));
}
if (messaggioAnno.length() != 0) {
setMessage("Salvataggio eseguito in modo corretto.\n\n"+
"\nI limiti dei seguenti esercizi risultano essere superati: "+messaggioAnno);
}
}
}
catch(Exception e)
{
throw handleException(e);
}
}
public void update(ActionContext actioncontext) throws BusinessProcessException {
super.update(actioncontext);
try {
if (isUoEnte()){
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)getModel();
StringBuffer messaggioAnno = new StringBuffer();
for (Iterator i = ((Incarichi_proceduraBulk)getModel()).getIncarichi_procedura_annoColl().iterator();i.hasNext();){
Incarichi_procedura_annoBulk procAnno = i.next();
Repertorio_limitiBulk repertorio = Utility.createRepertorioLimitiComponentSession().getRepertorioLimiti(actioncontext.getUserContext(),
procAnno.getEsercizio_limite(),
procedura.getCd_tipo_incarico(),
procedura.getCd_tipo_attivita(),
procedura.getTipo_natura());
if (repertorio.getImporto_residuo().compareTo(Utility.ZERO)==-1)
messaggioAnno.append("\n --> Esercizio: "+procAnno.getEsercizio_limite()+" - Limite superato di: " + new it.cnr.contab.util.EuroFormat().format(repertorio.getImporto_residuo().abs()));
}
if (messaggioAnno.length() != 0) {
setMessage("Salvataggio eseguito in modo corretto.\n\n"+
"I limiti dei seguenti esercizi risultano essere superati: \n"+messaggioAnno);
}
}
}
catch(Exception e)
{
throw handleException(e);
}
}
public SimpleDetailCRUDController getCompensiAllegatiIncarico() {
return compensiAllegatiIncarico;
}
public final SimpleDetailCRUDController getRipartizioneIncarichiPerAnno() {
return ripartizioneIncarichiPerAnno;
}
public SimpleDetailCRUDController getCrudIncarichiArchivioAllegati() {
return crudIncarichiArchivioAllegati;
}
public void setCrudIncarichiArchivioAllegati(SimpleDetailCRUDController controller) {
crudIncarichiArchivioAllegati = controller;
}
private void allineaDatiProceduraIncarichi(UserContext userContext, Incarichi_proceduraBulk procedura) throws it.cnr.jada.action.BusinessProcessException {
if ( procedura.getIncarichi_repertorioColl().isEmpty() )
return;
if (procedura.getNr_contratti().compareTo(1)==0){
if (procedura.getIncarichi_repertorioColl().size()>1)
throw new BusinessProcessException( "Attenzione! Risultano collegati più contratti alla procedura che ne prevede uno solo.");
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)procedura.getIncarichi_repertorioColl().get(0);
for (Iterator i=incarico.getIncarichi_repertorio_annoColl().iterator();i.hasNext();){
Incarichi_repertorio_annoBulk incarico_anno = i.next();
if (procedura.getNr_contratti_iniziale()==null || procedura.getNr_contratti_iniziale().compareTo(1)!=1){
incarico_anno.setImporto_iniziale(Utility.ZERO);
}
incarico_anno.setImporto_complessivo(Utility.ZERO);
incarico_anno.setToBeUpdated();
}
boolean aggiornato = false;
for (Iterator i=procedura.getIncarichi_procedura_annoColl().iterator();i.hasNext();){
Incarichi_procedura_annoBulk procedura_anno = i.next();
aggiornato = false;
for (Iterator y=incarico.getIncarichi_repertorio_annoColl().iterator();y.hasNext();){
Incarichi_repertorio_annoBulk incarico_anno = y.next();
if (incarico_anno.getEsercizio_limite()!=null && incarico_anno.getEsercizio_limite().equals(procedura_anno.getEsercizio_limite())){
if (procedura.getNr_contratti_iniziale()==null || procedura.getNr_contratti_iniziale().compareTo(1)!=1){
incarico_anno.setImporto_iniziale(procedura_anno.getImporto_iniziale());
}
incarico_anno.setImporto_complessivo(procedura_anno.getImporto_complessivo());
incarico_anno.setToBeUpdated();
aggiornato = true;
break;
}
}
if (!aggiornato){
Incarichi_repertorio_annoBulk incarico_anno = new Incarichi_repertorio_annoBulk();
incarico.addToIncarichi_repertorio_annoColl(incarico_anno);
incarico_anno.setEsercizio_limite(procedura_anno.getEsercizio_limite());
if (procedura.getNr_contratti_iniziale()==null || procedura.getNr_contratti_iniziale().compareTo(1)!=1){
incarico_anno.setImporto_iniziale(procedura_anno.getImporto_iniziale());
}
incarico_anno.setImporto_complessivo(procedura_anno.getImporto_complessivo());
incarico_anno.setToBeCreated();
}
}
List incaricoAnnoListToBeDeleted = new ArrayList();
for (Iterator i=incarico.getIncarichi_repertorio_annoColl().iterator();i.hasNext();){
Incarichi_repertorio_annoBulk incarico_anno = (Incarichi_repertorio_annoBulk)i.next();
if (incarico_anno.getImporto_iniziale().compareTo(Utility.ZERO)==0 && incarico_anno.getImporto_complessivo().compareTo(Utility.ZERO)==0) {
boolean trovatoAnno=false;
for (Iterator y=procedura.getIncarichi_procedura_annoColl().iterator();y.hasNext();) {
Incarichi_procedura_annoBulk proceduraAnno = y.next();
if (incarico_anno.getEsercizio_limite()!=null &&
proceduraAnno.getEsercizio_limite().compareTo(incarico_anno.getEsercizio_limite())==0)
trovatoAnno=true;
}
if (!trovatoAnno) {
incarico_anno.setToBeDeleted();
incaricoAnnoListToBeDeleted.add(incarico_anno);
}
}
}
for (Incarichi_repertorio_annoBulk incaricoAnnoToBeDelete : incaricoAnnoListToBeDeleted)
incarico.removeFromIncarichi_repertorio_annoColl(incarico.getIncarichi_repertorio_annoColl().indexOf(incaricoAnnoToBeDelete));
if (incarico.getIncarichi_repertorio_annoColl().isEmpty()) {
Incarichi_repertorio_annoBulk incarico_anno = new Incarichi_repertorio_annoBulk();
incarico.addToIncarichi_repertorio_annoColl(incarico_anno);
incarico_anno.setEsercizio_limite(procedura.getEsercizio());
incarico_anno.setImporto_iniziale(Utility.ZERO);
incarico_anno.setImporto_complessivo(Utility.ZERO);
incarico_anno.setToBeCreated();
}
//AGGIORNO ANCHE GLI IMPORTI SULLA TESTATA DELL'INCARICO
incarico.setImporto_lordo(procedura.getImporto_lordo());
incarico.setImporto_complessivo(procedura.getImporto_complessivo());
incarico.setToBeUpdated();
}
else if (procedura.getNr_contratti().compareTo(1)==1)
{
BulkList procAnnoNewList = new BulkList();
boolean trovato = false;
boolean allContrattiInseriti = procedura.getNr_contratti().compareTo(procedura.getIncarichi_repertorioValidiColl().size())==0;
int nrContrattidaInserire = procedura.getNr_contratti() - procedura.getIncarichi_repertorioValidiColl().size();
/*
* Carico una tabella di appoggio in cui, leggendo gli importi per anno degli incarichi, li sommo e
* ricostruisco la struttura di ripartizione degli importi per anno a livello di procedura
*/
for (Iterator i=procedura.getIncarichi_repertorioColl().iterator();i.hasNext();){
Incarichi_repertorioBulk incarico = i.next();
for (Iterator y=incarico.getIncarichi_repertorio_annoColl().iterator();y.hasNext();){
Incarichi_repertorio_annoBulk incarico_anno = y.next();
trovato = false;
for (Iterator z=procAnnoNewList.iterator();z.hasNext();){
Incarichi_procedura_annoBulk proceduraAnnoAgg = z.next();
if (proceduraAnnoAgg.getEsercizio_limite().equals(incarico_anno.getEsercizio_limite())){
proceduraAnnoAgg.setImporto_complessivo(proceduraAnnoAgg.getImporto_complessivo().add(incarico_anno.getImporto_complessivo()));
trovato = true;
break;
}
}
if (!trovato){
Incarichi_procedura_annoBulk proceduraAnnoAgg = new Incarichi_procedura_annoBulk();
proceduraAnnoAgg.setEsercizio_limite(incarico_anno.getEsercizio_limite());
proceduraAnnoAgg.setImporto_complessivo(incarico_anno.getImporto_complessivo());
procAnnoNewList.add(proceduraAnnoAgg);
}
}
}
/*
* Nel caso in cui non tutti i contratti sono stati inseriti carico le quote per anno dei contratti ancora
* da inserire calcolando l'importo per anno del singolo contratto (importo iniziale/nr contratti) e moltiplicandolo per
* i nr contratti ancora da attribuire.
*/
for (Iterator i=procedura.getIncarichi_procedura_annoColl().iterator();i.hasNext();){
Incarichi_procedura_annoBulk proceduraAnno = i.next();
if ( allContrattiInseriti ) {
proceduraAnno.setImporto_complessivo(Utility.ZERO);
if (procedura.getDt_pubblicazione()==null)
proceduraAnno.setImporto_iniziale(Utility.ZERO);
proceduraAnno.setToBeUpdated();
}
else if (proceduraAnno.getImporto_iniziale().compareTo(BigDecimal.ZERO)==1){
trovato = false;
for (Iterator y=procAnnoNewList.iterator();y.hasNext();){
Incarichi_procedura_annoBulk proceduraAnnoAgg = y.next();
if (proceduraAnnoAgg.getEsercizio_limite().equals(proceduraAnno.getEsercizio_limite())){
proceduraAnnoAgg.setImporto_complessivo(proceduraAnnoAgg.getImporto_complessivo().add(proceduraAnno.getImporto_iniziale().multiply(new BigDecimal(nrContrattidaInserire)).divide(new BigDecimal(procedura.getNr_contratti()),2,BigDecimal.ROUND_HALF_EVEN)));
trovato=true;
break;
}
}
if (!trovato){
Incarichi_procedura_annoBulk proceduraAnnoAgg = new Incarichi_procedura_annoBulk();
proceduraAnnoAgg.setEsercizio_limite(proceduraAnno.getEsercizio_limite());
proceduraAnnoAgg.setImporto_complessivo(proceduraAnno.getImporto_iniziale().multiply(new BigDecimal(nrContrattidaInserire)).divide(new BigDecimal(procedura.getNr_contratti()),2,BigDecimal.ROUND_HALF_EVEN));
procAnnoNewList.add(proceduraAnnoAgg);
}
}
}
/*
* Scarico la tabella ricostruita in quella effettiva.
*/
for (Iterator i=procAnnoNewList.iterator();i.hasNext();){
Incarichi_procedura_annoBulk proceduraAnnoAgg = i.next();
trovato = false;
for (Iterator y=procedura.getIncarichi_procedura_annoColl().iterator();y.hasNext();){
Incarichi_procedura_annoBulk proceduraAnno = y.next();
if (proceduraAnno.getEsercizio_limite().equals(proceduraAnnoAgg.getEsercizio_limite())){
if (proceduraAnno.getImporto_complessivo().compareTo(proceduraAnnoAgg.getImporto_complessivo())!=0) {
proceduraAnno.setImporto_complessivo(proceduraAnnoAgg.getImporto_complessivo());
proceduraAnno.setToBeUpdated();
}
trovato = true;
break;
}
}
if (!trovato){
Incarichi_procedura_annoBulk proceduraAnno = new Incarichi_procedura_annoBulk();
procedura.addToIncarichi_procedura_annoColl(proceduraAnno);
proceduraAnno.setEsercizio_limite(proceduraAnnoAgg.getEsercizio_limite());
proceduraAnno.setImporto_iniziale(Utility.ZERO);
proceduraAnno.setImporto_complessivo(proceduraAnnoAgg.getImporto_complessivo());
proceduraAnno.caricaAnniList(userContext);
proceduraAnno.setToBeCreated();
}
}
/*
* Azzero gli importi per i record eliminati.
*/
BulkList deleteList = new BulkList();
for (Iterator i=procedura.getIncarichi_procedura_annoColl().iterator();i.hasNext();){
Incarichi_procedura_annoBulk proceduraAnno = i.next();
trovato = false;
for (Iterator y=procAnnoNewList.iterator();y.hasNext();){
if ((y.next()).getEsercizio_limite().equals(proceduraAnno.getEsercizio_limite())){
trovato=true;
break;
}
}
if (!trovato) {
proceduraAnno.setImporto_complessivo(Utility.ZERO);
proceduraAnno.setToBeUpdated();
if (proceduraAnno.getImporto_iniziale().compareTo(Utility.ZERO)==0) {
proceduraAnno.setToBeDeleted();
deleteList.add(proceduraAnno);
}
}
}
for (Iterator i=deleteList.iterator();i.hasNext();){
procedura.removeFromIncarichi_procedura_annoColl(procedura.getIncarichi_procedura_annoColl().indexOf(i.next()));
}
}
}
public void concludiProceduraIncarico(ActionContext actioncontext) throws BusinessProcessException {
int crudStatus = getModel().getCrudStatus();
try
{
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) getModel();
if ( procedura.getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_INSERIMENTO_INCARICO)==1 )
setModel(actioncontext, ((IncarichiProceduraComponentSession)createComponentSession()).concludiProceduraIncaricoPubblicata(actioncontext.getUserContext(),getModel()));
else // stato = STORNATA
throw new it.cnr.jada.comp.ApplicationException( "Lo stato dell'incarico non ne consente la conclusione");
} catch(Exception e) {
getModel().setCrudStatus(crudStatus);
throw handleException(e);
}
}
public boolean isConcludiProceduraButtonHidden() {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) getModel();
return !(isUoEnte()||isUtenteAbilitatoFunzioniIncarichi()) ||
isDeleteButtonEnabled() ||
procedura.isProceduraAnnullata() ||
procedura.isProceduraMultiIncarico() ||
procedura.getNr_contratti()==null ||
procedura.getNr_contratti().compareTo(procedura.getIncarichi_repertorioValidiColl().size())==0 ||
procedura.getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_PUBBLICAZIONE)!=1 ||
procedura.isProceduraScaduta();
}
public void concludiMonoIncarico(ActionContext actioncontext) throws BusinessProcessException {
int crudStatus = getModel().getCrudStatus();
try
{
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) getModel();
if (procedura.getNr_contratti().compareTo(1)!=0)
throw new it.cnr.jada.comp.ApplicationException( "Funzionalità consentita solo per procedure di conferimento mono-incarico.");
else if (procedura.getIncarichi_repertorioValidiColl().size()!=1)
throw new it.cnr.jada.comp.ApplicationException( "Funzionalità consentita solo per procedure di conferimento a cui risulta associato un solo incarico.");
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)procedura.getIncarichi_repertorioValidiColl().get(0);
if (!incarico.isIncaricoDefinitivo() && !incarico.isIncaricoInviatoCorteConti() &&
!(incarico.isIncaricoProvvisorio() && incarico.getFl_inviato_corte_conti() && incarico.getEsito_corte_conti()!=null))
throw new it.cnr.jada.comp.ApplicationException( "Funzionalità consentita solo per procedura di conferimento a cui risulta associato un solo incarico con stato \"Definitivo\" o \"Inviato alla Corte dei Conti\".");
Utility.createIncarichiRepertorioComponentSession().chiudiIncaricoPubblicato(actioncontext.getUserContext(), incarico);
procedura = (Incarichi_proceduraBulk)((IncarichiProceduraComponentSession)createComponentSession()).chiudiProceduraIncaricoPubblicata(actioncontext.getUserContext(), procedura);
setModel(actioncontext, procedura);
} catch(Exception e) {
getModel().setCrudStatus(crudStatus);
throw handleException(e);
}
}
public boolean isConcludiMonoIncaricoButtonHidden() {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk) getModel();
return !(isUoEnte()/*||isUtenteAbilitatoFunzioniIncarichi()*/) ||
isDeleteButtonEnabled() ||
procedura.isProceduraAnnullata() ||
procedura.isProceduraChiusa() ||
procedura.isProceduraInviataCorteConti() ||
procedura.getIncarichi_repertorioColl().isEmpty() ||
procedura.getNr_contratti() == null ||
procedura.getNr_contratti().compareTo(1)==1 ||
(procedura.getFaseProcesso().compareTo(Incarichi_proceduraBulk.FASE_INSERIMENTO_INCARICO)==1 &&
procedura.isProceduraScaduta());
}
public void concludiIncarico(ActionContext actioncontext) throws BusinessProcessException {
int crudStatus = getModel().getCrudStatus();
try {
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)getModel();
Incarichi_repertorioBulk incarico = (Incarichi_repertorioBulk)getIncarichiColl().getModel();
if (procedura.getNr_contratti().compareTo(1)!=1)
throw new it.cnr.jada.comp.ApplicationException( "Funzionalità consentita solo per procedure di conferimento multi-incarico.");
else if (procedura.getIncarichi_repertorioValidiColl().size()<=1)
throw new it.cnr.jada.comp.ApplicationException( "Funzionalità consentita solo per procedure di conferimento a cui risultano associati più incarichi.");
procedura = (Incarichi_proceduraBulk)((IncarichiProceduraComponentSession)createComponentSession()).concludiIncaricoPubblicato(actioncontext.getUserContext(), procedura, incarico);
procedura = (Incarichi_proceduraBulk)createComponentSession().inizializzaBulkPerModifica(actioncontext.getUserContext(), procedura);
setModel(actioncontext, procedura);
} catch(Exception e) {
getModel().setCrudStatus(crudStatus);
throw handleException(e);
}
}
public SimpleDetailCRUDController getCrudIncarichiVariazioni() {
return crudIncarichiVariazioni;
}
public void setCrudIncarichiVariazioni(SimpleDetailCRUDController controller) {
crudIncarichiVariazioni = controller;
}
private Date getDtLimiteVariazione() {
return dtLimiteVariazione;
}
private void setDtLimiteVariazione(Date data) {
dtLimiteVariazione = data;
}
public String getFieldTipoVariazione() {
if (this.getCrudIncarichiVariazioni().getModel()!=null) {
Incarichi_repertorio_varBulk incaricoVar = (Incarichi_repertorio_varBulk)this.getCrudIncarichiVariazioni().getModel();
if (isUoEnte() || incaricoVar.isNotNew())
return "tipo_variazioneForEnte";
if (incaricoVar.getIncarichi_repertorio()!=null &&
incaricoVar.getIncarichi_repertorio().getTipo_rapporto()!=null &&
incaricoVar.getIncarichi_repertorio().getTipo_rapporto().getFl_inquadramento().booleanValue() &&
getDtLimiteVariazione()!=null &&
incaricoVar.getIncarichi_repertorio().getDt_stipula()!=null &&
getDtLimiteVariazione().after(incaricoVar.getIncarichi_repertorio().getDt_stipula()) &&
incaricoVar.getIncarichi_repertorio().getDt_fine_validita()!=null &&
!getDtLimiteVariazione().after(incaricoVar.getIncarichi_repertorio().getDt_fine_validita()))
return "tipo_variazione"+(isAssegniRicercaBP()?"ForAssegniRicerca":"");
}
return "tipo_variazioneMinima"+(isAssegniRicercaBP()?"ForAssegniRicerca":"");
}
public void validaDataIntegrazioneIncarico(ActionContext actioncontext, Incarichi_repertorio_varBulk incaricoVar) throws ValidationException {
if (incaricoVar!=null && incaricoVar.isVariazioneIntegrazioneIncarico()) {
if (incaricoVar.getIncarichi_repertorio()!=null && incaricoVar.getDt_variazione()!=null){
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MM/yyyy");
if (incaricoVar.getIncarichi_repertorio().getDt_stipula()!=null && incaricoVar.getIncarichi_repertorio().getDt_stipula().after(incaricoVar.getDt_variazione()))
throw new ValidationException( "La data di stipula della variazione deve essere successiva o uguale alla data di stipula del contratto originale (" + sdf.format(incaricoVar.getIncarichi_repertorio().getDt_stipula())+").");
if (getDtLimiteVariazione()!=null && getDtLimiteVariazione().after(incaricoVar.getDt_variazione()))
throw new ValidationException( "La data di stipula della variazione deve essere successiva o uguale al " + sdf.format(getDtLimiteVariazione())+".");
if (incaricoVar.getIncarichi_repertorio().getDt_fine_validita()!=null) {
if (incaricoVar.getIncarichi_repertorio().getDt_fine_validita().before(incaricoVar.getDt_variazione()))
throw new ValidationException( "La data di stipula della variazione deve essere inferiore o uguale alla data di fine validita' dell'incarico (" + sdf.format(incaricoVar.getIncarichi_repertorio().getDt_fine_validita())+").");
}
}
}
}
public void salvaDefinitivoVariazioneContratto(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
Incarichi_repertorio_varBulk incaricoVar = (Incarichi_repertorio_varBulk)getCrudIncarichiVariazioni().getModel();
try {
if (incaricoVar.isProvvisorio()) {
if (incaricoVar.isVariazioneIntegrazioneIncarico()) {
if (incaricoVar.getDt_variazione()==null)
throw new it.cnr.jada.comp.ApplicationException("Non \350 possibile effettuare l'operazione perchè non risulta inserita la data di stipula della variazione del contratto.");
else if (!incaricoVar.getIncarichi_repertorio().getIncarichi_procedura().isUtenteCollegatoSuperUtente()){
Incarichi_parametriBulk parametri = ((IncarichiProceduraComponentSession)createComponentSession()).getIncarichiParametri(context.getUserContext(), incaricoVar.getIncarichi_repertorio().getIncarichi_procedura());
if ((parametri==null || parametri.getLimite_dt_stipula()==null) && DateUtils.daysBetweenDates(incaricoVar.getDt_variazione(), EJBCommonServices.getServerDate())>5)
throw new it.cnr.jada.comp.ApplicationException("Non \350 possibile effettuare l'operazione perchè dalla data di stipula della variazione del contratto risultano trascorsi piu' di 5 giorni.");
else if (parametri!=null && parametri.getLimite_dt_stipula()!=null && parametri.getLimite_dt_stipula().equals("Y")) {
Integer limite = new Integer(0);
if (parametri.getGiorni_limite_dt_stipula()!=null)
limite = parametri.getGiorni_limite_dt_stipula();
if (DateUtils.daysBetweenDates(incaricoVar.getDt_variazione(), EJBCommonServices.getServerDate())>limite.intValue())
throw new it.cnr.jada.comp.ApplicationException("Non \350 possibile effettuare l'operazione perchè dalla data di stipula della variazione del contratto risultano trascorsi piu' di "+limite.toString()+" giorni.");
}
}
}
incaricoVar.setStato(Incarichi_archivioBulk.STATO_DEFINITIVO);
incaricoVar.setToBeUpdated();
}
save(context);
}
catch(Exception e)
{
incaricoVar.setStato(Incarichi_archivioBulk.STATO_PROVVISORIO);
throw handleException(e);
}
}
public boolean isSendEmailCdsButtonHidden() {
return true;
// return !(isUoEnte()) && !isUtenteAbilitatoInvioMail();
}
public boolean isSbloccaProceduraButtonHidden() {
return true;
// return !(isUoEnte()) && !isUtenteAbilitatoSbloccoProcedura();
}
public boolean isMergeCMISButtonHidden() {
return !isUoEnte() || !isSuperUtente() ||
!isEditing() ||getModel()==null;
}
public Incarichi_parametriBulk getIncarichiParametri(UserContext userContext, Incarichi_proceduraBulk procedura) throws it.cnr.jada.action.BusinessProcessException {
if (!procedura.isEqualsFieldParameter()) {
try{
procedura.initIncarichiParametri(((IncarichiProceduraComponentSession)createComponentSession()).getIncarichiParametri(userContext, procedura));
} catch(Exception e) {
throw handleException(e);
}
}
return procedura.getIncarichiParametri();
}
public Incarichi_parametriBulk getIncarichiParametri() throws it.cnr.jada.action.BusinessProcessException {
return ((Incarichi_proceduraBulk)this.getModel()).getIncarichiParametri();
}
public SimpleDetailCRUDController getCrudAssUO() {
return crudAssUO;
}
public void setCrudAssUO(SimpleDetailCRUDController controller) {
crudAssUO = controller;
}
public SimpleDetailCRUDController getCrudAssUODisponibili() {
return crudAssUODisponibili;
}
public void setCrudAssUODisponibili(SimpleDetailCRUDController controller) {
crudAssUODisponibili = controller;
}
public void controllaCancellazioneAssociazioneUo(ActionContext context,Ass_incarico_uoBulk ass_incarico_uo) throws it.cnr.jada.action.BusinessProcessException{
try {
Utility.createIncarichiRepertorioComponentSession().controllaCancellazioneAssociazioneUo(context.getUserContext(), ass_incarico_uo);
}catch(it.cnr.jada.comp.ComponentException ex){
throw handleException(ex);
}catch(java.rmi.RemoteException ex){
throw handleException(ex);
}
}
public String[][] getTabsMultiIncarico() {
TreeMap hash = new TreeMap();
int i=0;
hash.put(i++, new String[]{"tabProceduraContrattoTestata", "Terzo", "/incarichi00/tab_incarichi_procedura_contratto_testata.jsp" });
Incarichi_repertorioBulk incarico=null;
if (getIncarichiColl()!=null)
incarico = (Incarichi_repertorioBulk)getIncarichiColl().getModel();
if (incarico==null || incarico.isUoAbilitata(getUoSrivania()) || incarico.getIncarichi_procedura().isUtenteCollegatoUoEnte() ||
incarico.getIncarichi_procedura().isUtenteCollegatoSuperUtente()) {
hash.put(i++, new String[]{"tabProceduraContrattoAnno", "Importo per anno", "/incarichi00/tab_incarichi_procedura_contratto_anno.jsp" });
hash.put(i++, new String[]{"tabProceduraContrattoAllegati", "Allegati", "/incarichi00/tab_incarichi_procedura_contratto_allegati.jsp" });
if (incarico!=null) {
hash.put(i++, new String[]{"tabProceduraContrattoRapporti","Dichiarazione Contraente","/incarichi00/tab_incarichi_procedura_rapporti.jsp" });
if (incarico.isIncaricoDefinitivo()||!incarico.getIncarichi_repertorio_varColl().isEmpty())
hash.put(i++, new String[]{"tabProceduraContrattoVariazioni","Variazioni","/incarichi00/tab_incarichi_procedura_variazioni.jsp" });
if (incarico.getIncarichi_procedura().isUtenteCollegatoSuperUtente())
hash.put(i++, new String[]{"tabProceduraContrattoAssUo","UO","/incarichi00/tab_incarichi_procedura_ass_uo.jsp" });
}
}
String[][] tabs = new String[i][3];
for (int j = 0; j < i; j++) {
tabs[j]=new String[]{hash.get(j)[0],hash.get(j)[1],hash.get(j)[2]};
}
return tabs;
}
public String[][] getTabsDichiarazioneContraente() {
TreeMap hash = new TreeMap();
int i=0;
hash.put(i++, new String[]{"tabProceduraRapportiAnno", "Info", "/incarichi00/tab_incarichi_procedura_rapporti_anno.jsp" });
hash.put(i++, new String[]{"tabProceduraRapportiDett", "Dettaglio Rapporti", "/incarichi00/tab_incarichi_procedura_rapporti_dett.jsp" });
String[][] tabs = new String[i][3];
for (int j = 0; j < i; j++) {
tabs[j]=new String[]{hash.get(j)[0],hash.get(j)[1],hash.get(j)[2]};
}
return tabs;
}
public SimpleDetailCRUDController getCrudNote() {
return crudNote;
}
public void setCrudNote(SimpleDetailCRUDController crudNote) {
this.crudNote = crudNote;
}
public SimpleDetailCRUDController getIncarichiRappColl() {
return incarichiRappColl;
}
public void setIncarichiRappColl(SimpleDetailCRUDController incarichiRappColl) {
this.incarichiRappColl = incarichiRappColl;
}
public SimpleDetailCRUDController getIncarichiRappDetColl() {
return incarichiRappDetColl;
}
public void setIncarichiRappDetColl(SimpleDetailCRUDController incarichiRappDetColl) {
this.incarichiRappDetColl = incarichiRappDetColl;
}
public void validateSearchProcedura_amministrativa(ActionContext context, Incarichi_proceduraBulk procedura, Procedure_amministrativeBulk procamm) throws ValidationException {
if (procedura != null && procedura.getNr_contratti()!=null &&procedura.getNr_contratti().compareTo(new Integer(1))==1) {
if (procamm != null &&
procamm.getIncarico_ric_giorni_pubbl() != null &&
procamm.getIncarico_ric_giorni_pubbl().compareTo(new Integer(0))==0)
throw new ValidationException( "Procedura Ammininistrativa non selezionabile per un processo che prevede l'attivazione di più contratti.");
}
if (procamm != null && procamm.isMeramenteOccasionaleRequired()) {
procedura.setFl_meramente_occasionale(Boolean.TRUE);
if (procedura.getTipo_incarico()!=null &&
procedura.getTipo_incarico().getTipoRapporto()!=null &&
procedura.getTipo_incarico().getTipoRapporto().getFl_inquadramento()!=null &&
procedura.getTipo_incarico().getTipoRapporto().getFl_inquadramento().booleanValue())
throw new ValidationException( "Procedura Ammininistrativa selezionabile solo per l'attivazione di contratti in favore di \"Collaboratori Occasionali\".");
}
}
public Incarichi_proceduraBulk initializeProcedura_amministrativa(ActionContext context, Incarichi_proceduraBulk procedura, Procedure_amministrativeBulk procamm) throws BusinessProcessException {
try {
validateSearchProcedura_amministrativa(context, procedura, procamm);
procedura.setProcedura_amministrativa(procamm);
if (procamm != null && !procamm.isMeramenteOccasionaleEnabled())
procedura.setFl_meramente_occasionale(Boolean.FALSE);
return procedura;
}
catch ( Exception e )
{
throw handleException( e ) ;
}
}
public Incarichi_proceduraBulk initializeFind_tipo_incarico(ActionContext context, Incarichi_proceduraBulk procedura, Tipo_incaricoBulk tipo_incarico) throws BusinessProcessException {
procedura.setTipo_incarico(tipo_incarico);
changeImportoLordo(context, procedura, Utility.nvl(procedura.getImporto_lordo()));
findTipiRapporto(context);
if (procedura.getFl_meramente_occasionale()!=null && procedura.getFl_meramente_occasionale().booleanValue()) {
if (!procedura.isProceduraForOccasionali())
procedura.setFl_meramente_occasionale(Boolean.FALSE);
}
return procedura;
}
public void validateTerzo(ActionContext context, Incarichi_repertorioBulk incarico, V_terzo_per_compensoBulk terzo) throws ValidationException {
if(terzo != null && terzo.getAnagrafico()!=null && terzo.getAnagrafico().getTitolo_studio()==null)
throw new ValidationException( "Terzo non selezionabile in quanto non risulta valorizzato il campo \"Titolo di studio\" in anagrafica.");
}
public Incarichi_repertorioBulk initializeTerzo(ActionContext context, Incarichi_repertorioBulk incarico, V_terzo_per_compensoBulk terzo) throws BusinessProcessException {
try {
validateTerzo(context, incarico, terzo);
if (incarico!=null){
V_terzo_per_compensoBulk v_terzo = new V_terzo_per_compensoBulk();
v_terzo.setTerzo(new TerzoBulk());
incarico.setV_terzo(v_terzo);
incarico.setCd_terzo(null);
incarico.setTipiRapporto(null);
incarico.setTipo_rapporto(null);
Incarichi_proceduraBulk procedura = incarico.getIncarichi_procedura();
Incarichi_repertorioBulk incaricoClone = Utility.createIncarichiRepertorioComponentSession().completaTerzo(context.getUserContext(), incarico, terzo);
incaricoClone.setIncarichi_procedura(procedura);
return incaricoClone;
}
return incarico;
}
catch ( Exception e )
{
throw handleException( e ) ;
}
}
public void setCreaERiportaNuovoIncarico(boolean creaERiportaNuovoIncarico) {
this.creaERiportaNuovoIncarico = creaERiportaNuovoIncarico;
}
public boolean isCreaERiportaNuovoIncarico() {
return creaERiportaNuovoIncarico;
}
public boolean isIncarichiProceduraBP(){
return !isBorseStudioBP() && !isAssegniRicercaBP();
//this.getMapping()!=null && this.getMapping().getName()!=null &&
//(this.getMapping().getName().equals("CFGINCARICHIINCREPM")||this.getMapping().getName().equals("CRUDIncarichiProceduraBP"));
}
public boolean isBorseStudioBP(){
return this.getMapping()!=null && this.getMapping().getName()!=null && this.getMapping().getName().equals("CRUDBorseStudioProceduraBP");
}
public boolean isAssegniRicercaBP(){
return this.getMapping()!=null && this.getMapping().getName()!=null && this.getMapping().getName().equals("CRUDAssegniRicercaProceduraBP");
}
public String getFormTitle()
{
StringBuffer stringbuffer = null;
if (isBorseStudioBP())
stringbuffer = new StringBuffer("Procedura Conferimento Borse di Studio");
else if (isAssegniRicercaBP())
stringbuffer = new StringBuffer("Procedura Conferimento Assegni di Ricerca");
else
stringbuffer = new StringBuffer("Procedura Conferimento Incarichi");
stringbuffer.append(" - ");
switch(getStatus())
{
case 1: // '\001'
stringbuffer.append("Inserimento");
break;
case 2: // '\002'
stringbuffer.append("Modifica");
break;
case 0: // '\0'
stringbuffer.append("Ricerca");
break;
case 5: // '\005'
stringbuffer.append("Visualizza");
break;
}
return stringbuffer.toString();
}
public void scaricaFile(ActionContext actioncontext, String cmsNodeRef) throws IOException, ServletException, ApplicationException {
ContrattiService contrattiService = SpringUtil.getBean(ContrattiService.class);
StorageObject storageObject = contrattiService.getStorageObjectBykey(cmsNodeRef);
InputStream is = contrattiService.getResource(storageObject);
((HttpActionContext)actioncontext).getResponse().setContentLength(storageObject.getPropertyValue(StoragePropertyNames.CONTENT_STREAM_LENGTH.value()).intValue());
((HttpActionContext)actioncontext).getResponse().setContentType(storageObject.getPropertyValue(StoragePropertyNames.CONTENT_STREAM_MIME_TYPE.value()));
OutputStream os = ((HttpActionContext)actioncontext).getResponse().getOutputStream();
((HttpActionContext)actioncontext).getResponse().setDateHeader("Expires", 0);
IOUtils.copyLarge(is, os);
}
public String getNomeAllegatoIncarico() {
return Optional.ofNullable(getCrudIncarichiArchivioAllegati())
.map(simpleDetailCRUDController -> simpleDetailCRUDController.getModel())
.filter(Incarichi_archivioBulk.class::isInstance)
.map(Incarichi_archivioBulk.class::cast)
.map(Incarichi_archivioBulk::getNomeAllegato)
.orElse(null);
}
public String getNomeAllegato() {
return Optional.ofNullable(getCrudIncarichiArchivioAllegati())
.map(simpleDetailCRUDController -> simpleDetailCRUDController.getModel())
.filter(Incarichi_archivioBulk.class::isInstance)
.map(Incarichi_archivioBulk.class::cast)
.map(Incarichi_archivioBulk::getNomeAllegato)
.orElse(null);
}
private void scaricaAllegato(ActionContext actioncontext, Incarichi_archivioBulk incarichi_archivioBulk) throws IOException {
ContrattiService storeService = SpringUtil.getBean(ContrattiService.class);
StorageObject storageObject = storeService.getStorageObjectBykey(incarichi_archivioBulk.getCms_node_ref());
InputStream is = storeService.getResource(incarichi_archivioBulk.getCms_node_ref());
((HttpActionContext) actioncontext).getResponse().setContentLength(
(storageObject.getPropertyValue(StoragePropertyNames.CONTENT_STREAM_LENGTH.value())).intValue()
);
((HttpActionContext) actioncontext).getResponse().setContentType(
(String) storageObject.getPropertyValue(StoragePropertyNames.CONTENT_STREAM_MIME_TYPE.value())
);
OutputStream os = ((HttpActionContext) actioncontext).getResponse().getOutputStream();
((HttpActionContext) actioncontext).getResponse().setDateHeader("Expires", 0);
byte[] buffer = new byte[((HttpActionContext) actioncontext).getResponse().getBufferSize()];
int buflength;
while ((buflength = is.read(buffer)) > 0) {
os.write(buffer, 0, buflength);
}
is.close();
os.flush();
}
public void scaricaAllegatoIncarico(ActionContext actioncontext) throws IOException, ServletException, ApplicationException {
final Incarichi_archivioBulk allegato = Optional.ofNullable(getCrudIncarichiArchivioAllegati())
.map(simpleDetailCRUDController -> simpleDetailCRUDController.getModel())
.filter(Incarichi_archivioBulk.class::isInstance)
.map(Incarichi_archivioBulk.class::cast)
.orElseThrow(() -> new ApplicationRuntimeException("Allegato non trovato!"));
scaricaAllegato(actioncontext, allegato);
}
public void scaricaAllegatoRapporto(ActionContext actioncontext) throws IOException, ServletException, ApplicationException {
final Incarichi_archivioBulk allegato = Optional.ofNullable(getIncarichiRappColl())
.map(simpleDetailCRUDController -> simpleDetailCRUDController.getModel())
.filter(Incarichi_repertorio_rappBulk.class::isInstance)
.map(Incarichi_repertorio_rappBulk.class::cast)
.orElseThrow(() -> new ApplicationRuntimeException("Allegato non trovato!"));
scaricaAllegato(actioncontext, allegato);
}
public void scaricaAllegatoVariazione(ActionContext actioncontext) throws IOException, ServletException, ApplicationException {
final Incarichi_archivioBulk allegato = Optional.ofNullable(getCrudIncarichiVariazioni())
.map(simpleDetailCRUDController -> simpleDetailCRUDController.getModel())
.filter(Incarichi_repertorio_varBulk.class::isInstance)
.map(Incarichi_repertorio_varBulk.class::cast)
.orElseThrow(() -> new ApplicationRuntimeException("Allegato non trovato!"));
scaricaAllegato(actioncontext, allegato);
}
public void scaricaAllegato(ActionContext actioncontext) throws IOException, ServletException, ApplicationException {
boolean multi_incarico = false;
Incarichi_proceduraBulk procedura = ((Incarichi_proceduraBulk)getModel());
if (procedura!=null && procedura.getNr_contratti()!=null && procedura.getNr_contratti().compareTo(new Integer(1))==1)
multi_incarico=true;
SimpleDetailCRUDController controller = multi_incarico?getCrudArchivioAllegati():getCrudArchivioAllegatiMI();
Incarichi_archivioBulk allegato;
// Recupero il valore (posizione) del record selezionato
int sel = controller.getSelection().getFocus();
/*
** Quando navigo la prima volta nella tab e non ci sono
** record selezionati, il valore restituito è -1.
** In questo caso imposto il valore a 0.
*/
if (sel == -1)
allegato = null;
else {
allegato = (Incarichi_archivioBulk)controller.getModel();
scaricaAllegato(actioncontext, allegato);
}
}
public void mergeWithCMIS(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException
{
try {
IncarichiProceduraComponentSession proceduraComponent = (IncarichiProceduraComponentSession)createComponentSession();
Incarichi_proceduraBulk procedura = (Incarichi_proceduraBulk)getModel();
if (procedura!=null && procedura.getEsercizio()!=null && procedura.getPg_procedura()!=null) {
List l = proceduraComponent.getIncarichiForMergeWithCMIS(context.getUserContext(), procedura.getEsercizio(), procedura.getPg_procedura());
int i=0;
for (Object object : l) {
i++;
Incarichi_proceduraBulk currProcedura = (Incarichi_proceduraBulk)object;
try{
List listError = proceduraComponent.mergeAllegatiWithCMIS(context.getUserContext(), (Incarichi_proceduraBulk)object);
if (listError.isEmpty()) {
this.setMessage("Operazione Effettuata. Non è stata riscontrato alcun disallineamento dei dati nella gestione documentale.");
logger.debug("MergeWithCMIS OK - Esercizio: "+procedura.getEsercizio()+" - Rec "+i+" di "+l.size()+" - Procedura: "+procedura.getEsercizio()+"/"+procedura.getPg_procedura());
} else {
for (String error : listError)
logger.debug(error);
this.setMessage("Operazione Effettuata. Sono stati riscontrati disallineamenti dei dati nella gestione documentale. Controllare il file incarichi.log.");
}
} catch (Exception e) {
logger.error("MergeWithCMIS ERRORE: Procedura: "+procedura.getEsercizio()+"/"+procedura.getPg_procedura(),e);
}
}
}
}
catch(Exception e)
{
throw handleException(e);
}
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy