Skip to content

Commit

Permalink
Aggiornamenti
Browse files Browse the repository at this point in the history
  • Loading branch information
raffaelepagano committed May 13, 2019
1 parent 7125d62 commit 1426109
Show file tree
Hide file tree
Showing 17 changed files with 430 additions and 50 deletions.
Expand Up @@ -1926,6 +1926,7 @@ TRASPORTO_AEREO"/>
<column name="pg_rimodulazione" remarks="Progressivo rimodulazione del progetto di ricerca" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="pg_gen_rimodulazione" remarks="Progressivo generale rimodulazione del progetto di ricerca" type="BIGINT"/>
<column name="stato" remarks="Stato della rimodulazione. P: Provvisorio - D: Definitivo - A: Approvato" type="VARCHAR(1)">
<constraints nullable="false"/>
</column>
Expand Down
Expand Up @@ -2,6 +2,7 @@

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

Expand Down Expand Up @@ -517,7 +518,20 @@ public Forward doRimodula(ActionContext context){
TestataProgettiRicercaBP bp = (TestataProgettiRicercaBP) getBusinessProcess(context);
bp.completeSearchTools(context, bp);
bp.validate(context);
return openConfirm(context, "Attenzione! Si vuole procedere alla rimodulazione del progetto?",

Optional<ProgettoBulk> optProgetto = Optional.ofNullable(bp.getModel())
.filter(ProgettoBulk.class::isInstance).map(ProgettoBulk.class::cast);

Optional<Progetto_rimodulazioneBulk> lastRim = optProgetto.get().getRimodulazioni().stream()
.filter(el->!el.isStatoRespinto())
.sorted(Comparator.comparing(Progetto_rimodulazioneBulk::getPg_rimodulazione).reversed())
.findFirst();

if (lastRim.filter(el->el.isStatoProvvisorio()||el.isStatoDefinitivo()).isPresent())
return openConfirm(context, "Attenzione! Si vuole accedere alla rimodulazione in corso del progetto?",
OptionBP.CONFIRM_YES_NO, "doConfirmRimodula");
else
return openConfirm(context, "Attenzione! Si vuole procedere alla rimodulazione del progetto?",
OptionBP.CONFIRM_YES_NO, "doConfirmRimodula");
}
catch(Throwable e)
Expand Down
Expand Up @@ -18,7 +18,7 @@
import it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome;
import it.cnr.contab.config00.sto.bulk.CdrBulk;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
import it.cnr.contab.progettiric00.core.bulk.AllegatoProgettoBulk;
import it.cnr.contab.progettiric00.core.bulk.AllegatoProgettoRimodulazioneBulk;
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_other_fieldBulk;
Expand Down Expand Up @@ -48,7 +48,7 @@
import it.cnr.si.spring.storage.StorageObject;
import it.cnr.si.spring.storage.config.StoragePropertyNames;

public class RimodulaProgettiRicercaBP extends AllegatiCRUDBP<AllegatoProgettoBulk, Progetto_rimodulazioneBulk> {
public class RimodulaProgettiRicercaBP extends AllegatiCRUDBP<AllegatoProgettoRimodulazioneBulk, Progetto_rimodulazioneBulk> {
private boolean flPrgPianoEconomico = false;
protected boolean isUoCdsCollegata = false;
private Integer annoFromPianoEconomico;
Expand Down Expand Up @@ -1163,15 +1163,15 @@ protected String getStorePath(Progetto_rimodulazioneBulk allegatoParentBulk, boo
}

@Override
protected Class<AllegatoProgettoBulk> getAllegatoClass() {
return AllegatoProgettoBulk.class;
protected Class<AllegatoProgettoRimodulazioneBulk> getAllegatoClass() {
return AllegatoProgettoRimodulazioneBulk.class;
}

@Override
protected void completeAllegato(AllegatoProgettoBulk allegato) throws ApplicationException {
protected void completeAllegato(AllegatoProgettoRimodulazioneBulk allegato) throws ApplicationException {
super.completeAllegato(allegato);
StorageObject storageObject = storeService.getStorageObjectBykey(allegato.getStorageKey());
allegato.setType(storageObject.getPropertyValue(StoragePropertyNames.BASE_TYPE_ID.value()));
allegato.setObjectType(storageObject.getPropertyValue(StoragePropertyNames.BASE_TYPE_ID.value()));
}

public void validaImportoFinanziatoRimodulato(ActionContext actioncontext, Optional<Progetto_piano_economicoBulk> optPpe) throws ValidationException {
Expand Down Expand Up @@ -1207,7 +1207,14 @@ public void validaImportoFinanziatoRimodulato(ActionContext actioncontext, Optio
.forEach(el->{
el.setImVarFinanziatoRimodulato(el.getSaldoSpesa().getDispAssestatoFinanziamento().negate());
});
} else {
} else if (optPpe.get().getImSpesaFinanziatoRimodulato().compareTo(optPpe.get().getIm_spesa_finanziato())==0) {
//Se l'importo non viene rimodulato rimetto a zero il valore delle variazioni stesse
optPpe.get().getVociBilancioAssociate().stream()
.filter(el->Elemento_voceHome.GESTIONE_SPESE.equals(el.getTi_gestione()))
.forEach(el->{
el.setImVarFinanziatoRimodulato(BigDecimal.ZERO);
});
} else {
//se è una sola voce collegata propongo la variazione
if (optPpe.get().getVociBilancioAssociate().stream()
.filter(el->Elemento_voceHome.GESTIONE_SPESE.equals(el.getTi_gestione()))
Expand All @@ -1216,8 +1223,13 @@ public void validaImportoFinanziatoRimodulato(ActionContext actioncontext, Optio
.filter(el->Elemento_voceHome.GESTIONE_SPESE.equals(el.getTi_gestione()))
.findFirst()
.ifPresent(el->{
el.setImVarFinanziatoRimodulato(el.getSaldoSpesa().getDispAssestatoFinanziamento().negate()
.add(optPpe.get().getImSpesaFinanziatoRimodulato()));
//Se con la rimodulazione l'importo viene diminuito propongo la variazione
//Se l'importo viene aumentato rimetto a zero il valore della variazione stessa se negativa
if (optPpe.get().getImSpesaFinanziatoRimodulato().compareTo(optPpe.get().getIm_spesa_finanziato())<0)
el.setImVarFinanziatoRimodulato(el.getSaldoSpesa().getDispAssestatoFinanziamento().negate()
.add(optPpe.get().getImSpesaFinanziatoRimodulato()));
else if (el.getImVarFinanziatoRimodulato().compareTo(BigDecimal.ZERO)<0)
el.setImVarFinanziatoRimodulato(BigDecimal.ZERO);
});
}
}
Expand Down
Expand Up @@ -879,7 +879,7 @@ protected Class<AllegatoProgettoBulk> getAllegatoClass() {
protected void completeAllegato(AllegatoProgettoBulk allegato) throws ApplicationException {
super.completeAllegato(allegato);
StorageObject storageObject = storeService.getStorageObjectBykey(allegato.getStorageKey());
allegato.setType(storageObject.getPropertyValue(StoragePropertyNames.BASE_TYPE_ID.value()));
allegato.setObjectType(storageObject.getPropertyValue(StoragePropertyNames.BASE_TYPE_ID.value()));
}

public boolean isRODatiContabili() {
Expand Down
Expand Up @@ -13,6 +13,8 @@
import it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk;
import it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk;
import it.cnr.contab.progettiric00.core.bulk.AllegatoProgettoBulk;
import it.cnr.contab.progettiric00.core.bulk.AllegatoProgettoRimodulazioneBulk;
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.ProgettoHome;
Expand Down Expand Up @@ -382,12 +384,12 @@ public OggettoBulk modificaConBulk(UserContext usercontext, OggettoBulk oggettob
});

if (progettoRimodulazione.getDettagliRimodulazione().isEmpty() && progettoRimodulazione.getDettagliVoceRimodulazione().isEmpty() &&
progettoRimodulazione.getImFinanziatoRimodulato().compareTo(progettoRimodulazione.getProgetto().getImFinanziato())==0 &&
progettoRimodulazione.getImCofinanziatoRimodulato().compareTo(progettoRimodulazione.getProgetto().getImCofinanziato())==0 &&
!progettoRimodulazione.isRimodulatoImportoFinanziato() && !progettoRimodulazione.isRimodulatoImportoCofinanziato() &&
(!progettoRimodulazione.getProgetto().isDatePianoEconomicoRequired() ||
(progettoRimodulazione.getDtInizioRimodulato().compareTo(progettoRimodulazione.getProgetto().getOtherField().getDtInizio())==0 &&
progettoRimodulazione.getDtFineRimodulato().compareTo(progettoRimodulazione.getProgetto().getOtherField().getDtFine())==0)))
throw new ApplicationException("Salvataggio non consentito. Non risulta alcuna variazione sul piano economico.");
(!progettoRimodulazione.isRimodulatoDtInizio() && !progettoRimodulazione.isRimodulatoDtFine() &&
!progettoRimodulazione.isRimodulatoDtProroga())))
throw new ApplicationException("Salvataggio non consentito. Non risulta alcuna variazione sul piano economico.");

return super.modificaConBulk(usercontext, oggettobulk);
}

Expand Down Expand Up @@ -450,7 +452,15 @@ public Progetto_rimodulazioneBulk salvaDefinitivo(UserContext userContext, Proge

Optional.of(rimodulazione).filter(Progetto_rimodulazioneBulk::isStatoProvvisorio)
.orElseThrow(()->new ApplicationRuntimeException("Operazione non possibile! Lo stato definitivo può essere assegnato solo a rimodulazioni in stato provvisorio!"));


if (rimodulazione.isRimodulatoDtProroga())
rimodulazione.getArchivioAllegati().stream()
.filter(AllegatoProgettoRimodulazioneBulk.class::isInstance)
.map(AllegatoProgettoRimodulazioneBulk.class::cast)
.filter(AllegatoProgettoRimodulazioneBulk::isProroga)
.findFirst()
.orElseThrow(()->new ApplicationRuntimeException("Operazione non possibile! E' necessario associare un allegato di tipo proroga alla rimodulazione in oggetto!"));

List<OggettoBulk> listVariazioni = this.constructVariazioniBilancio(userContext, rimodulazione);

//Se la rimodulazione non prevede variazioni procedo direttamente con l'approvazione
Expand Down
@@ -1,36 +1,39 @@
package it.cnr.contab.progettiric00.core.bulk;

import it.cnr.contab.util00.bulk.storage.AllegatoGenericoBulk;
import java.util.Optional;
import java.util.StringJoiner;

import it.cnr.contab.util00.bulk.storage.AllegatoGenericoTypeBulk;
import it.cnr.si.spring.storage.StorageObject;
import it.cnr.si.spring.storage.config.StoragePropertyNames;

public class AllegatoProgettoBulk extends AllegatoGenericoBulk {
public class AllegatoProgettoBulk extends AllegatoGenericoTypeBulk {
private static final long serialVersionUID = 1L;
private String type;
private ProgettoBulk progetto;

private static final java.util.Dictionary ti_allegatoKeys = new it.cnr.jada.util.OrderedHashtable();
private static final java.util.Dictionary ti_allegato_rimodulazioneKeys = new it.cnr.jada.util.OrderedHashtable();

final public static String PROVV_COSTITUZIONE = "D:sigla_progetti_attachment:provvedimento_costituzione";
final public static String RICHIESTA_ANTICIPO = "D:sigla_progetti_attachment:richiesta_anticipo";
final public static String RENDICONTAZIONE = "D:sigla_progetti_attachment:rendicontazione";
final public static String STRALCIO = "D:sigla_progetti_attachment:stralcio";
final public static String CONTRODEDUZIONE = "D:sigla_progetti_attachment:controdeduzioni";
final public static String FINAL_STATEMENT_PAYMENT = "D:sigla_progetti_attachment:final_statement_payment";
final public static String GENERICO = "D:sigla_progetti_attachment:allegato_generico";
final public static String RIMODULAZIONE_ATTESTATO = "D:sigla_progetti_attachment:rimodulazione_attestato";
final public static String RIMODULAZIONE_GENERICO = "D:sigla_progetti_attachment:rimodulazione_allegato_generico";

static {
ti_allegatoKeys.put(RIMODULAZIONE_ATTESTATO,"Rimodulazione - Attestato");
ti_allegatoKeys.put(RIMODULAZIONE_GENERICO,"Rimodulazione - Generico");
ti_allegatoKeys.put(GENERICO,"Generico");

ti_allegato_rimodulazioneKeys.put(RIMODULAZIONE_ATTESTATO,"Attestato");
ti_allegato_rimodulazioneKeys.put(RIMODULAZIONE_GENERICO,"Generico");
ti_allegatoKeys.put(PROVV_COSTITUZIONE,"Provvedimento di Costituzione");
ti_allegatoKeys.put(RICHIESTA_ANTICIPO,"Richiesta di Anticipo");
ti_allegatoKeys.put(RENDICONTAZIONE,"Rendicontazione");
ti_allegatoKeys.put(STRALCIO,"Stralcio");
ti_allegatoKeys.put(CONTRODEDUZIONE,"Controdeduzione");
ti_allegatoKeys.put(FINAL_STATEMENT_PAYMENT,"Final Statement Payment");
ti_allegatoKeys.put(GENERICO,"Allegato Generico");
}

public final java.util.Dictionary getTi_allegatoKeys() {
return ti_allegatoKeys;
}

public final java.util.Dictionary getTi_allegato_rimodulazioneKeys() {
return ti_allegato_rimodulazioneKeys;
}

public AllegatoProgettoBulk() {
super();
Expand All @@ -46,18 +49,69 @@ public AllegatoProgettoBulk(String storageKey) {

public AllegatoProgettoBulk(StorageObject storageObject){
super();
setType(storageObject.getPropertyValue(StoragePropertyNames.OBJECT_TYPE_ID.value()));
setContentType(storageObject.getPropertyValue(StoragePropertyNames.OBJECT_TYPE_ID.value()));
}

public String getType() {
return type;
public boolean isTypeEnabled(){
return !isToBeCreated();
}

public boolean isProvvedimentoCostituzione() {
return Optional.ofNullable(getContentType()).map(el->el.equals(PROVV_COSTITUZIONE)).orElse(Boolean.FALSE);
}

public boolean isRichiestaAnticipo() {
return Optional.ofNullable(getContentType()).map(el->el.equals(RICHIESTA_ANTICIPO)).orElse(Boolean.FALSE);
}

public void setType(String type) {
this.type = type;
public boolean isRendicontazione() {
return Optional.ofNullable(getContentType()).map(el->el.equals(RENDICONTAZIONE)).orElse(Boolean.FALSE);
}

public boolean isStralcio() {
return Optional.ofNullable(getContentType()).map(el->el.equals(STRALCIO)).orElse(Boolean.FALSE);
}

public boolean isControdeduzione() {
return Optional.ofNullable(getContentType()).map(el->el.equals(CONTRODEDUZIONE)).orElse(Boolean.FALSE);
}

public boolean isTypeEnabled(){
return !isToBeCreated();
}
public boolean isFinalStatementPayment() {
return Optional.ofNullable(getContentType()).map(el->el.equals(FINAL_STATEMENT_PAYMENT)).orElse(Boolean.FALSE);
}

public boolean isGenerico() {
return Optional.ofNullable(getContentType()).map(el->el.equals(GENERICO)).orElse(Boolean.FALSE);
}

public ProgettoBulk getProgetto() {
return progetto;
}

public void setProgetto(ProgettoBulk progetto) {
this.progetto = progetto;
}

@Override
public String parseFilename(String file) {
StringJoiner name = new StringJoiner("-");
Optional.ofNullable(this.getProgetto()).flatMap(el->Optional.ofNullable(el.getPg_progetto()))
.ifPresent(el->name.add("PRG" + el));
if (this.isProvvedimentoCostituzione())
name.add("COST");
if (this.isRichiestaAnticipo())
name.add("ANT");
if (this.isRendicontazione())
name.add("REND");
if (this.isStralcio())
name.add("STRC");
if (this.isControdeduzione())
name.add("CTRD");
if (this.isFinalStatementPayment())
name.add("FSP");
if (this.isGenerico())
name.add("GEN");
name.add(super.parseFilename(file));
return name.toString();
}
}
@@ -0,0 +1,88 @@
package it.cnr.contab.progettiric00.core.bulk;

import java.util.Optional;
import java.util.StringJoiner;

import it.cnr.contab.util00.bulk.storage.AllegatoGenericoTypeBulk;
import it.cnr.si.spring.storage.StorageObject;

public class AllegatoProgettoRimodulazioneBulk extends AllegatoGenericoTypeBulk {
private static final long serialVersionUID = 1L;

private Progetto_rimodulazioneBulk rimodulazione;

private static final java.util.Dictionary ti_allegatoKeys = new it.cnr.jada.util.OrderedHashtable();

final public static String RIMODULAZIONE = "D:sigla_progetti_attachment:rimodulazione_attestato";
final public static String PROROGA = "D:sigla_progetti_attachment:rimodulazione_proroga";
final public static String GENERICO = "D:sigla_progetti_attachment:rimodulazione_allegato_generico";

static {
ti_allegatoKeys.put(RIMODULAZIONE,"Rimodulazione");
ti_allegatoKeys.put(PROROGA,"Proroga");
ti_allegatoKeys.put(GENERICO,"Allegato Generico");
}

public final java.util.Dictionary getTi_allegatoKeys() {
return ti_allegatoKeys;
}

public AllegatoProgettoRimodulazioneBulk() {
super();
}

public static AllegatoProgettoRimodulazioneBulk construct(StorageObject storageObject) {
return new AllegatoProgettoRimodulazioneBulk(storageObject);
}

public AllegatoProgettoRimodulazioneBulk(String storageKey) {
super(storageKey);
}

public AllegatoProgettoRimodulazioneBulk(StorageObject storageObject){
super(storageObject);
}

public boolean isTypeEnabled(){
return !isToBeCreated();
}

public boolean isRimodulazione() {
return Optional.ofNullable(getContentType()).map(el->el.equals(RIMODULAZIONE)).orElse(Boolean.FALSE);
}

public boolean isProroga() {
return Optional.ofNullable(getContentType()).map(el->el.equals(PROROGA)).orElse(Boolean.FALSE);
}

public boolean isGenerico() {
return Optional.ofNullable(getContentType()).map(el->el.equals(GENERICO)).orElse(Boolean.FALSE);
}

public Progetto_rimodulazioneBulk getRimodulazione() {
return rimodulazione;
}

public void setRimodulazione(Progetto_rimodulazioneBulk rimodulazione) {
this.rimodulazione = rimodulazione;
}

@Override
public String parseFilename(String file) {
StringJoiner name = new StringJoiner("-");
Optional.ofNullable(this.getRimodulazione())
.flatMap(el->Optional.ofNullable(el.getProgetto()))
.flatMap(el->Optional.ofNullable(el.getPg_progetto()))
.ifPresent(el->name.add("PRG" + el));
Optional.ofNullable(this.getRimodulazione()).flatMap(el->Optional.ofNullable(el.getPg_rimodulazione()))
.ifPresent(el->name.add("RIM" + el));
if (this.isRimodulazione())
name.add("ATT");
if (this.isProroga())
name.add("PRG");
if (this.isGenerico())
name.add("GEN");
name.add(super.parseFilename(file));
return name.toString();
}
}
Expand Up @@ -1248,6 +1248,10 @@ public void setVociBilancioMovimentate(BulkList<V_saldi_voce_progettoBulk> vociB

@Override
public int addToArchivioAllegati(AllegatoGenericoBulk allegato) {
Optional.ofNullable(allegato)
.filter(AllegatoProgettoBulk.class::isInstance)
.map(AllegatoProgettoBulk.class::cast)
.ifPresent(el->el.setProgetto(this));
archivioAllegati.add(allegato);
return archivioAllegati.size()-1;
}
Expand Down

0 comments on commit 1426109

Please sign in to comment.