use of it.cnr.contab.anagraf00.core.bulk.RapportoBulk in project sigla-main by consiglionazionaledellericerche.
the class CompensoComponent method loadTipoTrattamento.
/**
* Viene caricato da db il TIPO TRATTAMENTO valido in Data Registrazione
* compenso
*/
private void loadTipoTrattamento(UserContext userContext, CompensoBulk compenso) throws ComponentException {
try {
Tipo_trattamentoHome trattHome = (Tipo_trattamentoHome) getHome(userContext, Tipo_trattamentoBulk.class);
Filtro_trattamentoBulk filtro = new Filtro_trattamentoBulk();
filtro.setCdTipoTrattamento(compenso.getCd_trattamento());
filtro.setTipoAnagrafico(compenso.getTi_anagrafico());
filtro.setDataValidita(compenso.getDt_registrazione());
filtro.setFlSenzaCalcoli(compenso.getFl_senza_calcoli());
filtro.setFlDefaultCongualio(new Boolean(compenso.isDaConguaglio()));
filtro.setTiIstituzionaleCommerciale(compenso.getTi_istituz_commerc());
filtro.setFlBonus(compenso.isDaBonus());
filtro.setFlSplitPayment(compenso.getFl_split_payment());
if (filtro.getCdTipoRapporto() != null && filtro.getCdTipoRapporto().equals("DIP")) {
try {
TerzoHome tHome = (TerzoHome) getHomeCache(userContext).getHome(TerzoBulk.class);
TerzoBulk tKey = new TerzoBulk(compenso.getCd_terzo());
TerzoBulk t = (TerzoBulk) tHome.findByPrimaryKey(tKey);
RapportoHome rHome = (RapportoHome) getHomeCache(userContext).getHome(RapportoBulk.class);
java.util.Collection collRapp = rHome.findByCdAnagCdTipoRapporto(t.getCd_anag(), filtro.getCdTipoRapporto());
boolean exit = false;
for (java.util.Iterator i = collRapp.iterator(); i.hasNext() && !exit; ) {
RapportoBulk r = (RapportoBulk) i.next();
exit = true;
if (r.getCd_ente_prev_sti() == null)
// throw new
// it.cnr.jada.comp.ApplicationException("Non è stato possibile recuperare l''Ente Previdenziale del dipendente selezionato.");
// non blocco perchè potrebbero esserci trattamenti
// che non prevedono contributi previdenziali
// quindi passo il codice fittizio 'XX'
filtro.setEntePrev("XX");
else
filtro.setEntePrev(r.getCd_ente_prev_sti());
if (r.getCd_rapp_impiego_sti() == null)
throw new it.cnr.jada.comp.ApplicationException("Per il dipendente in esame non è definito un Rapporto di Impiego!");
else {
Ass_rapp_impiegoHome assHome = (Ass_rapp_impiegoHome) getHome(userContext, Ass_rapp_impiegoBulk.class);
Ass_rapp_impiegoBulk assKey = new Ass_rapp_impiegoBulk(r.getCd_rapp_impiego_sti());
Ass_rapp_impiegoBulk ass = (Ass_rapp_impiegoBulk) assHome.findByPrimaryKey(assKey);
filtro.setTipoRappImpiego(ass.getTipo_rapp_impiego());
}
}
} catch (IntrospectionException e) {
throw handleException(e);
}
// solo per il rapporto DIP aggiungo il filtro "Anno prec" a
// seconda della data di inizio competenza
GregorianCalendar data_da = (GregorianCalendar) GregorianCalendar.getInstance();
data_da.setTime(compenso.getDt_da_competenza_coge());
if (data_da.get(GregorianCalendar.YEAR) == (compenso.getEsercizio() - 1))
filtro.setFlAnnoPrec(new Boolean(true));
else
filtro.setFlAnnoPrec(new Boolean(false));
}
if (compenso.getDt_da_competenza_coge() != null && compenso.getDt_a_competenza_coge() != null) {
GregorianCalendar data_da = (GregorianCalendar) GregorianCalendar.getInstance();
GregorianCalendar data_a = (GregorianCalendar) GregorianCalendar.getInstance();
data_da.setTime(compenso.getDt_da_competenza_coge());
data_a.setTime(compenso.getDt_a_competenza_coge());
TerzoHome tHome = (TerzoHome) getHomeCache(userContext).getHome(TerzoBulk.class);
TerzoBulk tKey = new TerzoBulk(compenso.getCd_terzo());
TerzoBulk t = (TerzoBulk) tHome.findByPrimaryKey(tKey);
AnagraficoHome aHome = (AnagraficoHome) getHomeCache(userContext).getHome(AnagraficoBulk.class);
AnagraficoBulk aKey = new AnagraficoBulk(t.getCd_anag());
AnagraficoBulk a = (AnagraficoBulk) aHome.findByPrimaryKey(aKey);
if (data_da.get(GregorianCalendar.YEAR) == data_a.get(GregorianCalendar.YEAR)) {
if (a.getFl_cervellone() && !(new Integer(data_da.get(GregorianCalendar.YEAR)).compareTo(a.getAnno_inizio_res_fis().intValue()) < 0) && !(new Integer(data_da.get(GregorianCalendar.YEAR)).compareTo(a.getAnno_fine_agevolazioni().intValue()) > 0)) {
filtro.setFlAgevolazioniCervelli(new Boolean(a.getFl_cervellone()));
} else
filtro.setFlAgevolazioniCervelli(new Boolean(false));
} else // cavallo
if (compenso.getFl_compenso_conguaglio() && a.getFl_cervellone() && !(new Integer(data_da.get(GregorianCalendar.YEAR)).compareTo(a.getAnno_inizio_res_fis().intValue()) < 0) && !(new Integer(data_da.get(GregorianCalendar.YEAR)).compareTo(a.getAnno_fine_agevolazioni().intValue()) > 0)) {
filtro.setFlAgevolazioniCervelli(new Boolean(a.getFl_cervellone()));
} else
filtro.setFlAgevolazioniCervelli(new Boolean(false));
}
if (filtro.getCdTipoRapporto() != null && getTipoRapportoProf(userContext).getCd_tipo_rapporto() != null && filtro.getCdTipoRapporto().equals(getTipoRapportoProf(userContext).getCd_tipo_rapporto())) {
if (compenso.isGestione_doc_ele()) {
if (!compenso.getFl_generata_fattura()) {
// se non ho scelto senza calcoli non devo vedere nulla
if (!compenso.getFl_senza_calcoli())
filtro.setTipoAnagrafico("X");
}
}
}
Tipo_trattamentoBulk tratt = trattHome.findTipoTrattamentoValido(filtro);
compenso.setTipoTrattamento(tratt);
if (isCompensoSoloInailEnte(tratt)) {
if (compenso.isDaMinicarriera()) {
throw new ApplicationException("Attenzione! Non è possibile utilizzare un trattamento di tipo 'Torno Subito con solo INAIL a carico ente' per una minicarriera");
}
compenso.setCompensoSoloInailEnte(true);
}
} catch (it.cnr.jada.persistency.PersistencyException ex) {
throw handleException(ex);
}
}
use of it.cnr.contab.anagraf00.core.bulk.RapportoBulk in project sigla-main by consiglionazionaledellericerche.
the class CompensoComponent method findTipiTrattamento.
/**
* Viene richiesta la lista dei Tipi di Trattamento legati al Tipo di
* Rapporto selezionato
*
* Pre-post-conditions:
*
* Nome: Tipo di Rapporto NON selezionato Pre: Non è stato selezionato il
* tipo di rapporto Post: Non vengono caricati i Tipi Trattamento
*
* Nome: Terzo selezionato Pre: E' stato selezionato un tipo di rapporto
* valido per il compenso Post: Viene restituita la lista dei Tipi di
* Trattamento legati al Tipo di rapporto selezionato
*
* @param userContext
* lo UserContext che ha generato la richiesta
* @param compenso
* l'OggettoBulk da completare
* @return La lista dei Tipi di Trattamento associati al Tipo Rapporto
* selezionato
*/
public java.util.Collection findTipiTrattamento(UserContext userContext, CompensoBulk compenso) throws ComponentException {
try {
if (compenso.getTipoRapporto() == null)
return null;
Tipo_trattamentoHome trattHome = (Tipo_trattamentoHome) getHome(userContext, Tipo_trattamentoBulk.class);
Filtro_trattamentoBulk filtro = new Filtro_trattamentoBulk();
filtro.setCdTipoRapporto(compenso.getCd_tipo_rapporto());
filtro.setTipoAnagrafico(compenso.getTi_anagrafico());
filtro.setDataValidita(compenso.getDt_registrazione());
filtro.setFlSenzaCalcoli(compenso.getFl_senza_calcoli());
filtro.setFlDefaultCongualio(new Boolean(compenso.isDaConguaglio()));
filtro.setTiIstituzionaleCommerciale(compenso.getTi_istituz_commerc());
filtro.setFlBonus(compenso.isDaBonus());
filtro.setFlSplitPayment(compenso.getFl_split_payment());
if (filtro.getCdTipoRapporto() != null && filtro.getCdTipoRapporto().equals("DIP")) {
try {
TerzoHome tHome = (TerzoHome) getHomeCache(userContext).getHome(TerzoBulk.class);
TerzoBulk tKey = new TerzoBulk(compenso.getCd_terzo());
TerzoBulk t = (TerzoBulk) tHome.findByPrimaryKey(tKey);
RapportoHome rHome = (RapportoHome) getHomeCache(userContext).getHome(RapportoBulk.class);
java.util.Collection collRapp = rHome.findByCdAnagCdTipoRapporto(t.getCd_anag(), filtro.getCdTipoRapporto());
boolean exit = false;
for (java.util.Iterator i = collRapp.iterator(); i.hasNext() && !exit; ) {
RapportoBulk r = (RapportoBulk) i.next();
exit = true;
if (r.getCd_ente_prev_sti() == null)
// throw new
// it.cnr.jada.comp.ApplicationException("Non è stato possibile recuperare l''Ente Previdenziale del dipendente selezionato.");
// non blocco perchè potrebbero esserci trattamenti
// che non prevedono contributi previdenziali
// quindi passo il codice fittizio 'XX'
filtro.setEntePrev("XX");
else
filtro.setEntePrev(r.getCd_ente_prev_sti());
if (r.getCd_rapp_impiego_sti() == null)
throw new it.cnr.jada.comp.ApplicationException("Per il dipendente in esame non è definito un Rapporto di Impiego!");
else {
Ass_rapp_impiegoHome assHome = (Ass_rapp_impiegoHome) getHome(userContext, Ass_rapp_impiegoBulk.class);
Ass_rapp_impiegoBulk assKey = new Ass_rapp_impiegoBulk(r.getCd_rapp_impiego_sti());
Ass_rapp_impiegoBulk ass = (Ass_rapp_impiegoBulk) assHome.findByPrimaryKey(assKey);
filtro.setTipoRappImpiego(ass.getTipo_rapp_impiego());
}
}
} catch (IntrospectionException e) {
throw handleException(e);
}
// solo per il rapporto DIP aggiungo il filtro "Anno prec" a
// seconda della data di inizio competenza
GregorianCalendar data_da = (GregorianCalendar) GregorianCalendar.getInstance();
data_da.setTime(compenso.getDt_da_competenza_coge());
if (data_da.get(GregorianCalendar.YEAR) == (compenso.getEsercizio() - 1))
filtro.setFlAnnoPrec(new Boolean(true));
else
filtro.setFlAnnoPrec(new Boolean(false));
}
if (compenso.getDt_da_competenza_coge() != null && compenso.getDt_a_competenza_coge() != null) {
GregorianCalendar data_da = (GregorianCalendar) GregorianCalendar.getInstance();
GregorianCalendar data_a = (GregorianCalendar) GregorianCalendar.getInstance();
data_da.setTime(compenso.getDt_da_competenza_coge());
data_a.setTime(compenso.getDt_a_competenza_coge());
TerzoHome tHome = (TerzoHome) getHomeCache(userContext).getHome(TerzoBulk.class);
TerzoBulk tKey = new TerzoBulk(compenso.getCd_terzo());
TerzoBulk t = (TerzoBulk) tHome.findByPrimaryKey(tKey);
AnagraficoHome aHome = (AnagraficoHome) getHomeCache(userContext).getHome(AnagraficoBulk.class);
AnagraficoBulk aKey = new AnagraficoBulk(t.getCd_anag());
AnagraficoBulk a = (AnagraficoBulk) aHome.findByPrimaryKey(aKey);
if (a.getFl_cervellone() && (a.getAnno_inizio_res_fis() == null || a.getAnno_fine_agevolazioni() == null)) {
throw new it.cnr.jada.comp.ApplicationException("Per la persona in esame è impostata l'agevolazione fiscale del rientro dei cervelli ma non è indicato l'anno inizio residenza fiscale o l'anno di fine delle agevolazioni.");
}
if (data_da.get(GregorianCalendar.YEAR) == data_a.get(GregorianCalendar.YEAR)) {
if (a.getFl_cervellone() && !(new Integer(data_da.get(GregorianCalendar.YEAR)).compareTo(a.getAnno_inizio_res_fis().intValue()) < 0) && !(new Integer(data_da.get(GregorianCalendar.YEAR)).compareTo(a.getAnno_fine_agevolazioni().intValue()) > 0)) {
filtro.setFlAgevolazioniCervelli(new Boolean(a.getFl_cervellone()));
} else
filtro.setFlAgevolazioniCervelli(new Boolean(false));
} else // cavallo
if (compenso.getFl_compenso_conguaglio() && a.getFl_cervellone() && !(new Integer(data_da.get(GregorianCalendar.YEAR)).compareTo(a.getAnno_inizio_res_fis().intValue()) < 0) && !(new Integer(data_da.get(GregorianCalendar.YEAR)).compareTo(a.getAnno_fine_agevolazioni().intValue()) > 0)) {
filtro.setFlAgevolazioniCervelli(new Boolean(a.getFl_cervellone()));
} else
filtro.setFlAgevolazioniCervelli(new Boolean(false));
}
if (filtro.getCdTipoRapporto() != null && getTipoRapportoProf(userContext).getCd_tipo_rapporto() != null && filtro.getCdTipoRapporto().equals(getTipoRapportoProf(userContext).getCd_tipo_rapporto())) {
if (compenso.isGestione_doc_ele()) {
if (!compenso.getFl_generata_fattura()) {
// se non ho scelto senza calcoli non devo vedere nulla
if (!compenso.getFl_senza_calcoli())
filtro.setTipoAnagrafico("X");
}
}
}
return trattHome.findTipiTrattamento(filtro);
} catch (it.cnr.jada.persistency.PersistencyException ex) {
throw handleException(compenso, ex);
}
}
use of it.cnr.contab.anagraf00.core.bulk.RapportoBulk in project sigla-main by consiglionazionaledellericerche.
the class MissioneHome method archiviaStampa.
@SuppressWarnings("unchecked")
public void archiviaStampa(UserContext userContext, MissioneBulk missione) throws IntrospectionException, PersistencyException {
Boolean isDipendente = Boolean.FALSE;
Integer matricola = null;
String stato_pagamento_fondo_eco = missione.getStato_pagamento_fondo_eco();
Timestamp dt_pagamento_fondo_eco = missione.getDt_pagamento_fondo_eco();
if (missione.getTi_provvisorio_definitivo().equalsIgnoreCase("D")) {
Collection<RapportoBulk> rapporti = ((AnagraficoHome) getHomeCache().getHome(AnagraficoBulk.class)).findRapporti(missione.getTerzo().getAnagrafico());
for (RapportoBulk rapporto : rapporti) {
if (rapporto.getMatricola_dipendente() != null) {
isDipendente = Boolean.TRUE;
matricola = rapporto.getMatricola_dipendente();
break;
}
}
}
if (missione.getFl_associato_compenso()) {
stato_pagamento_fondo_eco = missione.getCompenso().getStato_pagamento_fondo_eco();
dt_pagamento_fondo_eco = missione.getCompenso().getDt_pagamento_fondo_eco();
}
if (isDipendente && missione.getTipo_rapporto().isDipendente()) {
if ((missione.getAnticipo() != null && missione.getAnticipo().getIm_anticipo().compareTo(missione.getIm_netto_pecepiente()) > 0) || (stato_pagamento_fondo_eco.equals(MissioneBulk.REGISTRATO_IN_FONDO_ECO) && dt_pagamento_fondo_eco != null)) {
Print_spoolerBulk print = new Print_spoolerBulk();
print.setPgStampa(UUID.randomUUID().getLeastSignificantBits());
print.setFlEmail(false);
print.setReport("/docamm/docamm/vpg_missione.jasper");
print.setNomeFile("Missione n. " + missione.getPg_missione() + " della UO " + missione.getCd_unita_organizzativa() + " del " + new SimpleDateFormat("dd-MM-yyyy").format(missione.getDt_inizio_missione()) + ".pdf");
print.setUtcr(userContext.getUser());
print.addParam("aCd_cds", missione.getCd_cds(), String.class);
print.addParam("aCd_uo", missione.getCd_unita_organizzativa(), String.class);
print.addParam("aEs", missione.getEsercizio(), Integer.class);
print.addParam("aPg_da", missione.getPg_missione(), Long.class);
print.addParam("aPg_a", missione.getPg_missione(), Long.class);
print.addParam("aCd_terzo", String.valueOf(missione.getCd_terzo()), String.class);
try {
missione.setUnitaOrganizzativa((Unita_organizzativaBulk) getHomeCache().getHome(Unita_organizzativaBulk.class).findByPrimaryKey(new Unita_organizzativaBulk(missione.getCd_unita_organizzativa())));
String cmisPath;
if (missione.getFl_associato_compenso())
cmisPath = SpringUtil.getBean(StorePath.class).getPathConcorrentiFormazioneReddito();
else
cmisPath = SpringUtil.getBean(StorePath.class).getPathNonConcorrentiFormazioneReddito();
LDAPService ldapService = SpringUtil.getBean("ldapService", LDAPService.class);
String uid = ldapService.getLdapUserFromMatricola(userContext, matricola);
Report report = SpringUtil.getBean("printService", PrintService.class).executeReport(userContext, print);
SpringUtil.getBean("storeService", StoreService.class).storeSimpleDocument(missione, report.getInputStream(), report.getContentType(), report.getName(), cmisPath, StorageDriver.Permission.construct(uid, StorageDriver.ACLType.Consumer), StorageDriver.Permission.construct(SIGLAGroups.GROUP_EMPPAY_GROUP.name(), StorageDriver.ACLType.Coordinator));
} catch (Exception e) {
throw new PersistencyException(e);
}
}
}
}
use of it.cnr.contab.anagraf00.core.bulk.RapportoBulk in project sigla-main by consiglionazionaledellericerche.
the class AnagraficoComponent method aggiornaDatiAce.
public void aggiornaDatiAce(UserContext userContext, AnagraficoBulk anagraficoBulk) throws ComponentException {
if (!Optional.ofNullable(aceService).isPresent())
return;
logger.info(anagraficoBulk.getCd_anag().toString());
anagraficoBulk = (AnagraficoBulk) inizializzaBulkPerModifica(userContext, anagraficoBulk);
try {
if (!anagraficoBulk.isDipendente() && !anagraficoBulk.getRapporti().isEmpty()) {
Optional<String> personaId = Optional.empty();
try {
personaId = Optional.ofNullable(aceService.getPersonaId(anagraficoBulk.getCodice_fiscale()));
} catch (FeignException _ex) {
}
List<RapportoBulk> rapportiValidi = new LinkedList<>();
boolean isExDipendente = false;
for (Object obj : anagraficoBulk.getRapporti()) {
RapportoBulk rapportoBulk = (RapportoBulk) obj;
Tipo_rapportoBulk tipo_rapportoBulk = (Tipo_rapportoBulk) getHome(userContext, Tipo_rapportoBulk.class).findByPrimaryKey(rapportoBulk.getTipo_rapporto());
if (tipo_rapportoBulk.isDipendente()) {
isExDipendente = true;
}
if ((rapportoBulk.getDt_ini_validita().compareTo(getCurrentDate()) > 0 || rapportoBulk.getDt_fin_validita().compareTo(getCurrentDate()) > 0) && !tipo_rapportoBulk.isDipendente() && RapportoBulk.TIPOCONTRATTO_ACE.containsKey(tipo_rapportoBulk.getCd_tipo_rapporto())) {
rapportiValidi.add(rapportoBulk);
}
}
if (!personaId.isPresent()) {
for (RapportoBulk rapportoBulk : rapportiValidi) {
if (rapportoBulk.getCd_tipo_rapporto().equals(VIncarichiAssRicBorseStBulk.BORSA_DI_STUDIO) || rapportoBulk.getCd_tipo_rapporto().equals(VIncarichiAssRicBorseStBulk.ASSEGNI_DI_RICERCA)) {
logger.error("Invio Dati ACE: Codice fiscale {} non trovato. Per il codice fiscale: {} non è stata trovata la persona in ACE", anagraficoBulk.getCodice_fiscale(), anagraficoBulk.getCodice_fiscale());
break;
}
}
} else {
PersonaWebDto personaWebDto = aceService.personaById(new Integer(personaId.get()));
try {
Map<String, Object> params = new HashMap<>();
params.put("persona", personaId.get());
params.put("tipoAppartenenza", TipoAppartenenza.AFFERENZA_UO);
List<PersonaEntitaOrganizzativaWebDto> personeEO;
personeEO = aceService.personaEntitaOrganizzativaFind(params).stream().sorted(Comparator.comparing(PersonaEntitaOrganizzativaWebDto::getInizioValidita)).collect(Collectors.toList());
if (personeEO == null || personeEO.isEmpty()) {
params = new HashMap<>();
params.put("persona", personaId.get());
params.put("tipoAppartenenza", TipoAppartenenza.SEDE);
personeEO = aceService.personaEntitaOrganizzativaFind(params).stream().sorted(Comparator.comparing(PersonaEntitaOrganizzativaWebDto::getInizioValidita)).collect(Collectors.toList());
}
if (personeEO == null || personeEO.isEmpty()) {
String error = "Per la persona: " + personaId.get() + " Anagrafico: " + anagraficoBulk.getCd_anag() + " non è stata trovata l'appartenenza in ACE";
logger.error(error);
} else {
PersonaEntitaOrganizzativaWebDto personaEO = personeEO.stream().reduce((first, second) -> second).get();
if (rapportiValidi.size() > 0) {
List<RapportoBulk> rapportiOrdinati = (List<RapportoBulk>) rapportiValidi.stream().sorted(Comparator.comparing(RapportoBulk::getDt_ini_validita)).collect(Collectors.toList());
LocalDate dataFinePrecedente = null;
RapportoBulk rapportoPrec = null;
List<RapportoBulk> rapportiCongruenti = new LinkedList<>();
for (RapportoBulk rapportoBulk : rapportiOrdinati) {
if (rapportoPrec == null) {
rapportoPrec = rapportoBulk;
rapportiCongruenti.add(rapportoBulk);
} else {
if (rapportoPrec.getDt_fin_validita().compareTo(rapportoBulk.getDt_ini_validita()) < 0) {
rapportiCongruenti.add(rapportoBulk);
} else {
rapportiCongruenti = new LinkedList<>();
rapportiCongruenti.add(rapportoBulk);
}
rapportoPrec = rapportoBulk;
}
}
if (rapportiCongruenti.size() > 0) {
RapportoBulk ultimoRapportoValido = rapportiCongruenti.stream().reduce((first, second) -> second).get();
TipoContratto tipoContratto = Optional.ofNullable(ultimoRapportoValido.getCd_tipo_rapporto()).filter(s -> RapportoBulk.TIPOCONTRATTO_ACE.containsKey(ultimoRapportoValido.getCd_tipo_rapporto())).map(s -> RapportoBulk.TIPOCONTRATTO_ACE.get(ultimoRapportoValido.getCd_tipo_rapporto())).orElse(null);
if (ultimoRapportoValido.getCd_tipo_rapporto().equals("ASS") && !isExDipendente) {
tipoContratto = TipoContratto.ASSEGNISTA;
}
if (tipoContratto != null && (personaWebDto.getTipoContratto() == null || tipoContratto.compareTo(personaWebDto.getTipoContratto()) != 0)) {
personaWebDto.setTipoContratto(tipoContratto);
personaWebDto.setDataCessazione(null);
personaWebDto.setDataPrevistaCessazione(null);
personaWebDto.setLivello(null);
personaWebDto.setProfilo(null);
aceService.updatePersona(personaWebDto);
}
boolean primoGiro = true;
for (RapportoBulk rapportoBulk : rapportiCongruenti) {
if (primoGiro) {
LocalDate dataFineRapporto = rapportoBulk.getDt_fin_validita().toLocalDateTime().toLocalDate();
// if (personaEO.getFineValidita() == null || !dataFineRapporto.isEqual(personaEO.getFineValidita())){
aggiornaPersonaEO(userContext.getUser(), personaEO.getInizioValidita(), rapportoBulk.getDt_fin_validita().toLocalDateTime().toLocalDate(), personaEO);
// }
primoGiro = false;
} else {
PersonaEntitaOrganizzativaDto personaEntitaOrganizzativaDto = new PersonaEntitaOrganizzativaDto();
personaEntitaOrganizzativaDto.setPersona(Integer.valueOf(personaId.get()));
personaEntitaOrganizzativaDto.setTipoAppartenenza(TipoAppartenenza.AFFERENZA_UO);
personaEntitaOrganizzativaDto.setEntitaOrganizzativa(personaEO.getEntitaOrganizzativa().getId());
personaEntitaOrganizzativaDto.setInizioValidita(rapportoBulk.getDt_ini_validita().toLocalDateTime().toLocalDate());
personaEntitaOrganizzativaDto.setFineValidita(rapportoBulk.getDt_fin_validita().toLocalDateTime().toLocalDate());
logger.info(personaEntitaOrganizzativaDto.toString());
final PersonaEntitaOrganizzativaWebDto personaEntitaOrganizzativaWebDto = aceService.savePersonaEntitaOrganizzativa(personaEntitaOrganizzativaDto);
}
}
}
}
}
} catch (FeignException _ex) {
String error = "Per la persona con id: " + personaId.get() + " è stato riscontrato un errore durante l'aggiornamento dell'appartenenza in ACE: " + _ex.getMessage();
logger.error(error);
SendMail.sendErrorMail("Invio Dati ACE: Eccezione durante l'aggiornamento delle appartenenze per la persona con ID " + personaId.get(), error);
}
}
}
} catch (Throwable e) {
throw handleException(e);
}
}
use of it.cnr.contab.anagraf00.core.bulk.RapportoBulk in project sigla-main by consiglionazionaledellericerche.
the class AnagraficoComponent method verificaNuovoRapporto.
/**
* Controlla i periodi di validità dei rapporti di tipo NON DIPENDENTE.
* Per ogni Rapporto di tipo NON DIPENDENTE, si controlla che la Data di Inizio Validità
* e quella di Fine Validità non siano all'interno di un periodo di validità di un Rapporto DIPENDENTE.
* In tal caso viene lanciato un messaggio all'utente.
*/
private void verificaNuovoRapporto(AnagraficoBulk anagrafico) throws it.cnr.jada.comp.ComponentException {
boolean wasDipendente = false;
BulkList rapporti_dip = new BulkList();
// Cerca tutti i rapporti di tipo DIPENDENTE
for (Iterator di = anagrafico.getRapporti().iterator(); di.hasNext(); ) {
RapportoBulk rap_dip = (RapportoBulk) di.next();
if (rap_dip.getTipo_rapporto().isDipendente()) {
wasDipendente = true;
rapporti_dip.add(rap_dip);
}
}
// Se esiste almeno un rapporto di tipo DIPENDENTE, controlla tutti gli altri rapporti
if (wasDipendente) {
try {
for (java.util.Iterator i = anagrafico.getRapporti().iterator(); i.hasNext(); ) {
RapportoBulk rapporto = (RapportoBulk) i.next();
if (!rapporto.getTipo_rapporto().isDipendente()) {
// delle incongruenze nelle date di Inizio/FIne periodo.
for (Iterator i_dip = rapporti_dip.iterator(); i_dip.hasNext(); ) {
RapportoBulk rapporto_dip = (RapportoBulk) i_dip.next();
// Aggiunta la condizione se non è dipendente perchè ci sono casi in cui è necessario creare un rapporto ASS su un dipendente attivo. Questa possibilità è data solo agli utenti con privilegio ALLTRA.
if (!anagrafico.isDipendente() && rapporto.getDt_ini_validita().after(rapporto_dip.getDt_ini_validita()) && rapporto.getDt_ini_validita().before(rapporto_dip.getDt_fin_validita())) {
throw new ApplicationException("Attenzione: la data di INIZIO validità del rapporto " + rapporto.getTipo_rapporto().getDs_tipo_rapporto() + " è incompatibile col periodo di validità del rapporto " + rapporto_dip.getTipo_rapporto().getDs_tipo_rapporto());
} else // Aggiunta la condizione se non è dipendente perchè ci sono casi in cui è necessario creare un rapporto ASS su un dipendente attivo. Questa possibilità è data solo agli utenti con privilegio ALLTRA.
if (!anagrafico.isDipendente() && rapporto.getDt_fin_validita().after(rapporto_dip.getDt_ini_validita()) && rapporto.getDt_fin_validita().before(rapporto_dip.getDt_fin_validita())) {
throw new ApplicationException("Attenzione: la data di FINE validità del rapporto " + rapporto.getTipo_rapporto().getDs_tipo_rapporto() + " è incompatibile col periodo di validità del rapporto " + rapporto_dip.getTipo_rapporto().getDs_tipo_rapporto());
}
}
// Fine ciclo sui Rapporti di tipo DIPENDENTE
}
// end if
}
// Fine ciclo sui Rapporti NON DIPENDENTI
} catch (Throwable t) {
throw new ComponentException(t);
}
}
// end if
}
Aggregations