Search in sources :

Example 1 with ValidationException

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

the class CRUDEsenzioni_addizionaliAction method doSalva.

public Forward doSalva(ActionContext actioncontext) throws RemoteException {
    CRUDEsenzioni_addizionaliBP bp = (CRUDEsenzioni_addizionaliBP) getBusinessProcess(actioncontext);
    try {
        if (bp.getDettagliCRUDController().countDetails() != 0) {
            for (Iterator i = bp.getDettagliCRUDController().getDetails().iterator(); i.hasNext(); ) {
                Esenzioni_addizionaliBulk nuova = (Esenzioni_addizionaliBulk) i.next();
                if (nuova.getNota() != null)
                    throw new it.cnr.jada.comp.ApplicationException("Esistono note valorizzate, verificare prima di procedere al salvataggio.");
            }
            bp.Aggiornamento(actioncontext.getUserContext(), (Esenzioni_addizionaliBulk) bp.getModel());
            bp.getDettagliCRUDController().removeAll(actioncontext);
        } else
            throw new it.cnr.jada.comp.ApplicationException("Non ci sono dati da salvare.");
    } catch (ComponentException e) {
        handleException(actioncontext, e);
    } catch (BusinessProcessException e) {
        handleException(actioncontext, e);
    } catch (ValidationException e) {
        handleException(actioncontext, e);
    }
    return actioncontext.findDefaultForward();
}
Also used : Esenzioni_addizionaliBulk(it.cnr.contab.compensi00.tabrif.bulk.Esenzioni_addizionaliBulk) CRUDEsenzioni_addizionaliBP(it.cnr.contab.compensi00.bp.CRUDEsenzioni_addizionaliBP) ValidationException(it.cnr.jada.bulk.ValidationException) Iterator(java.util.Iterator) ComponentException(it.cnr.jada.comp.ComponentException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException)

Example 2 with ValidationException

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

the class Parametri_livelli_epBulk method validate.

/*
	 * Ritorna ValidationException se:
	 * - Il numero dei livelli economica/patrimoniale inseriti è maggiore di 8
	 * - Non risultano valorizzati campi di un livello da gestire
	 * - Risultano valorizzati campi di un livello da non gestire
	 */
public void validate() throws ValidationException {
    super.validate();
    /*Controllo Livelli Patrimoniale*/
    if (this.getLivelli_pat() != null && this.getLivelli_pat().intValue() > 8)
        throw new ValidationException("Attenzione! Il livello massimo consentito è 8.");
    if (this.getLivelli_eco() != null && this.getLivelli_eco().intValue() > 8)
        throw new ValidationException("Attenzione! Il livello massimo consentito è 8.");
    validaLivelliValorizzati();
    validaLivelliNonValorizzati();
}
Also used : ValidationException(it.cnr.jada.bulk.ValidationException)

Example 3 with ValidationException

use of it.cnr.jada.bulk.ValidationException 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 4 with ValidationException

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

the class CRUDFatturaAttivaBP method riportaAvanti.

public void riportaAvanti(ActionContext context) throws ValidationException, BusinessProcessException {
    try {
        FatturaAttivaSingolaComponentSession session = (FatturaAttivaSingolaComponentSession) createComponentSession();
        Fattura_attivaBulk faCarried = (Fattura_attivaBulk) session.riportaAvanti(context.getUserContext(), (IDocumentoAmministrativoBulk) getModel(), getUserConfirm());
        setModel(context, faCarried);
    } catch (Exception e) {
        throw handleException(e);
    } finally {
        setUserConfirm(null);
    }
}
Also used : FatturaAttivaSingolaComponentSession(it.cnr.contab.docamm00.ejb.FatturaAttivaSingolaComponentSession) ServletException(javax.servlet.ServletException) ValidationException(it.cnr.jada.bulk.ValidationException) DetailedException(it.cnr.jada.DetailedException) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) EJBException(javax.ejb.EJBException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) TransformerException(javax.xml.transform.TransformerException) ApplicationException(it.cnr.jada.comp.ApplicationException) ComponentException(it.cnr.jada.comp.ComponentException)

Example 5 with ValidationException

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

the class CRUDFatturaPassivaBP method sdoppiaDettaglioInAutomatico.

public void sdoppiaDettaglioInAutomatico(ActionContext context) throws ValidationException, BusinessProcessException {
    try {
        it.cnr.contab.doccont00.ejb.ObbligazioneAbstractComponentSession h = it.cnr.contab.doccont00.bp.CRUDVirtualObbligazioneBP.getVirtualComponentSession(context, true);
        FatturaPassivaComponentSession session = (FatturaPassivaComponentSession) createComponentSession();
        Fattura_passivaBulk documento = (Fattura_passivaBulk) getModel();
        Fattura_passiva_rigaIBulk dettaglioSelezionato = (Fattura_passiva_rigaIBulk) getDettaglio().getModel();
        Obbligazione_scadenzarioBulk scadenzaNuova = null;
        if (dettaglioSelezionato == null)
            return;
        if (documento.getStato_cofi() != null && documento.getStato_cofi().equals(documento.STATO_PAGATO))
            setMessage("Non è possibile sdoppiare righe in un documento pagato.");
        if (dettaglioSelezionato.getIm_riga_sdoppia() == null || dettaglioSelezionato.getIm_riga_sdoppia().equals(Utility.ZERO) || dettaglioSelezionato.getIm_riga_sdoppia().compareTo(dettaglioSelezionato.getSaldo()) != -1) {
            setMessage("Il nuovo importo della riga da sdoppiare deve essere positivo ed inferiore " + "al saldo originario.");
            return;
        }
        Obbligazione_scadenzarioBulk scadenzaVecchia = dettaglioSelezionato.getObbligazione_scadenziario();
        BigDecimal newImportoRigaVecchia = dettaglioSelezionato.getIm_riga_sdoppia().add(dettaglioSelezionato.getIm_diponibile_nc().subtract(dettaglioSelezionato.getSaldo()));
        BigDecimal newImportoRigaNuova = dettaglioSelezionato.getSaldo().subtract(dettaglioSelezionato.getIm_riga_sdoppia());
        BigDecimal newPrezzoRigaVecchia = newImportoRigaVecchia.divide(documento.getCambio(), 2, BigDecimal.ROUND_HALF_UP).divide(dettaglioSelezionato.getQuantita().multiply(dettaglioSelezionato.getVoce_iva().getPercentuale().divide(new BigDecimal(100)).add(new java.math.BigDecimal(1))), 2, BigDecimal.ROUND_HALF_UP);
        BigDecimal newPrezzoRigaNuova = dettaglioSelezionato.getPrezzo_unitario().subtract(newPrezzoRigaVecchia);
        BigDecimal oldImportoIvaVecchia = BigDecimal.ZERO;
        BigDecimal tot_imp = BigDecimal.ZERO;
        if (dettaglioSelezionato.getVoce_iva().getFl_autofattura() || documento.quadraturaInDeroga()) {
            oldImportoIvaVecchia = dettaglioSelezionato.getIm_iva();
            tot_imp = newPrezzoRigaVecchia.multiply(documento.getCambio()).multiply(dettaglioSelezionato.getQuantita()).setScale(2, BigDecimal.ROUND_HALF_UP);
        } else
            tot_imp = dettaglioSelezionato.getIm_riga_sdoppia();
        if (dettaglioSelezionato.getObbligazione_scadenziario() != null) {
            scadenzaNuova = (Obbligazione_scadenzarioBulk) h.sdoppiaScadenzaInAutomatico(context.getUserContext(), scadenzaVecchia, scadenzaVecchia.getIm_scadenza().subtract(dettaglioSelezionato.getSaldo().subtract(oldImportoIvaVecchia)).add(tot_imp));
            // ricarico obbligazione e recupero i riferimenti alle scadenze
            ObbligazioneBulk obbligazione = (ObbligazioneBulk) h.inizializzaBulkPerModifica(context.getUserContext(), scadenzaNuova.getObbligazione());
            if (!obbligazione.getObbligazione_scadenzarioColl().containsByPrimaryKey(scadenzaVecchia) || !obbligazione.getObbligazione_scadenzarioColl().containsByPrimaryKey(scadenzaNuova))
                throw new ValidationException("Errore nello sdoppiamento della scadenza dell'impegno.");
            scadenzaVecchia = (Obbligazione_scadenzarioBulk) obbligazione.getObbligazione_scadenzarioColl().get(obbligazione.getObbligazione_scadenzarioColl().indexOfByPrimaryKey(scadenzaVecchia));
            scadenzaNuova = (Obbligazione_scadenzarioBulk) obbligazione.getObbligazione_scadenzarioColl().get(obbligazione.getObbligazione_scadenzarioColl().indexOfByPrimaryKey(scadenzaNuova));
        }
        // creo la nuova riga di dettaglio e la associo al documento
        Fattura_passiva_rigaIBulk nuovoDettaglio = new Fattura_passiva_rigaIBulk();
        getDettaglio().addDetail(nuovoDettaglio);
        nuovoDettaglio = copyByRigaDocumento(context, nuovoDettaglio, dettaglioSelezionato);
        nuovoDettaglio.setQuantita(dettaglioSelezionato.getQuantita());
        nuovoDettaglio.setPrezzo_unitario(newPrezzoRigaNuova);
        nuovoDettaglio.calcolaCampiDiRiga();
        // setto im_diponibile prime per la verifica e dopo
        nuovoDettaglio.setIm_diponibile_nc(nuovoDettaglio.getSaldo());
        if (nuovoDettaglio.getIm_diponibile_nc().compareTo(newImportoRigaNuova) != 0) {
            nuovoDettaglio.setIm_iva(nuovoDettaglio.getIm_iva().add(newImportoRigaNuova.subtract(nuovoDettaglio.getIm_diponibile_nc())));
            nuovoDettaglio.setIm_totale_divisa(newImportoRigaNuova.subtract(nuovoDettaglio.getIm_iva()));
            nuovoDettaglio.setFl_iva_forzata(Boolean.TRUE);
            nuovoDettaglio.calcolaCampiDiRiga();
        }
        nuovoDettaglio.setIm_diponibile_nc(nuovoDettaglio.getSaldo());
        // Aggiorno la vecchia riga di dettaglio ed in particolare l'importo
        // della riga da sdoppiare
        // del doc amministrativo
        BigDecimal oldImpTotaleDivisa = dettaglioSelezionato.getIm_totale_divisa();
        dettaglioSelezionato.setPrezzo_unitario(newPrezzoRigaVecchia);
        dettaglioSelezionato.calcolaCampiDiRiga();
        // setto im_diponibile prime per la verifica e dopo
        dettaglioSelezionato.setIm_diponibile_nc(dettaglioSelezionato.getSaldo());
        if (dettaglioSelezionato.getIm_diponibile_nc().compareTo(newImportoRigaVecchia) != 0) {
            dettaglioSelezionato.setIm_iva(dettaglioSelezionato.getIm_iva().add(newImportoRigaVecchia.subtract(dettaglioSelezionato.getIm_diponibile_nc())));
            dettaglioSelezionato.setIm_totale_divisa(newImportoRigaVecchia.subtract(dettaglioSelezionato.getIm_iva()));
            dettaglioSelezionato.setFl_iva_forzata(Boolean.TRUE);
            dettaglioSelezionato.calcolaCampiDiRiga();
        }
        dettaglioSelezionato.setIm_diponibile_nc(dettaglioSelezionato.getSaldo());
        dettaglioSelezionato.setToBeUpdated();
        if (scadenzaVecchia != null) {
            for (Iterator i = documento.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
                Fattura_passiva_rigaIBulk riga = (Fattura_passiva_rigaIBulk) i.next();
                if (riga.getObbligazione_scadenziario() != null && riga.getObbligazione_scadenziario().equalsByPrimaryKey(scadenzaVecchia)) {
                    riga.setObbligazione_scadenziario(scadenzaVecchia);
                    documento.addToDefferredSaldi(scadenzaVecchia.getObbligazione(), scadenzaVecchia.getObbligazione().getSaldiInfo());
                }
            }
        }
        if (scadenzaNuova != null) {
            BulkList selectedModels = new BulkList();
            selectedModels.add(nuovoDettaglio);
            documento = session.contabilizzaDettagliSelezionati(context.getUserContext(), documento, selectedModels, scadenzaNuova);
            documento.addToFattura_passiva_obbligazioniHash(scadenzaNuova, nuovoDettaglio);
            documento.addToDefferredSaldi(scadenzaNuova.getObbligazione(), scadenzaNuova.getObbligazione().getSaldiInfo());
            // Sdoppia associazione inventario in automatico
            if (nuovoDettaglio.isInventariato()) {
                // r.p. Prendo il progressivo dalla fattura_passivaBulk
                // perchè viene aggiornato
                BuonoCaricoScaricoComponentSession r = (it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession.class);
                Ass_inv_bene_fatturaBulk newAss = r.sdoppiaAssociazioneFor(context.getUserContext(), (Fattura_passiva_rigaBulk) dettaglioSelezionato, (Fattura_passiva_rigaBulk) nuovoDettaglio);
                documento.addToAssociazioniInventarioHash(newAss, nuovoDettaglio);
            }
        }
        documento = (Fattura_passivaBulk) session.rebuildDocumento(context.getUserContext(), documento);
        getObbligazioniController().getSelection().clear();
        getObbligazioniController().setModelIndex(context, -1);
        getObbligazioniController().setModelIndex(context, it.cnr.jada.bulk.BulkCollections.indexOfByPrimaryKey(getObbligazioniController().getDetails(), dettaglioSelezionato));
        documento.setDetailDoubled(true);
        setModel(context, documento);
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : ValidationException(it.cnr.jada.bulk.ValidationException) BulkList(it.cnr.jada.bulk.BulkList) Ass_inv_bene_fatturaBulk(it.cnr.contab.inventario00.docs.bulk.Ass_inv_bene_fatturaBulk) BuonoCaricoScaricoComponentSession(it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession) BigDecimal(java.math.BigDecimal) ServletException(javax.servlet.ServletException) ValidationException(it.cnr.jada.bulk.ValidationException) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) TransformerException(javax.xml.transform.TransformerException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) IOException(java.io.IOException) ComponentException(it.cnr.jada.comp.ComponentException) BigDecimal(java.math.BigDecimal) ObbligazioneBulk(it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk) Iterator(java.util.Iterator) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk)

Aggregations

ValidationException (it.cnr.jada.bulk.ValidationException)173 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)41 ComponentException (it.cnr.jada.comp.ComponentException)37 RemoteException (java.rmi.RemoteException)33 ApplicationException (it.cnr.jada.comp.ApplicationException)30 BigDecimal (java.math.BigDecimal)29 Iterator (java.util.Iterator)21 BulkList (it.cnr.jada.bulk.BulkList)20 Timestamp (java.sql.Timestamp)20 CNRUserContext (it.cnr.contab.utenze00.bp.CNRUserContext)19 UserContext (it.cnr.jada.UserContext)14 RemoteIterator (it.cnr.jada.util.RemoteIterator)14 CRUDIncarichiProceduraBP (it.cnr.contab.incarichi00.bp.CRUDIncarichiProceduraBP)12 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)12 EJBException (javax.ejb.EJBException)12 OggettoBulk (it.cnr.jada.bulk.OggettoBulk)10 PersistencyException (it.cnr.jada.persistency.PersistencyException)9 ServletException (javax.servlet.ServletException)9 Incarichi_repertorioBulk (it.cnr.contab.incarichi00.bulk.Incarichi_repertorioBulk)8 Incarichi_proceduraBulk (it.cnr.contab.incarichi00.bulk.Incarichi_proceduraBulk)7