use of it.cnr.contab.anagraf00.core.bulk.TerzoBulk in project sigla-main by consiglionazionaledellericerche.
the class ScritturaPartitaDoppiaComponent method addMovimentoCoge.
private Movimento_cogeBulk addMovimentoCoge(UserContext userContext, Scrittura_partita_doppiaBulk scritturaPartitaDoppia, IDocumentoCogeBulk doccoge, TestataPrimaNota testata, String aTipoDett, String aSezione, String aCdConto, BigDecimal aImporto, IDocumentoCogeBulk aPartita) throws ComponentException {
try {
if (aImporto.compareTo(BigDecimal.ZERO) == 0)
return null;
Movimento_cogeBulk movimentoCoge = new Movimento_cogeBulk();
ContoHome contoHome = (ContoHome) getHome(userContext, ContoBulk.class);
ContoBulk contoBulk = (ContoBulk) contoHome.findByPrimaryKey(new ContoBulk(aCdConto, CNRUserContext.getEsercizio(userContext)));
movimentoCoge.setToBeCreated();
movimentoCoge.setUser(userContext.getUser());
movimentoCoge.setConto(contoBulk);
movimentoCoge.setIm_movimento(aImporto);
movimentoCoge.setTerzo(Optional.ofNullable(testata.getCdTerzo()).map(cdTerzo -> {
try {
return findByPrimaryKey(userContext, new TerzoBulk(cdTerzo));
} catch (ComponentException e) {
return handleException(e);
}
}).filter(TerzoBulk.class::isInstance).map(TerzoBulk.class::cast).orElse(null));
movimentoCoge.setDt_da_competenza_coge(testata.getDtDa());
movimentoCoge.setDt_a_competenza_coge(testata.getDtA());
movimentoCoge.setStato(Movimento_cogeBulk.STATO_DEFINITIVO);
movimentoCoge.setFl_modificabile(Boolean.FALSE);
if (doccoge instanceof Fattura_passivaBulk) {
Fattura_passivaBulk fatpas = (Fattura_passivaBulk) doccoge;
movimentoCoge.setCd_cds(fatpas.getCd_cds_origine());
movimentoCoge.setEsercizio(fatpas.getEsercizio());
movimentoCoge.setCd_unita_organizzativa(fatpas.getCd_uo_origine());
movimentoCoge.setTi_istituz_commerc(fatpas.getTi_istituz_commerc());
} else if (doccoge instanceof Fattura_attivaBulk) {
Fattura_attivaBulk fatatt = (Fattura_attivaBulk) doccoge;
movimentoCoge.setCd_cds(fatatt.getCd_cds_origine());
movimentoCoge.setEsercizio(fatatt.getEsercizio());
movimentoCoge.setCd_unita_organizzativa(fatatt.getCd_uo_origine());
movimentoCoge.setTi_istituz_commerc(TipoIVA.ISTITUZIONALE.value());
} else if (doccoge instanceof Documento_genericoBulk) {
Documento_genericoBulk documento_genericoBulk = (Documento_genericoBulk) doccoge;
movimentoCoge.setCd_cds(documento_genericoBulk.getCd_cds_origine());
movimentoCoge.setEsercizio(documento_genericoBulk.getEsercizio());
movimentoCoge.setCd_unita_organizzativa(documento_genericoBulk.getCd_uo_origine());
movimentoCoge.setTi_istituz_commerc(documento_genericoBulk.getTi_istituz_commerc());
} else if (doccoge instanceof CompensoBulk) {
CompensoBulk compensoBulk = (CompensoBulk) doccoge;
movimentoCoge.setCd_cds(compensoBulk.getCd_cds_origine());
movimentoCoge.setEsercizio(compensoBulk.getEsercizio());
movimentoCoge.setCd_unita_organizzativa(compensoBulk.getCd_uo_origine());
movimentoCoge.setTi_istituz_commerc(compensoBulk.getTi_istituz_commerc());
} else if (doccoge instanceof MandatoBulk) {
MandatoBulk mandatoBulk = (MandatoBulk) doccoge;
movimentoCoge.setCd_cds(mandatoBulk.getCd_cds_origine());
movimentoCoge.setEsercizio(mandatoBulk.getEsercizio());
movimentoCoge.setCd_unita_organizzativa(mandatoBulk.getCd_uo_origine());
movimentoCoge.setTi_istituz_commerc(TipoIVA.ISTITUZIONALE.value());
}
if (aPartita != null) {
movimentoCoge.setCd_tipo_documento(aPartita.getCd_tipo_doc());
movimentoCoge.setCd_cds_documento(aPartita.getCd_cds());
movimentoCoge.setCd_uo_documento(aPartita.getCd_uo());
movimentoCoge.setEsercizio_documento(aPartita.getEsercizio());
movimentoCoge.setPg_numero_documento(aPartita.getPg_doc());
}
movimentoCoge.setTi_riga(aTipoDett);
if (aSezione.equals(Movimento_cogeBulk.SEZIONE_DARE))
scritturaPartitaDoppia.addToMovimentiDareColl(movimentoCoge);
else
scritturaPartitaDoppia.addToMovimentiAvereColl(movimentoCoge);
logger.info("TipoRiga: " + aTipoDett + " - Conto: " + aCdConto + " - Sezione: " + aSezione + " - Importo: " + aImporto + (aPartita != null ? " - Partita: " + aPartita.getCd_tipo_doc() + "/" + aPartita.getCd_cds() + "/" + aPartita.getCd_uo() + "/" + aPartita.getEsercizio() + "/" + aPartita.getPg_doc() : ""));
return movimentoCoge;
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.contab.anagraf00.core.bulk.TerzoBulk in project sigla-main by consiglionazionaledellericerche.
the class ScritturaPartitaDoppiaComponent method getTerzoNullo.
/* restitusce un'istanza fittizia di TerzoBulk con codice = 0 a rappresentare
la non presenza di un terzo */
private TerzoBulk getTerzoNullo() {
TerzoBulk terzo = new TerzoBulk();
terzo.setCd_terzo(TerzoBulk.TERZO_NULLO);
terzo.setDenominazione_sede("Terzo non definito");
terzo.setCrudStatus(TerzoBulk.NORMAL);
return terzo;
}
use of it.cnr.contab.anagraf00.core.bulk.TerzoBulk in project sigla-main by consiglionazionaledellericerche.
the class ScritturaPartitaDoppiaComponent method findContoAnag.
private Voce_epBulk findContoAnag(UserContext userContext, TerzoBulk terzo, String tipoConto) throws ComponentException, PersistencyException {
Voce_epBulk voceEpBulk = null;
TerzoHome terzohome = (TerzoHome) getHome(userContext, TerzoBulk.class);
TerzoBulk terzoDB = (TerzoBulk) terzohome.findByPrimaryKey(terzo);
if (Optional.ofNullable(terzo).isPresent()) {
Anagrafico_esercizioHome anagesehome = (Anagrafico_esercizioHome) getHome(userContext, Anagrafico_esercizioBulk.class);
Anagrafico_esercizioBulk anagEse = (Anagrafico_esercizioBulk) anagesehome.findByPrimaryKey(new Anagrafico_esercizioBulk(terzoDB.getCd_anag(), CNRUserContext.getEsercizio(userContext)));
if (tipoConto.equals(Movimento_cogeBulk.TipoRiga.DEBITO.value())) {
if (Optional.ofNullable(anagEse).flatMap(el -> Optional.ofNullable(el.getCd_voce_debito_ep())).isPresent()) {
Voce_epHome voceEpHome = (Voce_epHome) getHome(userContext, Voce_epBulk.class);
voceEpBulk = (Voce_epBulk) voceEpHome.findByPrimaryKey(new Voce_epBulk(anagEse.getCd_voce_debito_ep(), anagEse.getEsercizio_voce_debito_ep()));
}
} else {
if (Optional.ofNullable(anagEse).flatMap(el -> Optional.ofNullable(el.getCd_voce_credito_ep())).isPresent()) {
Voce_epHome voceEpHome = (Voce_epHome) getHome(userContext, Voce_epBulk.class);
voceEpBulk = (Voce_epBulk) voceEpHome.findByPrimaryKey(new Voce_epBulk(anagEse.getCd_voce_credito_ep(), anagEse.getEsercizio_voce_credito_ep()));
}
}
}
return Optional.ofNullable(voceEpBulk).orElseThrow(() -> new ApplicationRuntimeException("Conto " + (tipoConto.equals(Movimento_cogeBulk.TipoRiga.DEBITO.value()) ? "debito" : "credito") + " associato al codice terzo " + terzo.getCd_terzo() + " non individuato."));
}
use of it.cnr.contab.anagraf00.core.bulk.TerzoBulk 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.contab.anagraf00.core.bulk.TerzoBulk in project sigla-main by consiglionazionaledellericerche.
the class ReversaleComponent method docGenerico_creaDocumentoGenericoRiga.
/**
* creazione riga di documento di entrata x incasso IVA da fatture estere
* PreCondition:
* E' stata generata la richiesta di creazione di una riga di documento amministrativo di entrata
* a partire da una reversale di incasso IVA x fattura estera
* PostCondition:
* Un riga di documento amministrativo viene creata.
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta
* @param documento <code>Documento_genericoBulk</code> il documento generico
* @param scadenza <code>Accertamento_scadenzarioBulk</code> la scadenza dell'accertamento
* @param importo L'importo della reversale di regolarizzazione
* @param mRiga Mandato_rigaBulk da cui dedurre le modalita di pagamento
* @return riga <code>Documento_generico_rigaBulk</code> la riga del documento generico creata
*/
public Documento_generico_rigaBulk docGenerico_creaDocumentoGenericoRiga(UserContext userContext, Documento_genericoBulk documento, Accertamento_scadenzarioBulk scadenza, BigDecimal importo, Mandato_rigaBulk mRiga) throws ComponentException {
try {
Documento_generico_rigaBulk riga = docGenerico_creaDocumentoGenericoRiga(userContext, documento, scadenza, importo);
// terzo uo
SQLBuilder sql = getHome(userContext, TerzoBulk.class).createSQLBuilder();
sql.addClause("AND", "cd_unita_organizzativa", SQLBuilder.EQUALS, documento.getCd_unita_organizzativa());
sql.addClause("AND", "dt_canc", SQLBuilder.ISNULL, null);
List result = getHome(userContext, TerzoBulk.class).fetchAll(sql);
if (result == null || result.size() == 0)
throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non e' stata codificata in anagrafica"));
TerzoBulk terzo_uo = (TerzoBulk) result.get(0);
riga.setCd_terzo_uo_cds(terzo_uo.getCd_terzo());
riga.setTerzo_uo_cds(terzo_uo);
// modalità pagamento
sql = getHome(userContext, Modalita_pagamentoBulk.class).createSQLBuilder();
sql.addClause("AND", "cd_terzo", SQLBuilder.EQUALS, terzo_uo.getCd_terzo());
sql.addClause("AND", "cd_terzo_delegato", SQLBuilder.ISNULL, null);
sql.addTableToHeader("RIF_MODALITA_PAGAMENTO");
sql.addSQLJoin("RIF_MODALITA_PAGAMENTO.CD_MODALITA_PAG", "MODALITA_PAGAMENTO.CD_MODALITA_PAG");
sql.addSQLClause("AND", "TI_PAGAMENTO", SQLBuilder.EQUALS, Rif_modalita_pagamentoBulk.BANCARIO);
result = getHome(userContext, Modalita_pagamentoBulk.class).fetchAll(sql);
if (result == null || result.size() == 0)
throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non ha modalità di pagamento associate"));
Modalita_pagamentoBulk mp = (Modalita_pagamentoBulk) result.get(0);
riga.setCd_modalita_pag_uo_cds(mp.getCd_modalita_pag());
riga.setModalita_pagamento_uo_cds(new Rif_modalita_pagamentoBulk(mp.getCd_modalita_pag()));
sql = getHome(userContext, BancaBulk.class).createSQLBuilder();
sql.addClause("AND", "cd_terzo", SQLBuilder.EQUALS, terzo_uo.getCd_terzo());
sql.addClause("AND", "ti_pagamento", SQLBuilder.EQUALS, Rif_modalita_pagamentoBulk.BANCARIO);
sql.addClause("AND", "fl_cancellato", SQLBuilder.EQUALS, Boolean.FALSE);
sql.addSQLClause("AND", "CODICE_IBAN", SQLBuilder.ISNOTNULL, null);
sql.addSQLClause("AND", "cd_terzo_delegato", SQLBuilder.ISNULL, null);
try {
if (!Utility.createParametriCnrComponentSession().getParametriCnr(userContext, CNRUserContext.getEsercizio(userContext)).getFl_tesoreria_unica().booleanValue())
sql.addSQLClause("AND", "BANCA.FL_CC_CDS", SQLBuilder.EQUALS, "Y");
else {
Configurazione_cnrBulk config = new Configurazione_cnrBulk("CONTO_CORRENTE_SPECIALE", "ENTE", "*", new Integer(0));
it.cnr.contab.config00.bulk.Configurazione_cnrHome home = (it.cnr.contab.config00.bulk.Configurazione_cnrHome) getHome(userContext, config);
List configurazioni = home.find(config);
if ((configurazioni != null) && (configurazioni.size() == 1)) {
Configurazione_cnrBulk configBanca = (Configurazione_cnrBulk) configurazioni.get(0);
sql.addSQLClause("AND", "BANCA.ABI", SQLBuilder.EQUALS, configBanca.getVal01());
sql.addSQLClause("AND", "BANCA.CAB", SQLBuilder.EQUALS, configBanca.getVal02());
sql.addSQLClause("AND", "BANCA.NUMERO_CONTO", SQLBuilder.CONTAINS, configBanca.getVal03());
}
}
} catch (Exception e) {
throw handleException(e);
}
result = getHome(userContext, BancaBulk.class).fetchAll(sql);
if (result == null || result.size() == 0)
throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non ha coordinate bancarie associate"));
BancaBulk banca = (BancaBulk) result.get(0);
riga.setPg_banca_uo_cds(banca.getPg_banca());
riga.setBanca_uo_cds(banca);
return riga;
} catch (Exception e) {
throw handleException(e);
}
}
Aggregations