use of it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk in project sigla-main by consiglionazionaledellericerche.
the class V_doc_passivo_obbligazioneHome method loadTipoDocumentoKeys.
/**
* <!-- @TODO: da completare -->
*
* @param bulk
* @return
* @throws PersistencyException
*/
public java.util.Hashtable loadTipoDocumentoKeys(V_doc_passivo_obbligazioneBulk bulk) throws PersistencyException {
SQLBuilder sql = getHomeCache().getHome(Tipo_documento_ammBulk.class).createSQLBuilder();
sql.addClause("AND", "ti_entrata_spesa", sql.EQUALS, "S");
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;
}
use of it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk in project sigla-main by consiglionazionaledellericerche.
the class MandatoHome method loadTipoDocumentoKeys.
/**
* <!-- @TODO: da completare -->
*
* @param bulk
* @return
* @throws PersistencyException
*/
public java.util.Hashtable loadTipoDocumentoKeys(MandatoBulk bulk) throws PersistencyException {
SQLBuilder sql = getHomeCache().getHome(Tipo_documento_ammBulk.class).createSQLBuilder();
sql.addClause("AND", "ti_entrata_spesa", sql.EQUALS, "S");
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;
}
use of it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk in project sigla-main by consiglionazionaledellericerche.
the class MandatoHome method loadTipoDocumentoPerRicercaKeys.
/**
* <!-- @TODO: da completare -->
*
* @param bulk
* @return
* @throws PersistencyException
*/
public java.util.Hashtable loadTipoDocumentoPerRicercaKeys(MandatoBulk bulk) throws PersistencyException {
SQLBuilder sql = getHomeCache().getHome(Tipo_documento_ammBulk.class).createSQLBuilder();
// sql.addClause( "AND", "ti_entrata_spesa", sql.EQUALS, "S" );
sql.openParenthesis("AND");
sql.addSQLClause("AND", "fl_manrev_utente", sql.EQUALS, "M");
sql.addSQLClause("OR", "fl_manrev_utente", sql.EQUALS, "E");
sql.closeParenthesis();
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;
}
use of it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk in project sigla-main by consiglionazionaledellericerche.
the class Obbligazione_scadenzarioHome method loadTipoDocumentoKeys.
/**
* <!-- @TODO: da completare -->
*
* @param bulk
* @return
* @throws PersistencyException
*/
public java.util.Hashtable loadTipoDocumentoKeys(Obbligazione_scadenzarioBulk bulk) throws PersistencyException {
SQLBuilder sql = getHomeCache().getHome(Tipo_documento_ammBulk.class).createSQLBuilder();
sql.addClause("AND", "ti_entrata_spesa", SQLBuilder.EQUALS, "S");
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;
}
use of it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk in project sigla-main by consiglionazionaledellericerche.
the class CostiDipendenteComponent method innerContabilizzaFlussoStipendialeMensile.
public void innerContabilizzaFlussoStipendialeMensile(UserContext userContext, int aEsercizio, int aMese) throws ComponentException {
try {
boolean isCNR = Utility.createParametriEnteComponentSession().getParametriEnte(userContext).isEnteCNR();
Stipendi_cofiHome stipendi_cofiHome = (Stipendi_cofiHome) getHome(userContext, it.cnr.contab.pdg00.cdip.bulk.Stipendi_cofiBulk.class);
java.util.Collection<Stipendi_cofiBulk> stipendiCofi = stipendi_cofiHome.findStipendiCofiAnno(aEsercizio);
int lastMesePagato = stipendiCofi.stream().filter(el -> el.getMese().compareTo(15) < 0).filter(Stipendi_cofiBulk::isLiquidato).mapToInt(Stipendi_cofiBulk::getMese).max().orElse(0);
if (aMese > 15) {
if (isCNR)
throw new ApplicationException("Il mese deve avere un valore compreso tra 1 e 15");
if (lastMesePagato == 0)
throw new ApplicationException("Non è possibile effettuare pagamenti 'Straordinari' senza aver effettuato almeno un pagamento stipendiale nell'anno" + aEsercizio);
} else if (aMese != 15) {
if (aMese < 1 || aMese > 13)
throw new ApplicationException("Il mese deve essere compreso tra 1 (Gennaio) e 13 (Mese Tredicesima)");
// se il mese è > 1 verifico che la liquidazione del mese precedente sia stata fatta
if (lastMesePagato == aMese)
throw new ApplicationException("Dati stipendiali non trovati o contabilizzazione già effettuata per mese n." + aMese + " es." + aEsercizio);
if (lastMesePagato != aMese - 1)
throw new ApplicationException("Dati stipendiali non trovati o ultimo mese pagato (" + lastMesePagato + ") diverso da quello precedente al corrente (" + aMese + ")");
}
Stipendi_cofiBulk stipendiCofiBulk = stipendiCofi.stream().filter(el -> el.getEsercizio().equals(aEsercizio)).filter(el -> el.getMese().equals(aMese)).findAny().orElseThrow(() -> new ApplicationRuntimeException("StipendiCofi non esistente per mese n. " + aMese + " es. " + aEsercizio + "."));
String cdrPersonale = Optional.ofNullable(((Configurazione_cnrHome) getHome(userContext, Configurazione_cnrBulk.class)).getCdrPersonale(aEsercizio)).orElseThrow(() -> new ComponentException("Non è possibile individuare il codice CDR del Personale nell'anno " + aEsercizio + "."));
CdrBulk cdrPersonaleBulk = (CdrBulk) getHome(userContext, CdrBulk.class).findByPrimaryKey(new CdrBulk(cdrPersonale));
cdrPersonaleBulk.setUnita_padre((Unita_organizzativaBulk) getHome(userContext, Unita_organizzativaBulk.class).findByPrimaryKey(cdrPersonaleBulk.getUnita_padre()));
GregorianCalendar aDateInizioComp = new GregorianCalendar();
GregorianCalendar aDateFineComp = new GregorianCalendar();
if (aMese == 13) {
aDateInizioComp = new GregorianCalendar(aEsercizio, 11, 1);
aDateFineComp = new GregorianCalendar(aEsercizio, 11, 31);
} else if (aMese < 13) {
aDateInizioComp = new GregorianCalendar(aEsercizio, aMese - 1, 1);
aDateFineComp = new GregorianCalendar(aEsercizio, aMese - 1, 1);
aDateFineComp.set(Calendar.DAY_OF_MONTH, aDateFineComp.getActualMaximum(Calendar.DAY_OF_MONTH));
}
GregorianCalendar aDateCont = new GregorianCalendar();
if (LocalDate.now().getYear() == aEsercizio + 1)
aDateCont = new GregorianCalendar(aEsercizio, 11, 31);
else if (LocalDate.now().getYear() < aEsercizio)
aDateCont = new GregorianCalendar(aEsercizio, 0, 1);
else if (LocalDate.now().getYear() > aEsercizio) {
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("dd/MM/yyyy");
throw new ApplicationException("La data di sistema (" + formatter.format(aDateCont) + ") è superiore all''esercizio di scrivania (" + aEsercizio + ") di almeno 2 anni");
}
aDateCont.set(Calendar.HOUR_OF_DAY, aDateCont.getActualMinimum(Calendar.HOUR_OF_DAY));
aDateCont.set(Calendar.MINUTE, aDateCont.getActualMinimum(Calendar.MINUTE));
aDateCont.set(Calendar.SECOND, aDateCont.getActualMinimum(Calendar.SECOND));
aDateCont.set(Calendar.MILLISECOND, aDateCont.getActualMinimum(Calendar.MILLISECOND));
aDateInizioComp.set(Calendar.HOUR_OF_DAY, aDateCont.getActualMinimum(Calendar.HOUR_OF_DAY));
aDateInizioComp.set(Calendar.MINUTE, aDateInizioComp.getActualMinimum(Calendar.MINUTE));
aDateInizioComp.set(Calendar.SECOND, aDateInizioComp.getActualMinimum(Calendar.SECOND));
aDateInizioComp.set(Calendar.MILLISECOND, aDateInizioComp.getActualMinimum(Calendar.MILLISECOND));
aDateFineComp.set(Calendar.HOUR_OF_DAY, aDateCont.getActualMinimum(Calendar.HOUR_OF_DAY));
aDateFineComp.set(Calendar.MINUTE, aDateFineComp.getActualMinimum(Calendar.MINUTE));
aDateFineComp.set(Calendar.SECOND, aDateFineComp.getActualMinimum(Calendar.SECOND));
aDateFineComp.set(Calendar.MILLISECOND, aDateFineComp.getActualMinimum(Calendar.MILLISECOND));
MandatoAutomaticoWizardBulk mandatoWizard = new MandatoAutomaticoWizardBulk();
mandatoWizard.setTi_automatismo(MandatoAutomaticoWizardBulk.AUTOMATISMO_DA_IMPEGNI);
mandatoWizard.setEsercizio(aEsercizio);
mandatoWizard.setCds(cdrPersonaleBulk.getUnita_padre().getUnita_padre());
mandatoWizard.setUnita_organizzativa(cdrPersonaleBulk.getUnita_padre());
mandatoWizard.setCd_cds_origine(cdrPersonaleBulk.getUnita_padre().getUnita_padre().getCd_unita_organizzativa());
mandatoWizard.setCd_uo_origine(cdrPersonaleBulk.getUnita_padre().getCd_unita_organizzativa());
mandatoWizard.setDt_emissione(new java.sql.Timestamp(aDateCont.getTime().getTime()));
mandatoWizard.setUser(CNRUserContext.getUser(userContext));
mandatoWizard.setDs_mandato("Mandato di liquidazione stipendi_cofi mese:" + aMese);
DocumentoGenericoWizardBulk modelloDocumento = new DocumentoGenericoWizardBulk();
modelloDocumento.setEsercizio(aEsercizio);
modelloDocumento.setCd_cds(cdrPersonaleBulk.getUnita_padre().getUnita_padre().getCd_unita_organizzativa());
modelloDocumento.setCd_unita_organizzativa(cdrPersonaleBulk.getUnita_padre().getCd_unita_organizzativa());
modelloDocumento.setCd_cds_origine(cdrPersonaleBulk.getUnita_padre().getUnita_padre().getCd_unita_organizzativa());
modelloDocumento.setCd_uo_origine(cdrPersonaleBulk.getUnita_padre().getCd_unita_organizzativa());
modelloDocumento.setTipo_documento(new Tipo_documento_ammBulk(TipoDocumentoEnum.GEN_STIPENDI_SPESA.getValue()));
modelloDocumento.setData_registrazione(new java.sql.Timestamp(aDateCont.getTime().getTime()));
modelloDocumento.setDt_da_competenza_coge(new java.sql.Timestamp(aDateInizioComp.getTime().getTime()));
modelloDocumento.setDt_a_competenza_coge(new java.sql.Timestamp(aDateFineComp.getTime().getTime()));
modelloDocumento.setDs_documento_generico("Generico di versamento stipendi mese:" + aMese);
modelloDocumento.setTi_istituz_commerc(TipoIVA.ISTITUZIONALE.value());
modelloDocumento.setUser(CNRUserContext.getUser(userContext));
mandatoWizard.setModelloDocumento(modelloDocumento);
/**
***************** CREO IL MANDATO *************
*/
// Per il mandato non setto il terzo in quanto deve essere creato con quelli indicati sugli impegni di spesa
Mandato_terzoBulk mandatoTerzo = new Mandato_terzoIBulk();
mandatoTerzo.setTipoBollo(((Tipo_bolloHome) getHome(userContext, Tipo_bolloBulk.class)).findTipoBolloStipendi(Tipo_bolloBulk.TIPO_SPESA));
mandatoWizard.setMandato_terzo(mandatoTerzo);
MandatoBulk mandatoStipendio = this.createMandatoStipendio(userContext, stipendiCofiBulk, mandatoWizard);
/**
***************** CREO IL COMPENSO *************
*/
// Per il compenso setto come terzo quello diversi per stipendi
MandatoAutomaticoWizardBulk compensoWizard = MandatoAutomaticoWizardBulk.createBy(mandatoWizard);
Integer cdTerzoStipendi = Utility.createConfigurazioneCnrComponentSession().getCdTerzoDiversiStipendi(userContext);
compensoWizard.getMandato_terzo().setTerzo((TerzoBulk) (getHome(userContext, TerzoBulk.class)).findByPrimaryKey(new TerzoBulk(cdTerzoStipendi)));
CompensoBulk compensoBulk = this.createCompensoStipendio(userContext, stipendiCofiBulk, compensoWizard, mandatoStipendio);
/**
***************** CREO LE RITENUTE *************
*/
ReversaleAutomaticaWizardBulk reversaleWizard = ReversaleAutomaticaWizardBulk.createBy(mandatoWizard);
reversaleWizard.setStato_coge(MandatoBulk.STATO_COGE_X);
reversaleWizard.getModelloDocumento().setTipo_documento(new Tipo_documento_ammBulk(TipoDocumentoEnum.GEN_CORI_ACCANTONAMENTO_ENTRATA.getValue()));
reversaleWizard.getModelloDocumento().setTerzoWizardBulk(mandatoStipendio.getMandato_terzo().getTerzo());
reversaleWizard.getModelloDocumento().setDs_documento_generico("CORI - mese:" + stipendiCofiBulk.getMese() + " es:" + stipendiCofiBulk.getEsercizio());
// Imposto le variabili da utilizzare per il caricamento degli oggetti
Documento_generico_rigaBulk docRiga = new Documento_generico_rigaBulk();
docRiga.setTerzo_uo_cds(((TerzoHome) getHome(userContext, TerzoBulk.class)).findTerzoPerUo(cdrPersonaleBulk.getUnita_padre()));
docRiga.setModalita_pagamento_uo_cds(((TerzoHome) getHome(userContext, TerzoBulk.class)).findModalitaPagamentoPerUo(userContext, cdrPersonaleBulk.getUnita_padre()).getRif_modalita_pagamento());
docRiga.setBanca_uo_cds(((TerzoHome) getHome(userContext, TerzoBulk.class)).findBancaPerUo(userContext, cdrPersonaleBulk.getUnita_padre()));
reversaleWizard.getModelloDocumento().addToDocumento_generico_dettColl(docRiga);
Mandato_rigaBulk mandatoRiga = mandatoStipendio.getMandato_rigaColl().stream().findFirst().get();
reversaleWizard.getReversale_terzo().setTerzo(mandatoStipendio.getMandato_terzo().getTerzo());
reversaleWizard.setModalita_pagamento(mandatoRiga.getModalita_pagamento());
reversaleWizard.setBanca(mandatoRiga.getBanca());
this.createRitenuteStipendio(userContext, stipendiCofiBulk, reversaleWizard, mandatoWizard, mandatoStipendio, compensoBulk);
// Aggiorno la riga della liquidazione
stipendiCofiBulk.setEsercizio_mandato(mandatoStipendio.getEsercizio());
stipendiCofiBulk.setCd_cds_mandato(mandatoStipendio.getCd_cds());
stipendiCofiBulk.setPg_mandato(mandatoStipendio.getPg_mandato());
Mandato_rigaBulk riga = mandatoStipendio.getMandato_rigaColl().stream().findFirst().get();
stipendiCofiBulk.setEsercizio_doc_gen(riga.getEsercizio_doc_amm());
stipendiCofiBulk.setCd_tipo_doc_gen(riga.getCd_tipo_documento_amm());
stipendiCofiBulk.setCd_cds_doc_gen(riga.getCd_cds_doc_amm());
stipendiCofiBulk.setCd_uo_doc_gen(riga.getCd_uo_doc_amm());
stipendiCofiBulk.setPg_doc_gen(riga.getPg_doc_amm());
stipendiCofiBulk.setEsercizio_comp(compensoBulk.getEsercizio());
stipendiCofiBulk.setCd_cds_comp(compensoBulk.getCd_cds());
stipendiCofiBulk.setCd_uo_comp(compensoBulk.getCd_unita_organizzativa());
stipendiCofiBulk.setPg_comp(compensoBulk.getPg_compenso());
stipendiCofiBulk.setToBeUpdated();
makeBulkPersistent(userContext, stipendiCofiBulk);
// Effettuo scritture prima nota
Scrittura_partita_doppiaBulk scritturaPartitaDoppiaBulk = Utility.createScritturaPartitaDoppiaComponentSession().proposeScritturaPartitaDoppia(userContext, compensoBulk);
makeBulkPersistent(userContext, scritturaPartitaDoppiaBulk);
} catch (Exception e) {
throw handleException(e);
}
}
Aggregations