use of it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk in project sigla-main by consiglionazionaledellericerche.
the class CostiDipendenteComponent method createRitenuteStipendio.
private void createRitenuteStipendio(UserContext userContext, Stipendi_cofiBulk stipendiCofiBulk, ReversaleAutomaticaWizardBulk reversaleWizard, MandatoAutomaticoWizardBulk mandatoWizard, MandatoBulk mandatoCompensoBulk, CompensoBulk compensoBulk) throws ComponentException {
try {
// Cerco il terzo utilizzato per il mandato che deve essere usato per creare anche la reversale
// Devo creare il documento generico di entrata per ogni riga del compenso
List<AccertamentoWizard> listAccertamenti = compensoBulk.getContributi().stream().filter(el -> Optional.ofNullable(el.getPg_accertamento()).isPresent()).map(el -> {
try {
Accertamento_scadenzarioBulk as = (Accertamento_scadenzarioBulk) getHome(userContext, Accertamento_scadenzarioBulk.class).findByPrimaryKey(new Accertamento_scadenzarioBulk(el.getCd_cds_accertamento(), el.getEsercizio_accertamento(), el.getEsercizio_ori_accertamento(), el.getPg_accertamento(), el.getPg_accertamento_scadenzario()));
AccertamentoWizard accertamentoWizardBulk = new AccertamentoWizard(as);
accertamentoWizardBulk.setDescrizioneRigaDocumentoWizard("CORI - mese:" + stipendiCofiBulk.getMese() + " es:" + stipendiCofiBulk.getEsercizio() + " CORI:" + el.getCd_contributo_ritenuta());
accertamentoWizardBulk.setDescrizioneRigaReversaleWizard("CORI - mese:" + stipendiCofiBulk.getMese() + " es:" + stipendiCofiBulk.getEsercizio() + " CORI:" + el.getCd_contributo_ritenuta());
return accertamentoWizardBulk;
} catch (Exception e) {
throw new DetailedRuntimeException(e);
}
}).collect(Collectors.toList());
Optional<Documento_genericoBulk> documentoAttivo = Optional.empty();
if (listAccertamenti.size() > 0) {
reversaleWizard.setAccertamentiSelezionatiColl(listAccertamenti);
reversaleWizard.setDs_reversale("CORI - mese:" + stipendiCofiBulk.getMese() + " es:" + stipendiCofiBulk.getEsercizio());
reversaleWizard.setTi_automatismo(ReversaleAutomaticaWizardBulk.AUTOMATISMO_DA_ACCERTAMENTI);
ReversaleAutomaticaComponentSession reversaleAutomaticaComponent = (ReversaleAutomaticaComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRDOCCONT00_EJB_ReversaleAutomaticaComponentSession", ReversaleAutomaticaComponentSession.class);
reversaleWizard = (ReversaleAutomaticaWizardBulk) reversaleAutomaticaComponent.creaReversaleAutomatica(userContext, reversaleWizard);
if (reversaleWizard.getReversaliColl().size() > 1)
throw new ApplicationRuntimeException("Errore in fase di creazione reversale. Risulta essere stata emessa più di una reversale.");
ReversaleBulk reversaleBulk = reversaleWizard.getReversaliColl().stream().findFirst().orElseThrow(() -> new ComponentException("Errore in fase di creazione reversale. Non risulta esserne stata emessa alcuna."));
reversaleBulk = (ReversaleBulk) Utility.createReversaleComponentSession().inizializzaBulkPerModifica(userContext, reversaleBulk);
// Lego la reversale al compenso
Ass_comp_doc_cont_nmpBulk assReversaleCompenso = new Ass_comp_doc_cont_nmpBulk();
assReversaleCompenso.setCompenso(compensoBulk);
assReversaleCompenso.setCd_cds_doc(reversaleBulk.getCd_cds());
assReversaleCompenso.setEsercizio_doc(reversaleBulk.getEsercizio());
assReversaleCompenso.setCd_tipo_doc(V_doc_cont_compBulk.TIPO_DOC_CONT_REVERSALE);
assReversaleCompenso.setPg_doc(reversaleBulk.getPg_reversale());
assReversaleCompenso.setToBeCreated();
makeBulkPersistent(userContext, assReversaleCompenso);
// Lego la reversale al mandato
Ass_mandato_reversaleBulk assMandatoReversale = new Ass_mandato_reversaleBulk();
assMandatoReversale.setMandato(mandatoCompensoBulk);
assMandatoReversale.setReversale(reversaleBulk);
assMandatoReversale.setTi_origine(Ass_mandato_reversaleBulk.TIPO_ORIGINE_SPESA);
assMandatoReversale.setToBeCreated();
makeBulkPersistent(userContext, assMandatoReversale);
// Aggiorno i totali ritenute sul mandato
mandatoCompensoBulk.setIm_ritenute(reversaleBulk.getIm_reversale());
mandatoCompensoBulk.setToBeUpdated();
makeBulkPersistent(userContext, mandatoCompensoBulk);
}
List<ObbligazioneWizard> listObbligazioni = compensoBulk.getContributi().stream().filter(el -> Optional.ofNullable(el.getPg_obbligazione()).isPresent()).map(el -> {
try {
V_obbligazioneBulk vObbligazioneBulk = (V_obbligazioneBulk) getHome(userContext, V_obbligazioneBulk.class).findByPrimaryKey(new V_obbligazioneBulk(el.getCd_cds_obbligazione(), el.getEsercizio_obbligazione(), el.getEsercizio_ori_obbligazione(), el.getPg_obbligazione(), el.getPg_obbligazione_scadenzario()));
ObbligazioneWizard obbligazioneWizardBulk = new ObbligazioneWizard(vObbligazioneBulk);
return obbligazioneWizardBulk;
} catch (Exception e) {
throw new DetailedRuntimeException(e);
}
}).collect(Collectors.toList());
Optional<Documento_genericoBulk> documentoPassivo = Optional.empty();
if (listObbligazioni.size() > 0) {
mandatoWizard.getModelloDocumento().setTipo_documento(new Tipo_documento_ammBulk(TipoDocumentoEnum.GEN_CORI_ACCANTONAMENTO_SPESA.getValue()));
mandatoWizard.setImpegniSelezionatiColl(listObbligazioni);
mandatoWizard.setTi_automatismo(MandatoAutomaticoWizardBulk.AUTOMATISMO_DA_IMPEGNI);
mandatoWizard.setFlGeneraMandatoUnico(Boolean.TRUE);
MandatoAutomaticoComponentSession mandatoAutomaticoComponent = (MandatoAutomaticoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRDOCCONT00_EJB_MandatoAutomaticoComponentSession", MandatoAutomaticoComponentSession.class);
mandatoWizard = (MandatoAutomaticoWizardBulk) mandatoAutomaticoComponent.creaMandatoAutomatico(userContext, mandatoWizard);
if (mandatoWizard.getMandatiColl().size() > 1)
throw new ApplicationRuntimeException("Errore in fase di creazione mandati. Risulta essere stato emesso più di un mandato.");
MandatoBulk mandatoBulk = mandatoWizard.getMandatiColl().stream().findFirst().orElseThrow(() -> new DetailedRuntimeException("Errore in fase di creazione mandati. Non risulta esserne stato emesso alcuno."));
mandatoBulk = (MandatoBulk) Utility.createMandatoComponentSession().inizializzaBulkPerModifica(userContext, mandatoBulk);
// Lego il mandato al compenso
Ass_comp_doc_cont_nmpBulk assReversaleCompenso = new Ass_comp_doc_cont_nmpBulk();
assReversaleCompenso.setCompenso(compensoBulk);
assReversaleCompenso.setCd_cds_doc(mandatoBulk.getCd_cds());
assReversaleCompenso.setEsercizio_doc(mandatoBulk.getEsercizio());
assReversaleCompenso.setCd_tipo_doc(V_doc_cont_compBulk.TIPO_DOC_CONT_MANDATO);
assReversaleCompenso.setPg_doc(mandatoBulk.getPg_mandato());
assReversaleCompenso.setToBeCreated();
makeBulkPersistent(userContext, assReversaleCompenso);
// Lego il mandato al mandato
Ass_mandato_mandatoBulk assMandatoMandato = new Ass_mandato_mandatoBulk();
assMandatoMandato.setMandato(mandatoCompensoBulk);
assMandatoMandato.setMandatoColl(mandatoBulk);
assMandatoMandato.setToBeCreated();
makeBulkPersistent(userContext, assMandatoMandato);
}
} catch (Throwable e) {
throw handleException(e);
}
}
use of it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk in project sigla-main by consiglionazionaledellericerche.
the class MandatoComponent method docGenerico_creaDocumentoGenerico.
/**
* creazione documento amm.generico PreCondition: E' stata generata la
* richiesta di creazione di un documento generico di spesa di tipo TRASF_S
* a partire da un mandato di accreditamento PostCondition: Un documento
* viene creato con un numero di righe pari al numero di impegni selezionati
* dall'utente di tipo uguale al tipo del mandato(competenza o residuo)
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta
* @param mandato <code>MandatoAccreditamentoBulk</code> il mandato di
* accreditamento
* @param impegni La collezione di impegni selezionati dall'utente
* @return documento <code>Documento_genericoBulk</code> il documento
* generico di spesa creato
*/
public Documento_genericoBulk docGenerico_creaDocumentoGenerico(UserContext userContext, MandatoAccreditamentoBulk mandato, Collection impegni) throws ComponentException {
try {
V_impegnoBulk impegno;
Documento_generico_rigaBulk dRiga;
Documento_genericoBulk documento = new Documento_genericoBulk();
documento.setToBeCreated();
documento.setUser(mandato.getUser());
documento.setTi_entrate_spese(Documento_genericoBulk.SPESE);
documento.setEsercizio(mandato.getEsercizio());
documento.setCd_cds(mandato.getCd_cds());
documento.setCd_unita_organizzativa(mandato.getCd_unita_organizzativa());
documento.setCd_cds_origine(mandato.getCd_cds_origine());
documento.setCd_uo_origine(mandato.getCd_uo_origine());
documento.setTipo_documento(new Tipo_documento_ammBulk(Numerazione_doc_ammBulk.TIPO_TRASF_S));
documento.setTi_istituz_commerc(TipoIVA.ISTITUZIONALE.value());
documento.setStato_cofi(Documento_genericoBulk.STATO_CONTABILIZZATO);
documento.setStato_coge(Documento_genericoBulk.NON_REGISTRATO_IN_COGE);
// documento.setFl_modifica_coge(new Boolean( false));
documento.setStato_coan(Documento_genericoBulk.NON_CONTABILIZZATO_IN_COAN);
documento.setStato_pagamento_fondo_eco("N");
documento.setTi_associato_manrev("T");
documento.setData_registrazione(mandato.getDt_emissione());
documento.setDt_a_competenza_coge(mandato.getDt_emissione());
documento.setDt_da_competenza_coge(mandato.getDt_emissione());
documento.setDs_documento_generico("DOCUMENTO ASSOCIATO A MANDATO DI TRASFERIMENTO");
documento.setIm_totale(mandato.getIm_mandato());
DivisaBulk divisa = new DivisaBulk(docGenerico_createConfigurazioneCnrComponentSession().getVal01(userContext, new Integer(0), "*", Configurazione_cnrBulk.PK_CD_DIVISA, Configurazione_cnrBulk.SK_EURO));
documento.setValuta(divisa);
documento.setCambio(new BigDecimal(1));
for (Iterator i = impegni.iterator(); i.hasNext(); ) {
impegno = (V_impegnoBulk) i.next();
if (impegno.isCompetenza() && mandato.getTi_competenza_residuo().equals(MandatoBulk.TIPO_COMPETENZA))
dRiga = docGenerico_creaDocumentoGenericoRiga(userContext, documento, impegno, mandato);
else if (!impegno.isCompetenza() && mandato.getTi_competenza_residuo().equals(MandatoBulk.TIPO_RESIDUO))
dRiga = docGenerico_creaDocumentoGenericoRiga(userContext, documento, impegno, mandato);
}
documento = (Documento_genericoBulk) createDocumentoGenericoComponentSession().creaConBulk(userContext, documento);
return documento;
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk in project sigla-main by consiglionazionaledellericerche.
the class AbstractFirmaDigitaleDocContBP method scaricaZip.
@SuppressWarnings("unchecked")
public void scaricaZip(ActionContext actioncontext) throws Exception {
setSelection(actioncontext);
List<StatoTrasmissione> selectelElements = getSelectedElements(actioncontext);
final HttpServletResponse response = ((HttpActionContext) actioncontext).getResponse();
final DocumentiContabiliService documentiContabiliService = SpringUtil.getBean("documentiContabiliService", DocumentiContabiliService.class);
if (selectelElements == null || selectelElements.isEmpty()) {
response.setStatus(HttpStatus.SC_NO_CONTENT);
return;
}
final ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
final ContabiliService contabiliService = SpringUtil.getBean("contabiliService", ContabiliService.class);
final DocumentiCollegatiDocAmmService documentiCollegatiDocAmmService = SpringUtil.getBean("documentiCollegatiDocAmmService", DocumentiCollegatiDocAmmService.class);
response.setContentType("application/zip");
response.setDateHeader("Expires", 0);
response.setHeader("Content-disposition", "attachment; filename=Documenti contabili.zip");
selectelElements.stream().forEach(statoTrasmissione -> {
addToZip(documentiContabiliService, zos, statoTrasmissione.getStorePath(), statoTrasmissione);
if (statoTrasmissione.getCd_tipo_documento_cont().equals(Numerazione_doc_contBulk.TIPO_MAN)) {
try {
MandatoBulk mandatoBulk = (MandatoBulk) getComponentSession().findByPrimaryKey(actioncontext.getUserContext(), new MandatoIBulk(statoTrasmissione.getCd_cds(), statoTrasmissione.getEsercizio(), statoTrasmissione.getPg_documento_cont()));
Tipo_documento_ammBulk tipo_documento_ammBulk = new Tipo_documento_ammBulk();
tipo_documento_ammBulk.setTi_entrata_spesa("S");
final List<Tipo_documento_ammBulk> tipoDocAmms = Optional.ofNullable(getComponentSession().find(actioncontext.getUserContext(), tipo_documento_ammBulk.getClass(), "find", tipo_documento_ammBulk)).filter(List.class::isInstance).map(List.class::cast).orElse(null);
mandatoBulk.setTipoDocumentoKeys(Optional.ofNullable(tipoDocAmms.stream().collect(Collectors.toMap(Tipo_documento_ammBulk::getCd_tipo_documento_amm, Tipo_documento_ammBulk::getDs_tipo_documento_amm, (u, v) -> {
throw new IllegalStateException(String.format("Cannot have 2 values (%s, %s) for the same key", u, v));
}, Hashtable::new))).orElse(null));
contabiliService.getNodeRefContabile(mandatoBulk).stream().forEach(key -> {
try {
final StorageObject storageObject = contabiliService.getStorageObjectBykey(key);
ZipEntry zipEntryChild = new ZipEntry(statoTrasmissione.getCMISFolderName().concat(StorageDriver.SUFFIX).concat(storageObject.getPropertyValue(StoragePropertyNames.NAME.value())));
zos.putNextEntry(zipEntryChild);
IOUtils.copyLarge(contabiliService.getResource(key), zos);
} catch (IOException e) {
throw new DetailedRuntimeException(e);
}
});
getComponentSession().find(actioncontext.getUserContext(), MandatoIBulk.class, "findMandato_riga", actioncontext.getUserContext(), mandatoBulk).stream().filter(Mandato_rigaBulk.class::isInstance).map(Mandato_rigaBulk.class::cast).map(mandato_rigaBulk -> {
mandato_rigaBulk.setMandato(mandatoBulk);
return Optional.ofNullable(mandato_rigaBulk.getCd_tipo_documento_amm()).filter(cdTipoDocumentoAmm -> cdTipoDocumentoAmm.equals(Numerazione_doc_ammBulk.TIPO_FATTURA_PASSIVA)).map(s -> {
try {
return Utility.createMandatoComponentSession().inizializzaTi_fattura(actioncontext.getUserContext(), mandato_rigaBulk);
} catch (ComponentException | RemoteException e) {
throw new DetailedRuntimeException(e);
}
}).orElseGet(() -> mandato_rigaBulk);
}).filter(Utility.distinctByKey(mandato_rigaBulk -> mandato_rigaBulk.getCd_tipo_documento_amm().concat(mandato_rigaBulk.getCd_cds_doc_amm().concat(String.valueOf(mandato_rigaBulk.getEsercizio_doc_amm()).concat(String.valueOf(mandato_rigaBulk.getPg_doc_amm())))))).collect(Collectors.toList()).forEach(mandato_rigaBulk -> {
documentiCollegatiDocAmmService.getAllegatiDocumentiAmministrativi(mandato_rigaBulk).stream().forEach(allegatoGenericoBulk -> {
try {
ZipEntry zipEntryChild = new ZipEntry(statoTrasmissione.getCMISFolderName().concat(StorageDriver.SUFFIX).concat(mandato_rigaBulk.getDs_tipo_documento_amm()).concat(" ").concat(String.valueOf(mandato_rigaBulk.getEsercizio_doc_amm())).concat("-").concat(String.valueOf(mandato_rigaBulk.getPg_doc_amm())).concat(StorageDriver.SUFFIX).concat(allegatoGenericoBulk.getNome()));
zos.putNextEntry(zipEntryChild);
IOUtils.copyLarge(documentiContabiliService.getResource(allegatoGenericoBulk.getStorageKey()), zos);
} catch (ZipException e) {
log.warn("Cannot add entry to zip file", e);
} catch (IOException e) {
throw new DetailedRuntimeException(e);
}
});
});
} catch (ComponentException | RemoteException e) {
throw new DetailedRuntimeException(e);
}
}
});
zos.close();
response.getOutputStream().flush();
}
use of it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk in project sigla-main by consiglionazionaledellericerche.
the class V_doc_attivo_accertamentoHome method loadTipoDocumentoKeys.
public java.util.Hashtable loadTipoDocumentoKeys(V_doc_attivo_accertamentoBulk bulk) throws PersistencyException {
SQLBuilder sql = getHomeCache().getHome(Tipo_documento_ammBulk.class).createSQLBuilder();
sql.addClause("AND", "ti_entrata_spesa", sql.EQUALS, "E");
List result = getHomeCache().getHome(Tipo_documento_ammBulk.class).fetchAll(sql);
Hashtable ht = new Hashtable();
Tipo_documento_ammBulk tipo;
for (Iterator i = result.iterator(); i.hasNext(); ) {
tipo = (Tipo_documento_ammBulk) i.next();
ht.put(tipo.getCd_tipo_documento_amm(), tipo.getDs_tipo_documento_amm());
}
return ht;
}
Aggregations