Search in sources :

Example 1 with BusyResourceException

use of it.cnr.jada.bulk.BusyResourceException in project sigla-main by consiglionazionaledellericerche.

the class CRUDFatturaPassivaElettronicaBP method rifiutaFatturaConPEC.

public void rifiutaFatturaConPEC(ActionContext context, DocumentoEleTestataBulk bulk, RifiutaFatturaBulk rifiutaFatturaBulk) throws BusinessProcessException {
    try {
        if (isDirty()) {
            save(context);
            bulk = (DocumentoEleTestataBulk) createComponentSession().inizializzaBulkPerModifica(context.getUserContext(), bulk);
        }
        TerzoBulk prestatore = Optional.ofNullable(bulk.getDocumentoEleTrasmissione().getPrestatore()).orElseThrow(() -> new ApplicationException("Valorizzare il terzo cedente/prestatore"));
        TerzoBulk terzoPerUnitaOrganizzativa = ((it.cnr.contab.anagraf00.ejb.TerzoComponentSession) createComponentSession("CNRANAGRAF00_EJB_TerzoComponentSession")).cercaTerzoPerUnitaOrganizzativa(context.getUserContext(), bulk.getDocumentoEleTrasmissione().getUnitaOrganizzativa());
        Numerazione_baseComponentSession numerazione = (Numerazione_baseComponentSession) EJBCommonServices.createEJB("CNRCONFIG00_TABNUM_EJB_Numerazione_baseComponentSession");
        boolean isNota = bulk.getTipoDocumento().equalsIgnoreCase(TipoDocumentoType.TD_04.value());
        Format dateFormat = new SimpleDateFormat("yyyy/MM/dd");
        Print_spoolerBulk print = new Print_spoolerBulk();
        print.setPgStampa(UUID.randomUUID().getLeastSignificantBits());
        print.setFlEmail(false);
        print.setReport("/docamm/docamm/rifiuto_fattura_elettronica.jasper");
        print.setNomeFile("Comunicazione di non registrabilità del ".concat(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd-MM-yyyy"))).concat(".pdf"));
        print.setUtcr(context.getUserContext().getUser());
        print.addParam("title", Optional.ofNullable(rifiutaFatturaBulk.getMessageText()).filter(s -> !isNota).map(s -> "Richiesta storno Documento Elettronico").orElseGet(() -> "Rifiuto Documento Elettronico"), String.class);
        print.addParam("message", rifiutaFatturaBulk.getMessage(), String.class);
        print.addParam("note", rifiutaFatturaBulk.getNote(), String.class);
        print.addParam("is_nota", isNota, Boolean.class);
        print.addParam("codice_uo", bulk.getDocumentoEleTrasmissione().getUnitaOrganizzativa().getCd_unita_organizzativa(), String.class);
        print.addParam("descrizione_uo", bulk.getDocumentoEleTrasmissione().getUnitaOrganizzativa().getDs_unita_organizzativa(), String.class);
        print.addParam("codice_cuu", terzoPerUnitaOrganizzativa.getCodiceUnivocoUfficioIpa(), String.class);
        print.addParam("denominazione_sede", prestatore.getDenominazione_sede(), String.class);
        print.addParam("pec", rifiutaFatturaBulk.getEmailPEC(), String.class);
        print.addParam("tipo_documento", DocumentoEleTestataBulk.tiTipoDocumentoKeys.get(bulk.getTipoDocumento()), String.class);
        print.addParam("identificativo_sdi", bulk.getIdentificativoSdi(), Long.class);
        print.addParam("numero_documento", bulk.getNumeroDocumento(), String.class);
        print.addParam("data_documento", bulk.getDataDocumento(), Date.class, dateFormat);
        print.addParam("data_ricezione", bulk.getDocumentoEleTrasmissione().getDataRicezione(), Date.class, dateFormat);
        Report report = SpringUtil.getBean("printService", PrintService.class).executeReport(context.getUserContext(), print);
        LocalDateTime now = LocalDateTime.now();
        int esercizio = now.getYear();
        Long numProtocollo = numerazione.creaNuovoProgressivo(context.getUserContext(), esercizio, "RIFIUTO_FATTURA_PEC", "NUM_PROTOCOLLO", CNRUserContext.getUser(context.getUserContext()));
        AllegatoNonRegistrabilitaBulk allegatoNonRegistrabilitaBulk = new AllegatoNonRegistrabilitaBulk();
        allegatoNonRegistrabilitaBulk.setNome(report.getName());
        allegatoNonRegistrabilitaBulk.setUtenteSIGLA(CNRUserContext.getUser(context.getUserContext()));
        allegatoNonRegistrabilitaBulk.setAnnoProtocollo(esercizio);
        allegatoNonRegistrabilitaBulk.setNumeroProtocollo(Utility.lpad(numProtocollo, 6, '0'));
        allegatoNonRegistrabilitaBulk.setDataProtocollo(Date.from(now.toInstant(ZoneOffset.UTC)));
        allegatoNonRegistrabilitaBulk.setTitolo("Allegato inviato al seguente indirizzo email: " + rifiutaFatturaBulk.getEmailPEC());
        final StorageObject storageObject = SpringUtil.getBean("storeService", StoreService.class).restoreSimpleDocument(allegatoNonRegistrabilitaBulk, report.getInputStream(), report.getContentType(), report.getName(), Optional.ofNullable(getStorePath(bulk, false)).orElseThrow(() -> new ApplicationException("Path sul documentale non trovato, contattare il supporto Help Desk!")), false);
        FatturaPassivaElettronicaService fatturaPassivaElettronicaService = SpringUtil.getBean("fatturaPassivaElettronicaService", FatturaPassivaElettronicaService.class);
        fatturaPassivaElettronicaService.inviaPECFornitore(context.getUserContext(), new ByteArrayDataSource(storeService.getResource(storageObject.getKey()), MimeTypes.PDF.mimetype()), report.getName(), rifiutaFatturaBulk.getEmailPEC(), Optional.ofNullable(rifiutaFatturaBulk.getMessageText()).filter(s -> !isNota).map(s -> "Richiesta Storno documento elettronico ricevuto IdentificativoSdI: ").orElseGet(() -> "Rifiuto documento elettronico ricevuto IdentificativoSdI: ").concat(bulk.getIdentificativoSdi().toString()), Optional.ofNullable(rifiutaFatturaBulk.getMessageText()).filter(s -> !isNota).map(s -> "Richiesta Storno documento elettronico ricevuto. ").orElseGet(() -> "Rifiuto documento elettronico ricevuto. ").concat("Informazioni del rifiuto e riferimenti del documento in allegato." + "\n\nNota: questa è un'e-mail generata automaticamente e non avremo la possibilità di " + "leggere eventuali e-mail di risposta. Non rispondere a questo messaggio."));
        bulk.setFlIrregistrabile("S");
        if (isNota) {
            bulk.setStatoDocumento(StatoDocumentoEleEnum.RIFIUTATA_CON_PEC.name());
        } else {
            bulk.setStatoDocumento(StatoDocumentoEleEnum.DA_STORNARE.name());
        }
        bulk.setToBeUpdated();
        OggettoBulk oggettoBulk = getComponentSession().modificaConBulk(context.getUserContext(), bulk);
        if (!Optional.ofNullable(getEMailPEC(context)).isPresent()) {
            TelefonoBulk telefonoBulk = new TelefonoBulk();
            telefonoBulk.setTerzo(prestatore);
            telefonoBulk.setRiferimento(rifiutaFatturaBulk.getEmailPEC());
            telefonoBulk.setTi_riferimento(TelefonoBulk.PEC);
            telefonoBulk.setFattElettronica(Boolean.TRUE);
            telefonoBulk.setToBeCreated();
            getComponentSession().creaConBulk(context.getUserContext(), telefonoBulk);
        }
        setMessage("Comunicazione inviata correttamente.");
        edit(context, oggettoBulk);
    } catch (ComponentException | IOException | EmailException | BusyResourceException | ValidationException e) {
        throw handleException(e);
    }
}
Also used : Transformer(javax.xml.transform.Transformer) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) Format(java.text.Format) CRUDFatturaPassivaAction(it.cnr.contab.docamm00.actions.CRUDFatturaPassivaAction) ServletException(javax.servlet.ServletException) StreamResult(javax.xml.transform.stream.StreamResult) ActionContext(it.cnr.jada.action.ActionContext) Button(it.cnr.jada.util.jsp.Button) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession) BigDecimal(java.math.BigDecimal) ByteArrayInputStream(java.io.ByteArrayInputStream) SimpleDetailCRUDController(it.cnr.jada.util.action.SimpleDetailCRUDController) it.cnr.contab.docamm00.fatturapa.bulk(it.cnr.contab.docamm00.fatturapa.bulk) BigInteger(java.math.BigInteger) ZoneOffset(java.time.ZoneOffset) PrintService(it.cnr.contab.reports.service.PrintService) ValidationException(it.cnr.jada.bulk.ValidationException) StorageObject(it.cnr.si.spring.storage.StorageObject) Timestamp(java.sql.Timestamp) TemporalField(java.time.temporal.TemporalField) FatturaPassivaElettronicaService(it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) EJBException(javax.ejb.EJBException) IOUtils(org.apache.commons.io.IOUtils) Stream(java.util.stream.Stream) TipoDocumentoType(it.gov.agenziaentrate.ivaservizi.docs.xsd.fatture.v1.TipoDocumentoType) Fattura_passivaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passivaBulk) EmailException(org.apache.commons.mail.EmailException) StoragePropertyNames(it.cnr.si.spring.storage.config.StoragePropertyNames) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) SpringUtil(it.cnr.contab.service.SpringUtil) ContattoBulk(it.cnr.contab.anagraf00.core.bulk.ContattoBulk) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) UserContext(it.cnr.jada.UserContext) HttpActionContext(it.cnr.jada.action.HttpActionContext) ChronoField(java.time.temporal.ChronoField) EsercizioComponentSession(it.cnr.contab.config00.ejb.EsercizioComponentSession) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) java.util(java.util) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) Fattura_passiva_rigaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk) TransformerException(javax.xml.transform.TransformerException) Tipo_sezionaleBulk(it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk) StreamSource(javax.xml.transform.stream.StreamSource) RegimeFiscaleType(it.gov.agenziaentrate.ivaservizi.docs.xsd.fatture.v1.RegimeFiscaleType) LocalDateTime(java.time.LocalDateTime) JspWriter(javax.servlet.jsp.JspWriter) Utility(it.cnr.contab.util.Utility) SimpleDateFormat(java.text.SimpleDateFormat) Source(javax.xml.transform.Source) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) Tipo_documento_ammBulk(it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk) AllegatiCRUDBP(it.cnr.contab.util00.bp.AllegatiCRUDBP) CRUDComponentSession(it.cnr.jada.ejb.CRUDComponentSession) Numerazione_baseComponentSession(it.cnr.contab.config00.tabnum.ejb.Numerazione_baseComponentSession) RemoteIterator(it.cnr.jada.util.RemoteIterator) StoreService(it.cnr.si.spring.storage.StoreService) DateUtils(it.cnr.jada.util.DateUtils) OutputStream(java.io.OutputStream) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) ApplicationException(it.cnr.jada.comp.ApplicationException) FormBP(it.cnr.jada.util.action.FormBP) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk) BusyResourceException(it.cnr.jada.bulk.BusyResourceException) TelefonoBulk(it.cnr.contab.anagraf00.core.bulk.TelefonoBulk) StorageDocAmmAspect(it.cnr.contab.docamm00.storage.StorageDocAmmAspect) Print_spoolerBulk(it.cnr.contab.reports.bulk.Print_spoolerBulk) HttpServletResponse(javax.servlet.http.HttpServletResponse) IOException(java.io.IOException) AllegatoGenericoBulk(it.cnr.contab.util00.bulk.storage.AllegatoGenericoBulk) Report(it.cnr.contab.reports.bulk.Report) MimeTypes(it.cnr.si.spring.storage.MimeTypes) FatturaElettronicaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaElettronicaPassivaComponentSession) DateTimeFormatter(java.time.format.DateTimeFormatter) TransformerFactory(javax.xml.transform.TransformerFactory) ComponentException(it.cnr.jada.comp.ComponentException) CompoundFindClause(it.cnr.jada.persistency.sql.CompoundFindClause) InputStream(java.io.InputStream) LocalDateTime(java.time.LocalDateTime) ValidationException(it.cnr.jada.bulk.ValidationException) FatturaPassivaElettronicaService(it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) PrintService(it.cnr.contab.reports.service.PrintService) Numerazione_baseComponentSession(it.cnr.contab.config00.tabnum.ejb.Numerazione_baseComponentSession) Print_spoolerBulk(it.cnr.contab.reports.bulk.Print_spoolerBulk) Format(java.text.Format) SimpleDateFormat(java.text.SimpleDateFormat) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) EmailException(org.apache.commons.mail.EmailException) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) StorageObject(it.cnr.si.spring.storage.StorageObject) Report(it.cnr.contab.reports.bulk.Report) StoreService(it.cnr.si.spring.storage.StoreService) IOException(java.io.IOException) ApplicationException(it.cnr.jada.comp.ApplicationException) BusyResourceException(it.cnr.jada.bulk.BusyResourceException) ComponentException(it.cnr.jada.comp.ComponentException) TelefonoBulk(it.cnr.contab.anagraf00.core.bulk.TelefonoBulk) SimpleDateFormat(java.text.SimpleDateFormat)

Example 2 with BusyResourceException

use of it.cnr.jada.bulk.BusyResourceException in project sigla-main by consiglionazionaledellericerche.

the class FatturaElettronicaPassivaComponent method getEmailPecSdi.

public Configurazione_cnrBulk getEmailPecSdi(UserContext userContext, boolean lock) throws it.cnr.jada.comp.ComponentException {
    try {
        Configurazione_cnrBulk configurazione_cnrBulk = new Configurazione_cnrBulk(Configurazione_cnrBulk.PK_EMAIL_PEC, Configurazione_cnrBulk.SK_SDI, "*", new Integer(0));
        Configurazione_cnrHome configurazione_cnrHome = (Configurazione_cnrHome) getHome(userContext, Configurazione_cnrBulk.class);
        configurazione_cnrBulk = (Configurazione_cnrBulk) configurazione_cnrHome.findAndLock(configurazione_cnrBulk);
        if (lock) {
            if ("Y".equalsIgnoreCase(configurazione_cnrBulk.getVal04()))
                return null;
            configurazione_cnrBulk.setVal04("Y");
            configurazione_cnrBulk.setToBeUpdated();
            configurazione_cnrHome.update(configurazione_cnrBulk, userContext);
        }
        return configurazione_cnrBulk;
    } catch (BusyResourceException _ex) {
        return null;
    } catch (Throwable e) {
        throw handleException(e);
    }
}
Also used : BusyResourceException(it.cnr.jada.bulk.BusyResourceException) Configurazione_cnrHome(it.cnr.contab.config00.bulk.Configurazione_cnrHome) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk)

Example 3 with BusyResourceException

use of it.cnr.jada.bulk.BusyResourceException in project sigla-main by consiglionazionaledellericerche.

the class Id_inventarioHome method assegnaProgressivo.

public void assegnaProgressivo(Id_inventarioBulk id_inventario) throws PersistencyException, OutdatedResourceException, BusyResourceException {
    Long x = new Long(0);
    try {
        x = (Long) (findAndLockMax(id_inventario, "pg_inventario", x)) + 1;
    } catch (it.cnr.jada.bulk.BusyResourceException e) {
        throw new PersistencyException(e);
    }
    id_inventario.setPg_inventario(x);
}
Also used : BusyResourceException(it.cnr.jada.bulk.BusyResourceException) PersistencyException(it.cnr.jada.persistency.PersistencyException)

Example 4 with BusyResourceException

use of it.cnr.jada.bulk.BusyResourceException in project sigla-main by consiglionazionaledellericerche.

the class Aggiornamento_inventarioComponent method AggiornaBeni.

public Aggiornamento_inventarioBulk AggiornaBeni(UserContext userContext, Aggiornamento_inventarioBulk aggiorno) throws ComponentException {
    validaUtilizzatori(userContext, aggiorno);
    valida(userContext, aggiorno);
    try {
        for (java.util.Iterator i = aggiorno.getDettagli().iterator(); i.hasNext(); ) {
            it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk bene = (it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk) i.next();
            if ((aggiorno.getassegnatario() != null && aggiorno.getassegnatario().getCd_terzo() != null) || (aggiorno.getUbicazione_destinazione() != null && aggiorno.getUbicazione_destinazione().getCd_ubicazione() != null)) {
                lockBulk(userContext, bene);
                if (aggiorno.getassegnatario() != null)
                    bene.setAssegnatario(aggiorno.getassegnatario());
                if (aggiorno.getUbicazione_destinazione() != null)
                    bene.setUbicazione(aggiorno.getUbicazione_destinazione());
                bene.setToBeUpdated();
                super.modificaConBulk(userContext, bene);
            }
            if (aggiorno.getV_utilizzatoriColl().size() != 0)
                aggiorna_utilizzatori(userContext, aggiorno, bene);
        }
        return aggiorno;
    } catch (PersistencyException e) {
        throw new ComponentException(e);
    } catch (OutdatedResourceException e) {
        throw new ApplicationException("Risorsa non pi\371 valida. Ripetere la selezione dei beni.");
    } catch (BusyResourceException e) {
        throw new ComponentException(e);
    }
}
Also used : Iterator(java.util.Iterator) Inventario_beniBulk(it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk) Inventario_beniBulk(it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk) ApplicationException(it.cnr.jada.comp.ApplicationException) OutdatedResourceException(it.cnr.jada.bulk.OutdatedResourceException) BusyResourceException(it.cnr.jada.bulk.BusyResourceException) ComponentException(it.cnr.jada.comp.ComponentException) PersistencyException(it.cnr.jada.persistency.PersistencyException)

Example 5 with BusyResourceException

use of it.cnr.jada.bulk.BusyResourceException in project sigla-main by consiglionazionaledellericerche.

the class BuonoCaricoScaricoComponent method modificaBeniAssociati.

/**
 *  Inserisce i beni temporanei.
 *    PreCondition:
 *      E' stata generata la richiesta di riportare i beni selezionati dall'utente nella tabella
 *		temporanea INVENTARIO_BENI_APG. L'utente, in questa fase, si trova a selezionare dei
 *		beni già presenti sul DB, per una operazione di associazione con Fattura Passiva.
 *    PostCondition:
 *      Vengono riportati sulla tabella INVENTARIO_BENI_APG i dati relativi ai beni selezionati dall'utente.
 *
 * @param userContext lo <code>UserContext</code> che ha generato la richiesta
 * @param associaBulk <code>Ass_inv_bene_fatturaBulk</code> l'oggetto che contiene le informazioni
 *		relative all'Inventario di riferimento ed alle righe di Fattura Passive.
 *
 * @param righe_fattura la <code>List</code> lista di righe di fattura a cui associare i beni.
 * @param beni <code>OggettoBulk[]</code> i beni selezionati dall'utente.
 * @param old_ass la <code>BitSet</code> selezione precedente.
 * @param ass la <code>BitSet</code> selezione attuale.
 */
public void modificaBeniAssociati(UserContext userContext, Ass_inv_bene_fatturaBulk associaBulk, java.util.List righe_fattura, OggettoBulk[] buoni, java.util.BitSet old_ass, java.util.BitSet ass) throws ComponentException {
    /*		Questo metodo viene richiamato tutte le volte che c'è un cambio di pagina del selezionatore
	 * 		dei beni, oppure una richiesta di Riporta - Seleziona.
	*/
    Fattura_passiva_rigaIBulk riga_fattura = null;
    Fattura_attiva_rigaIBulk fattura_attiva = null;
    Nota_di_credito_rigaBulk nota = null;
    Nota_di_debito_rigaBulk notadeb = null;
    Documento_generico_rigaBulk documento = null;
    BigDecimal im_riga_fattura = new java.math.BigDecimal(0);
    BigDecimal tot_bene_apg = new BigDecimal(0);
    BigDecimal tot_ass_apg = new BigDecimal(0);
    try {
        for (Iterator selected = righe_fattura.iterator(); selected.hasNext(); ) {
            OggettoBulk oggettoBulk = (OggettoBulk) selected.next();
            if (oggettoBulk instanceof Fattura_passiva_rigaIBulk)
                riga_fattura = (Fattura_passiva_rigaIBulk) oggettoBulk;
            else if (oggettoBulk instanceof Fattura_attiva_rigaIBulk)
                fattura_attiva = (Fattura_attiva_rigaIBulk) oggettoBulk;
            else if (oggettoBulk instanceof Nota_di_debito_rigaBulk)
                notadeb = (Nota_di_debito_rigaBulk) oggettoBulk;
            else if (oggettoBulk instanceof Nota_di_credito_rigaBulk)
                nota = (Nota_di_credito_rigaBulk) oggettoBulk;
            else if (oggettoBulk instanceof Documento_generico_rigaBulk)
                documento = (Documento_generico_rigaBulk) oggettoBulk;
            for (int i = 0; i < buoni.length; i++) {
                if (!associaBulk.isPerAumentoValore() && !associaBulk.isPerAumentoValoreDoc()) {
                    Buono_carico_scarico_dettBulk buono = (Buono_carico_scarico_dettBulk) buoni[i];
                    if (old_ass.get(i) != ass.get(i)) {
                        if (ass.get(i)) {
                            Inventario_beni_apgBulk new_bene_apg = new Inventario_beni_apgBulk();
                            new_bene_apg.setPg_inventario(buono.getPg_inventario());
                            new_bene_apg.setNr_inventario(buono.getNr_inventario());
                            new_bene_apg.setProgressivo(new Long(buono.getProgressivo()));
                            new_bene_apg.setDt_validita_variazione(buono.getBene().getDt_validita_variazione());
                            new_bene_apg.setLocal_transaction_id(associaBulk.getLocal_transactionID());
                            new_bene_apg.setTi_documento(buono.getTi_documento());
                            new_bene_apg.setPg_buono_c_s(buono.getPg_buono_c_s());
                            if (riga_fattura != null) {
                                new_bene_apg.setCd_cds(riga_fattura.getCd_cds());
                                new_bene_apg.setCd_unita_organizzativa(riga_fattura.getCd_unita_organizzativa());
                                new_bene_apg.setEsercizio(riga_fattura.getEsercizio());
                                new_bene_apg.setPg_fattura(riga_fattura.getPg_fattura_passiva());
                                new_bene_apg.setProgressivo_riga(riga_fattura.getProgressivo_riga());
                                if (riga_fattura.getTi_istituz_commerc().equals(TipoIVA.ISTITUZIONALE.value()))
                                    im_riga_fattura = riga_fattura.getIm_imponibile().add(riga_fattura.getIm_iva());
                                else
                                    im_riga_fattura = riga_fattura.getIm_imponibile();
                            } else if (nota != null) {
                                new_bene_apg.setCd_cds(nota.getCd_cds());
                                new_bene_apg.setCd_unita_organizzativa(nota.getCd_unita_organizzativa());
                                new_bene_apg.setEsercizio(nota.getEsercizio());
                                new_bene_apg.setPg_fattura(nota.getPg_fattura_passiva());
                                new_bene_apg.setProgressivo_riga(nota.getProgressivo_riga());
                                if (nota.getTi_istituz_commerc().equals(TipoIVA.ISTITUZIONALE.value()))
                                    im_riga_fattura = nota.getIm_imponibile().add(nota.getIm_iva());
                                else
                                    im_riga_fattura = nota.getIm_imponibile();
                            } else if (fattura_attiva != null) {
                                new_bene_apg.setCd_cds(fattura_attiva.getCd_cds());
                                new_bene_apg.setCd_unita_organizzativa(fattura_attiva.getCd_unita_organizzativa());
                                new_bene_apg.setEsercizio(fattura_attiva.getEsercizio());
                                new_bene_apg.setPg_fattura(fattura_attiva.getPg_fattura_attiva());
                                new_bene_apg.setProgressivo_riga(fattura_attiva.getProgressivo_riga());
                                im_riga_fattura = fattura_attiva.getIm_imponibile();
                            } else if (notadeb != null) {
                                new_bene_apg.setCd_cds(notadeb.getCd_cds());
                                new_bene_apg.setCd_unita_organizzativa(notadeb.getCd_unita_organizzativa());
                                new_bene_apg.setEsercizio(notadeb.getEsercizio());
                                new_bene_apg.setPg_fattura(notadeb.getPg_fattura_passiva());
                                new_bene_apg.setProgressivo_riga(notadeb.getProgressivo_riga());
                                if (notadeb.getTi_istituz_commerc().equals(TipoIVA.ISTITUZIONALE.value()))
                                    im_riga_fattura = notadeb.getIm_imponibile().add(notadeb.getIm_iva());
                                else
                                    im_riga_fattura = notadeb.getIm_imponibile();
                            } else if (documento != null) {
                                new_bene_apg.setCd_cds(documento.getCd_cds());
                                new_bene_apg.setCd_unita_organizzativa(documento.getCd_unita_organizzativa());
                                new_bene_apg.setEsercizio(documento.getEsercizio());
                                new_bene_apg.setPg_fattura(documento.getPg_documento_generico());
                                new_bene_apg.setCd_tipo_documento_amm(documento.getCd_tipo_documento_amm());
                                new_bene_apg.setProgressivo_riga(documento.getProgressivo_riga());
                                // IVA NON IMPUTATA SEPARATAMENTE
                                im_riga_fattura = documento.getIm_riga();
                            }
                            if ((fattura_attiva != null) || (documento != null && documento.getDocumento_generico().getTi_entrate_spese() == Documento_genericoBulk.ENTRATE)) {
                                new_bene_apg.setValore_alienazione(buono.getBene().getValore_alienazione());
                            } else {
                                tot_bene_apg = new BigDecimal(0);
                                tot_ass_apg = new BigDecimal(0);
                                Inventario_beni_apgHome home = (Inventario_beni_apgHome) getHome(userContext, Inventario_beni_apgBulk.class);
                                SQLBuilder sql = home.createSQLBuilder();
                                sql.addSQLClause("AND", "PG_INVENTARIO", sql.EQUALS, associaBulk.getInventario().getPg_inventario());
                                sql.addSQLClause("AND", "NR_INVENTARIO", sql.EQUALS, buono.getNr_inventario());
                                sql.addSQLClause("AND", "PROGRESSIVO", sql.EQUALS, buono.getProgressivo());
                                sql.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, buono.getEsercizio());
                                sql.addSQLClause("AND", "TI_DOCUMENTO", sql.EQUALS, buono.getTi_documento());
                                sql.addSQLClause("AND", "PG_BUONO_C_S", sql.EQUALS, buono.getPg_buono_c_s());
                                sql.addSQLClause("AND", "LOCAL_TRANSACTION_ID", sql.EQUALS, associaBulk.getLocal_transactionID());
                                List apg = home.fetchAll(sql);
                                for (Iterator iterator = apg.iterator(); iterator.hasNext(); ) {
                                    Inventario_beni_apgBulk bene_apg = (Inventario_beni_apgBulk) iterator.next();
                                    tot_bene_apg = tot_bene_apg.add(bene_apg.getValore_alienazione());
                                }
                                SQLBuilder sql_fatt = home.createSQLBuilder();
                                if (documento != null) {
                                    sql_fatt.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, documento.getEsercizio());
                                    sql_fatt.addSQLClause("AND", "CD_CDS", sql.EQUALS, documento.getCd_cds());
                                    sql_fatt.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, documento.getCd_unita_organizzativa());
                                    sql_fatt.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, documento.getPg_documento_generico());
                                    sql_fatt.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, documento.getProgressivo_riga());
                                    sql_fatt.addSQLClause("AND", "CD_TIPO_DOCUMENTO_AMM", sql.EQUALS, documento.getCd_tipo_documento_amm());
                                } else if (riga_fattura != null) {
                                    sql_fatt.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, riga_fattura.getEsercizio());
                                    sql_fatt.addSQLClause("AND", "CD_CDS", sql.EQUALS, riga_fattura.getCd_cds());
                                    sql_fatt.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, riga_fattura.getCd_unita_organizzativa());
                                    sql_fatt.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, riga_fattura.getPg_fattura_passiva());
                                    sql_fatt.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, riga_fattura.getProgressivo_riga());
                                } else if (nota != null) {
                                    sql_fatt.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, nota.getEsercizio());
                                    sql_fatt.addSQLClause("AND", "CD_CDS", sql.EQUALS, nota.getCd_cds());
                                    sql_fatt.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, nota.getCd_unita_organizzativa());
                                    sql_fatt.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, nota.getPg_fattura_passiva());
                                    sql_fatt.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, nota.getProgressivo_riga());
                                } else if (notadeb != null) {
                                    sql_fatt.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, notadeb.getEsercizio());
                                    sql_fatt.addSQLClause("AND", "CD_CDS", sql.EQUALS, notadeb.getCd_cds());
                                    sql_fatt.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, notadeb.getCd_unita_organizzativa());
                                    sql_fatt.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, notadeb.getPg_fattura_passiva());
                                    sql_fatt.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, notadeb.getProgressivo_riga());
                                }
                                sql_fatt.addSQLClause("AND", "LOCAL_TRANSACTION_ID", sql.EQUALS, associaBulk.getLocal_transactionID());
                                apg = home.fetchAll(sql_fatt);
                                for (Iterator iterator = apg.iterator(); iterator.hasNext(); ) {
                                    Inventario_beni_apgBulk bene_apg = (Inventario_beni_apgBulk) iterator.next();
                                    tot_ass_apg = tot_ass_apg.add(bene_apg.getValore_alienazione());
                                }
                                // new_bene_apg.setValore_alienazione(buono.getValore_unitario());
                                if ((buono.getValore_unitario().subtract(tot_bene_apg)).compareTo(im_riga_fattura.subtract(tot_ass_apg)) > 0)
                                    new_bene_apg.setValore_alienazione(im_riga_fattura.subtract(tot_ass_apg));
                                else
                                    new_bene_apg.setValore_alienazione(buono.getValore_unitario().subtract(tot_bene_apg));
                            }
                            new_bene_apg.setImp_fattura(im_riga_fattura);
                            if (new_bene_apg.getValore_alienazione().compareTo(new BigDecimal(0)) > 0) {
                                Inventario_beniBulk inv = (Inventario_beniBulk) getHome(userContext, Inventario_beniBulk.class).findByPrimaryKey(new Inventario_beniBulk(new_bene_apg.getNr_inventario(), new_bene_apg.getPg_inventario(), new Long(new_bene_apg.getProgressivo().longValue())));
                                lockBulk(userContext, inv);
                                new_bene_apg.setToBeCreated();
                                super.creaConBulk(userContext, new_bene_apg);
                            }
                        }
                    } else {
                        Inventario_beni_apgHome home = (Inventario_beni_apgHome) getHome(userContext, Inventario_beni_apgBulk.class);
                        SQLBuilder sql = home.createSQLBuilder();
                        sql.addSQLClause("AND", "PG_INVENTARIO", sql.EQUALS, associaBulk.getInventario().getPg_inventario());
                        sql.addSQLClause("AND", "NR_INVENTARIO", sql.EQUALS, buono.getNr_inventario());
                        sql.addSQLClause("AND", "PROGRESSIVO", sql.EQUALS, buono.getProgressivo());
                        sql.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, buono.getEsercizio());
                        sql.addSQLClause("AND", "TI_DOCUMENTO", sql.EQUALS, buono.getTi_documento());
                        sql.addSQLClause("AND", "PG_BUONO_C_S", sql.EQUALS, buono.getPg_buono_c_s());
                        sql.addSQLClause("AND", "LOCAL_TRANSACTION_ID", sql.EQUALS, associaBulk.getLocal_transactionID());
                        if (riga_fattura != null) {
                            sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, riga_fattura.getCd_cds());
                            sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, riga_fattura.getCd_unita_organizzativa());
                            sql.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, riga_fattura.getPg_fattura_passiva());
                            sql.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, riga_fattura.getProgressivo_riga());
                        } else if (nota != null) {
                            sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, nota.getCd_cds());
                            sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, nota.getCd_unita_organizzativa());
                            sql.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, nota.getPg_fattura_passiva());
                            sql.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, nota.getProgressivo_riga());
                        } else if (fattura_attiva != null) {
                            sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, fattura_attiva.getCd_cds());
                            sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, fattura_attiva.getCd_unita_organizzativa());
                            sql.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, fattura_attiva.getPg_fattura_attiva());
                            sql.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, fattura_attiva.getProgressivo_riga());
                        } else if (notadeb != null) {
                            sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, notadeb.getCd_cds());
                            sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, notadeb.getCd_unita_organizzativa());
                            sql.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, notadeb.getPg_fattura_passiva());
                            sql.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, notadeb.getProgressivo_riga());
                        } else if (documento != null) {
                            sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, documento.getCd_cds());
                            sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, documento.getCd_unita_organizzativa());
                            sql.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, documento.getPg_documento_generico());
                            sql.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, documento.getProgressivo_riga());
                            sql.addSQLClause("AND", "CD_TIPO_DOCUMENTO_AMM", sql.EQUALS, documento.getCd_tipo_documento_amm());
                        }
                        // ??
                        List beni_canc = home.fetchAll(sql);
                        for (Iterator iteratore = beni_canc.iterator(); iteratore.hasNext(); ) {
                            Inventario_beni_apgBulk new_bene_apg = (Inventario_beni_apgBulk) iteratore.next();
                            new_bene_apg.setToBeDeleted();
                            super.eliminaConBulk(userContext, new_bene_apg);
                        }
                    }
                } else {
                    Inventario_beniBulk bene = (Inventario_beniBulk) buoni[i];
                    if (old_ass.get(i) != ass.get(i)) {
                        if (ass.get(i)) {
                            Inventario_beni_apgBulk new_bene_apg = new Inventario_beni_apgBulk();
                            new_bene_apg.setPg_inventario(bene.getPg_inventario());
                            new_bene_apg.setNr_inventario(bene.getNr_inventario());
                            new_bene_apg.setProgressivo(bene.getProgressivo());
                            new_bene_apg.setDt_validita_variazione(associaBulk.getTest_buono().getData_registrazione());
                            new_bene_apg.setEsercizio(associaBulk.getEsercizio());
                            if (riga_fattura != null) {
                                new_bene_apg.setCd_cds(riga_fattura.getCd_cds());
                                new_bene_apg.setCd_unita_organizzativa(riga_fattura.getCd_unita_organizzativa());
                                new_bene_apg.setPg_fattura(riga_fattura.getPg_fattura_passiva());
                                new_bene_apg.setProgressivo_riga(riga_fattura.getProgressivo_riga());
                            } else if (notadeb != null) {
                                new_bene_apg.setCd_cds(notadeb.getCd_cds());
                                new_bene_apg.setCd_unita_organizzativa(notadeb.getCd_unita_organizzativa());
                                new_bene_apg.setPg_fattura(notadeb.getPg_fattura_passiva());
                                new_bene_apg.setProgressivo_riga(notadeb.getProgressivo_riga());
                            } else if (documento != null) {
                                new_bene_apg.setCd_cds(documento.getCd_cds());
                                new_bene_apg.setCd_unita_organizzativa(documento.getCd_unita_organizzativa());
                                new_bene_apg.setEsercizio(documento.getEsercizio());
                                new_bene_apg.setPg_fattura(documento.getPg_documento_generico());
                                new_bene_apg.setCd_tipo_documento_amm(documento.getCd_tipo_documento_amm());
                                new_bene_apg.setProgressivo_riga(documento.getProgressivo_riga());
                            }
                            new_bene_apg.setLocal_transaction_id(associaBulk.getLocal_transactionID());
                            new_bene_apg.setValore_alienazione(bene.getValoreBene());
                            new_bene_apg.setTi_documento(associaBulk.getTi_documento());
                            new_bene_apg.setPg_buono_c_s(associaBulk.getPg_buono_c_s());
                            Inventario_beniBulk inv = (Inventario_beniBulk) getHome(userContext, Inventario_beniBulk.class).findByPrimaryKey(new Inventario_beniBulk(new_bene_apg.getNr_inventario(), new_bene_apg.getPg_inventario(), new Long(new_bene_apg.getProgressivo().longValue())));
                            lockBulk(userContext, inv);
                            new_bene_apg.setToBeCreated();
                            super.creaConBulk(userContext, new_bene_apg);
                        }
                    } else {
                        Inventario_beni_apgHome home = (Inventario_beni_apgHome) getHome(userContext, Inventario_beni_apgBulk.class);
                        SQLBuilder sql = home.createSQLBuilder();
                        sql.addSQLClause("AND", "PG_INVENTARIO", sql.EQUALS, associaBulk.getInventario().getPg_inventario());
                        sql.addSQLClause("AND", "NR_INVENTARIO", sql.EQUALS, bene.getNr_inventario());
                        sql.addSQLClause("AND", "PROGRESSIVO", sql.EQUALS, bene.getProgressivo());
                        sql.addSQLClause("AND", "LOCAL_TRANSACTION_ID", sql.EQUALS, associaBulk.getLocal_transactionID());
                        if (riga_fattura != null) {
                            sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, riga_fattura.getCd_cds());
                            sql.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, riga_fattura.getEsercizio());
                            sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, riga_fattura.getCd_unita_organizzativa());
                            sql.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, riga_fattura.getPg_fattura_passiva());
                            sql.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, riga_fattura.getProgressivo_riga());
                        } else if (nota != null) {
                            sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, nota.getCd_cds());
                            sql.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, nota.getEsercizio());
                            sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, nota.getCd_unita_organizzativa());
                            sql.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, nota.getPg_fattura_passiva());
                            sql.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, nota.getProgressivo_riga());
                        } else if (notadeb != null) {
                            sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, notadeb.getCd_cds());
                            sql.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, notadeb.getEsercizio());
                            sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, notadeb.getCd_unita_organizzativa());
                            sql.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, notadeb.getPg_fattura_passiva());
                            sql.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, notadeb.getProgressivo_riga());
                        } else if (documento != null) {
                            sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, documento.getCd_cds());
                            sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, documento.getCd_unita_organizzativa());
                            sql.addSQLClause("AND", "PG_FATTURA", sql.EQUALS, documento.getPg_documento_generico());
                            sql.addSQLClause("AND", "PROGRESSIVO_RIGA", sql.EQUALS, documento.getProgressivo_riga());
                            sql.addSQLClause("AND", "CD_TIPO_DOCUMENTO_AMM", sql.EQUALS, documento.getCd_tipo_documento_amm());
                        }
                        List beni_canc = home.fetchAll(sql);
                        for (Iterator iteratore = beni_canc.iterator(); iteratore.hasNext(); ) {
                            Inventario_beni_apgBulk new_bene_apg = (Inventario_beni_apgBulk) iteratore.next();
                            new_bene_apg.setToBeDeleted();
                            super.eliminaConBulk(userContext, new_bene_apg);
                        }
                    }
                }
            }
        }
    } catch (PersistencyException e) {
        handleException(e);
    } catch (OutdatedResourceException e) {
        handleException(e);
    } catch (BusyResourceException e) {
        throw new ApplicationException("Risorsa occupata");
    }
}
Also used : SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Fattura_passiva_rigaIBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaIBulk) Inventario_beni_apgBulk(it.cnr.contab.inventario01.bulk.Inventario_beni_apgBulk) Documento_generico_rigaBulk(it.cnr.contab.docamm00.docs.bulk.Documento_generico_rigaBulk) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) BigDecimal(java.math.BigDecimal) Nota_di_credito_rigaBulk(it.cnr.contab.docamm00.docs.bulk.Nota_di_credito_rigaBulk) Inventario_beni_apgHome(it.cnr.contab.inventario01.bulk.Inventario_beni_apgHome) Nota_di_debito_rigaBulk(it.cnr.contab.docamm00.docs.bulk.Nota_di_debito_rigaBulk) ApplicationException(it.cnr.jada.comp.ApplicationException) Fattura_attiva_rigaIBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_attiva_rigaIBulk) OutdatedResourceException(it.cnr.jada.bulk.OutdatedResourceException) BusyResourceException(it.cnr.jada.bulk.BusyResourceException) RemoteIterator(it.cnr.jada.util.RemoteIterator) Buono_carico_scarico_dettBulk(it.cnr.contab.inventario01.bulk.Buono_carico_scarico_dettBulk) PersistencyException(it.cnr.jada.persistency.PersistencyException) SimpleBulkList(it.cnr.jada.bulk.SimpleBulkList) BulkList(it.cnr.jada.bulk.BulkList)

Aggregations

BusyResourceException (it.cnr.jada.bulk.BusyResourceException)19 PersistencyException (it.cnr.jada.persistency.PersistencyException)15 ApplicationException (it.cnr.jada.comp.ApplicationException)12 OutdatedResourceException (it.cnr.jada.bulk.OutdatedResourceException)10 SQLBuilder (it.cnr.jada.persistency.sql.SQLBuilder)8 ComponentException (it.cnr.jada.comp.ComponentException)7 RemoteIterator (it.cnr.jada.util.RemoteIterator)7 BigDecimal (java.math.BigDecimal)7 Inventario_beni_apgBulk (it.cnr.contab.inventario01.bulk.Inventario_beni_apgBulk)6 BulkList (it.cnr.jada.bulk.BulkList)6 SimpleBulkList (it.cnr.jada.bulk.SimpleBulkList)6 RemoteException (java.rmi.RemoteException)6 Inventario_beni_apgHome (it.cnr.contab.inventario01.bulk.Inventario_beni_apgHome)5 EJBException (javax.ejb.EJBException)4 Fattura_attiva_rigaIBulk (it.cnr.contab.docamm00.docs.bulk.Fattura_attiva_rigaIBulk)3 OggettoBulk (it.cnr.jada.bulk.OggettoBulk)3 Configurazione_cnrBulk (it.cnr.contab.config00.bulk.Configurazione_cnrBulk)2 Numerazione_baseComponentSession (it.cnr.contab.config00.tabnum.ejb.Numerazione_baseComponentSession)2 Documento_generico_rigaBulk (it.cnr.contab.docamm00.docs.bulk.Documento_generico_rigaBulk)2 Nota_di_credito_rigaBulk (it.cnr.contab.docamm00.docs.bulk.Nota_di_credito_rigaBulk)2