Search in sources :

Example 1 with FatturaPassivaElettronicaService

use of it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService 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);
    }
}
Also used : Transformer(javax.xml.transform.Transformer) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) Format(java.text.Format) CRUDFatturaPassivaAction(it.cnr.contab.docamm00.actions.CRUDFatturaPassivaAction) ServletException(javax.servlet.ServletException) StreamResult(javax.xml.transform.stream.StreamResult) ActionContext(it.cnr.jada.action.ActionContext) Button(it.cnr.jada.util.jsp.Button) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession) BigDecimal(java.math.BigDecimal) ByteArrayInputStream(java.io.ByteArrayInputStream) SimpleDetailCRUDController(it.cnr.jada.util.action.SimpleDetailCRUDController) it.cnr.contab.docamm00.fatturapa.bulk(it.cnr.contab.docamm00.fatturapa.bulk) BigInteger(java.math.BigInteger) ZoneOffset(java.time.ZoneOffset) PrintService(it.cnr.contab.reports.service.PrintService) ValidationException(it.cnr.jada.bulk.ValidationException) StorageObject(it.cnr.si.spring.storage.StorageObject) Timestamp(java.sql.Timestamp) TemporalField(java.time.temporal.TemporalField) FatturaPassivaElettronicaService(it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) EJBException(javax.ejb.EJBException) IOUtils(org.apache.commons.io.IOUtils) Stream(java.util.stream.Stream) TipoDocumentoType(it.gov.agenziaentrate.ivaservizi.docs.xsd.fatture.v1.TipoDocumentoType) Fattura_passivaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passivaBulk) EmailException(org.apache.commons.mail.EmailException) StoragePropertyNames(it.cnr.si.spring.storage.config.StoragePropertyNames) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) SpringUtil(it.cnr.contab.service.SpringUtil) ContattoBulk(it.cnr.contab.anagraf00.core.bulk.ContattoBulk) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) UserContext(it.cnr.jada.UserContext) HttpActionContext(it.cnr.jada.action.HttpActionContext) ChronoField(java.time.temporal.ChronoField) EsercizioComponentSession(it.cnr.contab.config00.ejb.EsercizioComponentSession) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) java.util(java.util) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) Fattura_passiva_rigaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk) TransformerException(javax.xml.transform.TransformerException) Tipo_sezionaleBulk(it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk) StreamSource(javax.xml.transform.stream.StreamSource) RegimeFiscaleType(it.gov.agenziaentrate.ivaservizi.docs.xsd.fatture.v1.RegimeFiscaleType) LocalDateTime(java.time.LocalDateTime) JspWriter(javax.servlet.jsp.JspWriter) Utility(it.cnr.contab.util.Utility) SimpleDateFormat(java.text.SimpleDateFormat) Source(javax.xml.transform.Source) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) Tipo_documento_ammBulk(it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk) AllegatiCRUDBP(it.cnr.contab.util00.bp.AllegatiCRUDBP) CRUDComponentSession(it.cnr.jada.ejb.CRUDComponentSession) Numerazione_baseComponentSession(it.cnr.contab.config00.tabnum.ejb.Numerazione_baseComponentSession) RemoteIterator(it.cnr.jada.util.RemoteIterator) StoreService(it.cnr.si.spring.storage.StoreService) DateUtils(it.cnr.jada.util.DateUtils) OutputStream(java.io.OutputStream) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) ApplicationException(it.cnr.jada.comp.ApplicationException) FormBP(it.cnr.jada.util.action.FormBP) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk) BusyResourceException(it.cnr.jada.bulk.BusyResourceException) TelefonoBulk(it.cnr.contab.anagraf00.core.bulk.TelefonoBulk) StorageDocAmmAspect(it.cnr.contab.docamm00.storage.StorageDocAmmAspect) Print_spoolerBulk(it.cnr.contab.reports.bulk.Print_spoolerBulk) HttpServletResponse(javax.servlet.http.HttpServletResponse) IOException(java.io.IOException) AllegatoGenericoBulk(it.cnr.contab.util00.bulk.storage.AllegatoGenericoBulk) Report(it.cnr.contab.reports.bulk.Report) MimeTypes(it.cnr.si.spring.storage.MimeTypes) FatturaElettronicaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaElettronicaPassivaComponentSession) DateTimeFormatter(java.time.format.DateTimeFormatter) TransformerFactory(javax.xml.transform.TransformerFactory) ComponentException(it.cnr.jada.comp.ComponentException) CompoundFindClause(it.cnr.jada.persistency.sql.CompoundFindClause) InputStream(java.io.InputStream) LocalDateTime(java.time.LocalDateTime) ValidationException(it.cnr.jada.bulk.ValidationException) FatturaPassivaElettronicaService(it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) PrintService(it.cnr.contab.reports.service.PrintService) Numerazione_baseComponentSession(it.cnr.contab.config00.tabnum.ejb.Numerazione_baseComponentSession) Print_spoolerBulk(it.cnr.contab.reports.bulk.Print_spoolerBulk) Format(java.text.Format) SimpleDateFormat(java.text.SimpleDateFormat) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) EmailException(org.apache.commons.mail.EmailException) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) StorageObject(it.cnr.si.spring.storage.StorageObject) Report(it.cnr.contab.reports.bulk.Report) StoreService(it.cnr.si.spring.storage.StoreService) IOException(java.io.IOException) ApplicationException(it.cnr.jada.comp.ApplicationException) BusyResourceException(it.cnr.jada.bulk.BusyResourceException) ComponentException(it.cnr.jada.comp.ComponentException) TelefonoBulk(it.cnr.contab.anagraf00.core.bulk.TelefonoBulk) SimpleDateFormat(java.text.SimpleDateFormat)

Example 2 with FatturaPassivaElettronicaService

use of it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService in project sigla-main by consiglionazionaledellericerche.

the class CaricaFatturaPassivaElettronicaAction method doScaricaFatture.

public Forward doScaricaFatture(ActionContext actioncontext) throws FillException {
    FatturaPassivaElettronicaService fatturaPassivaElettronicaService = SpringUtil.getBean("fatturaPassivaElettronicaService", FatturaPassivaElettronicaService.class);
    CaricaFatturaElettronicaBP caricaFatturaElettronicaBP = (CaricaFatturaElettronicaBP) actioncontext.getBusinessProcess();
    caricaFatturaElettronicaBP.fillModel(actioncontext);
    FileSdIConMetadatiTypeBulk model = (FileSdIConMetadatiTypeBulk) caricaFatturaElettronicaBP.getModel();
    fatturaPassivaElettronicaService.caricaFatture(model.getDaysBefore(), model.getIdentificativoSDI());
    return actioncontext.findDefaultForward();
}
Also used : FileSdIConMetadatiTypeBulk(it.cnr.contab.docamm00.fatturapa.bulk.FileSdIConMetadatiTypeBulk) CaricaFatturaElettronicaBP(it.cnr.contab.docamm00.bp.CaricaFatturaElettronicaBP) FatturaPassivaElettronicaService(it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService)

Example 3 with FatturaPassivaElettronicaService

use of it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService in project sigla-main by consiglionazionaledellericerche.

the class PECFattureAttiveResource method reinviaPEC.

@Override
public Response reinviaPEC(HttpServletRequest request, Integer esercizio, Long pgFatturaAttiva) throws Exception {
    CNRUserContext userContext = (CNRUserContext) securityContext.getUserPrincipal();
    DocumentiCollegatiDocAmmService documentiCollegatiDocAmmService = SpringUtil.getBean("documentiCollegatiDocAmmService", DocumentiCollegatiDocAmmService.class);
    FatturaPassivaElettronicaService fatturaService = SpringUtil.getBean(FatturaPassivaElettronicaService.class);
    Configurazione_cnrBulk config = docAmmFatturazioneElettronicaComponentSession.getAuthenticatorPecSdi(userContext);
    logger.info("Recuperata Autenticazione PEC");
    String pwd = null;
    try {
        pwd = StringEncrypter.decrypt(config.getVal01(), config.getVal02());
    } catch (StringEncrypter.EncryptionException e1) {
        return Response.serverError().entity("Cannot decrypt password").build();
    }
    final String password = pwd;
    logger.info("Decrypt password");
    Fattura_attiva_IBulk fattura_attiva_iBulk = new Fattura_attiva_IBulk();
    fattura_attiva_iBulk.setEsercizio(esercizio);
    fattura_attiva_iBulk.setStatoInvioSdi(Fattura_attivaBulk.FATT_ELETT_INVIATA_SDI);
    fattura_attiva_iBulk.setPg_fattura_attiva(pgFatturaAttiva);
    List<Fattura_attivaBulk> fatture = docAmmFatturazioneElettronicaComponentSession.find(userContext, Fattura_attiva_IBulk.class, "find", userContext, fattura_attiva_iBulk);
    for (Fattura_attivaBulk fattura_attivaBulk : fatture) {
        final StorageObject fileXmlFatturaAttiva = documentiCollegatiDocAmmService.getFileXmlFatturaAttiva(fattura_attivaBulk);
        String nomeFile = fileXmlFatturaAttiva.getPropertyValue(StoragePropertyNames.NAME.value());
        String nomeFileP7m = nomeFile + ".p7m";
        final Optional<StorageObject> storageObjectByPath = Optional.ofNullable(documentiCollegatiDocAmmService.getStorageObjectByPath(documentiCollegatiDocAmmService.recuperoFolderFatturaByPath(fattura_attivaBulk).getPath().concat(StorageDriver.SUFFIX).concat(nomeFileP7m)));
        if (storageObjectByPath.isPresent()) {
            fatturaService.inviaFatturaElettronica(config.getVal01(), password, new ByteArrayDataSource(documentiCollegatiDocAmmService.getResource(storageObjectByPath.get()), MimeTypes.P7M.mimetype()), docAmmFatturazioneElettronicaComponentSession.recuperoNomeFileXml(userContext, fattura_attivaBulk).concat(".p7m"));
        } else {
            logger.error("File firmato non trovato fattura {}/{}", fattura_attivaBulk.getEsercizio(), fattura_attivaBulk.getPg_fattura_attiva());
            return Response.serverError().entity("File firmato non trovato").build();
        }
    }
    return Response.ok().build();
}
Also used : StorageObject(it.cnr.si.spring.storage.StorageObject) FatturaPassivaElettronicaService(it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService) StringEncrypter(it.cnr.contab.util.StringEncrypter) Fattura_attivaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_attivaBulk) DocumentiCollegatiDocAmmService(it.cnr.contab.docamm00.service.DocumentiCollegatiDocAmmService) Fattura_attiva_IBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_attiva_IBulk) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk)

Example 4 with FatturaPassivaElettronicaService

use of it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService in project sigla-main by consiglionazionaledellericerche.

the class PECFattureAttiveResource method aggiornaNomeFile.

@Override
public Response aggiornaNomeFile(HttpServletRequest request) throws Exception {
    CNRUserContext userContext = (CNRUserContext) securityContext.getUserPrincipal();
    DocumentiCollegatiDocAmmService documentiCollegatiDocAmmService = SpringUtil.getBean("documentiCollegatiDocAmmService", DocumentiCollegatiDocAmmService.class);
    FatturaPassivaElettronicaService fatturaService = SpringUtil.getBean(FatturaPassivaElettronicaService.class);
    Fattura_attiva_IBulk fattura_attiva_iBulk = new Fattura_attiva_IBulk();
    fattura_attiva_iBulk.setStatoInvioSdi(Fattura_attivaBulk.FATT_ELETT_INVIATA_SDI);
    List<Fattura_attivaBulk> fatture = docAmmFatturazioneElettronicaComponentSession.find(userContext, Fattura_attiva_IBulk.class, "findFattureInviateSenzaNomeFile", userContext, fattura_attiva_iBulk);
    for (Fattura_attivaBulk fattura_attivaBulk : fatture) {
        final StorageObject fileXmlFatturaAttiva = documentiCollegatiDocAmmService.getFileXmlFatturaAttiva(fattura_attivaBulk);
        String nomeFile = fileXmlFatturaAttiva.getPropertyValue(StoragePropertyNames.NAME.value());
        String nomeFileP7m = nomeFile + ".p7m";
        final Optional<StorageObject> storageObjectByPath = Optional.ofNullable(documentiCollegatiDocAmmService.getStorageObjectByPath(documentiCollegatiDocAmmService.recuperoFolderFatturaByPath(fattura_attivaBulk).getPath().concat(StorageDriver.SUFFIX).concat(nomeFileP7m)));
        if (storageObjectByPath.isPresent()) {
            fattura_attivaBulk.setNomeFileInvioSdi(docAmmFatturazioneElettronicaComponentSession.recuperoNomeFileXml(userContext, fattura_attivaBulk).concat(".p7m"));
            fattura_attivaBulk.setToBeUpdated();
            crudComponentSession.modificaConBulk(userContext, fattura_attivaBulk);
        } else {
            logger.error("File firmato non trovato fattura {}/{}", fattura_attivaBulk.getEsercizio(), fattura_attivaBulk.getPg_fattura_attiva());
            return Response.serverError().entity("File firmato non trovato").build();
        }
    }
    return Response.ok().build();
}
Also used : Fattura_attivaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_attivaBulk) StorageObject(it.cnr.si.spring.storage.StorageObject) DocumentiCollegatiDocAmmService(it.cnr.contab.docamm00.service.DocumentiCollegatiDocAmmService) FatturaPassivaElettronicaService(it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService) Fattura_attiva_IBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_attiva_IBulk) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext)

Example 5 with FatturaPassivaElettronicaService

use of it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService in project sigla-main by consiglionazionaledellericerche.

the class DocumentoEleTestataHome method notificaEsito.

public void notificaEsito(UserContext userContext, TipoIntegrazioneSDI tipoIntegrazioneSDI, DocumentoEleTestataBulk documentoEleTestataBulk) throws ApplicationException, IOException {
    if (documentoEleTestataBulk.isRicevutaDecorrenzaTermini()) {
        logger.info("Notifica esito per identificativo SDI:" + documentoEleTestataBulk.getIdentificativoSdi() + " non inviata per avvenuta decorrenza termini!");
        return;
    }
    FatturazioneElettronicaClient client = SpringUtil.getBean("fatturazioneElettronicaClient", FatturazioneElettronicaClient.class);
    FatturaPassivaElettronicaService fatturaService = SpringUtil.getBean("fatturaPassivaElettronicaService", FatturaPassivaElettronicaService.class);
    NotificaEsitoCommittenteType notificaEsitoCommittenteType = this.createNotificaEsitoCommittente(documentoEleTestataBulk);
    if (tipoIntegrazioneSDI.equals(TipoIntegrazioneSDI.PEC)) {
        try {
            it.gov.fatturapa.sdi.messaggi.v1.ObjectFactory objMessaggi = new it.gov.fatturapa.sdi.messaggi.v1.ObjectFactory();
            JAXBElement<NotificaEsitoCommittenteType> notificaEsitoCommittente = objMessaggi.createNotificaEsitoCommittente(notificaEsitoCommittenteType);
            ByteArrayOutputStream outputStreamNotificaEsito = new ByteArrayOutputStream();
            client.getMarshaller().marshal(notificaEsitoCommittente, new StreamResult(outputStreamNotificaEsito));
            PasswordAuthentication authentication = getAuthenticatorPecSdi(userContext);
            if (authentication == null) {
                logger.error("Errore applicativo durante la Notifica di Esito Committente, contattare il servizio di HelpDesk!");
                throw new ApplicationException("Errore applicativo durante la Notifica di Esito Committente, contattare il servizio di HelpDesk!");
            }
            /*
            	storeEsitoDocument(documentoEleTestataBulk, new ByteArrayInputStream(outputStreamNotificaEsito.toByteArray()), 
            			documentoEleTestataBulk.getStatoDocumentoEle().equals(StatoDocumentoEleEnum.RIFIUTATO)?
								StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_ESITO_RIFIUTATO.value():
								StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_ESITO_ACCETTATO.value());

				 */
            fatturaService.notificaEsito(authentication.getUserName(), authentication.getPassword(), documentoEleTestataBulk, notificaEsitoCommittente);
        } catch (ApplicationException _ex) {
            throw _ex;
        } catch (Exception _ex) {
            logger.error("Errore applicativo durante la Notifica di Esito Committente, contattare il servizio di HelpDesk!" + _ex.getMessage(), _ex.getCause());
            throw new ApplicationException("Errore applicativo durante la Notifica di Esito Committente, contattare il servizio di HelpDesk!\n" + _ex.getMessage(), _ex.getCause());
        }
    } else if (!tipoIntegrazioneSDI.equals(TipoIntegrazioneSDI.PEC)) {
        ObjectFactory obj = new ObjectFactory();
        FileSdIType fileSdIType = obj.createFileSdIType();
        fileSdIType.setIdentificativoSdI(BigInteger.valueOf(documentoEleTestataBulk.getIdentificativoSdi()));
        fileSdIType.setNomeFile(documentoEleTestataBulk.getNomeFile("EC"));
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        client.getMarshaller().marshal(notificaEsitoCommittenteType, new StreamResult(outputStream));
        ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
        DataSource ds = new UploadedFileDataSource(inputStream);
        fileSdIType.setFile(new DataHandler(ds));
        JAXBElement<FileSdIType> notificaEsito = obj.createNotificaEsito(fileSdIType);
        ByteArrayOutputStream outputStreamNotificaEsito = new ByteArrayOutputStream();
        client.getMarshaller().marshal(notificaEsito, new StreamResult(outputStreamNotificaEsito));
        storeEsitoDocument(documentoEleTestataBulk, new ByteArrayInputStream(outputStreamNotificaEsito.toByteArray()), documentoEleTestataBulk.getStatoDocumentoEle().equals(StatoDocumentoEleEnum.RIFIUTATO) ? StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_ESITO_RIFIUTATO.value() : StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_ESITO_ACCETTATO.value());
    }
}
Also used : FileSdIType(it.gov.fatturapa.sdi.ws.ricezione.v1_0.types.FileSdIType) StreamResult(javax.xml.transform.stream.StreamResult) FatturaPassivaElettronicaService(it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService) ByteArrayOutputStream(java.io.ByteArrayOutputStream) DataHandler(javax.activation.DataHandler) JAXBElement(javax.xml.bind.JAXBElement) StorageException(it.cnr.si.spring.storage.StorageException) InvocationTargetException(java.lang.reflect.InvocationTargetException) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) EncryptionException(it.cnr.contab.util.StringEncrypter.EncryptionException) AuthenticationFailedException(javax.mail.AuthenticationFailedException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) IOException(java.io.IOException) ComponentException(it.cnr.jada.comp.ComponentException) DataSource(javax.activation.DataSource) NotificaEsitoCommittenteType(it.gov.fatturapa.sdi.messaggi.v1.NotificaEsitoCommittenteType) ApplicationException(it.cnr.jada.comp.ApplicationException) ObjectFactory(it.gov.fatturapa.sdi.ws.ricezione.v1_0.types.ObjectFactory) ByteArrayInputStream(java.io.ByteArrayInputStream) FatturazioneElettronicaClient(it.cnr.contab.pdd.ws.client.FatturazioneElettronicaClient) PasswordAuthentication(javax.mail.PasswordAuthentication)

Aggregations

FatturaPassivaElettronicaService (it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService)6 StorageObject (it.cnr.si.spring.storage.StorageObject)4 Configurazione_cnrBulk (it.cnr.contab.config00.bulk.Configurazione_cnrBulk)3 Fattura_attivaBulk (it.cnr.contab.docamm00.docs.bulk.Fattura_attivaBulk)3 DocumentiCollegatiDocAmmService (it.cnr.contab.docamm00.service.DocumentiCollegatiDocAmmService)3 CNRUserContext (it.cnr.contab.utenze00.bp.CNRUserContext)3 Fattura_attiva_IBulk (it.cnr.contab.docamm00.docs.bulk.Fattura_attiva_IBulk)2 StorageDocAmmAspect (it.cnr.contab.docamm00.storage.StorageDocAmmAspect)2 SpringUtil (it.cnr.contab.service.SpringUtil)2 StringEncrypter (it.cnr.contab.util.StringEncrypter)2 EncryptionException (it.cnr.contab.util.StringEncrypter.EncryptionException)2 UserContext (it.cnr.jada.UserContext)2 ActionContext (it.cnr.jada.action.ActionContext)2 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)2 HttpActionContext (it.cnr.jada.action.HttpActionContext)2 ApplicationException (it.cnr.jada.comp.ApplicationException)2 ComponentException (it.cnr.jada.comp.ComponentException)2 PersistencyException (it.cnr.jada.persistency.PersistencyException)2 StorageException (it.cnr.si.spring.storage.StorageException)2 RemoteException (java.rmi.RemoteException)2