Search in sources :

Example 1 with StorageFileFatturaAttiva

use of it.cnr.contab.docamm00.storage.StorageFileFatturaAttiva in project sigla-main by consiglionazionaledellericerche.

the class TrasmissioneFatture method salvaFileSuDocumentale.

private void salvaFileSuDocumentale(DataHandler data, String nomeFile, Fattura_attivaBulk fattura, StorageDocAmmAspect aspect) throws IOException, ApplicationException {
    logger.info("Inizio Salvataggio sul Documentale");
    DocumentiCollegatiDocAmmService documentiCollegatiDocAmmService = SpringUtil.getBean("documentiCollegatiDocAmmService", DocumentiCollegatiDocAmmService.class);
    StorageFile storageFile = new StorageFileFatturaAttiva(data.getInputStream(), data.getContentType(), nomeFile, fattura);
    if (storageFile != null) {
        String path = storageFile.getStorageParentPath();
        try {
            StorageObject storageObject = documentiCollegatiDocAmmService.restoreSimpleDocument(storageFile, storageFile.getInputStream(), storageFile.getContentType(), storageFile.getFileName(), path, true);
            documentiCollegatiDocAmmService.addAspect(storageObject, aspect.value());
            storageFile.setStorageObject(storageObject);
            logger.info("Salvato file sul Documentale");
        } catch (StorageException e) {
            if (e.getType().equals(StorageException.Type.CONSTRAINT_VIOLATED))
                throw new ApplicationException("CMIS - File Ricevuta Consegna [" + storageFile.getFileName() + "] già presente o non completo di tutte le proprietà obbligatorie. Inserimento non possibile!");
            throw new ApplicationException("CMIS - Errore nella registrazione del file Ricevuta Consegna  sul Documentale (" + e.getMessage() + ")");
        }
    }
}
Also used : StorageObject(it.cnr.si.spring.storage.StorageObject) ApplicationException(it.cnr.jada.comp.ApplicationException) DocumentiCollegatiDocAmmService(it.cnr.contab.docamm00.service.DocumentiCollegatiDocAmmService) StorageFileFatturaAttiva(it.cnr.contab.docamm00.storage.StorageFileFatturaAttiva) StorageFile(it.cnr.si.spring.storage.bulk.StorageFile) StorageException(it.cnr.si.spring.storage.StorageException)

Example 2 with StorageFileFatturaAttiva

use of it.cnr.contab.docamm00.storage.StorageFileFatturaAttiva in project sigla-main by consiglionazionaledellericerche.

the class DocumentiCollegatiDocAmmService method archiviaFileCMIS.

private void archiviaFileCMIS(UserContext userContext, DocumentiCollegatiDocAmmService documentiCollegatiDocAmmService, Fattura_attivaBulk fattura, File file) throws ComponentException {
    List<StorageFile> storageFileCreate = new ArrayList<StorageFile>();
    List<StorageFile> storageFileAnnullati = new ArrayList<StorageFile>();
    try {
        StorageFileFatturaAttiva storageFile = new StorageFileFatturaAttiva(file, fattura, "application/pdf", "FAPP" + fattura.constructCMISNomeFile() + ".pdf");
        String path = storageFile.getStorageParentPath();
        StorageObject folder = documentiCollegatiDocAmmService.getStorageObjectByPath(path);
        try {
            Optional.ofNullable(documentiCollegatiDocAmmService.restoreSimpleDocument(storageFile, storageFile.getInputStream(), storageFile.getContentType(), storageFile.getFileName(), path, true)).ifPresent(storageObject -> {
                List<String> aspects = storageObject.<List<String>>getPropertyValue(StoragePropertyNames.SECONDARY_OBJECT_TYPE_IDS.value());
                aspects.add(StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_STAMPA_FATTURA_PRIMA_PROTOCOLLO.value());
                documentiCollegatiDocAmmService.updateProperties(storageFile.getCMISFolder(fattura), folder);
                documentiCollegatiDocAmmService.updateProperties(Collections.singletonMap(StoragePropertyNames.SECONDARY_OBJECT_TYPE_IDS.value(), aspects), storageObject);
                storageFile.setStorageObject(storageObject);
                storageFileCreate.add(storageFile);
            });
        } catch (StorageException _ex) {
            if (_ex.getType().equals(StorageException.Type.CONSTRAINT_VIOLATED))
                throw new ApplicationException("CMIS - File [" + storageFile.getFileName() + "] già presente o non completo di tutte le proprietà obbligatorie. Inserimento non possibile!");
            throw new ApplicationException("CMIS - Errore nella registrazione del file XML sul Documentale (" + _ex.getMessage() + ")");
        }
    } catch (Exception e) {
        // Codice per riallineare il documentale allo stato precedente rispetto alle modifiche
        for (StorageFile storageFile : storageFileCreate) documentiCollegatiDocAmmService.delete(storageFile.getStorageObject());
        for (StorageFile storageFile : storageFileAnnullati) {
            String cmisFileName = storageFile.getFileName();
            String cmisFileEstensione = cmisFileName.substring(cmisFileName.lastIndexOf(".") + 1);
            String stringToDelete = cmisFileName.substring(cmisFileName.indexOf("-ANNULLATO"));
            storageFile.setFileName(cmisFileName.replace(stringToDelete, "." + cmisFileEstensione));
            documentiCollegatiDocAmmService.updateProperties(storageFile, storageFile.getStorageObject());
        }
        throw new ApplicationException(e.getMessage());
    }
}
Also used : StorageObject(it.cnr.si.spring.storage.StorageObject) ApplicationException(it.cnr.jada.comp.ApplicationException) StorageFileFatturaAttiva(it.cnr.contab.docamm00.storage.StorageFileFatturaAttiva) StorageFile(it.cnr.si.spring.storage.bulk.StorageFile) StorageException(it.cnr.si.spring.storage.StorageException) GenerazioneReportException(it.cnr.jada.comp.GenerazioneReportException) StorageException(it.cnr.si.spring.storage.StorageException) ApplicationException(it.cnr.jada.comp.ApplicationException) DetailedException(it.cnr.jada.DetailedException) RemoteException(java.rmi.RemoteException) ComponentException(it.cnr.jada.comp.ComponentException)

Example 3 with StorageFileFatturaAttiva

use of it.cnr.contab.docamm00.storage.StorageFileFatturaAttiva in project sigla-main by consiglionazionaledellericerche.

the class CRUDSelezionatoreDocumentiAmministrativiFatturazioneElettronicaBP method protocollaECreaFileXml.

public Fattura_attivaBulk protocollaECreaFileXml(UserContext userContext, FatturaAttivaSingolaComponentSession componentFatturaAttiva, Fattura_attivaBulk fatturaAttiva) throws BusinessProcessException, ComponentException, RemoteException, PersistencyException {
    logger.info("Processo la fattura {}/{}", fatturaAttiva.getEsercizio(), fatturaAttiva.getPg_fattura_attiva());
    DocAmmFatturazioneElettronicaComponentSession component = createComponentSession();
    // Questo metodo va invocato perchè fa tutti i controlli prima che la fattura venga protocollata
    component.preparaFattura(userContext, fatturaAttiva);
    if (fatturaAttiva.getProtocollo_iva() == null) {
        Fattura_attivaBulk fatturaAttivaProtocollata = protocollazione(userContext, fatturaAttiva);
        fatturaAttiva = fatturaAttivaProtocollata;
        logger.info("Creato protocollazione {}/{}", fatturaAttiva.getEsercizio(), fatturaAttiva.getPg_fattura_attiva());
    }
    File file = creaFileXml(userContext, fatturaAttiva);
    logger.info("Creato file XML {}/{}", fatturaAttiva.getEsercizio(), fatturaAttiva.getPg_fattura_attiva());
    List<StorageFile> storageFileCreate = new ArrayList<StorageFile>();
    List<StorageFile> storageFileAnnullati = new ArrayList<StorageFile>();
    try {
        StorageFile storageFile = new StorageFileFatturaAttiva(file, fatturaAttiva, "application/xml", "FAXA" + fatturaAttiva.constructCMISNomeFile() + ".xml");
        if (storageFile != null) {
            // E' previsto solo l'inserimento ma non l'aggiornamento
            String path = storageFile.getStorageParentPath();
            try {
                Optional.ofNullable(documentiCollegatiDocAmmService.restoreSimpleDocument(storageFile, storageFile.getInputStream(), storageFile.getContentType(), storageFile.getFileName(), path, false)).ifPresent(storageObject -> {
                    List<String> aspects = storageObject.getPropertyValue(StoragePropertyNames.SECONDARY_OBJECT_TYPE_IDS.value());
                    aspects.add(StorageDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_FATTURA_ELETTRONICA_XML_ANTE_FIRMA.value());
                    documentiCollegatiDocAmmService.updateProperties(Collections.singletonMap(StoragePropertyNames.SECONDARY_OBJECT_TYPE_IDS.value(), aspects), storageObject);
                    storageFile.setStorageObject(storageObject);
                    storageFileCreate.add(storageFile);
                });
                logger.info("Salvato file XML sul Documentale");
            } catch (StorageException _ex) {
                if (_ex.getType().equals(StorageException.Type.CONSTRAINT_VIOLATED))
                    throw new ApplicationException("CMIS - File [" + storageFile.getFileName() + "] già presente o non completo di tutte le proprietà obbligatorie. Inserimento non possibile!");
                throw new ApplicationException("CMIS - Errore nella registrazione del file XML sul Documentale (" + _ex.getMessage() + ")");
            }
            fatturaAttiva = componentFatturaAttiva.aggiornaFatturaPredispostaAllaFirma(userContext, fatturaAttiva);
        }
    } catch (Exception e) {
        /*
			    Codice per riallineare il documentale allo stato precedente rispetto alle modifiche
			 */
        for (StorageFile storageFile : storageFileAnnullati) {
            String cmisFileName = storageFile.getFileName();
            String cmisFileEstensione = cmisFileName.substring(cmisFileName.lastIndexOf(".") + 1);
            String stringToDelete = cmisFileName.substring(cmisFileName.indexOf("-ANNULLATO"));
            storageFile.setFileName(cmisFileName.replace(stringToDelete, "." + cmisFileEstensione));
            documentiCollegatiDocAmmService.updateProperties(storageFile, storageFile.getStorageObject());
        }
        throw new BusinessProcessException(e);
    }
    documentiCollegatiDocAmmService.gestioneAllegatiPerFatturazioneElettronica(userContext, fatturaAttiva);
    return fatturaAttiva;
}
Also used : StorageException(it.cnr.si.spring.storage.StorageException) RemoteException(java.rmi.RemoteException) EncryptionException(it.cnr.contab.util.StringEncrypter.EncryptionException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) EmailException(org.apache.commons.mail.EmailException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ArubaSignServiceException(it.cnr.si.firmadigitale.firma.arss.ArubaSignServiceException) ComponentException(it.cnr.jada.comp.ComponentException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) Fattura_attivaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_attivaBulk) ApplicationException(it.cnr.jada.comp.ApplicationException) StorageFileFatturaAttiva(it.cnr.contab.docamm00.storage.StorageFileFatturaAttiva) StorageFile(it.cnr.si.spring.storage.bulk.StorageFile) StorageFile(it.cnr.si.spring.storage.bulk.StorageFile) StorageException(it.cnr.si.spring.storage.StorageException) DocAmmFatturazioneElettronicaComponentSession(it.cnr.contab.docamm00.ejb.DocAmmFatturazioneElettronicaComponentSession)

Aggregations

StorageFileFatturaAttiva (it.cnr.contab.docamm00.storage.StorageFileFatturaAttiva)3 ApplicationException (it.cnr.jada.comp.ApplicationException)3 StorageException (it.cnr.si.spring.storage.StorageException)3 StorageFile (it.cnr.si.spring.storage.bulk.StorageFile)3 ComponentException (it.cnr.jada.comp.ComponentException)2 StorageObject (it.cnr.si.spring.storage.StorageObject)2 RemoteException (java.rmi.RemoteException)2 Fattura_attivaBulk (it.cnr.contab.docamm00.docs.bulk.Fattura_attivaBulk)1 DocAmmFatturazioneElettronicaComponentSession (it.cnr.contab.docamm00.ejb.DocAmmFatturazioneElettronicaComponentSession)1 DocumentiCollegatiDocAmmService (it.cnr.contab.docamm00.service.DocumentiCollegatiDocAmmService)1 EncryptionException (it.cnr.contab.util.StringEncrypter.EncryptionException)1 DetailedException (it.cnr.jada.DetailedException)1 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)1 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)1 GenerazioneReportException (it.cnr.jada.comp.GenerazioneReportException)1 PersistencyException (it.cnr.jada.persistency.PersistencyException)1 ArubaSignServiceException (it.cnr.si.firmadigitale.firma.arss.ArubaSignServiceException)1 EmailException (org.apache.commons.mail.EmailException)1