Skip to content

Commit

Permalink
Piano Economico Progetto - Gestione Tab per anno
Browse files Browse the repository at this point in the history
  • Loading branch information
raffaelepagano committed Oct 19, 2017
1 parent 8626552 commit fe3e79e
Show file tree
Hide file tree
Showing 10 changed files with 384 additions and 79 deletions.
@@ -0,0 +1,33 @@
package it.cnr.contab.progettiric00.bp;

import java.rmi.RemoteException;

import it.cnr.contab.progettiric00.core.bulk.ProgettoBulk;
import it.cnr.contab.util.Utility;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.bulk.ValidationException;
import it.cnr.jada.comp.ComponentException;

public class ProgettoPianoEconomicoCRUDController extends it.cnr.jada.util.action.SimpleDetailCRUDController {

public ProgettoPianoEconomicoCRUDController(String name, Class modelClass, String listPropertyName, it.cnr.jada.util.action.FormController parent) {
super(name, modelClass, listPropertyName, parent);
}

public void validateForDelete(ActionContext context, OggettoBulk detail) throws ValidationException
{
if (!detail.isToBeCreated()) {
try {
Utility.createProgettoRicercaComponentSession().validaCancellazionePianoEconomicoAssociato(
context.getUserContext(),
(ProgettoBulk)getParentModel(),
detail);
} catch (ComponentException e) {
throw new ValidationException(e.getMessage());
} catch (RemoteException e) {
throw new ValidationException(e.getMessage());
}
}
}
}
@@ -1,6 +1,8 @@
package it.cnr.contab.progettiric00.bp;

import java.rmi.RemoteException;
import java.util.Calendar;
import java.util.GregorianCalendar;

import javax.servlet.http.HttpSession;

Expand Down Expand Up @@ -43,26 +45,27 @@ public void validateForDelete(ActionContext context, OggettoBulk detail)
private SimpleDetailCRUDController crudDettagliFinanziatori = new SimpleDetailCRUDController( "DettagliFinanziatori", Progetto_finanziatoreBulk.class, "dettagliFinanziatori", this);
private SimpleDetailCRUDController crudDettagliPartner_esterni = new SimpleDetailCRUDController( "DettagliPartner_esterni", Progetto_partner_esternoBulk.class, "dettagliPartner_esterni", this);
private SimpleDetailCRUDController crudDettagliPostIt = new SimpleDetailCRUDController( "DettagliPostIt", PostItBulk.class, "dettagliPostIt", this);
private SimpleDetailCRUDController crudPianoEconomico = new SimpleDetailCRUDController( "PianoEconomico", Progetto_piano_economicoBulk.class, "dettagliPianoEconomico", this){
public void validateForDelete(ActionContext context, OggettoBulk detail) throws ValidationException
{
if (!detail.isToBeCreated()) {
try {
((ProgettoRicercaComponentSession)createComponentSession()).validaCancellazionePianoEconomicoAssociato(
context.getUserContext(),
(ProgettoBulk)getParentModel(),
detail);
} catch (ComponentException e) {
throw new ValidationException(e.getMessage());
} catch (RemoteException e) {
throw new ValidationException(e.getMessage());
} catch (BusinessProcessException e) {
throw new ValidationException(e.getMessage());
}
}
}
private SimpleDetailCRUDController crudPianoEconomicoTotale = new ProgettoPianoEconomicoCRUDController( "PianoEconomicoTotale", Progetto_piano_economicoBulk.class, "dettagliPianoEconomicoTotale", this){
public int addDetail(OggettoBulk oggettobulk) throws BusinessProcessException {
((Progetto_piano_economicoBulk)oggettobulk).setEsercizio_piano(Integer.valueOf(0));
return super.addDetail(oggettobulk);
};
};

private SimpleDetailCRUDController crudPianoEconomicoAnnoCorrente = new ProgettoPianoEconomicoCRUDController( "PianoEconomicoAnnoCorrente", Progetto_piano_economicoBulk.class, "dettagliPianoEconomicoAnnoCorrente", this){
public int addDetail(OggettoBulk oggettobulk) throws BusinessProcessException {
((Progetto_piano_economicoBulk)oggettobulk).setEsercizio_piano(((ProgettoBulk)this.getParentModel()).getEsercizio());
return super.addDetail(oggettobulk);
};
};

private SimpleDetailCRUDController crudPianoEconomicoAltriAnni = new ProgettoPianoEconomicoCRUDController( "PianoEconomicoAltriAnni", Progetto_piano_economicoBulk.class, "dettagliPianoEconomicoAltriAnni", this) {
protected void validate(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException {
super.validate(actioncontext, oggettobulk);
if (((Progetto_piano_economicoBulk)oggettobulk).getEsercizio_piano().equals(((ProgettoBulk)this.getParentModel()).getEsercizio()))
throw new ValidationException("Operazione non possibile! Per caricare un dato relativo all'anno corrente utilizzare la sezione apposita.");
};
};

/**
* TestataProgettiRicercaBP constructor comment.
Expand Down Expand Up @@ -421,6 +424,46 @@ public String[][] getTabs(HttpSession session) {
}
}

public String[][] getTabsPianoEconomico() {
ProgettoBulk progetto = (ProgettoBulk)this.getModel();

boolean existAnnoCorrente = false;
Integer annoInizio = 0, annoFine = 9999;

if (progetto.getDt_inizio()!=null) {
GregorianCalendar calIni = new GregorianCalendar();
calIni.setTime(progetto.getDt_inizio());
annoInizio = calIni.get(Calendar.YEAR);
}
if (progetto.getDt_fine()!=null) {
GregorianCalendar calFin = new GregorianCalendar();
calFin.setTime(progetto.getDt_fine());
annoFine = calFin.get(Calendar.YEAR);
}
if (progetto.getDt_proroga()!=null) {
GregorianCalendar calPrg = new GregorianCalendar();
calPrg.setTime(progetto.getDt_proroga());
if (annoFine<calPrg.get(Calendar.YEAR))
annoFine = calPrg.get(Calendar.YEAR);
}
if (annoInizio > progetto.getEsercizio() || annoFine < progetto.getEsercizio()) {
//non sono nell'anno ma verifico se per caso non l'ho erronemanete caricato
if (progetto.getDettagliPianoEconomicoAnnoCorrente().size()>0)
existAnnoCorrente = true;
} else
existAnnoCorrente = true;

if (existAnnoCorrente)
return new String[][] {
{ "tabProgettoPianoEconomicoTotale","Totali","/progettiric00/progetto_piano_economico_totale.jsp" },
{ "tabProgettoPianoEconomicoAnnoCorrente","Limiti Anno "+progetto.getEsercizio(),"/progettiric00/progetto_piano_economico_anno_corrente.jsp" },
{ "tabProgettoPianoEconomicoAltriAnni","Limiti Altri Anni","/progettiric00/progetto_piano_economico_altri_anni.jsp" }};
else
return new String[][] {
{ "tabProgettoPianoEconomicoTotale","Totali","/progettiric00/progetto_piano_economico_totale.jsp" },
{ "tabProgettoPianoEconomicoAltriAnni","Limiti Annui","/progettiric00/progetto_piano_economico_altri_anni.jsp" }};
}

@Override
public OggettoBulk initializeModelForInsert(ActionContext actioncontext, OggettoBulk oggettobulk)
throws BusinessProcessException {
Expand All @@ -438,7 +481,15 @@ public String getLabelCd_progetto_padre() {
return ProgettoBulk.LABEL_COMMESSA;
}

public SimpleDetailCRUDController getCrudPianoEconomico() {
return crudPianoEconomico;
public SimpleDetailCRUDController getCrudPianoEconomicoTotale() {
return crudPianoEconomicoTotale;
}

public SimpleDetailCRUDController getCrudPianoEconomicoAnnoCorrente() {
return crudPianoEconomicoAnnoCorrente;
}

public SimpleDetailCRUDController getCrudPianoEconomicoAltriAnni() {
return crudPianoEconomicoAltriAnni;
}
}
Expand Up @@ -10,6 +10,8 @@
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collector;
import java.util.stream.Collectors;

import it.cnr.contab.config00.latt.bulk.Ass_linea_attivita_esercizioBulk;
import it.cnr.contab.config00.latt.bulk.Ass_linea_attivita_esercizioHome;
Expand Down Expand Up @@ -80,8 +82,14 @@ public OggettoBulk creaConBulk(UserContext uc, OggettoBulk bulk) throws Componen
sq_progetto = getSequence(uc);
((ProgettoBulk)bulk).setPg_progetto(sq_progetto);
((Progetto_uoBulk) ((ProgettoBulk)bulk).getDettagli().get(0)).setPg_progetto(new Integer(sq_progetto.intValue()));
for(int i = 0; ((ProgettoBulk)bulk).getDettagliPianoEconomico().size() > i; i++) {
((Progetto_piano_economicoBulk) ((ProgettoBulk)bulk).getDettagliPianoEconomico().get(i)).setPg_progetto(new Integer(sq_progetto.intValue()));
for(int i = 0; ((ProgettoBulk)bulk).getDettagliPianoEconomicoTotale().size() > i; i++) {
((Progetto_piano_economicoBulk) ((ProgettoBulk)bulk).getDettagliPianoEconomicoTotale().get(i)).setPg_progetto(new Integer(sq_progetto.intValue()));
}
for(int i = 0; ((ProgettoBulk)bulk).getDettagliPianoEconomicoAnnoCorrente().size() > i; i++) {
((Progetto_piano_economicoBulk) ((ProgettoBulk)bulk).getDettagliPianoEconomicoAnnoCorrente().get(i)).setPg_progetto(new Integer(sq_progetto.intValue()));
}
for(int i = 0; ((ProgettoBulk)bulk).getDettagliPianoEconomicoAltriAnni().size() > i; i++) {
((Progetto_piano_economicoBulk) ((ProgettoBulk)bulk).getDettagliPianoEconomicoAltriAnni().get(i)).setPg_progetto(new Integer(sq_progetto.intValue()));
}
for(int i = 0; ((ProgettoBulk)bulk).getDettagliFinanziatori().size() > i; i++) {
((Progetto_finanziatoreBulk) ((ProgettoBulk)bulk).getDettagliFinanziatori().get(i)).setPg_progetto(new Integer(sq_progetto.intValue()));
Expand Down Expand Up @@ -125,7 +133,9 @@ public OggettoBulk creaConBulk(UserContext uc, OggettoBulk bulk) throws Componen
getHome(uc, bulk, "PROGETTO_SIP").insert((Persistent)bulk, uc);
}
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagli());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPianoEconomico());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPianoEconomicoTotale());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPianoEconomicoAnnoCorrente());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPianoEconomicoAltriAnni());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliFinanziatori());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPartner_esterni());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPostIt());
Expand Down Expand Up @@ -163,11 +173,25 @@ public void eliminaConBulk(it.cnr.jada.UserContext aUC, it.cnr.jada.bulk.Oggetto
dettagliCopy.stream().forEach(e->{
((ProgettoBulk)bulk).removeFromDettagli(((ProgettoBulk)bulk).getDettagli().indexOf(e));
});
List dettagliPianoEconomicoCopy = new BulkList<>();
dettagliPianoEconomicoCopy.addAll(((ProgettoBulk)bulk).getDettagliPianoEconomico());
dettagliPianoEconomicoCopy.stream().forEach(e->{
((ProgettoBulk)bulk).removeFromDettagliPianoEconomico(((ProgettoBulk)bulk).getDettagliPianoEconomico().indexOf(e));

List dettagliPianoEconomicoTotaleCopy = new BulkList<>();
dettagliPianoEconomicoTotaleCopy.addAll(((ProgettoBulk)bulk).getDettagliPianoEconomicoTotale());
dettagliPianoEconomicoTotaleCopy.stream().forEach(e->{
((ProgettoBulk)bulk).removeFromDettagliPianoEconomicoTotale(((ProgettoBulk)bulk).getDettagliPianoEconomicoTotale().indexOf(e));
});

List dettagliPianoEconomicoAnnoCorrenteCopy = new BulkList<>();
dettagliPianoEconomicoAnnoCorrenteCopy.addAll(((ProgettoBulk)bulk).getDettagliPianoEconomicoAnnoCorrente());
dettagliPianoEconomicoAnnoCorrenteCopy.stream().forEach(e->{
((ProgettoBulk)bulk).removeFromDettagliPianoEconomicoAnnoCorrente(((ProgettoBulk)bulk).getDettagliPianoEconomicoAnnoCorrente().indexOf(e));
});

List dettagliPianoEconomicoAltriAnniCopy = new BulkList<>();
dettagliPianoEconomicoAltriAnniCopy.addAll(((ProgettoBulk)bulk).getDettagliPianoEconomicoAltriAnni());
dettagliPianoEconomicoAltriAnniCopy.stream().forEach(e->{
((ProgettoBulk)bulk).removeFromDettagliPianoEconomicoAltriAnni(((ProgettoBulk)bulk).getDettagliPianoEconomicoAltriAnni().indexOf(e));
});

for(int i = 0; ((ProgettoBulk)bulk).getDettagliFinanziatori().size() > i; i++) {
((Progetto_finanziatoreBulk) ((ProgettoBulk)bulk).getDettagliFinanziatori().get(i)).setCrudStatus(bulk.TO_BE_DELETED);
}
Expand All @@ -187,7 +211,9 @@ public void eliminaConBulk(it.cnr.jada.UserContext aUC, it.cnr.jada.bulk.Oggetto
getHome(aUC, ProgettoBulk.class, "PROGETTO_SIP").delete(progettoGest, aUC);

makeBulkListPersistent(aUC, ((ProgettoBulk)bulk).getDettagli());
makeBulkListPersistent(aUC, ((ProgettoBulk)bulk).getDettagliPianoEconomico());
makeBulkListPersistent(aUC, ((ProgettoBulk)bulk).getDettagliPianoEconomicoTotale());
makeBulkListPersistent(aUC, ((ProgettoBulk)bulk).getDettagliPianoEconomicoAnnoCorrente());
makeBulkListPersistent(aUC, ((ProgettoBulk)bulk).getDettagliPianoEconomicoAltriAnni());

if (((ProgettoBulk)bulk).getOtherField()!=null)
getHome(aUC, Progetto_other_fieldBulk.class).delete(((ProgettoBulk)bulk).getOtherField(), aUC);
Expand Down Expand Up @@ -225,7 +251,12 @@ public OggettoBulk inizializzaBulkPerModifica(UserContext userContext,OggettoBul
testata.setDettagliPartner_esterni(new it.cnr.jada.bulk.BulkList(testataHome.findDettagliPartner_esterni(testata)));
testata.setDettagliPostIt(new it.cnr.jada.bulk.BulkList(testataHome.findDettagliPostIt(testata)));
testata.setSpeseEsercizio(new it.cnr.jada.bulk.BulkList(testataHome.findDettagliSpese(userContext,testata)));
testata.setDettagliPianoEconomico(new it.cnr.jada.bulk.BulkList(testataHome.findDettagliPianoEconomico(userContext,testata)));

List<Progetto_piano_economicoBulk> progettoPiano = new it.cnr.jada.bulk.BulkList(testataHome.findDettagliPianoEconomico(userContext,testata));
testata.setDettagliPianoEconomicoTotale(new it.cnr.jada.bulk.BulkList(progettoPiano.stream().filter(e->e.getEsercizio_piano().equals(Integer.valueOf(0))).collect(Collectors.toList())));
testata.setDettagliPianoEconomicoAnnoCorrente(new it.cnr.jada.bulk.BulkList(progettoPiano.stream().filter(e->e.getEsercizio_piano().equals(testata.getEsercizio())).collect(Collectors.toList())));
testata.setDettagliPianoEconomicoAltriAnni(new it.cnr.jada.bulk.BulkList(progettoPiano.stream().filter(e->!e.getEsercizio_piano().equals(Integer.valueOf(0)) && !e.getEsercizio_piano().equals(testata.getEsercizio())).collect(Collectors.toList())));

testata.setOtherField(testataHome.findProgettoOtherField(userContext, testata));

// controllo per evitare che il progetto padre sia modificabile nel caso
Expand Down Expand Up @@ -314,8 +345,9 @@ private ProgettoBulk intBulk(UserContext userContext, ProgettoBulk bulk) throws
if ((ProgettoBulk)bulk.getProgettopadre() == null)
((ProgettoBulk)bulk).setLivello(new Integer(1));

if (!((ProgettoBulk)bulk).getDettagliPianoEconomico().isEmpty()) {
Integer minYear = 1000, maxYear = 3000;
if (!((ProgettoBulk)bulk).getDettagliPianoEconomicoAnnoCorrente().isEmpty() ||
!((ProgettoBulk)bulk).getDettagliPianoEconomicoAltriAnni().isEmpty()) {
Integer minYear = 0, maxYear = 9999;
if (((ProgettoBulk)bulk).getDt_inizio()!=null) {
GregorianCalendar calini = new GregorianCalendar();
calini.setTime(((ProgettoBulk)bulk).getDt_inizio());
Expand All @@ -326,8 +358,11 @@ private ProgettoBulk intBulk(UserContext userContext, ProgettoBulk bulk) throws
calfin.setTime(DateUtils.max(((ProgettoBulk)bulk).getDt_fine(), ((ProgettoBulk)bulk).getDt_proroga()));
maxYear = calfin.get(Calendar.YEAR);
}

for (Iterator iterator = ((ProgettoBulk)bulk).getDettagliPianoEconomico().iterator(); iterator.hasNext();) {

BulkList<Progetto_piano_economicoBulk> allPiano = new BulkList<>();
allPiano.addAll(((ProgettoBulk)bulk).getDettagliPianoEconomicoAnnoCorrente());
allPiano.addAll(((ProgettoBulk)bulk).getDettagliPianoEconomicoAltriAnni());
for (Iterator iterator = allPiano.iterator(); iterator.hasNext();) {
Progetto_piano_economicoBulk pianoeco = (Progetto_piano_economicoBulk) iterator.next();
if (pianoeco.getEsercizio_piano()!=null && !pianoeco.getEsercizio_piano().equals(0))
if (pianoeco.getEsercizio_piano().compareTo(minYear)<0 || pianoeco.getEsercizio_piano().compareTo(maxYear)>0)
Expand Down Expand Up @@ -488,7 +523,9 @@ public OggettoBulk modificaConBulk(UserContext uc, OggettoBulk bulk) throws Comp
}

makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagli());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPianoEconomico());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPianoEconomicoTotale());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPianoEconomicoAnnoCorrente());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPianoEconomicoAltriAnni());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliFinanziatori());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPartner_esterni());
makeBulkListPersistent(uc, ((ProgettoBulk)bulk).getDettagliPostIt());
Expand Down

0 comments on commit fe3e79e

Please sign in to comment.