Skip to content

Commit

Permalink
Aggiornamenti vari
Browse files Browse the repository at this point in the history
  • Loading branch information
raffaelepagano committed Apr 30, 2019
1 parent 6f2bdc0 commit d18ccbf
Show file tree
Hide file tree
Showing 22 changed files with 656 additions and 170 deletions.
Expand Up @@ -1931,8 +1931,10 @@ TRASPORTO_AEREO"/>
</column>
<column name="dt_inizio_old" remarks="Data inizio precedente alla rimodulazione del progetto." type="${date.type}"/>
<column name="dt_fine_old" remarks="Data fine precedente alla rimodulazione del progetto." type="${date.type}"/>
<column name="dt_proroga_old" remarks="Data proroga precedente alla rimodulazione del progetto." type="${date.type}"/>
<column name="dt_inizio" remarks="Data inizio rimodulato del progetto." type="${date.type}"/>
<column name="dt_fine" remarks="Data fine rimodulato del progetto." type="${date.type}"/>
<column name="dt_proroga" remarks="Data proroga rimodulato del progetto." type="${date.type}"/>
<column name="im_var_finanziato" remarks="Importo Variazione Spesa Finanziato rimodulato del progetto" type="numeric(15, 2)">
<constraints nullable="false"/>
</column>
Expand Down
@@ -1,25 +1,24 @@
package it.cnr.contab.progettiric00.action;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;
import java.util.Optional;

import it.cnr.contab.anagraf00.bp.CRUDAnagraficaBP;
import it.cnr.contab.anagraf00.bp.CRUDTerzoBP;
import it.cnr.contab.doccont00.bp.CRUDObbligazioneBP;
import it.cnr.contab.doccont00.bp.CRUDObbligazioneModificaBP;
import it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk;
import it.cnr.contab.progettiric00.bp.ProgettoAlberoBP;
import it.cnr.contab.progettiric00.bp.RimodulaProgettiRicercaBP;
import it.cnr.contab.progettiric00.bp.TestataProgettiRicercaBP;
import it.cnr.contab.progettiric00.core.bulk.ProgettoBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_other_fieldBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_piano_economicoBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_rimodulazioneBulk;
import it.cnr.contab.progettiric00.core.bulk.TipoFinanziamentoBulk;
import it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgBulk;
import it.cnr.contab.utenze00.bulk.CNRUserInfo;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.Forward;
import it.cnr.jada.action.HookForward;
import it.cnr.jada.bulk.BulkList;
import it.cnr.jada.util.action.CRUDBP;
import it.cnr.jada.util.action.FormField;
import it.cnr.jada.util.action.OptionBP;
Expand Down Expand Up @@ -225,6 +224,10 @@ public it.cnr.jada.action.Forward doBringBackSearchTipoFinanziamentoOf(ActionCon
progetto.getOtherField().setDtFine(null);
progetto.getOtherField().setDtProroga(null);
}
if (progetto.isPianoEconomicoRequired() && progetto.getOtherField().isStatoIniziale() && progetto.getDettagliPianoEconomicoTotale().isEmpty()) {
progetto.getOtherField().setImFinanziato(BigDecimal.ZERO);
progetto.getOtherField().setImCofinanziato(BigDecimal.ZERO);
}
return context.findDefaultForward();
}

Expand Down Expand Up @@ -529,8 +532,7 @@ public Forward doConfirmRimodula(ActionContext context,int option) {
if (option == OptionBP.YES_BUTTON) {
TestataProgettiRicercaBP bp= (TestataProgettiRicercaBP) getBusinessProcess(context);
String function = bp.isEditable() ? "M" : "V";
if (bp.isBringBack())
function += "R";
function += "R";

ProgettoBulk progetto = (ProgettoBulk)bp.getModel();

Expand All @@ -541,12 +543,33 @@ public Forward doConfirmRimodula(ActionContext context,int option) {
throw new it.cnr.jada.action.MessageToUser("Accesso non consentito alla mappa di rimodulazione progetti. Impossibile continuare.");

newbp = (RimodulaProgettiRicercaBP) context.getUserInfo().createBusinessProcess(context,"RimodulaProgettiRicercaBP",new Object[] { function, progetto});
newbp.setBringBack(true);
context.addHookForward("bringback", this, "doBringBackRimodula");
return context.addBusinessProcess(newbp);
}
} catch(Exception e) {
return handleException(context,e);
}
return context.findDefaultForward();
}
}

public Forward doBringBackRimodula(ActionContext context) {
try {
HookForward caller = (HookForward)context.getCaller();
Progetto_rimodulazioneBulk rim = (Progetto_rimodulazioneBulk)caller.getParameter("bringback");
TestataProgettiRicercaBP bp= (TestataProgettiRicercaBP) getBusinessProcess(context);
ProgettoBulk progetto = (ProgettoBulk) bp.getModel();
if (Optional.ofNullable(rim).map(Progetto_rimodulazioneBulk::isStatoApprovato).orElse(Boolean.TRUE)) {
bp.basicEdit(context, progetto,Boolean.TRUE);
} else {
List<Progetto_rimodulazioneBulk> listRimodulazioni = bp.createComponentSession().find(context.getUserContext(), Progetto_rimodulazioneBulk.class, "findRimodulazioni", context.getUserContext(), progetto.getPg_progetto());
progetto.setRimodulazioni(new BulkList<Progetto_rimodulazioneBulk>(listRimodulazioni));
}
return context.findDefaultForward();
} catch (Exception e) {
return handleException(context, e);
}
}

}

Expand Up @@ -190,7 +190,12 @@ public Forward doConfirmSalvaDefinitivo(ActionContext context,int option) {
{
RimodulaProgettiRicercaBP bp = (RimodulaProgettiRicercaBP)getBusinessProcess(context);
bp.salvaDefinitivo(context);
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Operazione eseguita con successo");
Progetto_rimodulazioneBulk rim = (Progetto_rimodulazioneBulk)bp.getModel();
if (rim.isStatoApprovato())
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Operazione eseguita con successo! La rimodulazione è stata posta "
+ "direttamente in stato approvato non essendo previste variazioni di bilancio a supporto!");
else
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Operazione eseguita con successo!");
}
return context.findDefaultForward();
}
Expand Down Expand Up @@ -262,6 +267,37 @@ public Forward doOnDtFineRimodulatoChange(ActionContext context) {
}
}

public Forward doOnDtProrogaRimodulatoChange(ActionContext context) {
RimodulaProgettiRicercaBP bp = (RimodulaProgettiRicercaBP)getBusinessProcess(context);
Optional<Progetto_rimodulazioneBulk> optRimodulazione = Optional.ofNullable(bp.getModel())
.filter(Progetto_rimodulazioneBulk.class::isInstance).map(Progetto_rimodulazioneBulk.class::cast);

Optional<Timestamp> optData = optRimodulazione.flatMap(el->Optional.ofNullable(el.getDtProrogaRimodulato()));

java.sql.Timestamp oldDate=null;
if (optData.isPresent())
oldDate = (java.sql.Timestamp)optData.get().clone();

try {
fillModel(context);
if (optRimodulazione.isPresent())
optRimodulazione.get().validaDateRimodulazione();
return context.findDefaultForward();
}
catch (Throwable ex) {
// In caso di errore ripropongo la data precedente
optRimodulazione.get().setDtProrogaRimodulato(oldDate);
try
{
return handleException(context, ex);
}
catch (Throwable e)
{
return handleException(context, e);
}
}
}

public Forward doOnImportoFinanziatoPpeACChange(ActionContext context) {
RimodulaProgettiRicercaBP bp = (RimodulaProgettiRicercaBP)getBusinessProcess(context);
Optional<Progetto_piano_economicoBulk> optPpe = Optional.ofNullable(bp.getCrudPianoEconomicoAnnoCorrente().getModel())
Expand Down
Expand Up @@ -347,24 +347,30 @@ public String[][] getTabsPianoEconomico() {

hash.put(i++, new String[]{ "tabProgettoPianoEconomicoSummary","Totali","/progettiric00/rimodula_progetto_piano_economico_summary.jsp" });

Progetto_rimodulazioneBulk progettoRimodulazione = (Progetto_rimodulazioneBulk)this.getModel();
ProgettoBulk progetto = progettoRimodulazione.getProgetto();
Optional<Progetto_rimodulazioneBulk> optProgettoRimodulazione = Optional.ofNullable(this.getModel()).filter(Progetto_rimodulazioneBulk.class::isInstance).map(Progetto_rimodulazioneBulk.class::cast);
Optional<ProgettoBulk> optProgetto = optProgettoRimodulazione.flatMap(el->Optional.ofNullable(el.getProgetto()));

Integer annoInizio = optProgettoRimodulazione.map(el->el.getAnnoInizioRimodulato())
.orElse(optProgetto.map(ProgettoBulk::getAnnoInizioOf).orElse(0));
Integer annoFine = optProgettoRimodulazione.map(el->el.getAnnoFineRimodulato())
.orElse(optProgetto.map(ProgettoBulk::getAnnoFineOf).orElse(9999));

boolean existAnnoCorrente = false;
if (progetto.getAnnoInizioOf() > progetto.getEsercizio() || progetto.getAnnoFineOf() < progetto.getEsercizio()) {
if (annoInizio > optProgetto.get().getEsercizio() || annoFine < optProgetto.get().getEsercizio()) {
//non sono nell'anno ma verifico se per caso non l'ho erronemanete caricato
if (progetto.getDettagliPianoEconomicoAnnoCorrente().size()>0)
if (optProgetto.get().getDettagliPianoEconomicoAnnoCorrente().size()>0)
existAnnoCorrente = true;
} else
existAnnoCorrente = true;

if (existAnnoCorrente)
hash.put(i++, new String[]{ "tabProgettoPianoEconomicoAnnoCorrente","Anno "+progetto.getEsercizio(),"/progettiric00/rimodula_progetto_piano_economico_anno_corrente.jsp" });
hash.put(i++, new String[]{ "tabProgettoPianoEconomicoAnnoCorrente","Anno "+optProgetto.get().getEsercizio(),"/progettiric00/rimodula_progetto_piano_economico_anno_corrente.jsp" });

if (!progetto.getAnnoInizioOf().equals(progetto.getEsercizio()) || !progetto.getAnnoFineOf().equals(progetto.getEsercizio()))
if (!annoInizio.equals(optProgetto.get().getEsercizio()) || !optProgetto.get().getAnnoFineOf().equals(optProgetto.get().getEsercizio()) ||
optProgettoRimodulazione.get().getDettagliPianoEconomicoAltriAnni().size()>0)
hash.put(i++, new String[]{ "tabProgettoPianoEconomicoAltriAnni","Altri Anni","/progettiric00/rimodula_progetto_piano_economico_altri_anni.jsp" });

if (!progettoRimodulazione.getVociMovimentateNonAssociate().isEmpty())
if (!optProgettoRimodulazione.get().getVociMovimentateNonAssociate().isEmpty())
hash.put(i++, new String[]{ "tabProgettoVociMovimentateNonAssociate","Voci Movimentate da Associare","/progettiric00/rimodula_progetto_piano_economico_voci_da_associare.jsp" });

String[][] tabs = new String[i][3];
Expand Down Expand Up @@ -527,6 +533,7 @@ private Progetto_rimodulazioneBulk rebuildRimodulazioneInCorso(ActionContext act
Optional.ofNullable(rimodulazione.getImVarCofinanziato()).ifPresent(el->rimodulazione.setImCofinanziatoRimodulato(rimodulazione.getImCofinanziatoRimodulato().add(el)));
Optional.ofNullable(rimodulazione.getDtInizio()).ifPresent(el->rimodulazione.setDtInizioRimodulato(el));
Optional.ofNullable(rimodulazione.getDtFine()).ifPresent(el->rimodulazione.setDtFineRimodulato(el));
Optional.ofNullable(rimodulazione.getDtProroga()).ifPresent(el->rimodulazione.setDtProrogaRimodulato(el));

//Aggiorno i dettagli presenti
rimodulazione.getAllDetailsProgettoPianoEconomico().stream()
Expand Down Expand Up @@ -658,6 +665,7 @@ private Progetto_rimodulazioneBulk rebuildRimodulazioneChiusa(ActionContext acti
rimodulazione.setImCofinanziatoRimodulato(progetto.getImCofinanziato().add(rimodulazione.getImVarCofinanziato()));
rimodulazione.setDtInizioRimodulato(Optional.ofNullable(rimodulazione.getDtInizio()).orElse(Optional.ofNullable(progetto.getOtherField()).map(Progetto_other_fieldBulk::getDtInizio).orElse(null)));
rimodulazione.setDtFineRimodulato(Optional.ofNullable(rimodulazione.getDtFine()).orElse(Optional.ofNullable(progetto.getOtherField()).map(Progetto_other_fieldBulk::getDtFine).orElse(null)));
rimodulazione.setDtProrogaRimodulato(Optional.ofNullable(rimodulazione.getDtProroga()).orElse(Optional.ofNullable(progetto.getOtherField()).map(Progetto_other_fieldBulk::getDtProroga).orElse(null)));

progetto.getDettagliPianoEconomicoTotale().stream()
.forEach(el->{
Expand Down
Expand Up @@ -2,6 +2,7 @@

import java.math.BigDecimal;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import java.util.TreeMap;
Expand All @@ -12,17 +13,19 @@
import it.cnr.contab.config00.bulk.Parametri_cnrBulk;
import it.cnr.contab.config00.bulk.Parametri_enteBulk;
import it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk;
import it.cnr.contab.config00.sto.bulk.CdrBulk;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
import it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk;
import it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk;
import it.cnr.contab.prevent01.bulk.Pdg_esercizioBulk;
import it.cnr.contab.prevent01.ejb.PdgAggregatoModuloComponentSession;
import it.cnr.contab.progettiric00.core.bulk.AllegatoProgettoBulk;
import it.cnr.contab.progettiric00.core.bulk.Ass_progetto_piaeco_voceBulk;
import it.cnr.contab.progettiric00.core.bulk.ProgettoBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_finanziatoreBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_other_fieldBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_partner_esternoBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_piano_economicoBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_rimodulazioneBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_uoBulk;
import it.cnr.contab.progettiric00.core.bulk.TipoFinanziamentoBulk;
import it.cnr.contab.progettiric00.core.bulk.V_saldi_voce_progettoBulk;
Expand Down Expand Up @@ -56,6 +59,7 @@ public class TestataProgettiRicercaBP extends AllegatiCRUDBP<AllegatoProgettoBul
private boolean flInformix = false;
private boolean flPrgPianoEconomico = false;
protected boolean isUoCdsCollegata = false;
private boolean isBilancioChiuso = false;
private Integer annoFromPianoEconomico;
private Unita_organizzativaBulk uoScrivania;

Expand Down Expand Up @@ -145,6 +149,9 @@ protected void init(Config config, ActionContext actioncontext) throws BusinessP
uoScrivania = (Unita_organizzativaBulk)Utility.createUnita_organizzativaComponentSession().findUOByCodice(actioncontext.getUserContext(), CNRUserContext.getCd_unita_organizzativa(actioncontext.getUserContext()));
isUoCdsCollegata = uoScrivania.getFl_uo_cds();

Pdg_esercizioBulk pdgEsercizio = Utility.createProgettoRicercaComponentSession().getPdgEsercizio(actioncontext.getUserContext());
isBilancioChiuso = Optional.ofNullable(pdgEsercizio).map(el->el.getStato().equals(Pdg_esercizioBulk.STATO_CHIUSURA_GESTIONALE_CDR)).orElse(Boolean.FALSE);

it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession configSession = (it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession", it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession.class);
BigDecimal annoFrom = configSession.getIm01(actioncontext.getUserContext(), new Integer(0), null, Configurazione_cnrBulk.PK_GESTIONE_PROGETTI, Configurazione_cnrBulk.SK_PROGETTO_PIANO_ECONOMICO);
if (Optional.ofNullable(annoFrom).isPresent())
Expand Down Expand Up @@ -442,7 +449,7 @@ public String[][] getTabs(HttpSession session) {
progetto.getCd_unita_organizzativa().equals(uo)))) {

if (this.isFlPrgPianoEconomico() &&
((progetto.isPianoEconomicoRequired() &&
((progetto.isPianoEconomicoRequired() && !isBilancioChiuso &&
Optional.ofNullable(progetto.getOtherField()).flatMap(el->Optional.ofNullable(el.getDtInizio())).isPresent() &&
Optional.ofNullable(progetto.getOtherField()).flatMap(el->Optional.ofNullable(el.getDtFine())).isPresent()) ||
(progetto.isDettagliPianoEconomicoPresenti() &&
Expand All @@ -457,7 +464,8 @@ public String[][] getTabs(HttpSession session) {
}
}

hash.put(i++, new String[]{"tabAllegati","Allegati","/util00/tab_allegati.jsp" });
if (!isSearching())
hash.put(i++, new String[]{"tabAllegati","Allegati","/util00/tab_allegati.jsp" });

String[][] tabs = new String[i][3];
for (int j = 0; j < i; j++) {
Expand Down Expand Up @@ -517,6 +525,20 @@ public OggettoBulk initializeModelForInsert(ActionContext actioncontext, Oggetto
return super.initializeModelForInsert(actioncontext, oggettobulk);
}

@Override
public OggettoBulk initializeModelForEdit(ActionContext actioncontext, OggettoBulk oggettobulk)
throws BusinessProcessException {
ProgettoBulk progetto = (ProgettoBulk)super.initializeModelForEdit(actioncontext, oggettobulk);
if (isBilancioChiuso &&
Optional.ofNullable(progetto.getOtherField()).filter(Progetto_other_fieldBulk::isStatoIniziale).isPresent() &&
!Optional.ofNullable(progetto.getOtherField()).flatMap(el->Optional.ofNullable(el.getImFinanziato())).isPresent() &&
!Optional.ofNullable(progetto.getOtherField()).flatMap(el->Optional.ofNullable(el.getImCofinanziato())).isPresent()) {
progetto.getOtherField().setImFinanziato(BigDecimal.ZERO);
progetto.getOtherField().setImCofinanziato(BigDecimal.ZERO);
}
return progetto;
}

@Override
public OggettoBulk initializeModelForSearch(ActionContext actioncontext, OggettoBulk oggettobulk)
throws BusinessProcessException {
Expand Down Expand Up @@ -804,7 +826,7 @@ private void validateStato(ActionContext context, Optional<ProgettoBulk> optProg
if (!optOtherField.map(Progetto_other_fieldBulk::getImCofinanziato).filter(el->!(el.compareTo(BigDecimal.ZERO)<0)).isPresent())
throw new ValidationException("Operazione non possibile! Indicare l'importo cofinanziato (valore maggiore o uguale a 0)!");

if (optProgetto.get().isPianoEconomicoRequired()) {
if (optProgetto.get().isPianoEconomicoRequired() && !isBilancioChiuso) {
if (!optProgetto.map(ProgettoBulk::getImTotale).filter(el->el.compareTo(BigDecimal.ZERO)>0).isPresent())
throw new ValidationException("Operazione non possibile! Indicare almeno un importo positivo tra quello finanziato e cofinanziato!");
if (!optProgetto.map(ProgettoBulk::isDettagliPianoEconomicoPresenti).orElse(Boolean.TRUE))
Expand Down Expand Up @@ -847,4 +869,10 @@ protected void completeAllegato(AllegatoProgettoBulk allegato) throws Applicatio
StorageObject storageObject = storeService.getStorageObjectBykey(allegato.getStorageKey());
allegato.setType(storageObject.getPropertyValue(StoragePropertyNames.BASE_TYPE_ID.value()));
}

public boolean isRODatiContabili() {
Optional<ProgettoBulk> optProgetto = Optional.ofNullable(this.getModel()).filter(ProgettoBulk.class::isInstance).map(ProgettoBulk.class::cast);
return !this.isSearching() && isBilancioChiuso &&
optProgetto.filter(ProgettoBulk::isPianoEconomicoRequired).isPresent();
}
}

0 comments on commit d18ccbf

Please sign in to comment.