use of it.cnr.contab.anagraf00.core.bulk.AnagraficoHome 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.AnagraficoHome in project sigla-main by consiglionazionaledellericerche.
the class CompensoComponent method selectIncarichi_repertorio_annoByClause.
public SQLBuilder selectIncarichi_repertorio_annoByClause(UserContext userContext, CompensoBulk compenso, Incarichi_repertorio_annoBulk repertorio, CompoundFindClause clauses) throws ComponentException, it.cnr.jada.persistency.PersistencyException {
if (compenso.getCd_terzo() == null)
throw new it.cnr.jada.comp.ApplicationException("Inserire prima il codice del Terzo");
if (compenso.getTerzo() == null)
throw new it.cnr.jada.comp.ApplicationException("Ricercare prima il codice del Terzo");
if (compenso.getCd_tipo_rapporto() == null)
throw new it.cnr.jada.comp.ApplicationException("Inserire prima il Tipo Rapporto");
SQLBuilder sql = getHome(userContext, Incarichi_repertorio_annoBulk.class).createSQLBuilder();
// getHomeCache(userContext).fetchAll(userContext);
if (clauses != null)
sql.addClause(clauses);
sql.addTableToHeader("INCARICHI_REPERTORIO");
sql.addSQLJoin("INCARICHI_REPERTORIO_ANNO.ESERCIZIO", "INCARICHI_REPERTORIO.ESERCIZIO");
sql.addSQLJoin("INCARICHI_REPERTORIO_ANNO.PG_REPERTORIO", "INCARICHI_REPERTORIO.PG_REPERTORIO");
SQLBuilder sqlUoExists = getHome(userContext, Ass_incarico_uoBulk.class).createSQLBuilder();
sqlUoExists.addSQLJoin("ASS_INCARICO_UO.ESERCIZIO", "INCARICHI_REPERTORIO.ESERCIZIO");
sqlUoExists.addSQLJoin("ASS_INCARICO_UO.PG_REPERTORIO", "INCARICHI_REPERTORIO.PG_REPERTORIO");
sqlUoExists.addSQLClause("AND", "ASS_INCARICO_UO.CD_UNITA_ORGANIZZATIVA", SQLBuilder.EQUALS, compenso.getCd_unita_organizzativa());
sql.openParenthesis(FindClause.AND);
sql.openParenthesis(FindClause.OR);
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.CD_CDS", SQLBuilder.EQUALS, compenso.getCd_cds());
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.CD_UNITA_ORGANIZZATIVA", SQLBuilder.EQUALS, compenso.getCd_unita_organizzativa());
sql.closeParenthesis();
sql.addSQLExistsClause(FindClause.OR, sqlUoExists);
sql.closeParenthesis();
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.STATO", SQLBuilder.EQUALS, Incarichi_repertorioBulk.STATO_DEFINITIVO);
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.TI_ISTITUZ_COMMERC", SQLBuilder.EQUALS, compenso.getTi_istituz_commerc());
if (!compenso.getTerzo().isStudioAssociato())
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.CD_TERZO", SQLBuilder.EQUALS, compenso.getCd_terzo());
else {
AnagraficoHome anagraficoHome = (AnagraficoHome) getHome(userContext, AnagraficoBulk.class);
sql.openParenthesis("AND");
sql.addSQLClause("OR", "INCARICHI_REPERTORIO.CD_TERZO", SQLBuilder.EQUALS, compenso.getCd_terzo());
try {
for (Iterator<Anagrafico_terzoBulk> i = anagraficoHome.findAssociatiStudio(compenso.getTerzo().getAnagrafico()).iterator(); i.hasNext(); ) {
Anagrafico_terzoBulk associato = i.next();
if (associato.getDt_canc() == null || associato.getDt_canc().after(compenso.getDt_a_competenza_coge()))
sql.addSQLClause("OR", "INCARICHI_REPERTORIO.CD_TERZO", SQLBuilder.EQUALS, associato.getCd_terzo());
}
} catch (IntrospectionException e) {
}
sql.closeParenthesis();
}
if (compenso.getCd_tipo_rapporto() != null)
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.CD_TIPO_RAPPORTO", SQLBuilder.EQUALS, compenso.getCd_tipo_rapporto());
// compenso.getCd_trattamento());
if (compenso.isApertoDaMinicarriera() && compenso.getMinicarriera().getIncarichi_repertorio() != null) {
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.ESERCIZIO", SQLBuilder.EQUALS, compenso.getMinicarriera().getIncarichi_repertorio().getEsercizio());
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.PG_REPERTORIO", SQLBuilder.EQUALS, compenso.getMinicarriera().getIncarichi_repertorio().getPg_repertorio());
}
// sql.addSQLClause("AND","INCARICHI_REPERTORIO.IMPORTO_COMPLESSIVO",SQLBuilder.GREATER_EQUALS,
// prendiUtilizzato(userContext, repertorio));
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.DT_INIZIO_VALIDITA", SQLBuilder.LESS_EQUALS, compenso.getDt_da_competenza_coge());
sql.openParenthesis("AND");
sql.openParenthesis("");
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.DT_FINE_VALIDITA", SQLBuilder.GREATER_EQUALS, compenso.getDt_a_competenza_coge());
sql.closeParenthesis();
sql.openParenthesis("OR");
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.DT_PROROGA", SQLBuilder.ISNOTNULL, null);
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.DT_PROROGA", SQLBuilder.GREATER_EQUALS, compenso.getDt_a_competenza_coge());
sql.closeParenthesis();
sql.openParenthesis("OR");
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.DT_PROROGA_PAGAM", SQLBuilder.ISNOTNULL, null);
sql.addSQLClause("AND", "INCARICHI_REPERTORIO.DT_PROROGA_PAGAM", SQLBuilder.GREATER_EQUALS, compenso.getDt_a_competenza_coge());
sql.closeParenthesis();
SQLBuilder sqlExists = getHome(userContext, Incarichi_repertorio_varBulk.class).createSQLBuilder();
sqlExists.addSQLJoin("INCARICHI_REPERTORIO_VAR.ESERCIZIO", "INCARICHI_REPERTORIO.ESERCIZIO");
sqlExists.addSQLJoin("INCARICHI_REPERTORIO_VAR.PG_REPERTORIO", "INCARICHI_REPERTORIO.PG_REPERTORIO");
sqlExists.openParenthesis(FindClause.AND);
sqlExists.addSQLClause(FindClause.OR, "INCARICHI_REPERTORIO_VAR.TIPO_VARIAZIONE", SQLBuilder.EQUALS, Incarichi_repertorio_varBulk.TIPO_INTEGRAZIONE_INCARICO_TRANS);
sqlExists.addSQLClause(FindClause.OR, "INCARICHI_REPERTORIO_VAR.TIPO_VARIAZIONE", SQLBuilder.EQUALS, Incarichi_repertorio_varBulk.TIPO_INTEGRAZIONE_INCARICO);
sqlExists.closeParenthesis();
sqlExists.addSQLClause("AND", "INCARICHI_REPERTORIO_VAR.STATO", SQLBuilder.EQUALS, Incarichi_repertorio_varBulk.STATO_DEFINITIVO);
sqlExists.addSQLClause("AND", "INCARICHI_REPERTORIO_VAR.DT_FINE_VALIDITA", SQLBuilder.GREATER_EQUALS, compenso.getDt_a_competenza_coge());
sql.addSQLExistsClause("OR", sqlExists);
sql.closeParenthesis();
return sql;
}
use of it.cnr.contab.anagraf00.core.bulk.AnagraficoHome in project sigla-main by consiglionazionaledellericerche.
the class CompensoComponent method selectAnagraficoForPrintByClause.
/**
* Costruisce l'istruzione SQL corrispondente ad una ricerca con le clausole
* specificate. Aggiunge una clausola a tutte le operazioni di ricerca
* eseguite sull'Anagrafico per una operazione di Stampa per il Partitario
* Compensi.
*
* Nome: Richiesta di ricerca di una Anagrafica Pre: E' stata generata la
* richiesta di ricerca di una Anagrafica per una operazione di Stampa per
* il Partitario Compensi. Post: Viene restituito l'SQLBuilder con le
* clausole richieste
*
* @param userContext
* lo userContext che ha generato la richiesta
* @param compenso
* l'OggettoBulk che rappresenta il contesto della ricerca.
* @param tipologia
* l'OggettoBulk da usare come prototipo della ricerca; sul
* prototipo vengono costruite delle clausole aggiuntive che
* vengono aggiunte in AND alle clausole specificate.
* @param clauses
* L'albero logico delle clausole da applicare alla ricerca
* @return Un'istanza di SQLBuilder contenente l'istruzione SQL da eseguire
* e tutti i parametri della query.
*/
public SQLBuilder selectAnagraficoForPrintByClause(UserContext userContext, StampaCertificazioneVBulk stampa, AnagraficoBulk anagrafico, CompoundFindClause clauses) throws ComponentException {
AnagraficoHome home = (AnagraficoHome) getHome(userContext, anagrafico);
SQLBuilder sql = home.createSQLBuilder();
sql.addClause(clauses);
return sql;
}
use of it.cnr.contab.anagraf00.core.bulk.AnagraficoHome 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.AnagraficoHome in project sigla-main by consiglionazionaledellericerche.
the class FatturaElettronicaPassivaComponent method completaDocumento.
@SuppressWarnings("unchecked")
public void completaDocumento(UserContext usercontext, DocumentoEleTrasmissioneBulk documentoEleTrasmissioneBulk) throws ComponentException {
try {
AnagraficoHome anagraficoHome = (AnagraficoHome) getHome(usercontext, AnagraficoBulk.class);
TerzoHome terzoHome = (TerzoHome) getHome(usercontext, TerzoBulk.class);
Rif_modalita_pagamentoHome rifModPagHome = (Rif_modalita_pagamentoHome) getHome(usercontext, Rif_modalita_pagamentoBulk.class);
Modalita_pagamentoHome modPagHome = (Modalita_pagamentoHome) getHome(usercontext, Modalita_pagamentoBulk.class);
Voce_ivaHome voceIvaHome = (Voce_ivaHome) getHome(usercontext, Voce_ivaBulk.class);
List<String> anomalieTrasmissione = new ArrayList<String>();
SQLBuilder sql = terzoHome.createSQLBuilder();
sql.addClause(FindClause.AND, "codiceUnivocoUfficioIpa", SQLBuilder.EQUALS, documentoEleTrasmissioneBulk.getCodiceDestinatario());
sql.addSQLClause("AND", "DT_FINE_RAPPORTO", sql.ISNULL, null);
List<TerzoBulk> terzoUOS = terzoHome.fetchAll(sql);
if (terzoUOS != null && !terzoUOS.isEmpty()) {
documentoEleTrasmissioneBulk.setUnitaOrganizzativa(terzoUOS.get(0).getUnita_organizzativa());
documentoEleTrasmissioneBulk.setCommittente(terzoUOS.get(0));
} else {
TerzoBulk terzoEnte = terzoHome.findTerzoEnte();
documentoEleTrasmissioneBulk.setUnitaOrganizzativa(terzoEnte.getUnita_organizzativa());
documentoEleTrasmissioneBulk.setCommittente(terzoEnte);
}
/**
* Invio mail di notifica Ricezione
*/
try {
String subject = "[SIGLA] Notifica ricezione fattura passiva con Identificativo SdI:" + documentoEleTrasmissioneBulk.getIdentificativoSdi();
subject += " UO: " + documentoEleTrasmissioneBulk.getUnitaOrganizzativa().getCd_unita_organizzativa();
String text = "E' pervenuta la fattura dal trasmittente: <b>" + documentoEleTrasmissioneBulk.getIdCodice() + "</b><br>" + "Prestatore: " + documentoEleTrasmissioneBulk.getDenominzionePrestatore() + "<br>" + "Il documento è presente nell'area temporanea di SIGLA.";
String addressTO = null;
Utente_indirizzi_mailHome utente_indirizzi_mailHome = (Utente_indirizzi_mailHome) getHome(usercontext, Utente_indirizzi_mailBulk.class);
for (java.util.Iterator<Utente_indirizzi_mailBulk> i = utente_indirizzi_mailHome.findUtenteNotificaRicezioneFatturaElettronica(documentoEleTrasmissioneBulk.getUnitaOrganizzativa()).iterator(); i.hasNext(); ) {
Utente_indirizzi_mailBulk utente_indirizzi = (Utente_indirizzi_mailBulk) i.next();
if (addressTO == null)
addressTO = new String();
else
addressTO = addressTO + ",";
addressTO = addressTO + utente_indirizzi.getIndirizzo_mail();
}
if (addressTO != null) {
SendMail.sendMail(subject, text, InternetAddress.parse(addressTO));
}
} catch (Exception _ex) {
}
if (documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale() != null || documentoEleTrasmissioneBulk.getPrestatoreCodice() != null) {
final List<String> cigs = documentoEleTrasmissioneBulk.getDocEleTestataColl().stream().map(DocumentoEleTestataBulk::getDocEleAcquistoColl).flatMap(documentoEleAcquistoBulks -> documentoEleAcquistoBulks.stream()).map(DocumentoEleAcquistoBulk::getAcquistoCig).filter(s -> Optional.ofNullable(s).isPresent()).collect(Collectors.toList());
if (!cigs.isEmpty()) {
ContrattoHome contrattoHome = (ContrattoHome) getHome(usercontext, ContrattoBulk.class);
for (String cig : cigs) {
final Optional<ContrattoBulk> optionalContrattoBulk = contrattoHome.findByCIG(usercontext, cig).stream().findAny();
if (optionalContrattoBulk.isPresent()) {
final TerzoBulk figura_giuridica_esterna = optionalContrattoBulk.get().getFigura_giuridica_esterna();
if (Optional.ofNullable(documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale()).filter(s -> s.equalsIgnoreCase(Optional.ofNullable(figura_giuridica_esterna.getCodice_fiscale_anagrafico()).orElse(""))).isPresent() || (Optional.ofNullable(documentoEleTrasmissioneBulk.getPrestatoreCodice()).filter(s -> s.equalsIgnoreCase(Optional.ofNullable(figura_giuridica_esterna.getPartita_iva_anagrafico()).orElse(""))).isPresent() && !Optional.ofNullable(figura_giuridica_esterna).flatMap(terzoBulk -> Optional.ofNullable(terzoBulk.getAnagrafico())).flatMap(anagraficoBulk -> Optional.ofNullable(anagraficoBulk.getTi_entita_giuridica())).map(s -> s.equalsIgnoreCase(AnagraficoBulk.GIURIDICA)).orElse(Boolean.TRUE))) {
documentoEleTrasmissioneBulk.setPrestatore(figura_giuridica_esterna);
documentoEleTrasmissioneBulk.setPrestatoreAnag(figura_giuridica_esterna.getAnagrafico());
}
}
}
}
if (!Optional.ofNullable(documentoEleTrasmissioneBulk).flatMap(documentoEleTrasmissioneBulk1 -> Optional.ofNullable(documentoEleTrasmissioneBulk.getPrestatore())).flatMap(terzoBulk -> Optional.ofNullable(terzoBulk.getCd_terzo())).isPresent()) {
List<AnagraficoBulk> anagraficoBulks = null;
anagraficoBulks = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale(), documentoEleTrasmissioneBulk.getPrestatoreCodice());
if (anagraficoBulks != null && !anagraficoBulks.isEmpty()) {
if (anagraficoBulks.size() == 1) {
AnagraficoBulk anag = anagraficoBulks.get(0);
documentoEleTrasmissioneBulk.setPrestatoreAnag(anag);
List<TerzoBulk> terzi = terzoHome.findTerzi(anagraficoBulks.get(0));
if (terzi != null && !terzi.isEmpty() && terzi.size() == 1) {
documentoEleTrasmissioneBulk.setPrestatore(terzi.get(0));
}
} else {
anomalieTrasmissione.add("Esistono più di una riga in anagrafica per il CF:" + documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale() + " o la partita IVA: " + documentoEleTrasmissioneBulk.getPrestatoreCodice());
}
}
}
if (documentoEleTrasmissioneBulk.getPrestatoreCodice() != null) {
List<AnagraficoBulk> list = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(null, documentoEleTrasmissioneBulk.getPrestatoreCodice());
if (list != null && list.size() == 1) {
AnagraficoBulk anagraficoBulk = list.get(0);
if (anagraficoBulk.isGruppoIVA()) {
documentoEleTrasmissioneBulk.setPrestatoreAnag(anagraficoBulk);
documentoEleTrasmissioneBulk.setPrestatore(null);
if (documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale() != null) {
List<AnagraficoBulk> lista = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale(), null);
if (lista != null && lista.size() == 1) {
AnagraficoBulk anagraficoPerTerzo = lista.get(0);
if (documentoEleTrasmissioneBulk.getDataRicezione().compareTo(anagraficoBulk.getDt_canc()) <= 0 && documentoEleTrasmissioneBulk.getDataRicezione().compareTo(anagraficoBulk.getDtIniValGruppoIva()) > 0) {
List<TerzoBulk> listaTerzi = terzoHome.findTerzi(anagraficoPerTerzo);
if (listaTerzi.size() == 0) {
documentoEleTrasmissioneBulk.setPrestatore(listaTerzi.get(0));
}
}
}
}
}
}
}
}
if (documentoEleTrasmissioneBulk.getRappresentanteCodicefiscale() != null || documentoEleTrasmissioneBulk.getRappresentanteCodice() != null) {
List<AnagraficoBulk> anagraficoBulks = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getRappresentanteCodicefiscale(), documentoEleTrasmissioneBulk.getRappresentanteCodice());
if (anagraficoBulks != null && !anagraficoBulks.isEmpty()) {
if (anagraficoBulks.size() == 1) {
documentoEleTrasmissioneBulk.setRappresentanteAnag(anagraficoBulks.get(0));
List<TerzoBulk> terzi = terzoHome.findTerzi(anagraficoBulks.get(0));
if (terzi != null && !terzi.isEmpty() && terzi.size() == 1) {
documentoEleTrasmissioneBulk.setRappresentante(terzi.get(0));
}
} else {
anomalieTrasmissione.add("Esistono più di una riga in anagrafica per il CF:" + documentoEleTrasmissioneBulk.getRappresentanteCodicefiscale() + " o la partita IVA: " + documentoEleTrasmissioneBulk.getRappresentanteCodice());
}
}
}
if (documentoEleTrasmissioneBulk.getIntermediarioCodicefiscale() != null || documentoEleTrasmissioneBulk.getIntermediarioCodice() != null) {
List<AnagraficoBulk> anagraficoBulks = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getIntermediarioCodicefiscale(), documentoEleTrasmissioneBulk.getIntermediarioCodice());
if (anagraficoBulks != null && !anagraficoBulks.isEmpty()) {
if (anagraficoBulks.size() == 1) {
documentoEleTrasmissioneBulk.setIntermediarioAnag(anagraficoBulks.get(0));
List<TerzoBulk> terzi = terzoHome.findTerzi(anagraficoBulks.get(0));
if (terzi != null && !terzi.isEmpty() && terzi.size() == 1) {
documentoEleTrasmissioneBulk.setIntermediario(terzi.get(0));
}
} else {
anomalieTrasmissione.add("Esistono più di una riga in anagrafica per il CF:" + documentoEleTrasmissioneBulk.getIntermediarioCodicefiscale() + " o la partita IVA: " + documentoEleTrasmissioneBulk.getIntermediarioCodice());
}
}
}
if (!anomalieTrasmissione.isEmpty())
documentoEleTrasmissioneBulk.setAnomalieRicezione(StringUtils.join(anomalieTrasmissione.toArray(), " - "));
for (DocumentoEleTestataBulk docTestata : documentoEleTrasmissioneBulk.getDocEleTestataColl()) {
List<String> anomalieTestata = new ArrayList<String>();
if (docTestata.getBeneficiarioModPag() != null) {
SQLBuilder sqlRifModPag = rifModPagHome.createSQLBuilder();
sqlRifModPag.addClause(FindClause.AND, "tipoPagamentoSdi", SQLBuilder.EQUALS, docTestata.getBeneficiarioModPag());
List<Rif_modalita_pagamentoBulk> rifModPags = rifModPagHome.fetchAll(sqlRifModPag);
boolean trovataModPag = Boolean.FALSE;
for (Rif_modalita_pagamentoBulk rif_modalita_pagamentoBulk : rifModPags) {
Modalita_pagamentoBulk modalitaPagamento = (Modalita_pagamentoBulk) modPagHome.findByPrimaryKey(new Modalita_pagamentoBulk(rif_modalita_pagamentoBulk.getCd_modalita_pag(), docTestata.getDocumentoEleTrasmissione().getPrestatoreCdTerzo()));
if (modalitaPagamento != null) {
trovataModPag = Boolean.TRUE;
docTestata.setModalitaPagamento(modalitaPagamento);
break;
}
}
if (!trovataModPag) {
anomalieTestata.add("Modalità di pagamento non trovata");
}
}
if (!anomalieTestata.isEmpty())
docTestata.setAnomalie(StringUtils.join(anomalieTestata.toArray(), " - "));
docTestata.setStatoDocumento(StatoDocumentoEleEnum.AGGIORNATO.name());
docTestata.setToBeUpdated();
for (DocumentoEleIvaBulk documentoEleIvaBulk : docTestata.getDocEleIVAColl()) {
List<String> anomalieIVA = new ArrayList<String>();
SQLBuilder sqlVoceIva = voceIvaHome.createSQLBuilder();
sqlVoceIva.addClause(FindClause.AND, "percentuale", SQLBuilder.EQUALS, documentoEleIvaBulk.getAliquotaIva());
sqlVoceIva.addSQLClause(FindClause.AND, "NATURA_OPER_NON_IMP_SDI", SQLBuilder.EQUALS, documentoEleIvaBulk.getNatura());
List<Voce_ivaBulk> results = voceIvaHome.fetchAll(sqlVoceIva);
if (results.isEmpty())
anomalieIVA.add("Codice Iva non trovato!");
if (results.size() > 1)
anomalieIVA.add("Esistonio piu codici Iva associabili alla riga!");
if (results.size() == 1)
documentoEleIvaBulk.setVoceIva(results.get(0));
if (!anomalieIVA.isEmpty())
documentoEleIvaBulk.setAnomalie(StringUtils.join(anomalieIVA.toArray(), " - "));
documentoEleIvaBulk.setToBeUpdated();
}
}
documentoEleTrasmissioneBulk.setToBeUpdated();
modificaConBulk(usercontext, documentoEleTrasmissioneBulk);
} catch (Throwable throwable) {
throw handleException(throwable);
}
}
Aggregations