diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaElettronicaPassivaComponent.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaElettronicaPassivaComponent.java index 34bb9179f4..09665a6a22 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaElettronicaPassivaComponent.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/FatturaElettronicaPassivaComponent.java @@ -34,6 +34,8 @@ import it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaHome; import it.cnr.contab.service.SpringUtil; import it.cnr.contab.utenze00.bp.CNRUserContext; +import it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailBulk; +import it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailHome; import it.cnr.jada.UserContext; import it.cnr.jada.bulk.BulkList; import it.cnr.jada.bulk.BusyResourceException; @@ -46,6 +48,7 @@ import it.cnr.jada.persistency.sql.FindClause; import it.cnr.jada.persistency.sql.Query; import it.cnr.jada.persistency.sql.SQLBuilder; +import it.cnr.jada.util.SendMail; import java.io.IOException; import java.io.Serializable; @@ -57,6 +60,8 @@ import java.util.Map; import javax.mail.PasswordAuthentication; +import javax.mail.internet.AddressException; +import javax.mail.internet.InternetAddress; import org.apache.commons.lang.StringUtils; @@ -128,12 +133,36 @@ public void completaDocumento(UserContext usercontext, DocumentoEleTrasmissioneB List terzoUOS = terzoHome.fetchAll(sql); if (terzoUOS != null && !terzoUOS.isEmpty()) { documentoEleTrasmissioneBulk.setUnitaOrganizzativa(terzoUOS.get(0).getUnita_organizzativa()); - documentoEleTrasmissioneBulk.setCommittente(terzoUOS.get(0)); + 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(); + String text = "E' pervenuta la fattura dal trasmittente: " +documentoEleTrasmissioneBulk.getIdCodice() + "
"+ + "Prestatore: " + documentoEleTrasmissioneBulk.getDenominzionePrestatore() +"
" + + "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 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) { List anagraficoBulks = anagraficoHome.findByCodiceFiscaleOrPartitaIVA( diff --git a/sigla-ejb/src/main/java/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailBase.java b/sigla-ejb/src/main/java/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailBase.java index ea0cc54b5d..953a0b98aa 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailBase.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailBase.java @@ -17,6 +17,8 @@ public class Utente_indirizzi_mailBase extends Utente_indirizzi_mailKey implemen private java.lang.Boolean flEsitoPosFattElettr; // FL_ESITO_NEG_FATT_ELETTR CHAR(1) NOT NULL private java.lang.Boolean flEsitoNegFattElettr; + // FL_FEP_NOTIFICA_RICEZIONE CHAR(1) NOT NULL + private java.lang.Boolean flFepNotificaRicezione; public Utente_indirizzi_mailBase() { super(); @@ -64,5 +66,10 @@ public java.lang.Boolean getFlEsitoNegFattElettr() { public void setFlEsitoNegFattElettr(java.lang.Boolean flEsitoNegFattElettr) { this.flEsitoNegFattElettr = flEsitoNegFattElettr; } - + public java.lang.Boolean getFlFepNotificaRicezione() { + return flFepNotificaRicezione; + } + public void setFlFepNotificaRicezione(java.lang.Boolean flFepNotificaRicezione) { + this.flFepNotificaRicezione = flFepNotificaRicezione; + } } \ No newline at end of file diff --git a/sigla-ejb/src/main/java/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailHome.java b/sigla-ejb/src/main/java/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailHome.java index 1b9ff6779d..4a38a86f3a 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailHome.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailHome.java @@ -3,6 +3,9 @@ * Date 23/02/2006 */ package it.cnr.contab.utenze00.bulk; +import it.cnr.contab.config00.sto.bulk.CdrBulk; +import it.cnr.contab.config00.sto.bulk.CdrHome; +import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk; import it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk; import it.cnr.contab.pdg00.cdip.bulk.Ass_pdg_variazione_cdrBulk; import it.cnr.contab.varstanz00.bulk.Ass_var_stanz_res_cdrBulk; @@ -59,4 +62,18 @@ public java.util.Collection findUtenteApprovaVariazioniBilancio(Pdg_variazioneBu sql.addSQLExistsClause("AND",sqlUtente); return fetchAll(sql); } + + public java.util.Collection findUtenteNotificaRicezioneFatturaElettronica(Unita_organizzativaBulk bulk) throws IntrospectionException, PersistencyException + { + SQLBuilder sql = createSQLBuilder(); + sql.addClause("AND","flFepNotificaRicezione",SQLBuilder.EQUALS,Boolean.TRUE); + SQLBuilder sqlUtente = getHomeCache().getHome(UtenteBulk.class).createSQLBuilder(); + SQLBuilder sqlCdR = ((CdrHome)getHomeCache().getHome(CdrBulk.class)).createSQLBuilderEsteso(); + sqlCdR.addClause("AND","cd_unita_organizzativa",SQLBuilder.EQUALS, bulk.getCd_unita_organizzativa()); + sqlCdR.addSQLJoin("CDR.CD_CENTRO_RESPONSABILITA","UTENTE.CD_CDR"); + sqlUtente.addSQLExistsClause("AND",sqlCdR); + sqlUtente.addSQLJoin("UTENTE.CD_UTENTE","UTENTE_INDIRIZZI_MAIL.CD_UTENTE"); + sql.addSQLExistsClause("AND",sqlUtente); + return fetchAll(sql); + } } \ No newline at end of file diff --git a/sigla-ejb/src/main/resources/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailBasePersistentInfo.xml b/sigla-ejb/src/main/resources/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailBasePersistentInfo.xml index 701044b35e..445f9cd6f5 100644 --- a/sigla-ejb/src/main/resources/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailBasePersistentInfo.xml +++ b/sigla-ejb/src/main/resources/it/cnr/contab/utenze00/bulk/Utente_indirizzi_mailBasePersistentInfo.xml @@ -47,6 +47,14 @@ columnSize="1" nullable="false" converterClassName="it.cnr.jada.persistency.sql.CHARToBooleanConverter" /> + + + - + + + - + + - + + + + diff --git a/sigla-web/src/main/webapp/utenze00/tab_mail.jsp b/sigla-web/src/main/webapp/utenze00/tab_mail.jsp index f7be11a597..ef60a77329 100644 --- a/sigla-web/src/main/webapp/utenze00/tab_mail.jsp +++ b/sigla-web/src/main/webapp/utenze00/tab_mail.jsp @@ -44,4 +44,8 @@ <% bp.getCrudUtente_indirizzi_mail().writeFormLabel( out, "flEsitoNegFattElettr"); %> <% bp.getCrudUtente_indirizzi_mail().writeFormInput( out, "flEsitoNegFattElettr"); %> + + <% bp.getCrudUtente_indirizzi_mail().writeFormLabel( out, "flFepNotificaRicezione"); %> + <% bp.getCrudUtente_indirizzi_mail().writeFormInput( out, "flFepNotificaRicezione"); %> + \ No newline at end of file