Skip to content

Commit

Permalink
Aggiunto cig su compenso
Browse files Browse the repository at this point in the history
  • Loading branch information
gifracr committed Jan 15, 2019
1 parent e827932 commit 96909dc
Show file tree
Hide file tree
Showing 14 changed files with 354 additions and 39 deletions.
39 changes: 39 additions & 0 deletions sigla-backend/src/main/resources/liquibase/db.changelog-5.0.0.xml
Expand Up @@ -1743,4 +1743,43 @@ COMPENSAZIONE
BONIFICO ESTERO EURO"/>
</addColumn>
</changeSet>
<changeSet author="gianfranco.gasparro" id="alter_compenso_add_cig">
<addColumn tableName="compenso">
<column name="cd_cig" type="VARCHAR(10)" remarks="Codice cig"/>
<column name="motivo_assenza_cig" type="VARCHAR(250)" remarks="Motivo assenza CIG Può assumere i valori:
ACCORDO_AMM_AGGIUDICATRICI
ACQUISTO_LOCAZIONE
AFFIDAMENTI_IN_HOUSE
AMMINISTRAZIONE DIRETTA
APPALTI_ENERGIA_ACQUA
ARBITRATO
ATTIVITA_CONCORRENZA
CONCESSIONI_PAESI_TERZI
CONTRATTI_ASSOCIAZIONE
CONTRATTI_AUTORITA_GIUDIZIARIA
CONTRATTI_DIFESA
CONTRATTI_ESTERO
CONTRATTI_LAVORO
DIRITTO_ESCLUSIVO
EROGAZIONI_LIBERALITA
IMPRESA_COLLEGATA
INCARICHI_COLLABORAZIONE
JOINT_VENTURE
PRESTAZIONI
RIASSICURAZIONE
RISARCIMENTI_INDENNIZZI
SERVIZI_BANCHE_CENTRALI_EFSF
SERVIZI_CAMPAGNE_POLITICHE
SPESE_ECONOMALI
SPONSORIZZAZIONE_PURA
TRASFERIMENTO_FONDI
TRASPORTO_AEREO"/>
</addColumn>
</changeSet>
<changeSet author="gianfranco.gasparro" id="add_fk_compenso_cig">
<addForeignKeyConstraint baseColumnNames="cd_cig" baseTableName="compenso" constraintName="fk_compenso34" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="cd_cig" referencedTableName="cig"/>
<createIndex indexName="FX_COMPENSO34" tableName="COMPENSO">
<column name="CD_CIG"/>
</createIndex>
</changeSet>
</databaseChangeLog>
Expand Up @@ -12,6 +12,8 @@
import it.cnr.contab.compensi00.docs.bulk.V_terzo_per_compensoBulk;
import it.cnr.contab.compensi00.ejb.CompensoComponentSession;
import it.cnr.contab.compensi00.tabrif.bulk.Tipologia_rischioBulk;
import it.cnr.contab.config00.bulk.CigBulk;
import it.cnr.contab.docamm00.bp.CRUDFatturaPassivaBP;
import it.cnr.contab.docamm00.bp.IDocumentoAmministrativoSpesaBP;
import it.cnr.contab.docamm00.docs.bulk.Filtro_ricerca_obbligazioniVBulk;
import it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk;
Expand All @@ -35,9 +37,11 @@
import it.cnr.jada.util.action.BulkBP;
import it.cnr.jada.util.action.CRUDBP;
import it.cnr.jada.util.action.FormBP;
import it.cnr.jada.util.action.FormController;
import it.cnr.jada.util.action.OptionBP;

import java.math.BigDecimal;
import java.rmi.RemoteException;
import java.sql.Date;
import java.util.GregorianCalendar;

Expand Down Expand Up @@ -823,6 +827,12 @@ public Forward doModificaAutomaticaObbligazione(ActionContext context) {
scadenza.getObbligazione(),
scadenza.getObbligazione().getSaldiInfo());
compenso.setObbligazioneScadenzario(scadenza);
if (scadenza.getObbligazione() != null && scadenza.getObbligazione().getContratto() != null){
compenso.setCig(scadenza.getObbligazione().getContratto().getCig());
} else {
compenso.setCig(null);
}

compenso.setStatoCompensoToObbligazioneSincronizzata();
compenso.setStato_cofi(compenso.STATO_CONTABILIZZATO);

Expand Down Expand Up @@ -1456,6 +1466,8 @@ public Forward doOnTipoTrattamentoChange(ActionContext context) {
return handleException(context, ex);
}
}


public Forward doOnTipoPrestazioneCompensoChange(ActionContext context) {

try {
Expand Down Expand Up @@ -1941,4 +1953,64 @@ public Forward doOnCausaleChange(ActionContext context) {
}
return context.findDefaultForward();
}
public Forward doBringBackCRUDCrea_cig(ActionContext context, CompensoBulk compenso, CigBulk cig)
{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
try
{
if (cig != null )
{
compenso.setCig(cig);
}
return context.findDefaultForward();
}
catch(it.cnr.jada.action.MessageToUser e)
{
getBusinessProcess(context).setErrorMessage(e.getMessage());
return context.findDefaultForward();
}

catch(Throwable e) {return handleException(context,e);}
}

@Override
public Forward doSalva(ActionContext actioncontext) throws RemoteException {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(actioncontext);
if (bp.isViewing()){
setMessage(actioncontext, FormBP.ERROR_MESSAGE, "Nessuna modifica da salvare.");
}
return super.doSalva(actioncontext);
}
public Forward doBringBackSearchCig(ActionContext context, CompensoBulk compenso, CigBulk cig) throws BusinessProcessException {

if (cig!=null){
CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
compenso.setCig(cig);
bp.setDirty(true);
} else {
compenso.setCig(null);
}
return context.findDefaultForward();
}
public Forward doOnMotivoAssenzaCigChange(ActionContext context) {

try {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
fillModel(context);
}catch (Throwable ex) {
return handleException(context, ex);
}
return context.findDefaultForward();
}
public Forward doBlankSearchCig(ActionContext context, CompensoBulk compenso) {

if (compenso!=null){
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
compenso.setCig(null);
bp.setDirty(true);
}
return context.findDefaultForward();

}

}
@@ -1,5 +1,8 @@
package it.cnr.contab.compensi00.bp;

import java.math.BigDecimal;
import java.rmi.RemoteException;

import it.cnr.contab.anagraf00.tabrif.bulk.Tipo_rapportoBulk;
import it.cnr.contab.chiusura00.ejb.RicercaDocContComponentSession;
import it.cnr.contab.compensi00.docs.bulk.CompensoBulk;
Expand All @@ -12,7 +15,6 @@
import it.cnr.contab.config00.esercizio.bulk.EsercizioBulk;
import it.cnr.contab.docamm00.bp.IDocumentoAmministrativoBP;
import it.cnr.contab.docamm00.bp.IDocumentoAmministrativoSpesaBP;
import it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk;
import it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoBulk;
import it.cnr.contab.docamm00.docs.bulk.TrovatoBulk;
import it.cnr.contab.docamm00.ejb.DocumentoGenericoComponentSession;
Expand All @@ -37,9 +39,6 @@
import it.cnr.jada.util.action.AbstractPrintBP;
import it.cnr.jada.util.action.SimpleDetailCRUDController;

import java.math.BigDecimal;
import java.rmi.RemoteException;

/**
* Insert the type's description here.
* Creation date: (21/02/2002 16.12.44)
Expand Down Expand Up @@ -139,7 +138,7 @@ private void aggiornaStatoBP() {
{
if (Boolean.TRUE.equals(compenso.getFl_compenso_stipendi()))
setStatus(VIEW);
else if (compenso!=null && (compenso.isPagato() || compenso.isAnnullato()))
else if (compenso!=null && (compenso.isAnnullato()))
setStatus(VIEW);
}
}
Expand Down Expand Up @@ -1042,17 +1041,16 @@ public boolean isROFindDatiLiquidazione() throws BusinessProcessException{
public boolean isSaveButtonEnabled()
{
CompensoBulk compenso = (CompensoBulk) getModel();

if(compenso==null)
return super.isSaveButtonEnabled();
return super.isSaveButtonEnabled() &&

return ((super.isSaveButtonEnabled() &&
//!anticipo.isROPerChiusura()
// GB-LF-MB (08/11/2004 11.35.04)
// Modif. relativa alla nuova gestione di isRiportata()
(!compenso.isROPerChiusura()
||
carryingThrough);
carryingThrough)) || (isCigModificabile()));

}
/**
Expand Down Expand Up @@ -1645,5 +1643,23 @@ public void valorizzaInfoDocEle(ActionContext context, CompensoBulk compenso) th
throw handleException(ex);
}
}

public Boolean isCigModificabile() {
CompensoBulk compenso = (CompensoBulk)getModel();
if (compenso == null || !compenso.getTipoTrattamento().isTipoDebitoSiopeCommerciale() || (compenso.getObbligazioneScadenzario() != null &&
compenso.getObbligazioneScadenzario().getObbligazione() != null && compenso.getObbligazioneScadenzario().getObbligazione().getContratto() != null &&
compenso.getObbligazioneScadenzario().getObbligazione().getContratto().getCig() != null)) {
return false;
}
return true;
}
@Override
public boolean isInputReadonly() {
CompensoBulk compenso = (CompensoBulk)getModel();
if (!isViewing())
{
if (compenso!=null && compenso.isPagato() )
return true;
}
return super.isInputReadonly();
}
}
Expand Up @@ -59,10 +59,12 @@
import it.cnr.contab.compensi00.tabrif.bulk.Tipologia_rischioHome;
import it.cnr.contab.compensi00.tabrif.bulk.V_tipo_trattamento_tipo_coriBulk;
import it.cnr.contab.compensi00.tabrif.bulk.V_tipo_trattamento_tipo_coriHome;
import it.cnr.contab.config00.bulk.CigBulk;
import it.cnr.contab.config00.bulk.Configurazione_cnrBulk;
import it.cnr.contab.config00.bulk.Parametri_cnrBulk;
import it.cnr.contab.config00.contratto.bulk.Ass_contratto_uoBulk;
import it.cnr.contab.config00.contratto.bulk.ContrattoBulk;
import it.cnr.contab.config00.contratto.bulk.ContrattoHome;
import it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession;
import it.cnr.contab.config00.ejb.Parametri_cnrComponentSession;
import it.cnr.contab.config00.latt.bulk.WorkpackageBulk;
Expand Down Expand Up @@ -141,10 +143,14 @@
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.Vector;

Expand Down Expand Up @@ -1553,6 +1559,11 @@ public CompensoBulk elaboraScadenze(UserContext userContext,
compenso.addToDocumentiContabiliCancellati(oldScad);
compenso.sincronizzaScadenzeCancellate(newScad);
compenso.setObbligazioneScadenzario(newScad);
if (newScad.getObbligazione() != null && newScad.getObbligazione().getContratto() != null){
compenso.setCig(newScad.getObbligazione().getContratto().getCig());
} else {
compenso.setCig(null);
}
compenso.removeFromDocumentiContabiliCancellati(newScad);
compenso.setStato_cofi(CompensoBulk.STATO_CONTABILIZZATO);

Expand Down Expand Up @@ -3995,11 +4006,23 @@ public OggettoBulk modificaConBulk(UserContext userContext,
compenso);

validaContratto(userContext, compenso);

controlliCig(compenso);

return compenso;

}

public void controlliCig(CompensoBulk compenso) throws ApplicationException {
if (compenso.getTipoTrattamento().isTipoDebitoSiopeCommerciale() &&
(!Optional.ofNullable(compenso.getCig()).isPresent() && !Optional.ofNullable(compenso.getMotivo_assenza_cig()).isPresent())) {
throw new ApplicationException("Inserire il CIG o il motivo di assenza dello stesso!");
}
if (Optional.ofNullable(compenso.getCig()).isPresent() && Optional.ofNullable(compenso.getMotivo_assenza_cig()).isPresent()) {
throw new ApplicationException("Inserire solo uno tra il CIG e il motivo di assenza dello stesso!");
}
}

/**
* Viene modificato il tipo trattamento del compenso
*
Expand Down Expand Up @@ -7243,4 +7266,59 @@ public CompensoBulk valorizzaInfoDocEle(UserContext userContext, CompensoBulk co
}
}

public SQLBuilder selectCigByClause (UserContext userContext, CompensoBulk compenso, CigBulk cig, CompoundFindClause clause) throws ComponentException, PersistencyException
{
if (clause == null)
clause = cig.buildFindClauses(null);
SQLBuilder sql = getHome(userContext, cig).createSQLBuilder();

sql.addSQLClause(FindClause.AND, "FL_VALIDO", SQLBuilder.EQUALS, "Y");
Set<String> uoAbilitate = new HashSet<String>();
uoAbilitate.add(compenso.getCd_unita_organizzativa());
if (compenso.getObbligazioneScadenzario() != null){
ObbligazioneBulk obbligazione = null;
try {
obbligazione = (ObbligazioneBulk)getHome(userContext, ObbligazioneBulk.class).findByPrimaryKey(compenso.getObbligazioneScadenzario().getObbligazione());
} catch (PersistencyException e1) {
throw new ComponentException(e1);
}
if (obbligazione != null && obbligazione.getContratto() != null){
ContrattoBulk contratto = obbligazione.getContratto();
try {
contratto = (ContrattoBulk)getHome(userContext, ContrattoBulk.class).findByPrimaryKey(contratto);
uoAbilitate.add(contratto.getCd_unita_organizzativa());
} catch (PersistencyException e1) {
throw new ComponentException(e1);
}
ContrattoHome contrattoHome = (ContrattoHome) getHome(userContext, contratto.getClass());
try {
Collection assUo = contrattoHome.findAssociazioneUO(obbligazione.getContratto());
if (assUo != null){
for (Iterator i = assUo.iterator(); i.hasNext(); ) {
Ass_contratto_uoBulk ass = (Ass_contratto_uoBulk) i.next();
uoAbilitate.add(ass.getCd_unita_organizzativa());
}
}
} catch (Exception e1) {
throw new ComponentException(e1);
}
}
}
if (uoAbilitate.size() > 1){
sql.openParenthesis(FindClause.AND);
boolean first = true;
for (Iterator i = uoAbilitate.iterator(); i.hasNext(); ) {
String uo = (String) i.next();
sql.addSQLClause(first ? FindClause.AND : FindClause.OR, "CD_UNITA_ORGANIZZATIVA", SQLBuilder.EQUALS, uo);
first = false;
}
sql.closeParenthesis();
} else {
sql.addSQLClause(FindClause.AND, "CD_UNITA_ORGANIZZATIVA", SQLBuilder.EQUALS, uoAbilitate.iterator().next());
}
if (clause != null)
sql.addClause(clause);
sql.addOrderBy("cd_Unita_Organizzativa, cd_Cig");
return sql;
}
}
Expand Up @@ -389,6 +389,8 @@ public class CompensoBase extends CompensoKey implements Keyed {

private java.lang.Boolean fl_split_payment;

private String motivo_assenza_cig;

public CompensoBase() {
super();
}
Expand Down Expand Up @@ -1826,4 +1828,10 @@ public java.lang.Boolean getFl_split_payment() {
public void setFl_split_payment(java.lang.Boolean fl_split_payment) {
this.fl_split_payment = fl_split_payment;
}
public String getMotivo_assenza_cig() {
return motivo_assenza_cig;
}
public void setMotivo_assenza_cig(String motivo_assenza_cig) {
this.motivo_assenza_cig = motivo_assenza_cig;
}
}

0 comments on commit 96909dc

Please sign in to comment.