use of it.cnr.contab.anagraf00.core.bulk.TelefonoBulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDFatturaPassivaElettronicaBP method rifiutaFatturaConPEC.
public void rifiutaFatturaConPEC(ActionContext context, DocumentoEleTestataBulk bulk, RifiutaFatturaBulk rifiutaFatturaBulk) throws BusinessProcessException {
try {
if (isDirty()) {
save(context);
bulk = (DocumentoEleTestataBulk) createComponentSession().inizializzaBulkPerModifica(context.getUserContext(), bulk);
}
TerzoBulk prestatore = Optional.ofNullable(bulk.getDocumentoEleTrasmissione().getPrestatore()).orElseThrow(() -> new ApplicationException("Valorizzare il terzo cedente/prestatore"));
TerzoBulk terzoPerUnitaOrganizzativa = ((it.cnr.contab.anagraf00.ejb.TerzoComponentSession) createComponentSession("CNRANAGRAF00_EJB_TerzoComponentSession")).cercaTerzoPerUnitaOrganizzativa(context.getUserContext(), bulk.getDocumentoEleTrasmissione().getUnitaOrganizzativa());
Numerazione_baseComponentSession numerazione = (Numerazione_baseComponentSession) EJBCommonServices.createEJB("CNRCONFIG00_TABNUM_EJB_Numerazione_baseComponentSession");
boolean isNota = bulk.getTipoDocumento().equalsIgnoreCase(TipoDocumentoType.TD_04.value());
Format dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Print_spoolerBulk print = new Print_spoolerBulk();
print.setPgStampa(UUID.randomUUID().getLeastSignificantBits());
print.setFlEmail(false);
print.setReport("/docamm/docamm/rifiuto_fattura_elettronica.jasper");
print.setNomeFile("Comunicazione di non registrabilità del ".concat(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd-MM-yyyy"))).concat(".pdf"));
print.setUtcr(context.getUserContext().getUser());
print.addParam("title", Optional.ofNullable(rifiutaFatturaBulk.getMessageText()).filter(s -> !isNota).map(s -> "Richiesta storno Documento Elettronico").orElseGet(() -> "Rifiuto Documento Elettronico"), String.class);
print.addParam("message", rifiutaFatturaBulk.getMessage(), String.class);
print.addParam("note", rifiutaFatturaBulk.getNote(), String.class);
print.addParam("is_nota", isNota, Boolean.class);
print.addParam("codice_uo", bulk.getDocumentoEleTrasmissione().getUnitaOrganizzativa().getCd_unita_organizzativa(), String.class);
print.addParam("descrizione_uo", bulk.getDocumentoEleTrasmissione().getUnitaOrganizzativa().getDs_unita_organizzativa(), String.class);
print.addParam("codice_cuu", terzoPerUnitaOrganizzativa.getCodiceUnivocoUfficioIpa(), String.class);
print.addParam("denominazione_sede", prestatore.getDenominazione_sede(), String.class);
print.addParam("pec", rifiutaFatturaBulk.getEmailPEC(), String.class);
print.addParam("tipo_documento", DocumentoEleTestataBulk.tiTipoDocumentoKeys.get(bulk.getTipoDocumento()), String.class);
print.addParam("identificativo_sdi", bulk.getIdentificativoSdi(), Long.class);
print.addParam("numero_documento", bulk.getNumeroDocumento(), String.class);
print.addParam("data_documento", bulk.getDataDocumento(), Date.class, dateFormat);
print.addParam("data_ricezione", bulk.getDocumentoEleTrasmissione().getDataRicezione(), Date.class, dateFormat);
Report report = SpringUtil.getBean("printService", PrintService.class).executeReport(context.getUserContext(), print);
LocalDateTime now = LocalDateTime.now();
int esercizio = now.getYear();
Long numProtocollo = numerazione.creaNuovoProgressivo(context.getUserContext(), esercizio, "RIFIUTO_FATTURA_PEC", "NUM_PROTOCOLLO", CNRUserContext.getUser(context.getUserContext()));
AllegatoNonRegistrabilitaBulk allegatoNonRegistrabilitaBulk = new AllegatoNonRegistrabilitaBulk();
allegatoNonRegistrabilitaBulk.setNome(report.getName());
allegatoNonRegistrabilitaBulk.setUtenteSIGLA(CNRUserContext.getUser(context.getUserContext()));
allegatoNonRegistrabilitaBulk.setAnnoProtocollo(esercizio);
allegatoNonRegistrabilitaBulk.setNumeroProtocollo(Utility.lpad(numProtocollo, 6, '0'));
allegatoNonRegistrabilitaBulk.setDataProtocollo(Date.from(now.toInstant(ZoneOffset.UTC)));
allegatoNonRegistrabilitaBulk.setTitolo("Allegato inviato al seguente indirizzo email: " + rifiutaFatturaBulk.getEmailPEC());
final StorageObject storageObject = SpringUtil.getBean("storeService", StoreService.class).restoreSimpleDocument(allegatoNonRegistrabilitaBulk, report.getInputStream(), report.getContentType(), report.getName(), Optional.ofNullable(getStorePath(bulk, false)).orElseThrow(() -> new ApplicationException("Path sul documentale non trovato, contattare il supporto Help Desk!")), false);
FatturaPassivaElettronicaService fatturaPassivaElettronicaService = SpringUtil.getBean("fatturaPassivaElettronicaService", FatturaPassivaElettronicaService.class);
fatturaPassivaElettronicaService.inviaPECFornitore(context.getUserContext(), new ByteArrayDataSource(storeService.getResource(storageObject.getKey()), MimeTypes.PDF.mimetype()), report.getName(), rifiutaFatturaBulk.getEmailPEC(), Optional.ofNullable(rifiutaFatturaBulk.getMessageText()).filter(s -> !isNota).map(s -> "Richiesta Storno documento elettronico ricevuto IdentificativoSdI: ").orElseGet(() -> "Rifiuto documento elettronico ricevuto IdentificativoSdI: ").concat(bulk.getIdentificativoSdi().toString()), Optional.ofNullable(rifiutaFatturaBulk.getMessageText()).filter(s -> !isNota).map(s -> "Richiesta Storno documento elettronico ricevuto. ").orElseGet(() -> "Rifiuto documento elettronico ricevuto. ").concat("Informazioni del rifiuto e riferimenti del documento in allegato." + "\n\nNota: questa è un'e-mail generata automaticamente e non avremo la possibilità di " + "leggere eventuali e-mail di risposta. Non rispondere a questo messaggio."));
bulk.setFlIrregistrabile("S");
if (isNota) {
bulk.setStatoDocumento(StatoDocumentoEleEnum.RIFIUTATA_CON_PEC.name());
} else {
bulk.setStatoDocumento(StatoDocumentoEleEnum.DA_STORNARE.name());
}
bulk.setToBeUpdated();
OggettoBulk oggettoBulk = getComponentSession().modificaConBulk(context.getUserContext(), bulk);
if (!Optional.ofNullable(getEMailPEC(context)).isPresent()) {
TelefonoBulk telefonoBulk = new TelefonoBulk();
telefonoBulk.setTerzo(prestatore);
telefonoBulk.setRiferimento(rifiutaFatturaBulk.getEmailPEC());
telefonoBulk.setTi_riferimento(TelefonoBulk.PEC);
telefonoBulk.setFattElettronica(Boolean.TRUE);
telefonoBulk.setToBeCreated();
getComponentSession().creaConBulk(context.getUserContext(), telefonoBulk);
}
setMessage("Comunicazione inviata correttamente.");
edit(context, oggettoBulk);
} catch (ComponentException | IOException | EmailException | BusyResourceException | ValidationException e) {
throw handleException(e);
}
}
use of it.cnr.contab.anagraf00.core.bulk.TelefonoBulk in project sigla-main by consiglionazionaledellericerche.
the class PendenzaPagopaComponent method generaPosizioneDebitoria.
public PendenzaPagopaBulk generaPosizioneDebitoria(UserContext userContext, IDocumentoAmministrativoBulk documentoAmministrativoBulk, Timestamp dataScadenza, String descrizione, BigDecimal importoScadenza, TerzoBulk terzoBulk) throws ComponentException {
try {
GestionePagopaHome home = (GestionePagopaHome) getHome(userContext, GestionePagopaBulk.class);
Timestamp dataOdierna = DateServices.getDataOdierna();
GestionePagopaBulk gestionePagopaBulk = home.findGestionePagopa(dataOdierna);
if (gestionePagopaBulk != null) {
PendenzaPagopaBulk scadenzaPagopaBulk = new PendenzaPagopaBulk();
Numerazione_doc_ammBulk numerazioneProgressivoUnivoco = new Numerazione_doc_ammBulk();
TipoPendenzaPagopaBulk tipoPendenzaPagopaBulk = getTipoScadenzaPagopaBulk(userContext, gestionePagopaBulk);
String iuv = generaIuv(userContext, documentoAmministrativoBulk, dataOdierna, numerazioneProgressivoUnivoco, tipoPendenzaPagopaBulk);
String codiceAvviso = generaCodiceAvviso(tipoPendenzaPagopaBulk, iuv);
scadenzaPagopaBulk.setCdAvviso(codiceAvviso);
scadenzaPagopaBulk.setCdIuv(iuv);
scadenzaPagopaBulk.setTipoPendenzaPagopa(tipoPendenzaPagopaBulk);
scadenzaPagopaBulk.setEsercizio(numerazioneProgressivoUnivoco.getEsercizio());
scadenzaPagopaBulk.setDtScadenza(dataScadenza);
scadenzaPagopaBulk.setTipoPosizione(PendenzaPagopaBulk.TIPO_POSIZIONE_CREDITORIA);
scadenzaPagopaBulk.setStato(PendenzaPagopaBulk.STATO_VALIDO);
scadenzaPagopaBulk.setUnitaOrganizzativa(new Unita_organizzativaBulk());
scadenzaPagopaBulk.setCdUnitaOrganizzativa(CNRUserContext.getCd_unita_organizzativa(userContext));
scadenzaPagopaBulk.setImportoPendenza(importoScadenza);
scadenzaPagopaBulk.setDescrizione(descrizione);
scadenzaPagopaBulk.setTerzo(terzoBulk);
if (documentoAmministrativoBulk != null) {
scadenzaPagopaBulk.setCdCdsDocAmm(documentoAmministrativoBulk.getCd_cds());
scadenzaPagopaBulk.setCdUoDocAmm(documentoAmministrativoBulk.getCd_uo());
scadenzaPagopaBulk.setCdTipoDocAmm(documentoAmministrativoBulk.getCd_tipo_doc_amm());
scadenzaPagopaBulk.setEsercizioDocAmm(documentoAmministrativoBulk.getEsercizio());
scadenzaPagopaBulk.setPgDocAmm(documentoAmministrativoBulk.getPg_doc_amm());
}
scadenzaPagopaBulk.setToBeCreated();
Pendenza pendenza = new Pendenza();
pendenza.setIdTipoPendenza("PRESTAZIONE");
pendenza.setIdDominio(1);
pendenza.setIdUnitaOperativa(scadenzaPagopaBulk.getCdUnitaOrganizzativa());
pendenza.setCausale(scadenzaPagopaBulk.getDescrizione());
SoggettoPagatore soggettoPagatore = new SoggettoPagatore();
AnagraficoBulk anagraficoBulk = scadenzaPagopaBulk.getTerzo().getAnagrafico();
soggettoPagatore.setTipo(anagraficoBulk.getTi_entita());
soggettoPagatore.setAnagrafica(terzoBulk.getDenominazione_sede());
soggettoPagatore.setIndirizzo(terzoBulk.getVia_sede());
try {
soggettoPagatore.setCap(new Integer(terzoBulk.getCap_comune_sede()));
} catch (NumberFormatException e) {
}
try {
ComuneBulk comuneBulk = (ComuneBulk) getHome(userContext, terzoBulk.getComune_sede()).findByPrimaryKey(terzoBulk.getComune_sede());
soggettoPagatore.setLocalita(comuneBulk.getDs_comune());
soggettoPagatore.setProvincia(comuneBulk.getCd_provincia());
NazioneBulk nazioneBulk = (NazioneBulk) getHome(userContext, comuneBulk.getNazione()).findByPrimaryKey(comuneBulk.getNazione());
soggettoPagatore.setNazione(nazioneBulk.getCd_iso());
} catch (PersistencyException e) {
}
TerzoHome terzoHome = (TerzoHome) getHome(userContext, terzoBulk);
Collection<TelefonoBulk> mails = terzoHome.findTelefoni(terzoBulk, TelefonoBulk.EMAIL);
if (mails != null && mails.isEmpty()) {
soggettoPagatore.setEmail(mails.iterator().next().getRiferimento());
}
Collection<TelefonoBulk> telefoni = terzoHome.findTelefoni(terzoBulk, TelefonoBulk.TEL);
if (telefoni != null && telefoni.isEmpty()) {
soggettoPagatore.setCellulare(telefoni.iterator().next().getRiferimento());
}
soggettoPagatore.setIndirizzo(terzoBulk.getVia_sede());
pendenza.setImporto(importoScadenza);
pendenza.setNumeroAvviso(new Long(codiceAvviso));
pendenza.setAnnoRiferimento(CNRUserContext.getEsercizio(userContext));
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd");
Date data = new Date(dataScadenza.getTime());
pendenza.setDataScadenza(formatter.format(data));
pendenza.setDataNotificaAvviso(formatter.format(new Date(dataOdierna.getTime())));
pendenza.setDataPromemoriaScadenza(pendenza.getDataScadenza());
Voci voci = new Voci();
Entrata entrata = new Entrata();
entrata.setIbanAccredito("AA");
entrata.setIbanAppoggio("AA1");
voci.setEntrata(entrata);
pendenza.setVoci(Arrays.asList(voci));
return scadenzaPagopaBulk;
} else {
throw new it.cnr.jada.comp.ApplicationException("La gestione PagoPA non è indicata per la data odierna");
}
} catch (Throwable t) {
throw handleException(t);
}
}
use of it.cnr.contab.anagraf00.core.bulk.TelefonoBulk in project sigla-main by consiglionazionaledellericerche.
the class TerzoResource method update.
public Response update(@Context HttpServletRequest request, TerzoBulk terzoBulk) throws Exception {
CNRUserContext userContext = (CNRUserContext) securityContext.getUserPrincipal();
Optional.ofNullable(terzoBulk.getCd_terzo()).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Errore, indicare il codice terzo."));
TerzoBulk terzoDB = getTerzo(userContext, terzoBulk.getCd_terzo());
Optional.ofNullable(terzoDB).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Errore, il codice terzo indicato " + terzoBulk.getCd_terzo() + " non esiste"));
Optional.ofNullable(terzoBulk.getCodiceDestinatarioFatt()).orElseGet(() -> Optional.ofNullable(terzoBulk.getPecForRest()).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Errore, indicare almeno la pec o il codice destinatario fattura.")));
terzoDB = (TerzoBulk) terzoComponentSession.inizializzaBulkPerModifica(userContext, terzoDB);
terzoDB.setCodiceDestinatarioFatt(Optional.ofNullable(terzoBulk.getCodiceDestinatarioFatt()).orElse(terzoDB.getCodiceDestinatarioFatt()));
if (terzoBulk.getPecForRest() != null && !terzoBulk.getPecForRest().isEmpty()) {
String newPec = terzoBulk.getPecForRest();
Boolean pecEsistente = false;
for (java.util.Iterator i = terzoDB.getPec().iterator(); i.hasNext(); ) {
TelefonoBulk emailPec = (TelefonoBulk) i.next();
if (emailPec.getRiferimento().equalsIgnoreCase(newPec)) {
pecEsistente = true;
emailPec.setFattElettronica(true);
emailPec.setToBeUpdated();
} else if (emailPec.getFattElettronica()) {
emailPec.setFattElettronica(false);
emailPec.setToBeUpdated();
}
}
if (!pecEsistente) {
TelefonoBulk telefonoBulk = new TelefonoBulk();
telefonoBulk.setToBeCreated();
telefonoBulk.setRiferimento(terzoBulk.getPecForRest());
telefonoBulk.setDs_riferimento("INDIRIZZO PEC PER FATTURAZIONE ELETTRONICA");
telefonoBulk.setFattElettronica(true);
terzoDB.addToPec(telefonoBulk);
}
}
terzoDB.setToBeUpdated();
terzoDB = (TerzoBulk) terzoComponentSession.modificaConBulk(userContext, terzoDB);
return Response.status(Status.OK).entity(terzoBulk).build();
}
use of it.cnr.contab.anagraf00.core.bulk.TelefonoBulk in project sigla-main by consiglionazionaledellericerche.
the class AnagraficoComponent method inizializzaBulkPerModifica.
/**
* Carica un anagrafica con tutti i dati correlati.
* <p>
* Nome: Inizializzazione;
* Pre: Preparare l'oggetto alle modifiche;
* Post: Si procede, oltre che alla normare procedura di inizializzazione di un oggetto bulk,
* anche al caricamento di tutti gli elementi associati all'anagrafica in modifica.
*
* @param bulk dovrà essere sempore <code>AnagraficoBulk</code>.
* @return un <code>OggettoBulk</code> che sarà sempre un <code>AnagraficoBulk</code>.
*/
public OggettoBulk inizializzaBulkPerModifica(UserContext userContext, OggettoBulk bulk) throws it.cnr.jada.comp.ComponentException {
try {
AnagraficoBulk anagrafico = (AnagraficoBulk) super.inizializzaBulkPerModifica(userContext, bulk);
AnagraficoHome anagraficoHome = (AnagraficoHome) getHome(userContext, AnagraficoBulk.class);
// anagrafico.setTerzi(new BulkList(anagraficoHome.findTerzi(anagrafico)));
anagrafico.setRapporti(new BulkList(anagraficoHome.findRapporti(anagrafico)));
anagrafico.setAssGruppoIva(new BulkList(anagraficoHome.findAssGruppoIva(anagrafico)));
anagrafico.setDichiarazioni_intento(new BulkList(anagraficoHome.findDichiarazioni_intento(anagrafico)));
anagrafico.setCarichi_familiari_anag(new BulkList(anagraficoHome.findCarichi_familiari_anag(anagrafico)));
anagrafico.setPagamenti_esterni(new BulkList(anagraficoHome.findPagamenti_esterni(anagrafico)));
if (anagrafico.STRUT_CNR.equals(anagrafico.getTi_entita()))
anagrafico.setTi_entita_persona_struttura(anagrafico.ENTITA_STRUTTURA);
else
anagrafico.setTi_entita_persona_struttura(anagrafico.ENTITA_PERSONA);
// ??????????????
// anagrafico.setCervello(anagrafico.getFl_cervelloni());
// java.util.Collection details = anagraficoHome.findContatti(anagrafico);
// for (java.util.Iterator i = details.iterator();i.hasNext();) {
// ContattoBulk contatto = (ContattoBulk)i.next();
// contatto.getTerzo().addToContatti(contatto);
// }
// details = anagraficoHome.findBanca(anagrafico);
// for (java.util.Iterator i = details.iterator();i.hasNext();) {
// BancaBulk banca = (BancaBulk)i.next();
// banca.getTerzo().addToBanche(banca);
// }
// details = anagraficoHome.findTermini_pagamento(anagrafico);
// for (java.util.Iterator i = details.iterator();i.hasNext();) {
// Termini_pagamentoBulk termini_pagamento = (Termini_pagamentoBulk)i.next();
// termini_pagamento.getTerzo().addToTermini_pagamento(termini_pagamento);
// }
// details = anagraficoHome.findModalita_pagamento(anagrafico);
// for (java.util.Iterator i = details.iterator();i.hasNext();) {
// Modalita_pagamentoBulk modalita_pagamento = (Modalita_pagamentoBulk)i.next();
// modalita_pagamento.getTerzo().addToModalita_pagamento(modalita_pagamento);
// }
// details = anagraficoHome.findTelefoni(anagrafico, getHomeCache(userContext).getHome(TelefonoBulk.class,"V_TELEFONO_ANAG"));
// for (java.util.Iterator i = details.iterator();i.hasNext();) {
// TelefonoBulk telefoni = (TelefonoBulk)i.next();
// if(TelefonoBulk.TEL.equals(telefoni.getTi_riferimento())) telefoni.getTerzo().addToTelefoni(telefoni);
// else if(TelefonoBulk.EMAIL.equals(telefoni.getTi_riferimento())) telefoni.getTerzo().addToEmail(telefoni);
// else if(TelefonoBulk.FAX.equals(telefoni.getTi_riferimento())) telefoni.getTerzo().addToFax(telefoni);
// }
// for (java.util.Iterator i = anagrafico.getTerzi().iterator();i.hasNext();) {
// TerzoBulk terzo = (TerzoBulk)i.next();
// terzo.setRif_termini_pagamento_disponibili(anagrafico.getRif_termini_pagamento());
// terzo.setRif_modalita_pagamento_disponibili(anagrafico.getRif_modalita_pagamento());
// if (terzo.getCd_unita_organizzativa() != null) {
// terzo.setUnita_organizzativa((it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk)getHome(userContext,it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk.class).findByPrimaryKey(new it.cnr.contab.config00.sto.bulk.Unita_organizzativaKey(terzo.getCd_unita_organizzativa())));
// if (terzo.getUnita_organizzativa() == null) {
// terzo.setUnita_organizzativa(new it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk());
// terzo.getUnita_organizzativa().setCd_unita_organizzativa(terzo.getCd_unita_organizzativa());
// terzo.getUnita_organizzativa().setCrudStatus(terzo.NORMAL);
// }
// }
// super.initializeKeysAndOptionsInto(userContext,terzo);
// }
java.util.Collection details = anagraficoHome.findInquadramenti(anagrafico);
for (java.util.Iterator i = details.iterator(); i.hasNext(); ) {
InquadramentoBulk inquadramento = (InquadramentoBulk) i.next();
inquadramento.setMax_dt_fin_validita_missione(findMaxFinMissione(userContext, anagrafico));
inquadramento.getRapporto().getInquadramenti().add(inquadramento);
}
anagrafico.setDipendente(anagraficoHome.findRapportoDipendenteFor(anagrafico));
anagrafico.setUtilizzata(isAnagraficaUtilizzata(userContext, anagrafico));
anagrafico.setUtilizzata_detrazioni(isAnagraficaUtilizzataDetrazione(userContext, anagrafico));
/* Cerca una corrispondenza nella tabella ANAGRAFICO_ESERCIZIO;
* se non la trova, ne crea uno nuovo e ne imposta l'esercizio con quello di
* scrivania.
*/
Anagrafico_esercizioHome anag_esercHome = (Anagrafico_esercizioHome) getHome(userContext, Anagrafico_esercizioBulk.class);
Anagrafico_esercizioBulk anagrafico_esercizio = anag_esercHome.findAnagrafico_esercizioFor(userContext, anagrafico, it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
if (anagrafico_esercizio != null) {
anagrafico_esercizio.setToBeUpdated();
} else {
anagrafico_esercizio = new Anagrafico_esercizioBulk(anagrafico.getCd_anag(), it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
anagrafico_esercizio.setIm_detrazione_personale_anag(new java.math.BigDecimal(0));
anagrafico_esercizio.setIm_deduzione_family_area(new java.math.BigDecimal(0));
anagrafico_esercizio.setIm_reddito_complessivo(new java.math.BigDecimal(0));
anagrafico_esercizio.setIm_reddito_abitaz_princ(new java.math.BigDecimal(0));
anagrafico_esercizio.setToBeCreated();
}
anagrafico.setAnagrafico_esercizio(anagrafico_esercizio);
anagrafico.setAssociatiStudio(new BulkList(anagraficoHome.findAssociatiStudio(anagrafico)));
getHomeCache(userContext).fetchAll(userContext);
if (!isAnagraficaModificabile(userContext, anagrafico))
return asRO(anagrafico, "Non si hanno diritti per modificare una struttura CNR.");
if (anagrafico.isSpeciale())
return asRO(anagrafico, "Anagrafica non modificabile.");
return anagrafico;
} catch (Exception e) {
throw handleException(e);
}
}
Aggregations