Search in sources :

Example 1 with V_mandato_reversaleBulk

use of it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk in project sigla-main by consiglionazionaledellericerche.

the class MandatoComponent method annullaMandato.

/**
 * annullamento mandato e collegati PreCondition: E' stata generata la
 * richiesta di annullare un Mandato E' stato richiesto l'annullamento dei
 * doc. contabili collegati PostCondition: Viene impostata la data di
 * annullamento del mandato con la data odierna e lo stato del mandato
 * diventa ANNULLATO. Viene impostato lo stato ANNULLATO su tutte le righe
 * del mandato. Per ogni riga inoltre viene aggiornato l'importo associato a
 * doc.contabili della scadenza di obbligazione legata alla riga (metodo
 * aggiornaImportoObbligazione), viene aggiornato lo stato del documento
 * amministrativo legato alla riga (metodo aggiornaStatoFattura). Vengono
 * aggiornati i saldi dei capitoli (metodo aggiornaCapitoloSaldoRiga). Per
 * ogni associzione sospeso-mandato, viene aggiornato l'importo associato
 * del sospeso (metodo annullaImportoSospesi). Se il mandato ha associate
 * reversali o altri mandati viene eseguito il loro annullamento (metodo
 * 'annullaDocContabiliCollegati') annullamento mandato PreCondition: E'
 * stata generata la richiesta di annullare un Mandato Non e' necessario
 * procedere all'annullamento dei doc. contabili collegati PostCondition:
 * Viene impostata la data di annullamento del mandato con la data odierna e
 * lo stato del mandato diventa ANNULLATO. Viene impostato lo stato
 * ANNULLATO su tutte le righe del mandato. Per ogni riga inoltre viene
 * aggiornato l'importo associato a doc.contabili della scadenza di
 * obbligazione legata alla riga (metodo aggiornaImportoObbligazione), viene
 * aggiornato lo stato del documento amministrativo legato alla riga (metodo
 * aggiornaStatoFattura). Vengono aggiornati i saldi dei capitoli (metodo
 * aggiornaCapitoloSaldoRiga). Per ogni associzione sospeso-mandato, viene
 * aggiornato l'importo associato del sospeso (metodo
 * annullaImportoSospesi). Se il mandato ha associate reversali o altri
 * mandati NON viene eseguito il loro annullamento annullamento mandato di
 * regolarizzazione PreCondition: E' stata generata la richiesta di
 * annullare un Mandato di regolarizzazione PostCondition: Oltre alle
 * PostCondition dell'annullamento di un mandato normale, viene anche
 * annullati sia la reversale di regolarizzazione associata al mandato che
 * il documento amministrativo generico di entrata creato dal sistema
 * (metodo annullaReversaleRegolarizzazione) annullamento mandato di
 * trasferimento PreCondition: E' stata generata la richiesta di annullare
 * un Mandato di trasferimento PostCondition: Oltre alle PostCondition
 * dell'annullamento di un mandato normale, viene anche annullato il
 * documento amm. generico creato in automatico alla creazione del mandato
 * (metodo annullaDocumentoGenerico) e viene annullata sia la reversale di
 * trasferimento associata al mandato che il relativo documento generico di
 * entrata (metodo annullaReversaleTrasferimento) errore riscontri associati
 * PreCondition: E' stata generata la richiesta di annullare un Mandato che
 * ha riscontri associati PostCondition: Una segnalazione di errore comunica
 * all'utente l'impossibilità di eseguire l'annullamento annullamento
 * mandato su anticipo associato a missione PreCondition: E' stata generata
 * la richiesta di annullare un Mandato Il mandato non supera la validazione
 * effettuata dal metodo 'verificaMandatoSuAnticipo' in quanto include un
 * anticipo associato a missione PostCondition: Una segnalazione di errore
 * comunica all'utente l'impossibilità di eseguire l'annullamento
 * annullamento mandato di compenso su riscontro PreCondition: E' stata
 * generata la richiesta di annullare un Mandato Il mandato si riferisce a
 * compensi inclusi in conguagli PostCondition: Una segnalazione richiede
 * all'utente se intende comunque proseguire all'annullamento del mandato
 *
 * @param userContext      lo <code>UserContext</code> che ha generato la richiesta
 * @param mandato          <code>MandatoBulk</code> il mandato da annullare
 * @param p                il parametro che indica se il controllo sul compenso e'
 *                         necessario
 * @param annullaCollegati valore booleano che indica se procedere o meno con
 *                         l'annullamento dei doc. contabili collegati al mandato
 * @return mandato <code>MandatoBulk</code> il Mandato annullato
 */
public MandatoBulk annullaMandato(UserContext userContext, MandatoBulk mandato, CompensoOptionRequestParameter p, boolean annullaCollegati, boolean riemissione) throws ComponentException {
    try {
        if (mandato.isAnnullato())
            throw new ApplicationException("Il mandato e' già stato annullato");
        verificaStatoEsercizio(userContext, mandato.getEsercizio(), mandato.getCd_cds());
        BigDecimal totdettagli = ((Sospeso_det_uscHome) getHome(userContext, Sospeso_det_uscBulk.class)).calcolaTotDettagli(new V_mandato_reversaleBulk(mandato.getEsercizio(), mandato.getCd_tipo_documento_cont(), mandato.getCd_cds(), mandato.getPg_mandato()));
        if (totdettagli.compareTo(new BigDecimal(0)) > 0 && Optional.ofNullable(mandato.getStatoVarSos()).map(s -> !s.equalsIgnoreCase(StatoVariazioneSostituzione.ANNULLATO_PER_SOSTITUZIONE.value())).orElse(Boolean.TRUE))
            throw new ApplicationException("Annullamento impossibile! Il mandato e' già stato associato ad un riscontro");
        Sospeso_det_uscBulk sdu;
        for (Iterator i = mandato.getSospeso_det_uscColl().iterator(); i.hasNext(); ) {
            sdu = (Sospeso_det_uscBulk) i.next();
            if (sdu.isToBeCreated() || sdu.isToBeUpdated() || sdu.isToBeDeleted())
                throw new ApplicationException("Annullamento impossibile! Sono state fatte delle modifiche ai sospesi che devono essere ancora salvate");
        }
        if (MandatoBulk.TIPO_REGOLARIZZAZIONE.equals(mandato.getTi_mandato())) {
            if (mandato instanceof MandatoIBulk) {
                Var_bilancioBulk varBilancio = ((Var_bilancioHome) getHome(userContext, Var_bilancioBulk.class)).findByMandato(mandato);
                if (varBilancio != null)
                    throw new ApplicationException("Annullamento impossibile! Esiste una variazione di bilancio Ente associata al mandato di regolarizzazione");
            }
        }
        verificaMandatoSuAnticipo(userContext, mandato);
        checkAnnullabilita(userContext, mandato);
        if (isMandatoCollegatoAnnullodaRiemettere(userContext, mandato).booleanValue())
            throw new ApplicationException("Annullamento impossibile! Esiste un mandato annullato associato al mandato.");
        if (isAnnullabile(userContext, mandato).compareTo("N") == 0)
            throw new ApplicationException("Verificare lo stato di trasmissione del mandato. Annullamento impossibile!");
        lockBulk(userContext, mandato);
        // modifica 16/01/2017 messa sempre o sysdate o 31/12
        mandato.setDt_annullamento(DateServices.getTs_valido(userContext));
        if (mandato.getStato_coge().equals(MandatoBulk.STATO_COGE_C))
            mandato.setStato_coge(MandatoBulk.STATO_COGE_R);
        if (!MandatoBulk.TIPO_REGOLARIZZAZIONE.equals(mandato.getTi_mandato())) {
            mandato.setFl_riemissione(riemissione);
            mandato.setStato_trasmissione_annullo(MandatoIBulk.STATO_TRASMISSIONE_NON_INSERITO);
        }
        mandato.annulla();
        annullaImportoSospesi(userContext, mandato);
        Mandato_rigaBulk riga;
        SaldoComponentSession session = createSaldoComponentSession();
        for (Iterator i = mandato.getMandato_rigaColl().iterator(); i.hasNext(); ) {
            riga = (Mandato_rigaBulk) i.next();
            riga.annulla();
            aggiornaCapitoloSaldoRiga(userContext, riga, session);
        }
        aggiornaImportoObbligazioni(userContext, mandato);
        makeBulkPersistent(userContext, mandato);
        aggiornaStatoFattura(userContext, mandato, ANNULLAMENTO_MANDATO_ACTION);
        if (mandato.getTi_mandato().equals(MandatoBulk.TIPO_ACCREDITAMENTO) && mandato.getReversaliColl().size() > 0) {
            annullaDocumentoGenerico(userContext, mandato);
            annullaReversaleDiTrasferimento(userContext, mandato);
        } else if (mandato.getTi_mandato().equals(MandatoBulk.TIPO_REGOLARIZZAZIONE) && mandato.getReversaliColl().size() > 0) {
            aggiornaSaldoPagato(userContext, mandato, ANNULLAMENTO_MANDATO_ACTION);
            annullaReversaleDiRegolarizzazione(userContext, mandato);
        } else if (mandato.getDoc_contabili_collColl().size() > 0 && ((MandatoIBulk) mandato).hasFattura_passiva()) {
            /**
             * Nel caso di annullamento per sostituzione non annullo le reversali collegate
             */
            if (Optional.ofNullable(mandato.getStatoVarSos()).map(s -> !s.equalsIgnoreCase(StatoVariazioneSostituzione.ANNULLATO_PER_SOSTITUZIONE.value())).orElse(Boolean.TRUE)) {
                annullaReversaleDiIncassoIVA(userContext, (MandatoIBulk) mandato);
            }
        } else if (annullaCollegati) {
            annullaDocContabiliCollegati(userContext, mandato);
        }
        return mandato;
    } catch (Exception e) {
        throw handleException(mandato, e);
    }
}
Also used : AnticipoBulk(it.cnr.contab.missioni00.docs.bulk.AnticipoBulk) EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.bulk) LoggerFactory(org.slf4j.LoggerFactory) SendMail(it.cnr.jada.util.SendMail) Config(it.cnr.jada.util.Config) Var_bilancioHome(it.cnr.contab.preventvar00.bulk.Var_bilancioHome) ConguaglioHome(it.cnr.contab.compensi00.docs.bulk.ConguaglioHome) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession) BigDecimal(java.math.BigDecimal) DocumentoGenericoComponentSession(it.cnr.contab.docamm00.ejb.DocumentoGenericoComponentSession) ResultSet(java.sql.ResultSet) Voce_f_saldi_cdr_lineaBulk(it.cnr.contab.prevent00.bulk.Voce_f_saldi_cdr_lineaBulk) it.cnr.contab.config00.sto.bulk(it.cnr.contab.config00.sto.bulk) EsitoOperazione(it.cnr.contab.util.enumeration.EsitoOperazione) Rif_modalita_pagamentoBase(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBase) AccertamentoAbstractComponentSession(it.cnr.contab.doccont00.ejb.AccertamentoAbstractComponentSession) UtenteBulk(it.cnr.contab.utenze00.bulk.UtenteBulk) AddressException(javax.mail.internet.AddressException) VarBilancioComponentSession(it.cnr.contab.preventvar00.ejb.VarBilancioComponentSession) Timestamp(java.sql.Timestamp) it.cnr.contab.config00.bulk(it.cnr.contab.config00.bulk) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) ComuneBulk(it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk) Collectors(java.util.stream.Collectors) Serializable(java.io.Serializable) IPrintMgr(it.cnr.jada.comp.IPrintMgr) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) Stream(java.util.stream.Stream) NazioneBulk(it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk) Tipo_bolloBulk(it.cnr.contab.doccont00.tabrif.bulk.Tipo_bolloBulk) CompensoBulk(it.cnr.contab.compensi00.docs.bulk.CompensoBulk) SaldoComponentSession(it.cnr.contab.doccont00.ejb.SaldoComponentSession) UserContext(it.cnr.jada.UserContext) Var_bilancioBulk(it.cnr.contab.preventvar00.bulk.Var_bilancioBulk) it.cnr.jada.persistency.sql(it.cnr.jada.persistency.sql) java.util(java.util) CupBulk(it.cnr.contab.doccont00.tabrif.bulk.CupBulk) V_mandato_reversaleBulk(it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk) Utility(it.cnr.contab.util.Utility) SimpleDateFormat(java.text.SimpleDateFormat) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) Utente_indirizzi_mailBulk(it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailBulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) InternetAddress(javax.mail.internet.InternetAddress) ScritturaPartitaDoppiaFromDocumentoComponent(it.cnr.contab.coepcoan00.comp.ScritturaPartitaDoppiaFromDocumentoComponent) SQLException(java.sql.SQLException) ReversaleComponentSession(it.cnr.contab.doccont00.ejb.ReversaleComponentSession) ConguaglioBulk(it.cnr.contab.compensi00.docs.bulk.ConguaglioBulk) ICRUDMgr(it.cnr.jada.comp.ICRUDMgr) TipoIVA(it.cnr.contab.util.enumeration.TipoIVA) Voce_fBulk(it.cnr.contab.config00.pdcfin.bulk.Voce_fBulk) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) ProcedureComponentSession(it.cnr.contab.util00.ejb.ProcedureComponentSession) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) DivisaBulk(it.cnr.contab.docamm00.tabrif.bulk.DivisaBulk) Logger(org.slf4j.Logger) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk) Tipo_bolloHome(it.cnr.contab.doccont00.tabrif.bulk.Tipo_bolloHome) NazioneHome(it.cnr.contab.anagraf00.tabter.bulk.NazioneHome) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) StatoVariazioneSostituzione(it.cnr.contab.util.enumeration.StatoVariazioneSostituzione) it.cnr.jada.bulk(it.cnr.jada.bulk) Utente_indirizzi_mailHome(it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailHome) ComponentException(it.cnr.jada.comp.ComponentException) AccertamentoComponentSession(it.cnr.contab.doccont00.ejb.AccertamentoComponentSession) BigDecimal(java.math.BigDecimal) AddressException(javax.mail.internet.AddressException) 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) V_mandato_reversaleBulk(it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk) Var_bilancioBulk(it.cnr.contab.preventvar00.bulk.Var_bilancioBulk) Var_bilancioHome(it.cnr.contab.preventvar00.bulk.Var_bilancioHome) SaldoComponentSession(it.cnr.contab.doccont00.ejb.SaldoComponentSession)

Example 2 with V_mandato_reversaleBulk

use of it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk in project sigla-main by consiglionazionaledellericerche.

the class DistintaCassiereComponent method aggiungiMandatiEReversaliCollegati.

/**
 * Nome: Aggiungi mandati reversali collegati Pre: E' stata generata la
 * richiesta di inserire in distinta un mandato/reversale Post: Per ogni
 * mandato/reversale dipendente da quello da inserire in distinta viene
 * creato automaticamente un altro dettaglio distinta e lo stato di tale
 * doc.contabile viene aggiornato a INSERITO IN DISTINTA ( metodo
 * 'inserisciDettaglioDistinta')
 *
 * @param userContext       lo UserContext che ha generato la richiesta
 * @param distinta          la Distinta_cassiereBulk in cui inserire i doc. contabili
 *                          collegati
 * @param docContabilePadre il V_mandato_reversaleBulk per cui ricercare i doc. contabili
 *                          dièpendenti
 * @param last_pg_dettaglio , il progressivo dell'ultimo dettaglio inserito in distinta
 * @return il progressivo aggiornato dell'ultimo dettaglio inserito in
 * distinta
 */
protected Long aggiungiMandatiEReversaliCollegati(UserContext userContext, Distinta_cassiereBulk distinta, V_mandato_reversaleBulk docContabilePadre, Long last_pg_dettaglio) throws PersistencyException, ComponentException {
    /*
         * aggiungo in automatico i mandati già trasmessi e successivamente
         * annullati
         */
    Collection docContabili = ((V_mandato_reversaleHome) getHome(userContext, V_mandato_reversaleBulk.class)).findDocContabiliCollegati(docContabilePadre);
    V_mandato_reversaleBulk docContabile;
    if (Optional.ofNullable(docContabilePadre.getStatoVarSos()).map(s -> !Arrays.asList(StatoVariazioneSostituzione.ANNULLATO_PER_SOSTITUZIONE.value(), StatoVariazioneSostituzione.SOSTITUZIONE_DEFINITIVA.value()).contains(s)).orElse(Boolean.TRUE)) {
        for (Iterator i = docContabili.iterator(); i.hasNext(); ) {
            docContabile = (V_mandato_reversaleBulk) i.next();
            last_pg_dettaglio = inserisciDettaglioDistinta(userContext, distinta, docContabile, last_pg_dettaglio);
            inserisciDettaglioDistinteCollegate(userContext, distinta, docContabile);
        }
    }
    return last_pg_dettaglio;
}
Also used : DatatypeConfigurationException(javax.xml.datatype.DatatypeConfigurationException) EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) DatatypeFactory(javax.xml.datatype.DatatypeFactory) V_cons_stato_invio_reversaliBulk(it.cnr.contab.doccont00.consultazioni.bulk.V_cons_stato_invio_reversaliBulk) TerzoHome(it.cnr.contab.anagraf00.core.bulk.TerzoHome) BigDecimal(java.math.BigDecimal) CupKey(it.cnr.contab.doccont00.tabrif.bulk.CupKey) MovimentoContoEvidenzaBulk(it.cnr.contab.doccont00.intcass.giornaliera.MovimentoContoEvidenzaBulk) AnagraficoComponentSession(it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession) DatatypeConstants(javax.xml.datatype.DatatypeConstants) BigInteger(java.math.BigInteger) EsitoOperazione(it.cnr.contab.util.enumeration.EsitoOperazione) Configurazione_cnrHome(it.cnr.contab.config00.bulk.Configurazione_cnrHome) CRUDNotDeletableException(it.cnr.jada.comp.CRUDNotDeletableException) CigBulk(it.cnr.contab.config00.bulk.CigBulk) MovimentoContoEvidenzaHome(it.cnr.contab.doccont00.intcass.giornaliera.MovimentoContoEvidenzaHome) StorageObject(it.cnr.si.spring.storage.StorageObject) Timestamp(java.sql.Timestamp) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) CompletionException(java.util.concurrent.CompletionException) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) Parametri_cnrBulk(it.cnr.contab.config00.bulk.Parametri_cnrBulk) Collectors(java.util.stream.Collectors) StandardCharsets(java.nio.charset.StandardCharsets) ZoneId(java.time.ZoneId) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) EJBException(javax.ejb.EJBException) IOUtils(org.apache.commons.io.IOUtils) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) LocalDate(java.time.LocalDate) NazioneBulk(it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk) Tipo_trattamentoHome(it.cnr.contab.compensi00.tabrif.bulk.Tipo_trattamentoHome) QName(javax.xml.namespace.QName) Pattern(java.util.regex.Pattern) StoragePropertyNames(it.cnr.si.spring.storage.config.StoragePropertyNames) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) CompensoBulk(it.cnr.contab.compensi00.docs.bulk.CompensoBulk) SpringUtil(it.cnr.contab.service.SpringUtil) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) UserContext(it.cnr.jada.UserContext) it.cnr.jada.persistency.sql(it.cnr.jada.persistency.sql) EsercizioComponentSession(it.cnr.contab.config00.ejb.EsercizioComponentSession) RemoveAccent(it.cnr.contab.util.RemoveAccent) java.util(java.util) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) CupBulk(it.cnr.contab.doccont00.tabrif.bulk.CupBulk) Marshaller(javax.xml.bind.Marshaller) TemporalUnit(java.time.temporal.TemporalUnit) DistintaCassiereComponentSession(it.cnr.contab.doccont00.ejb.DistintaCassiereComponentSession) Utility(it.cnr.contab.util.Utility) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) CompensoHome(it.cnr.contab.compensi00.docs.bulk.CompensoHome) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) SQLException(java.sql.SQLException) EnteBulk(it.cnr.contab.config00.sto.bulk.EnteBulk) DocumentiContabiliService(it.cnr.contab.doccont00.service.DocumentiContabiliService) BancaBulk(it.cnr.contab.anagraf00.core.bulk.BancaBulk) it.siopeplus(it.siopeplus) RemoteIterator(it.cnr.jada.util.RemoteIterator) JAXBContext(javax.xml.bind.JAXBContext) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk) JAXBElement(javax.xml.bind.JAXBElement) TipoDebitoSIOPE(it.cnr.contab.util.enumeration.TipoDebitoSIOPE) StorageFile(it.cnr.si.spring.storage.bulk.StorageFile) XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) Bframe_blobBulk(it.cnr.jada.blobs.bulk.Bframe_blobBulk) NazioneHome(it.cnr.contab.anagraf00.tabter.bulk.NazioneHome) Unita_organizzativa_enteBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk) ChronoUnit(java.time.temporal.ChronoUnit) MimeTypes(it.cnr.si.spring.storage.MimeTypes) java.io(java.io) Tipo_trattamentoBulk(it.cnr.contab.compensi00.tabrif.bulk.Tipo_trattamentoBulk) CdsBulk(it.cnr.contab.config00.sto.bulk.CdsBulk) DateTimeFormatter(java.time.format.DateTimeFormatter) it.cnr.contab.doccont00.intcass.bulk(it.cnr.contab.doccont00.intcass.bulk) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) StatoVariazioneSostituzione(it.cnr.contab.util.enumeration.StatoVariazioneSostituzione) it.cnr.jada.bulk(it.cnr.jada.bulk) ComponentException(it.cnr.jada.comp.ComponentException) RemoteIterator(it.cnr.jada.util.RemoteIterator)

Example 3 with V_mandato_reversaleBulk

use of it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk in project sigla-main by consiglionazionaledellericerche.

the class DistintaCassiereComponent method creaReversaleFlussoSiopeplus.

private it.siopeplus.Reversale creaReversaleFlussoSiopeplus(UserContext userContext, V_mandato_reversaleBulk bulk) throws ComponentException, RemoteException, BusinessProcessException {
    try {
        final ObjectFactory objectFactory = new ObjectFactory();
        it.siopeplus.Reversale reversale = objectFactory.createReversale();
        List list = findDocumentiFlusso(userContext, bulk);
        reversale.setTipoOperazione(getTipoOperazione(userContext, bulk));
        GregorianCalendar gcdi = new GregorianCalendar();
        it.cnr.contab.doccont00.intcass.bulk.VDocumentiFlussoBulk docContabile = null;
        for (Iterator i = list.iterator(); i.hasNext(); ) {
            it.siopeplus.Reversale.InformazioniVersante infover = objectFactory.createReversaleInformazioniVersante();
            docContabile = (it.cnr.contab.doccont00.intcass.bulk.VDocumentiFlussoBulk) i.next();
            reversale.setNumeroReversale(docContabile.getPgDocumento().intValue());
            gcdi.setTime(docContabile.getDtEmissione());
            XMLGregorianCalendar xgc = DatatypeFactory.newInstance().newXMLGregorianCalendar(gcdi);
            xgc.setMillisecond(DatatypeConstants.FIELD_UNDEFINED);
            xgc.setTimezone(DatatypeConstants.FIELD_UNDEFINED);
            xgc.setSecond(DatatypeConstants.FIELD_UNDEFINED);
            xgc.setMinute(DatatypeConstants.FIELD_UNDEFINED);
            xgc.setHour(DatatypeConstants.FIELD_UNDEFINED);
            reversale.setDataReversale(xgc);
            reversale.setImportoReversale(docContabile.getImDocumento().setScale(2, BigDecimal.ROUND_HALF_UP));
            // Dovrebbe essere sempre 1 ?
            infover.setProgressivoVersante(1);
            infover.setImportoVersante(docContabile.getImDocumento().setScale(2, BigDecimal.ROUND_HALF_UP));
            final String modalitaPagamento = docContabile.getModalitaPagamento();
            final Rif_modalita_pagamentoBulk rif_modalita_pagamentoBulk = Optional.ofNullable(findByPrimaryKey(userContext, new Rif_modalita_pagamentoBulk(modalitaPagamento))).filter(Rif_modalita_pagamentoBulk.class::isInstance).map(Rif_modalita_pagamentoBulk.class::cast).orElseThrow(() -> new ApplicationMessageFormatException("Modalità di pagamento non trovata: {0}", modalitaPagamento));
            if (docContabile.getTiDocumento().compareTo(ReversaleBulk.TIPO_REGOLAM_SOSPESO) == 0) {
                if (Optional.ofNullable(bulk.getTi_cc_bi()).filter(s -> s.equals("B")).isPresent() && Optional.ofNullable(rif_modalita_pagamentoBulk.getTi_pagamento()).filter(s -> s.equals(Rif_modalita_pagamentoBulk.BANCA_ITALIA)).isPresent()) {
                    infover.setTipoRiscossione(REGOLARIZZAZIONE_ACCREDITO_BANCA_D_ITALIA);
                } else {
                    infover.setTipoRiscossione(REGOLARIZZAZIONE);
                }
            } else if (docContabile.getTiDocumento().compareTo(ReversaleBulk.TIPO_INCASSO) == 0) {
                if (!bulk.getPg_documento_cont_padre().equals(bulk.getPg_documento_cont())) {
                    infover.setTipoRiscossione(COMPENSAZIONE);
                } else {
                    infover.setTipoRiscossione(CASSA);
                }
            } else if (!bulk.getPg_documento_cont_padre().equals(bulk.getPg_documento_cont())) {
                infover.setTipoRiscossione(COMPENSAZIONE);
            }
            // Classificazioni
            infover.setTipoEntrata(INFRUTTIFERO);
            infover.setDestinazione(LIBERA);
            List listClass = findDocumentiFlussoClassReversali(userContext, bulk);
            VDocumentiFlussoBulk oldDoc = null;
            for (Iterator c = listClass.iterator(); c.hasNext(); ) {
                VDocumentiFlussoBulk doc = (VDocumentiFlussoBulk) c.next();
                if (doc.getCdSiope() != null && oldDoc != null && oldDoc.getCdSiope() != null) {
                    if ((oldDoc.getCdSiope().compareTo(doc.getCdSiope()) != 0) || (oldDoc.getCdTipoDocumentoAmm() != null && oldDoc.getCdTipoDocumentoAmm().compareTo(doc.getCdTipoDocumentoAmm()) != 0) || (oldDoc.getPgDocAmm() != null && oldDoc.getPgDocAmm().compareTo(doc.getPgDocAmm()) != 0)) {
                        it.siopeplus.Reversale.InformazioniVersante.Classificazione clas = objectFactory.createReversaleInformazioniVersanteClassificazione();
                        clas.setCodiceCge(doc.getCdSiope());
                        clas.setImporto(doc.getImportoCge().setScale(2, BigDecimal.ROUND_HALF_UP));
                        CtClassificazioneDatiSiopeEntrate ctClassificazioneDatiSiopeEntrate = objectFactory.createCtClassificazioneDatiSiopeEntrate();
                        ctClassificazioneDatiSiopeEntrate.getContent().add(objectFactory.createCtClassificazioneDatiSiopeEntrateTipoDebitoSiopeNc(StTipoDebitoNonCommerciale.NON_COMMERCIALE));
                        clas.setClassificazioneDatiSiopeEntrate(ctClassificazioneDatiSiopeEntrate);
                        infover.getClassificazione().add(clas);
                        oldDoc = doc;
                    }
                } else if (doc.getCdSiope() != null) {
                    it.siopeplus.Reversale.InformazioniVersante.Classificazione clas = objectFactory.createReversaleInformazioniVersanteClassificazione();
                    clas.setCodiceCge(doc.getCdSiope());
                    clas.setImporto(doc.getImportoCge().setScale(2, BigDecimal.ROUND_HALF_UP));
                    CtClassificazioneDatiSiopeEntrate ctClassificazioneDatiSiopeEntrate = objectFactory.createCtClassificazioneDatiSiopeEntrate();
                    ctClassificazioneDatiSiopeEntrate.getContent().add(objectFactory.createCtClassificazioneDatiSiopeEntrateTipoDebitoSiopeNc(StTipoDebitoNonCommerciale.NON_COMMERCIALE));
                    clas.setClassificazioneDatiSiopeEntrate(ctClassificazioneDatiSiopeEntrate);
                    infover.getClassificazione().add(clas);
                    oldDoc = doc;
                }
                if (infover.getCausale() != null && doc.getCdCup() != null) {
                    if (!infover.getCausale().contains(doc.getCdCup()))
                        infover.setCausale(infover.getCausale() + "-" + doc.getCdCup());
                } else if (doc.getCdCup() != null) {
                    infover.setCausale("CUP " + doc.getCdCup());
                }
            }
            // Fine classificazioni
            it.siopeplus.Reversale.InformazioniVersante.Bollo bollo = objectFactory.createReversaleInformazioniVersanteBollo();
            bollo.setAssoggettamentoBollo(docContabile.getAssoggettamentoBollo());
            bollo.setCausaleEsenzioneBollo(docContabile.getCausaleBollo());
            infover.setBollo(bollo);
            it.siopeplus.Versante versante = objectFactory.createVersante();
            versante.setAnagraficaVersante(RemoveAccent.convert(docContabile.getDenominazioneSede()).replace('"', ' ').replace('\u00b0', ' '));
            infover.setVersante(versante);
            // gestito inserimento cup nella CAUSALE
            if (infover.getCausale() != null && (infover.getCausale() + docContabile.getDsDocumento()).length() > MAX_LENGTH_CAUSALE)
                infover.setCausale((infover.getCausale() + " " + docContabile.getDsDocumento()).substring(0, MAX_LENGTH_CAUSALE - 1));
            else if (infover.getCausale() != null)
                infover.setCausale(infover.getCausale() + " " + docContabile.getDsDocumento());
            else if (docContabile.getDsDocumento().length() > MAX_LENGTH_CAUSALE)
                infover.setCausale(docContabile.getDsDocumento().substring(0, MAX_LENGTH_CAUSALE - 1));
            else
                infover.setCausale(docContabile.getDsDocumento());
            infover.setCausale(RemoveAccent.convert(infover.getCausale()).replace('"', ' ').replace('\u00b0', ' '));
            // SOSPESO
            if (docContabile.getTiDocumento().compareTo(ReversaleBulk.TIPO_REGOLAM_SOSPESO) == 0) {
                List listSosp = findDocumentiFlussoSospeso(userContext, bulk);
                for (Iterator c = listSosp.iterator(); c.hasNext(); ) {
                    boolean sospesoTrovato = false;
                    VDocumentiFlussoBulk doc = (VDocumentiFlussoBulk) c.next();
                    if (doc.getCdSospeso() != null) {
                        if (Optional.ofNullable(doc.getCdSospeso()).isPresent() && isSospesoFromAccreditamento(userContext, doc)) {
                            final V_mandato_reversaleBulk mandatoReversale = findMandatoReversale(userContext, findSospeso(userContext, doc).get().getMandatoRiaccredito());
                            final CtClassificazioneDatiSiopeUscite classificazioneDatiSiope = getClassificazioneDatiSiope(userContext, objectFactory, mandatoReversale, null);
                            final Optional<Reversale.InformazioniVersante.Classificazione> any = infover.getClassificazione().stream().findAny();
                            final Optional<StTipoDebitoCommerciale> stTipoDebitoCommerciale = classificazioneDatiSiope.getTipoDebitoSiopeNcAndCodiceCigSiopeOrMotivoEsclusioneCigSiope().stream().filter(StTipoDebitoCommerciale.class::isInstance).map(StTipoDebitoCommerciale.class::cast).findAny();
                            final Optional<StTipoDebitoNonCommerciale> stTipoDebitoNonCommerciale = classificazioneDatiSiope.getTipoDebitoSiopeNcAndCodiceCigSiopeOrMotivoEsclusioneCigSiope().stream().filter(StTipoDebitoNonCommerciale.class::isInstance).map(StTipoDebitoNonCommerciale.class::cast).findAny();
                            final Optional<CtFatturaSiope> ctFatturaSiope = classificazioneDatiSiope.getTipoDebitoSiopeNcAndCodiceCigSiopeOrMotivoEsclusioneCigSiope().stream().filter(CtFatturaSiope.class::isInstance).map(CtFatturaSiope.class::cast).findAny();
                            if (any.isPresent()) {
                                final Reversale.InformazioniVersante.Classificazione classificazione = any.get();
                                classificazione.getClassificazioneDatiSiopeEntrate().getContent().clear();
                                if (stTipoDebitoCommerciale.isPresent())
                                    classificazione.getClassificazioneDatiSiopeEntrate().getContent().add(objectFactory.createCtClassificazioneDatiSiopeEntrateTipoDebitoSiopeC(stTipoDebitoCommerciale.get()));
                                if (stTipoDebitoNonCommerciale.isPresent())
                                    classificazione.getClassificazioneDatiSiopeEntrate().getContent().add(objectFactory.createCtClassificazioneDatiSiopeEntrateTipoDebitoSiopeNc(stTipoDebitoNonCommerciale.get()));
                                if (ctFatturaSiope.isPresent()) {
                                    CtFatturaSiope ctFatturaSiope1 = ctFatturaSiope.get();
                                    ctFatturaSiope1.getDatiFatturaSiope().setImportoSiope(classificazione.getImporto());
                                    classificazione.getClassificazioneDatiSiopeEntrate().getContent().add(objectFactory.createCtClassificazioneDatiSiopeEntrateFatturaSiope(ctFatturaSiope1));
                                }
                            }
                        }
                        for (Iterator it = infover.getSospeso().iterator(); it.hasNext(); ) {
                            it.siopeplus.Reversale.InformazioniVersante.Sospeso presente = (it.siopeplus.Reversale.InformazioniVersante.Sospeso) it.next();
                            Long l = new Long(doc.getCdSospeso().substring(0, doc.getCdSospeso().indexOf(".")).replace(" ", "")).longValue();
                            if (l.compareTo(presente.getNumeroProvvisorio()) == 0) {
                                presente.setImportoProvvisorio(presente.getImportoProvvisorio().add(doc.getImAssociato()));
                                sospesoTrovato = true;
                                break;
                            }
                        }
                        if (!sospesoTrovato) {
                            it.siopeplus.Reversale.InformazioniVersante.Sospeso sosp = objectFactory.createReversaleInformazioniVersanteSospeso();
                            try {
                                sosp.setNumeroProvvisorio(new Long(doc.getCdSospeso().substring(0, doc.getCdSospeso().indexOf(".")).replace(" ", "")).longValue());
                            } catch (NumberFormatException e) {
                                throw new ApplicationException("Formato del codice del sospeso non compatibile.");
                            }
                            sosp.setImportoProvvisorio(doc.getImAssociato().setScale(2, BigDecimal.ROUND_HALF_UP));
                            infover.getSospeso().add(sosp);
                        }
                    }
                }
            }
            reversale.getInformazioniVersante().add(infover);
        }
        return reversale;
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : RemoteIterator(it.cnr.jada.util.RemoteIterator) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) it.siopeplus(it.siopeplus) XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) TemporalUnit(java.time.temporal.TemporalUnit) ChronoUnit(java.time.temporal.ChronoUnit) 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) XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) ApplicationException(it.cnr.jada.comp.ApplicationException) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) it.cnr.contab.doccont00.intcass.bulk(it.cnr.contab.doccont00.intcass.bulk) it.cnr.jada.bulk(it.cnr.jada.bulk) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk)

Example 4 with V_mandato_reversaleBulk

use of it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk 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 5 with V_mandato_reversaleBulk

use of it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDDistintaCassiereBP method scaricaDocumento.

public void scaricaDocumento(ActionContext actioncontext) throws Exception {
    Integer esercizio = Integer.valueOf(((HttpActionContext) actioncontext).getParameter("esercizio"));
    String cds = ((HttpActionContext) actioncontext).getParameter("cds");
    Long numero_documento = Long.valueOf(((HttpActionContext) actioncontext).getParameter("numero_documento"));
    String tipo = ((HttpActionContext) actioncontext).getParameter("tipo");
    InputStream is = documentiContabiliService.getStreamDocumento((StatoTrasmissione) getComponentSession().findByPrimaryKey(actioncontext.getUserContext(), new V_mandato_reversaleBulk(esercizio, tipo, cds, numero_documento)));
    if (is != null) {
        ((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 : BigInteger(java.math.BigInteger) V_mandato_reversaleBulk(it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk) HttpActionContext(it.cnr.jada.action.HttpActionContext)

Aggregations

ComponentException (it.cnr.jada.comp.ComponentException)28 V_mandato_reversaleBulk (it.cnr.contab.doccont00.intcass.bulk.V_mandato_reversaleBulk)24 ApplicationException (it.cnr.jada.comp.ApplicationException)23 RemoteException (java.rmi.RemoteException)19 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)14 DistintaCassiereComponentSession (it.cnr.contab.doccont00.ejb.DistintaCassiereComponentSession)13 PersistencyException (it.cnr.jada.persistency.PersistencyException)13 Rif_modalita_pagamentoBulk (it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk)12 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)12 Configurazione_cnrComponentSession (it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession)11 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)11 DistintaCassiereComponent (it.cnr.contab.doccont00.comp.DistintaCassiereComponent)10 StatoTrasmissione (it.cnr.contab.doccont00.intcass.bulk.StatoTrasmissione)10 CNRUserContext (it.cnr.contab.utenze00.bp.CNRUserContext)10 UserContext (it.cnr.jada.UserContext)10 RemoteIterator (it.cnr.jada.util.RemoteIterator)10 SQLException (java.sql.SQLException)10 java.util (java.util)10 Collectors (java.util.stream.Collectors)10 DocumentiContabiliService (it.cnr.contab.doccont00.service.DocumentiContabiliService)9