Search in sources :

Example 1 with DocumentiContabiliService

use of it.cnr.contab.doccont00.service.DocumentiContabiliService in project sigla-main by consiglionazionaledellericerche.

the class DistintaCassiereComponent method generaFlussoSiopeplus.

public StorageObject generaFlussoSiopeplus(UserContext userContext, Distinta_cassiereBulk distinta) throws ComponentException, RemoteException {
    try {
        final DocumentiContabiliService documentiContabiliService = SpringUtil.getBean("documentiContabiliService", DocumentiContabiliService.class);
        DateTimeFormatter formatterTime = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
        JAXBContext jc = JAXBContext.newInstance("it.siopeplus");
        // creo i file del flusso
        // Testata
        final ObjectFactory objectFactory = new ObjectFactory();
        it.siopeplus.FlussoOrdinativi currentFlusso = objectFactory.createFlussoOrdinativi();
        Configurazione_cnrComponentSession sess = (Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession");
        String codiceAbi = Optional.ofNullable(sess.getVal01(userContext, CNRUserContext.getEsercizio(userContext), null, Configurazione_cnrBulk.PK_FLUSSO_ORDINATIVI, Configurazione_cnrBulk.SK_CODICE_ABI_BT)).orElseThrow(() -> new ApplicationException("Configurazione mancante per flusso Ordinativo [CODICE_ABI_BT]"));
        String codiceA2A = Optional.ofNullable(sess.getVal01(userContext, CNRUserContext.getEsercizio(userContext), null, Configurazione_cnrBulk.PK_FLUSSO_ORDINATIVI, Configurazione_cnrBulk.SK_CODICE_A2A)).orElseThrow(() -> new ApplicationException("Configurazione mancante per flusso Ordinativo [CODICE_A2A]"));
        String codiceEnte = Optional.ofNullable(sess.getVal01(userContext, CNRUserContext.getEsercizio(userContext), null, Configurazione_cnrBulk.PK_FLUSSO_ORDINATIVI, Configurazione_cnrBulk.SK_CODICE_ENTE)).orElseThrow(() -> new ApplicationException("Configurazione mancante per flusso Ordinativo [CODICE_ENTE]"));
        String codiceEnteBT = Optional.ofNullable(sess.getVal01(userContext, CNRUserContext.getEsercizio(userContext), null, Configurazione_cnrBulk.PK_FLUSSO_ORDINATIVI, Configurazione_cnrBulk.SK_CODICE_ENTE_BT)).orElseThrow(() -> new ApplicationException("Configurazione mancante per flusso Ordinativo [CODICE_ENTE_BT]"));
        String codiceTramiteBT = Optional.ofNullable(sess.getVal01(userContext, CNRUserContext.getEsercizio(userContext), null, Configurazione_cnrBulk.PK_FLUSSO_ORDINATIVI, Configurazione_cnrBulk.SK_CODICE_TRAMITE_BT)).orElseThrow(() -> new ApplicationException("Configurazione mancante per flusso Ordinativo [CODICE_TRAMITE_BT]"));
        String codiceIstatEnte = Optional.ofNullable(sess.getVal01(userContext, CNRUserContext.getEsercizio(userContext), null, Configurazione_cnrBulk.PK_FLUSSO_ORDINATIVI, Configurazione_cnrBulk.SK_CODICE_ISTAT_ENTE)).orElseThrow(() -> new ApplicationException("Configurazione mancante per flusso Ordinativo [CODICE_ISTAT_ENTE]"));
        final CtTestataFlusso testataFlusso = objectFactory.createCtTestataFlusso();
        testataFlusso.setCodiceABIBT(codiceAbi);
        testataFlusso.setRiferimentoEnte(codiceA2A);
        testataFlusso.setIdentificativoFlusso(distinta.getIdentificativoFlusso());
        testataFlusso.setDataOraCreazioneFlusso(DatatypeFactory.newInstance().newXMLGregorianCalendar(formatterTime.format(it.cnr.jada.util.ejb.EJBCommonServices.getServerTimestamp().toLocalDateTime())));
        testataFlusso.setCodiceEnte(codiceEnte);
        testataFlusso.setCodiceEnteBT(codiceEnteBT);
        testataFlusso.setCodiceTramiteEnte(codiceA2A);
        testataFlusso.setCodiceTramiteBT(codiceTramiteBT);
        AnagraficoComponentSession component = (AnagraficoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRANAGRAF00_EJB_AnagraficoComponentSession");
        AnagraficoBulk uoEnte = component.getAnagraficoEnte(userContext);
        testataFlusso.setDescrizioneEnte(uoEnte.getRagione_sociale());
        testataFlusso.setCodiceIstatEnte(codiceIstatEnte);
        testataFlusso.setCodiceFiscaleEnte(uoEnte.getCodice_fiscale());
        currentFlusso.getContent().add(objectFactory.createTestataFlusso(testataFlusso));
        currentFlusso.getContent().add(objectFactory.createEsercizio(CNRUserContext.getEsercizio(userContext)));
        List dettagliRev = dettagliDistinta(userContext, distinta, it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk.TIPO_REV);
        // Elaboriamo prima le reversali
        Reversale currentReversale = null;
        for (Iterator i = dettagliRev.iterator(); i.hasNext(); ) {
            V_mandato_reversaleBulk bulk = (V_mandato_reversaleBulk) i.next();
            currentFlusso.getContent().add(objectFactory.createReversale(creaReversaleFlussoSiopeplus(userContext, bulk)));
        }
        List dettagliMan = dettagliDistinta(userContext, distinta, it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk.TIPO_MAN);
        // Mandati
        Mandato currentMandato = null;
        for (Iterator i = dettagliMan.iterator(); i.hasNext(); ) {
            V_mandato_reversaleBulk bulk = (V_mandato_reversaleBulk) i.next();
            currentFlusso.getContent().add(objectFactory.createMandato(creaMandatoFlussoSiopeplus(userContext, bulk)));
        }
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        Marshaller jaxbMarshaller = jc.createMarshaller();
        jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.FALSE);
        jaxbMarshaller.marshal(currentFlusso, byteArrayOutputStream);
        // FIX per firma xml
        String out = new String(byteArrayOutputStream.toByteArray(), StandardCharsets.UTF_8);
        out = out.replace("</flusso_ordinativi>", "\n</flusso_ordinativi>");
        StorageFile storageFile = new StorageFile(out.getBytes(StandardCharsets.UTF_8), MimeTypes.XML.mimetype(), distinta.getFileNameXML());
        final StorageObject storageObject = documentiContabiliService.getStorageObjectBykey(documentiContabiliService.restoreSimpleDocument(storageFile, new ByteArrayInputStream(storageFile.getBytes()), storageFile.getContentType(), storageFile.getFileName(), distinta.getStorePath(), true).getKey());
        final BigInteger dimension = storageObject.<BigInteger>getPropertyValue(StoragePropertyNames.CONTENT_STREAM_LENGTH.value()).divide(BigInteger.valueOf(1024));
        if (dimension.add(BigInteger.valueOf(7)).compareTo(DistintaCassiereComponentSession.MAX_OPI_DIMENSION) > 0) {
            throw new ApplicationMessageFormatException("La dimensione del flusso {0}kbytes supera la dimensione massima consentita {1}kbytes!", dimension.add(BigInteger.valueOf(7)), DistintaCassiereComponentSession.MAX_OPI_DIMENSION);
        }
        return storageObject;
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : DocumentiContabiliService(it.cnr.contab.doccont00.service.DocumentiContabiliService) JAXBContext(javax.xml.bind.JAXBContext) RemoteIterator(it.cnr.jada.util.RemoteIterator) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) Marshaller(javax.xml.bind.Marshaller) StorageObject(it.cnr.si.spring.storage.StorageObject) it.siopeplus(it.siopeplus) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) DatatypeConfigurationException(javax.xml.datatype.DatatypeConfigurationException) CRUDNotDeletableException(it.cnr.jada.comp.CRUDNotDeletableException) CompletionException(java.util.concurrent.CompletionException) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) EJBException(javax.ejb.EJBException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) SQLException(java.sql.SQLException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) ComponentException(it.cnr.jada.comp.ComponentException) ApplicationException(it.cnr.jada.comp.ApplicationException) AnagraficoComponentSession(it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession) StorageFile(it.cnr.si.spring.storage.bulk.StorageFile) BigInteger(java.math.BigInteger) DateTimeFormatter(java.time.format.DateTimeFormatter)

Example 2 with DocumentiContabiliService

use of it.cnr.contab.doccont00.service.DocumentiContabiliService in project sigla-main by consiglionazionaledellericerche.

the class CRUDDistintaCassiereBP method init.

protected void init(it.cnr.jada.action.Config config, ActionContext context) throws BusinessProcessException {
    try {
        context.getBusinessProcess("/GestioneUtenteBP").removeChild("CRUDDistintaCassiereBP");
        Configurazione_cnrComponentSession sess = (Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession");
        this.attivoSiopeplus = Optional.ofNullable(sess.getVal01(context.getUserContext(), CNRUserInfo.getEsercizio(context), null, Configurazione_cnrBulk.PK_FLUSSO_ORDINATIVI, Configurazione_cnrBulk.SK_ATTIVO_SIOPEPLUS)).map(s -> Boolean.valueOf(s)).orElse(Boolean.FALSE);
        this.setFlusso(new Boolean(config.getInitParameter("flusso")));
        this.setSepa(new Boolean(config.getInitParameter("sepa")));
        this.setAnnulli(new Boolean(config.getInitParameter("annulli")));
        setParametriCnr(Utility.createParametriCnrComponentSession().getParametriCnr(context.getUserContext(), it.cnr.contab.utenze00.bulk.CNRUserInfo.getEsercizio(context)));
        if (this.getParametriCnr().getFl_tesoreria_unica().booleanValue() && !isUoDistintaTuttaSac(context))
            throw new ApplicationException("Funzione non abilitata per la uo");
        else
            isUoDistintaTuttaSac(context);
        documentiContabiliService = SpringUtil.getBean("documentiContabiliService", DocumentiContabiliService.class);
        ordinativiSiopePlusService = SpringUtil.getBean("ordinativiSiopePlusService", OrdinativiSiopePlusService.class);
        firmatarioDistinta = ((UtenteComponentSession) createComponentSession("CNRUTENZE00_EJB_UtenteComponentSession", UtenteComponentSession.class)).isUtenteAbilitatoFirma(context.getUserContext(), AbilitatoFirma.DIST);
        controlloCodiceFiscale = sess.getVal01(context.getUserContext(), "CONTROLLO_CF_FIRMA_DOCCONT");
        if (sess.getVal01(context.getUserContext(), it.cnr.contab.utenze00.bulk.CNRUserInfo.getEsercizio(context), null, "COSTANTI", "FORMATO_FLUSSO_BANCA") != null)
            formatoflusso = sess.getVal01(context.getUserContext(), it.cnr.contab.utenze00.bulk.CNRUserInfo.getEsercizio(context), null, "COSTANTI", "FORMATO_FLUSSO_BANCA");
        else
            throw new ApplicationException("Configurazione formato flusso banca mancante");
        if (sess.getVal02(context.getUserContext(), it.cnr.contab.utenze00.bulk.CNRUserInfo.getEsercizio(context), null, "COSTANTI", "FORMATO_FLUSSO_BANCA") != null)
            tagCup = sess.getVal02(context.getUserContext(), it.cnr.contab.utenze00.bulk.CNRUserInfo.getEsercizio(context), null, "COSTANTI", "FORMATO_FLUSSO_BANCA");
        else
            throw new ApplicationException("Configurazione val02 formato flusso banca mancante N - No tag Cup - S -Si tag Cup.");
    } catch (ComponentException e) {
        throw handleException(e);
    } catch (RemoteException e) {
        throw handleException(e);
    }
    super.init(config, context);
}
Also used : Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) DocumentiContabiliService(it.cnr.contab.doccont00.service.DocumentiContabiliService) ApplicationException(it.cnr.jada.comp.ApplicationException) ComponentException(it.cnr.jada.comp.ComponentException) RemoteException(java.rmi.RemoteException) OrdinativiSiopePlusService(it.cnr.si.siopeplus.service.OrdinativiSiopePlusService)

Example 3 with DocumentiContabiliService

use of it.cnr.contab.doccont00.service.DocumentiContabiliService in project sigla-main by consiglionazionaledellericerche.

the class CRUDDistintaCassiereBP method invia.

public void invia(ActionContext context, FirmaOTPBulk firmaOTPBulk) throws Exception {
    Map<String, String> subjectDN = Optional.ofNullable(SpringUtil.getBean("documentiContabiliService", DocumentiContabiliService.class).getCertSubjectDN(firmaOTPBulk.getUserName(), firmaOTPBulk.getPassword())).orElseThrow(() -> new ApplicationException("Errore nella lettura dei certificati!\nVerificare Nome Utente e Password!"));
    if (Optional.ofNullable(controlloCodiceFiscale).filter(s -> s.equalsIgnoreCase("Y")).isPresent()) {
        SpringUtil.getBean("documentiContabiliService", DocumentiContabiliService.class).controllaCodiceFiscale(subjectDN, ((CNRUserInfo) context.getUserInfo()).getUtente());
    }
    if (!this.isFlusso() && !this.isAnnulli() && isAttivoSiopeplus()) {
        Distinta_cassiereBulk distintaProvvisoria = (Distinta_cassiereBulk) getModel();
        // spostato nel salva definitivo anche in questo caso
        StorageObject distintaStorageObject = Optional.ofNullable(distintaProvvisoria.getPg_distinta_def()).map(paDistintaDef -> documentiContabiliService.getStorageObjectByPath(distintaProvvisoria.getStorePath().concat(StorageDriver.SUFFIX).concat(distintaProvvisoria.getCMISName()))).orElse(inviaDistinta(context, distintaProvvisoria));
        Distinta_cassiereBulk distinta = (Distinta_cassiereBulk) getModel();
        List<String> nodes = new ArrayList<String>();
        nodes.add(distintaStorageObject.getPropertyValue(StoragePropertyNames.ALFCMIS_NODEREF.value()));
        List<V_mandato_reversaleBulk> dettagliRev = ((DistintaCassiereComponentSession) createComponentSession()).dettagliDistinta(context.getUserContext(), distinta, it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk.TIPO_REV);
        dettagliRev.stream().map(v_mandato_reversaleBulk -> documentiContabiliService.getDocumentKey(v_mandato_reversaleBulk, true)).filter(s -> s != null).forEach(s -> nodes.add(s));
        List<V_mandato_reversaleBulk> dettagliMan = ((DistintaCassiereComponentSession) createComponentSession()).dettagliDistinta(context.getUserContext(), distinta, it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk.TIPO_MAN);
        dettagliMan.stream().map(v_mandato_reversaleBulk -> documentiContabiliService.getDocumentKey(v_mandato_reversaleBulk, true)).filter(s -> s != null).forEach(s -> nodes.add(s));
        PdfSignApparence pdfSignApparence = new PdfSignApparence();
        pdfSignApparence.setNodes(nodes);
        pdfSignApparence.setUsername(firmaOTPBulk.getUserName());
        pdfSignApparence.setPassword(firmaOTPBulk.getPassword());
        pdfSignApparence.setOtp(firmaOTPBulk.getOtp());
        Apparence apparence = new Apparence(null, "Rome", "Firma ", "per invio all'Istituto cassiere\nFirmato dal " + getTitolo() + "\n" + subjectDN.get("GIVENNAME") + " " + subjectDN.get("SURNAME"), 400, 120, 1, 550, 80);
        // 300, 40,  1, 550, 80);
        pdfSignApparence.setApparence(apparence);
        try {
            documentiContabiliService.signDocuments(pdfSignApparence, "service/sigla/firma/doccont");
        } catch (StorageException _ex) {
            throw new ApplicationException(FirmaOTPBulk.errorMessage(_ex.getMessage()));
        }
        try {
            if (!this.isAnnulli()) {
                if (distinta.getEsercizio() != null && distinta.getPg_distinta_def() != null)
                    documentiContabiliService.inviaDistintaPEC(nodes, this.isSepa(), distinta.getEsercizio() + "/" + distinta.getPg_distinta_def());
                else
                    documentiContabiliService.inviaDistintaPEC(nodes, this.isSepa(), null);
            }
            distinta.setDt_invio_pec(DateServices.getDt_valida(context.getUserContext()));
            distinta.setUser(context.getUserContext().getUser());
            distinta.setToBeUpdated();
            setModel(context, createComponentSession().modificaConBulk(context.getUserContext(), distinta));
            commitUserTransaction();
            setMessage("Invio effettuato correttamente.");
        } catch (IOException e) {
            throw new BusinessProcessException(e);
        } catch (Exception e) {
            throw new BusinessProcessException(e);
        }
    } else {
        Distinta_cassiereBulk distinta = (Distinta_cassiereBulk) getModel();
        generaXML(context);
        File file = new File(System.getProperty("tmp.dir.SIGLAWeb") + getFile());
        StorageFile storageFile = new StorageFile(file, file.getName());
        if (storageFile != null) {
            // E' previsto solo l'inserimento ma non l'aggiornamento
            try {
                StorageObject storageObject = documentiContabiliService.restoreSimpleDocument(storageFile, storageFile.getInputStream(), storageFile.getContentType(), storageFile.getFileName(), distinta.getStorePath(), false);
                storageFile.setStorageObject(storageObject);
            } catch (StorageException e) {
                if (e.getType().equals(StorageException.Type.CONSTRAINT_VIOLATED))
                    throw new ApplicationException("File [" + storageFile.getFileName() + "] già presente o non completo di tutte le proprietà obbligatorie. Inserimento non possibile!");
                throw new ApplicationException("Errore nella registrazione del file XML sul Documentale (" + e.getMessage() + ")");
            }
            if (storageFile.getStorageObject().<BigInteger>getPropertyValue(StoragePropertyNames.CONTENT_STREAM_LENGTH.value()).intValue() > 0) {
                Optional.ofNullable(documentiContabiliService.getStorageObjectByPath(distinta.getStorePath().concat(StorageDriver.SUFFIX).concat(String.valueOf(distinta.getEsercizio())).concat("-").concat(distinta.getCd_unita_organizzativa()).concat("-").concat(String.valueOf(distinta.getPg_distinta_def())).concat("-I.").concat(formatoflusso).concat(".p7m"))).ifPresent(storageObject -> documentiContabiliService.delete(storageObject));
                String nomeFile = file.getName();
                String nomeFileP7m = nomeFile + ".p7m";
                SignP7M signP7M = new SignP7M(storageFile.getStorageObject().getPropertyValue(StoragePropertyNames.ALFCMIS_NODEREF.value()), firmaOTPBulk.getUserName(), firmaOTPBulk.getPassword(), firmaOTPBulk.getOtp(), nomeFileP7m);
                try {
                    final String signDocument = documentiContabiliService.signDocuments(signP7M, "service/sigla/firma/p7m", distinta.getStorePath());
                    documentiContabiliService.inviaDistintaPEC(Arrays.asList(signDocument), this.isSepa(), "<acquisizione_flusso_ordinativi_sepa>");
                    distinta.setDt_invio_pec(DateServices.getDt_valida(context.getUserContext()));
                    distinta.setUser(context.getUserContext().getUser());
                    distinta.setToBeUpdated();
                    final OggettoBulk oggettoBulk = createComponentSession().modificaConBulk(context.getUserContext(), distinta);
                    commitUserTransaction();
                    initializeModelForEdit(context, oggettoBulk);
                    setMessage("Invio effettuato correttamente.");
                } catch (StorageException _ex) {
                    throw new ApplicationException(FirmaOTPBulk.errorMessage(_ex.getMessage()));
                }
            } else {
                throw new ApplicationException("Errore durante il processo di firma elettronica. Ripetere l'operazione di firma!");
            }
        }
    }
}
Also used : ObjectFactory(it.cnr.contab.doccont00.intcass.xmlbnl.ObjectFactory) Format(java.text.Format) ServletException(javax.servlet.ServletException) LoggerFactory(org.slf4j.LoggerFactory) ActionContext(it.cnr.jada.action.ActionContext) DatatypeFactory(javax.xml.datatype.DatatypeFactory) Button(it.cnr.jada.util.jsp.Button) StatoTrasmissione(it.cnr.contab.doccont00.intcass.bulk.StatoTrasmissione) BigDecimal(java.math.BigDecimal) StorageException(it.cnr.si.spring.storage.StorageException) FlussoOrdinativi(it.cnr.contab.doccont00.intcass.xmlbnl.FlussoOrdinativi) DistintaCassiereComponent(it.cnr.contab.doccont00.comp.DistintaCassiereComponent) Reversale(it.cnr.contab.doccont00.intcass.xmlbnl.Reversale) DatatypeConstants(javax.xml.datatype.DatatypeConstants) XmlSignatureType(it.cnr.si.firmadigitale.firma.arss.stub.XmlSignatureType) BigInteger(java.math.BigInteger) PrintService(it.cnr.contab.reports.service.PrintService) Print_spooler_paramBulk(it.cnr.contab.reports.bulk.Print_spooler_paramBulk) StorageObject(it.cnr.si.spring.storage.StorageObject) it.cnr.contab.util(it.cnr.contab.util) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) Risultato(it.cnr.si.siopeplus.model.Risultato) Parametri_cnrBulk(it.cnr.contab.config00.bulk.Parametri_cnrBulk) Collectors(java.util.stream.Collectors) OrdinativiSiopePlusService(it.cnr.si.siopeplus.service.OrdinativiSiopePlusService) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) FirmaOTPBulk(it.cnr.contab.firma.bulk.FirmaOTPBulk) StorageDriver(it.cnr.si.spring.storage.StorageDriver) IOUtils(org.apache.commons.io.IOUtils) AbstractPrintBP(it.cnr.jada.util.action.AbstractPrintBP) SAXException(org.xml.sax.SAXException) StoragePropertyNames(it.cnr.si.spring.storage.config.StoragePropertyNames) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) SpringUtil(it.cnr.contab.service.SpringUtil) ArubaSignServiceClient(it.cnr.si.firmadigitale.firma.arss.ArubaSignServiceClient) UserContext(it.cnr.jada.UserContext) HttpActionContext(it.cnr.jada.action.HttpActionContext) Classificazione(it.cnr.contab.doccont00.intcass.xmlbnl.Mandato.InformazioniBeneficiario.Classificazione) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) java.util(java.util) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) V_mandato_reversaleBulk(it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk) PageContext(javax.servlet.jsp.PageContext) Marshaller(javax.xml.bind.Marshaller) DistintaCassiereComponentSession(it.cnr.contab.doccont00.ejb.DistintaCassiereComponentSession) SimpleDateFormat(java.text.SimpleDateFormat) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) HttpServletRequest(javax.servlet.http.HttpServletRequest) AllegatiCRUDBP(it.cnr.contab.util00.bp.AllegatiCRUDBP) CRUDComponentSession(it.cnr.jada.ejb.CRUDComponentSession) DocumentiContabiliService(it.cnr.contab.doccont00.service.DocumentiContabiliService) BancaBulk(it.cnr.contab.anagraf00.core.bulk.BancaBulk) RemoteIterator(it.cnr.jada.util.RemoteIterator) SIOPEPlusServiceUnavailable(it.cnr.si.siopeplus.exception.SIOPEPlusServiceUnavailable) Distinta_cassiereBulk(it.cnr.contab.doccont00.intcass.bulk.Distinta_cassiereBulk) RemoteDetailCRUDController(it.cnr.jada.util.action.RemoteDetailCRUDController) JAXBContext(javax.xml.bind.JAXBContext) VDocumentiFlussoBulk(it.cnr.contab.doccont00.intcass.bulk.VDocumentiFlussoBulk) AbilitatoFirma(it.cnr.contab.utenze00.bulk.AbilitatoFirma) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) ApplicationException(it.cnr.jada.comp.ApplicationException) Logger(org.slf4j.Logger) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk) Print_spoolerBulk(it.cnr.contab.reports.bulk.Print_spoolerBulk) HttpServletResponse(javax.servlet.http.HttpServletResponse) UtenteFirmaDettaglioBulk(it.cnr.contab.utenze00.bulk.UtenteFirmaDettaglioBulk) MandatoBulk(it.cnr.contab.doccont00.core.bulk.MandatoBulk) StorageFile(it.cnr.si.spring.storage.bulk.StorageFile) XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) AllegatoGenericoBulk(it.cnr.contab.util00.bulk.storage.AllegatoGenericoBulk) DateServices(it.cnr.contab.doccont00.comp.DateServices) Report(it.cnr.contab.reports.bulk.Report) ArubaSignServiceException(it.cnr.si.firmadigitale.firma.arss.ArubaSignServiceException) CNRUserInfo(it.cnr.contab.utenze00.bulk.CNRUserInfo) MimeTypes(it.cnr.si.spring.storage.MimeTypes) java.io(java.io) UtenteComponentSession(it.cnr.contab.utente00.ejb.UtenteComponentSession) JSPUtils(it.cnr.jada.util.jsp.JSPUtils) DateTimeFormatter(java.time.format.DateTimeFormatter) StatoVariazioneSostituzione(it.cnr.contab.util.enumeration.StatoVariazioneSostituzione) Liquid_coriComponentSession(it.cnr.contab.cori00.ejb.Liquid_coriComponentSession) ReversaleBulk(it.cnr.contab.doccont00.core.bulk.ReversaleBulk) Mandato(it.cnr.contab.doccont00.intcass.xmlbnl.Mandato) OfflineReportPrintBP(it.cnr.contab.reports.bp.OfflineReportPrintBP) ComponentException(it.cnr.jada.comp.ComponentException) CompoundFindClause(it.cnr.jada.persistency.sql.CompoundFindClause) DocumentiContabiliService(it.cnr.contab.doccont00.service.DocumentiContabiliService) StorageObject(it.cnr.si.spring.storage.StorageObject) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) ServletException(javax.servlet.ServletException) StorageException(it.cnr.si.spring.storage.StorageException) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) SAXException(org.xml.sax.SAXException) ApplicationException(it.cnr.jada.comp.ApplicationException) ArubaSignServiceException(it.cnr.si.firmadigitale.firma.arss.ArubaSignServiceException) ComponentException(it.cnr.jada.comp.ComponentException) ApplicationException(it.cnr.jada.comp.ApplicationException) V_mandato_reversaleBulk(it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk) Distinta_cassiereBulk(it.cnr.contab.doccont00.intcass.bulk.Distinta_cassiereBulk) DistintaCassiereComponentSession(it.cnr.contab.doccont00.ejb.DistintaCassiereComponentSession) StorageFile(it.cnr.si.spring.storage.bulk.StorageFile) BigInteger(java.math.BigInteger) StorageException(it.cnr.si.spring.storage.StorageException) StorageFile(it.cnr.si.spring.storage.bulk.StorageFile)

Example 4 with DocumentiContabiliService

use of it.cnr.contab.doccont00.service.DocumentiContabiliService in project sigla-main by consiglionazionaledellericerche.

the class AbstractFirmaDigitaleDocContBP method scaricaDocumento.

public void scaricaDocumento(ActionContext actioncontext) throws Exception {
    Integer esercizio = Integer.valueOf(((HttpActionContext) actioncontext).getParameter("esercizio"));
    String cds = ((HttpActionContext) actioncontext).getParameter("cds");
    String uo = ((HttpActionContext) actioncontext).getParameter("uo");
    Long numero_documento = Long.valueOf(((HttpActionContext) actioncontext).getParameter("numero_documento"));
    String tipo = ((HttpActionContext) actioncontext).getParameter("tipo");
    InputStream is = SpringUtil.getBean("documentiContabiliService", DocumentiContabiliService.class).getStreamDocumento(getStatoTrasmissione(actioncontext, esercizio, tipo, cds, uo, numero_documento));
    if (is == null) {
        log.error("CMIS Object not found: " + esercizio + cds + numero_documento + tipo);
        is = this.getClass().getResourceAsStream("/cmis/404.pdf");
    }
    ((HttpActionContext) actioncontext).getResponse().setContentType("application/pdf");
    OutputStream os = ((HttpActionContext) actioncontext).getResponse().getOutputStream();
    ((HttpActionContext) actioncontext).getResponse().setDateHeader("Expires", 0);
    byte[] buffer = new byte[((HttpActionContext) actioncontext).getResponse().getBufferSize()];
    int buflength;
    while ((buflength = is.read(buffer)) > 0) {
        os.write(buffer, 0, buflength);
    }
    is.close();
    os.flush();
}
Also used : DocumentiContabiliService(it.cnr.contab.doccont00.service.DocumentiContabiliService) ZipOutputStream(java.util.zip.ZipOutputStream) HttpActionContext(it.cnr.jada.action.HttpActionContext)

Example 5 with DocumentiContabiliService

use of it.cnr.contab.doccont00.service.DocumentiContabiliService in project sigla-main by consiglionazionaledellericerche.

the class AbstractFirmaDigitaleDocContBP method addToZip.

private void addToZip(DocumentiContabiliService documentiContabiliService, ZipOutputStream zos, String path, StatoTrasmissione statoTrasmissione) {
    documentiContabiliService.getChildren(documentiContabiliService.getStorageObjectByPath(path).getKey()).stream().forEach(storageObject -> {
        try {
            if (!Optional.ofNullable(storageObject.getPropertyValue(StoragePropertyNames.BASE_TYPE_ID.value())).map(String.class::cast).filter(s -> s.equals(StoragePropertyNames.CMIS_FOLDER.value())).isPresent()) {
                ZipEntry zipEntryChild = new ZipEntry(statoTrasmissione.getCMISFolderName().concat(Optional.ofNullable(storageObject.getPath()).map(s -> s.substring(statoTrasmissione.getStorePath().length())).orElse(StorageDriver.SUFFIX)));
                zos.putNextEntry(zipEntryChild);
                IOUtils.copyLarge(documentiContabiliService.getResource(storageObject), zos);
            } else {
                addToZip(documentiContabiliService, zos, storageObject.getPath(), statoTrasmissione);
            }
        } catch (IOException e) {
            throw new DetailedRuntimeException(e);
        }
    });
}
Also used : LoggerFactory(org.slf4j.LoggerFactory) DocumentiCollegatiDocAmmService(it.cnr.contab.docamm00.service.DocumentiCollegatiDocAmmService) HttpStatus(org.apache.http.HttpStatus) ActionContext(it.cnr.jada.action.ActionContext) Button(it.cnr.jada.util.jsp.Button) PDFMergerUtility(org.apache.pdfbox.multipdf.PDFMergerUtility) StatoTrasmissione(it.cnr.contab.doccont00.intcass.bulk.StatoTrasmissione) StorageException(it.cnr.si.spring.storage.StorageException) ZipEntry(java.util.zip.ZipEntry) Apparence(it.cnr.contab.util.Apparence) ColumnFieldProperty(it.cnr.jada.bulk.ColumnFieldProperty) CRUDNotNullConstraintException(it.cnr.jada.comp.CRUDNotNullConstraintException) StorageObject(it.cnr.si.spring.storage.StorageObject) ZipException(java.util.zip.ZipException) Mandato_rigaBulk(it.cnr.contab.doccont00.core.bulk.Mandato_rigaBulk) MandatoIBulk(it.cnr.contab.doccont00.core.bulk.MandatoIBulk) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) Collectors(java.util.stream.Collectors) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) FirmaOTPBulk(it.cnr.contab.firma.bulk.FirmaOTPBulk) StorageDriver(it.cnr.si.spring.storage.StorageDriver) IOUtils(org.apache.commons.io.IOUtils) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) Numerazione_doc_ammBulk(it.cnr.contab.docamm00.docs.bulk.Numerazione_doc_ammBulk) ContabiliService(it.cnr.contab.doccont00.service.ContabiliService) StoragePropertyNames(it.cnr.si.spring.storage.config.StoragePropertyNames) SelezionatoreListaBP(it.cnr.jada.util.action.SelezionatoreListaBP) PdfSignApparence(it.cnr.contab.util.PdfSignApparence) SpringUtil(it.cnr.contab.service.SpringUtil) ZipOutputStream(java.util.zip.ZipOutputStream) HttpActionContext(it.cnr.jada.action.HttpActionContext) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) java.util(java.util) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) Utility(it.cnr.contab.util.Utility) Tipo_documento_ammBulk(it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk) CRUDComponentSession(it.cnr.jada.ejb.CRUDComponentSession) DocumentiContabiliService(it.cnr.contab.doccont00.service.DocumentiContabiliService) OrderedHashtable(it.cnr.jada.util.OrderedHashtable) AbilitatoFirma(it.cnr.contab.utenze00.bulk.AbilitatoFirma) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) ApplicationException(it.cnr.jada.comp.ApplicationException) Logger(org.slf4j.Logger) HttpServletResponse(javax.servlet.http.HttpServletResponse) UtenteFirmaDettaglioBulk(it.cnr.contab.utenze00.bulk.UtenteFirmaDettaglioBulk) MandatoBulk(it.cnr.contab.doccont00.core.bulk.MandatoBulk) MemoryUsageSetting(org.apache.pdfbox.io.MemoryUsageSetting) CNRUserInfo(it.cnr.contab.utenze00.bulk.CNRUserInfo) SearchProvider(it.cnr.jada.util.action.SearchProvider) java.io(java.io) Numerazione_doc_contBulk(it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk) UtenteComponentSession(it.cnr.contab.utente00.ejb.UtenteComponentSession) Config(it.cnr.jada.action.Config) ComponentException(it.cnr.jada.comp.ComponentException) ZipEntry(java.util.zip.ZipEntry) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException)

Aggregations

DocumentiContabiliService (it.cnr.contab.doccont00.service.DocumentiContabiliService)14 ComponentException (it.cnr.jada.comp.ComponentException)10 RemoteException (java.rmi.RemoteException)10 ApplicationException (it.cnr.jada.comp.ApplicationException)9 Configurazione_cnrComponentSession (it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession)8 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)7 HttpActionContext (it.cnr.jada.action.HttpActionContext)7 StatoTrasmissione (it.cnr.contab.doccont00.intcass.bulk.StatoTrasmissione)6 SpringUtil (it.cnr.contab.service.SpringUtil)6 ActionContext (it.cnr.jada.action.ActionContext)6 OggettoBulk (it.cnr.jada.bulk.OggettoBulk)6 PDFMergerUtility (org.apache.pdfbox.multipdf.PDFMergerUtility)6 MandatoBulk (it.cnr.contab.doccont00.core.bulk.MandatoBulk)5 FirmaOTPBulk (it.cnr.contab.firma.bulk.FirmaOTPBulk)5 UtenteComponentSession (it.cnr.contab.utente00.ejb.UtenteComponentSession)5 AbilitatoFirma (it.cnr.contab.utenze00.bulk.AbilitatoFirma)5 CNRUserInfo (it.cnr.contab.utenze00.bulk.CNRUserInfo)5 UtenteFirmaDettaglioBulk (it.cnr.contab.utenze00.bulk.UtenteFirmaDettaglioBulk)5 Config (it.cnr.jada.action.Config)5 CRUDComponentSession (it.cnr.jada.ejb.CRUDComponentSession)5