use of it.cnr.jada.bulk.OggettoBulk in project sigla-main by consiglionazionaledellericerche.
the class ScritturaPartitaDoppiaFromDocumentoComponent method caricaScrittura.
protected void caricaScrittura(UserContext userContext, IDocumentoCogeBulk documentoCogeBulk) throws ComponentException {
try {
if (Optional.ofNullable(getHome(userContext, Configurazione_cnrBulk.class)).filter(Configurazione_cnrHome.class::isInstance).map(Configurazione_cnrHome.class::cast).orElseThrow(() -> new DetailedRuntimeException("Configurazione Home not found")).isAttivaEconomicaParallela(userContext)) {
Scrittura_partita_doppiaHome partitaDoppiaHome = Optional.ofNullable(getHome(userContext, Scrittura_partita_doppiaBulk.class)).filter(Scrittura_partita_doppiaHome.class::isInstance).map(Scrittura_partita_doppiaHome.class::cast).orElseThrow(() -> new DetailedRuntimeException("Partita doppia Home not found"));
final Optional<Scrittura_partita_doppiaBulk> scritturaOpt = partitaDoppiaHome.findByDocumentoAmministrativo(documentoCogeBulk);
if (scritturaOpt.isPresent()) {
Scrittura_partita_doppiaBulk scrittura = scritturaOpt.get();
scrittura.setMovimentiDareColl(new BulkList(((Scrittura_partita_doppiaHome) getHome(userContext, scrittura.getClass())).findMovimentiDareColl(userContext, scrittura)));
scrittura.setMovimentiAvereColl(new BulkList(((Scrittura_partita_doppiaHome) getHome(userContext, scrittura.getClass())).findMovimentiAvereColl(userContext, scrittura)));
documentoCogeBulk.setScrittura_partita_doppia(scrittura);
}
}
} catch (PersistencyException | ComponentException e) {
throw handleException((OggettoBulk) documentoCogeBulk, e);
}
}
use of it.cnr.jada.bulk.OggettoBulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDFatturaPassivaBP method createEmptyModel.
public OggettoBulk createEmptyModel(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
setAnnoDiCompetenza(true);
OggettoBulk emptyModel = super.createEmptyModel(context);
Optional.ofNullable(emptyModel).filter(Fattura_passivaBulk.class::isInstance).map(Fattura_passivaBulk.class::cast).ifPresent(fattura_passivaBulk -> fattura_passivaBulk.setFlDaOrdini(isAttivoOrdini()));
return emptyModel;
}
use of it.cnr.jada.bulk.OggettoBulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDFatturaPassivaElettronicaBP method completaFatturaPassiva.
public OggettoBulk completaFatturaPassiva(ActionContext context, Fattura_passivaBulk fatturaPassivaBulk, CRUDFatturaPassivaBP nbp, Fattura_passivaBulk fatturaPassivaDiRiferimento) throws BusinessProcessException {
try {
CRUDFatturaPassivaAction action = new CRUDFatturaPassivaAction();
FatturaPassivaComponentSession comp = (FatturaPassivaComponentSession) nbp.createComponentSession();
DocumentoEleTestataBulk documentoEleTestata = (DocumentoEleTestataBulk) getModel();
fatturaPassivaBulk.setDocumentoEleTestata(documentoEleTestata);
fatturaPassivaBulk = comp.caricaAllegatiBulk(context.getUserContext(), fatturaPassivaBulk);
fatturaPassivaBulk.setTi_fattura(documentoEleTestata.getTipoDocumentoSIGLA());
fatturaPassivaBulk.setNr_fattura_fornitore(documentoEleTestata.getNumeroDocumento());
fatturaPassivaBulk.setDt_fattura_fornitore(documentoEleTestata.getDataDocumento());
// TODO
fatturaPassivaBulk.setEsercizio_fattura_fornitore(CNRUserContext.getEsercizio(context.getUserContext()));
fatturaPassivaBulk.setData_protocollo(documentoEleTestata.getDocumentoEleTrasmissione().getDataRicezione());
Calendar date = Calendar.getInstance();
date.setTimeInMillis(documentoEleTestata.getDataDocumento().getTime());
date.add(Calendar.MONTH, 1);
fatturaPassivaBulk.setDs_fattura_passiva(documentoEleTestata.getCausale());
fatturaPassivaBulk.setFl_intra_ue(Boolean.FALSE);
fatturaPassivaBulk.setFl_extra_ue(Boolean.FALSE);
fatturaPassivaBulk.setFl_san_marino_senza_iva(Boolean.FALSE);
fatturaPassivaBulk.setFl_fattura_compenso(existsTributi(documentoEleTestata));
// Il flag viene impostato a true se documento splitPayment con iva != 0
fatturaPassivaBulk.setFl_split_payment(documentoEleTestata.isDocumentoSplitPayment() && documentoEleTestata.getDocEleIVAColl() != null && !documentoEleTestata.getDocEleIVAColl().isEmpty() && documentoEleTestata.getDocEleIVAColl().stream().map(x -> x.getImposta()).reduce((x, y) -> x.add(y)).get().compareTo(BigDecimal.ZERO) != 0);
// if (fatturaPassivaBulk.getFl_split_payment()) {
java.util.Vector sezionali = comp.estraeSezionali(context.getUserContext(), fatturaPassivaBulk);
fatturaPassivaBulk.setSezionali(sezionali);
if (sezionali != null && !sezionali.isEmpty())
fatturaPassivaBulk.setTipo_sezionale((Tipo_sezionaleBulk) sezionali.firstElement());
else
fatturaPassivaBulk.setTipo_sezionale(null);
// }
// TODO eliminata su richiesta di Patrizia fatturaPassivaBulk.setDt_scadenza(new java.sql.Timestamp(date.getTime().getTime()));
GregorianCalendar gcDataMinima = new GregorianCalendar(), gcDataMassima = new GregorianCalendar();
gcDataMinima.setTime(calcolaDataMinimaCompetenza(documentoEleTestata));
gcDataMassima.setTime(calcolaDataMassimaCompetenza(documentoEleTestata));
if (!fatturaPassivaBulk.getFl_fattura_compenso() && gcDataMinima.get(Calendar.YEAR) < gcDataMassima.get(Calendar.YEAR))
gcDataMinima.setTime(DateUtils.firstDateOfTheYear(gcDataMassima.get(Calendar.YEAR)));
fatturaPassivaBulk.setDt_da_competenza_coge(new Timestamp(gcDataMinima.getTime().getTime()));
fatturaPassivaBulk.setDt_a_competenza_coge(new Timestamp(gcDataMassima.getTime().getTime()));
if (fatturaPassivaBulk.getTi_fattura().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_CREDITO)) {
fatturaPassivaBulk.setIm_totale_fattura(documentoEleTestata.getImportoDocumento().abs());
fatturaPassivaBulk.setIm_importo_totale_fattura_fornitore_euro(documentoEleTestata.getImportoDocumento().abs());
} else {
fatturaPassivaBulk.setIm_totale_fattura(documentoEleTestata.getImportoDocumento());
fatturaPassivaBulk.setIm_importo_totale_fattura_fornitore_euro(documentoEleTestata.getImportoDocumento());
}
fatturaPassivaBulk = comp.valorizzaInfoDocEle(context.getUserContext(), fatturaPassivaBulk);
nbp.setModel(context, fatturaPassivaBulk);
action.doCalcolaTotaleFatturaFornitoreInEur(context);
fatturaPassivaBulk.setPartita_iva(documentoEleTestata.getDocumentoEleTrasmissione().getPrestatoreCodice());
action.doBringBackSearchFornitore(context, fatturaPassivaBulk, documentoEleTestata.getDocumentoEleTrasmissione().getPrestatore());
fatturaPassivaBulk = (Fattura_passivaBulk) nbp.getModel();
if (documentoEleTestata.getModalitaPagamento() != null) {
fatturaPassivaBulk.setModalita_pagamento(documentoEleTestata.getModalitaPagamento().getRif_modalita_pagamento());
action.doOnModalitaPagamentoChange(context);
}
fatturaPassivaBulk = (Fattura_passivaBulk) nbp.getModel();
if (fatturaPassivaDiRiferimento == null) {
FatturaPassivaRigaCRUDController dettaglioController = nbp.getDettaglio();
for (DocumentoEleLineaBulk documentoEleLinea : documentoEleTestata.getDocEleLineaColl()) {
Fattura_passiva_rigaBulk rigaFattura = documentoEleTestata.getInstanceRiga();
int i = dettaglioController.addDetail(rigaFattura);
dettaglioController.setDirty(true);
dettaglioController.setModelIndex(context, i);
rigaFattura.setBene_servizio(documentoEleLinea.getBeneServizio());
if (documentoEleLinea.getLineaDescrizione().length() > 199)
rigaFattura.setDs_riga_fattura(documentoEleLinea.getLineaDescrizione().substring(0, 199));
else
rigaFattura.setDs_riga_fattura(documentoEleLinea.getLineaDescrizione());
rigaFattura.setVoce_iva(recuperaCodiceIVA(documentoEleTestata, documentoEleLinea));
rigaFattura.setQuantita(documentoEleLinea.getLineaQuantita());
action.doOnQuantitaChange(context);
rigaFattura.setPrezzo_unitario(documentoEleLinea.getLineaPrezzounitario());
action.doCalcolaTotaliDiRiga(context);
if (documentoEleTestata.getModalitaPagamento() != null)
rigaFattura.setModalita_pagamento(documentoEleTestata.getModalitaPagamento().getRif_modalita_pagamento());
// TODO eliminata su richiesta di Patrizia fatturaPassivaBulk.setDt_scadenza(new java.sql.Timestamp(date.getTime().getTime()));
GregorianCalendar gcDataMinimaRiga = new GregorianCalendar(), gcDataMassimaRiga = new GregorianCalendar();
gcDataMinimaRiga.setTime(documentoEleLinea.getInizioDatacompetenza() == null ? gcDataMinima.getTime() : documentoEleLinea.getInizioDatacompetenza());
gcDataMassimaRiga.setTime(documentoEleLinea.getFineDatacompetenza() == null ? gcDataMassima.getTime() : documentoEleLinea.getFineDatacompetenza());
if (fatturaPassivaBulk.getFl_fattura_compenso()) {
rigaFattura.setDt_da_competenza_coge(new Timestamp(gcDataMinimaRiga.getTime().getTime()));
rigaFattura.setDt_a_competenza_coge(new Timestamp(gcDataMassimaRiga.getTime().getTime()));
} else {
if (gcDataMinimaRiga.get(Calendar.YEAR) < gcDataMinima.get(Calendar.YEAR))
gcDataMinimaRiga = gcDataMinima;
if (gcDataMassimaRiga.get(Calendar.YEAR) < gcDataMinima.get(Calendar.YEAR))
gcDataMassimaRiga = gcDataMinima;
rigaFattura.setDt_da_competenza_coge(new Timestamp(gcDataMinimaRiga.getTime().getTime()));
rigaFattura.setDt_a_competenza_coge(new Timestamp(gcDataMassimaRiga.getTime().getTime()));
}
}
}
nbp.initializeModelForEditAllegati(context, fatturaPassivaBulk);
return fatturaPassivaBulk;
} catch (RemoteException e) {
throw handleException(e);
} catch (ComponentException e) {
throw handleException(e);
}
}
use of it.cnr.jada.bulk.OggettoBulk 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);
}
}
use of it.cnr.jada.bulk.OggettoBulk in project sigla-main by consiglionazionaledellericerche.
the class CRUDNotaDiCreditoAttivaAction method doCerca.
/**
* Gestisce una richiesta di ricerca.
*
* L'implementazione di default utilizza il metodo astratto <code>read</code>
* di <code>CRUDBusinessProcess</code>.
* Se la ricerca fornisce più di un risultato viene creato un
* nuovo <code>SelezionatoreListaBP</code> per la selezione di un elemento.
* Al business process viene anche chiesto l'elenco delle colonne da
* visualizzare.
*/
public Forward doCerca(ActionContext context) throws java.rmi.RemoteException, InstantiationException, javax.ejb.RemoveException {
try {
CRUDNotaDiCreditoAttivaBP bp = (CRUDNotaDiCreditoAttivaBP) getBusinessProcess(context);
if (bp.getParent() != null && bp.getParent() instanceof CRUDFatturaAttivaIBP) {
fillModel(context);
Fattura_attiva_IBulk fa = (Fattura_attiva_IBulk) ((CRUDFatturaAttivaIBP) bp.getParent()).getModel();
FatturaAttivaSingolaComponentSession h = (FatturaAttivaSingolaComponentSession) bp.createComponentSession();
it.cnr.jada.util.RemoteIterator ri = h.findNotaDiCreditoFor(context.getUserContext(), fa);
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context, ri);
if (ri == null || ri.countElements() == 0) {
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri);
bp.setMessage("La ricerca non ha fornito alcun risultato.");
return context.findDefaultForward();
} else if (ri.countElements() == 1) {
OggettoBulk bulk = (OggettoBulk) ri.nextElement();
bp.setMessage(FormBP.INFO_MESSAGE, "La ricerca ha fornito un solo risultato.");
bp.edit(context, bulk);
return context.findDefaultForward();
} else {
bp.setModel(context, bp.getModel());
SelezionatoreListaBP nbp = (SelezionatoreListaBP) context.createBusinessProcess("Selezionatore");
nbp.setIterator(context, ri);
nbp.setBulkInfo(bp.getBulkInfo());
nbp.setColumns(bp.getSearchResultColumns());
context.addHookForward("seleziona", this, "doRiportaSelezione");
return context.addBusinessProcess(nbp);
}
}
return super.doCerca(context);
} catch (Throwable e) {
return handleException(context, e);
}
}
Aggregations