it.cnr.contab.compensi00.bp.CRUDCompensoBP Maven / Gradle / Ivy
/*
* Copyright (C) 2019 Consiglio Nazionale delle Ricerche
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package it.cnr.contab.compensi00.bp;
import it.cnr.contab.anagraf00.tabrif.bulk.Tipo_rapportoBulk;
import it.cnr.contab.chiusura00.ejb.RicercaDocContComponentSession;
import it.cnr.contab.compensi00.docs.bulk.*;
import it.cnr.contab.compensi00.ejb.CompensoComponentSession;
import it.cnr.contab.compensi00.tabrif.bulk.Tipo_trattamentoBulk;
import it.cnr.contab.config00.bulk.CigBulk;
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.IDocumentoAmministrativoBulk;
import it.cnr.contab.docamm00.docs.bulk.TrovatoBulk;
import it.cnr.contab.docamm00.ejb.DocumentoGenericoComponentSession;
import it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession;
import it.cnr.contab.docamm00.ejb.RiportoDocAmmComponentSession;
import it.cnr.contab.doccont00.bp.IDefferedUpdateSaldiBP;
import it.cnr.contab.doccont00.bp.IValidaDocContBP;
import it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_annoBulk;
import it.cnr.contab.reports.bp.OfflineReportPrintBP;
import it.cnr.contab.reports.bulk.Print_spooler_paramBulk;
import it.cnr.contab.utenze00.bp.CNRUserContext;
import it.cnr.contab.utenze00.bp.GestioneUtenteBP;
import it.cnr.contab.util.Utility;
import it.cnr.jada.UserContext;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.action.Config;
import it.cnr.jada.action.HttpActionContext;
import it.cnr.jada.bulk.ValidationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.util.action.AbstractPrintBP;
import it.cnr.jada.util.action.SimpleDetailCRUDController;
import java.math.BigDecimal;
import java.rmi.RemoteException;
import java.util.Optional;
/**
* Insert the type's description here.
* Creation date: (21/02/2002 16.12.44)
*
* @author: Roberto Fantino
*/
public class CRUDCompensoBP extends it.cnr.jada.util.action.SimpleCRUDBP implements IDefferedUpdateSaldiBP, IDocumentoAmministrativoSpesaBP, IValidaDocContBP {
private final SimpleDetailCRUDController contributiCRUDController = new SimpleDetailCRUDController("contributiCRUDController", Contributo_ritenutaBulk.class, "contributi", this, false) {
@Override
public void writeHTMLToolbar(javax.servlet.jsp.PageContext context, boolean reset, boolean find, boolean delete, boolean closedToolbar) throws java.io.IOException, javax.servlet.ServletException {
super.writeHTMLToolbar(context, reset, find, delete, false);
// Aggiungo alla table dei contributi per visualizzare ulteriori dettagli per ogni riga
boolean isFromBootstrap = HttpActionContext.isFromBootstrap(context);
if (getModelIndex() == -1)
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(context,
isFromBootstrap ? "fa fa-fw fa-list text-primary" : "img/uncheckall16.gif",
null,
false,
"Visualizza dettagli",
isFromBootstrap);
else
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(context,
isFromBootstrap ? "fa fa-fw fa-list text-primary" : "img/uncheckall16.gif",
"javascript:submitForm('doVisualizzaDettagli')",
false,
"Visualizza dettagli",
isFromBootstrap);
super.closeButtonGROUPToolbar(context);
}
};
private final SimpleDetailCRUDController docContAssociatiCRUDController = new SimpleDetailCRUDController("docContAssociatiCRUDController", V_doc_cont_compBulk.class, "docContAssociati", this, false) {
@Override
public void writeHTMLToolbar(javax.servlet.jsp.PageContext context, boolean reset, boolean find, boolean delete, boolean closedToolbar) throws java.io.IOException, javax.servlet.ServletException {
super.writeHTMLToolbar(context, reset, find, delete, false);
// Aggiungo un bottone alla toolbar dei documenti associati per aprire in visualizzazione il documento contabile associato
boolean isFromBootstrap = HttpActionContext.isFromBootstrap(context);
if (getModelIndex() == -1)
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(context,
isFromBootstrap ? "fa fa-fw fa-list text-primary" : "img/uncheckall16.gif",
null,
false,
"Visualizza documento",
isFromBootstrap);
else
it.cnr.jada.util.jsp.JSPUtils.toolbarButton(context,
isFromBootstrap ? "fa fa-fw fa-list text-primary" : "img/uncheckall16.gif",
"javascript:submitForm('doVisualizzaDocumentoContabile')",
false,
"Visualizza documento",
isFromBootstrap);
super.closeButtonGROUPToolbar(context);
}
};
private it.cnr.contab.doccont00.core.bulk.OptionRequestParameter userConfirm = null;
// Variabili usate per la gestione del "RIPORTA" documento ad esercizio precedente/successivo
private boolean annoSolareInScrivania = true;
private boolean riportaAvantiIndietro = false;
private boolean carryingThrough = false;
private boolean ribaltato;
private boolean nocompenso = true;
private Boolean isGestioneIncarichiEnabled = null;
//private Boolean isGestionePrestazioneCompensoEnabled = null;
/**
* CRUDCompensoBP constructor comment.
*/
public CRUDCompensoBP() {
super("Tr");
}
/**
* CRUDCompensoBP constructor comment.
*
* @param function java.lang.String
*/
public CRUDCompensoBP(String function) {
super(function + "Tr");
}
/**
* @param context Il contesto dell'azione
* @param accertamento it.cnr.contab.doccont00.core.bulk.AccertamentoBulk
* @param mode java.lang.String
* @return it.cnr.jada.util.action.CRUDBP
*/
public static CRUDCompensoBP getBusinessProcessFor(it.cnr.jada.action.ActionContext context, CompensoBulk compenso, String mode) throws it.cnr.jada.action.BusinessProcessException {
if (compenso == null)
return null;
else
return (CRUDCompensoBP) context.getUserInfo().createBusinessProcess(context, "CRUDCompensoBP", new Object[]{mode});
}
/**
* Il compenso viene messo in Visualizzazione se :
* - compenso da stipendi
* - compenso pagato (contabilizzato in cofi o registrato in fondo eco)
* oppure annullato oppure è legato ad obbligazione riportata
**/
private void aggiornaStatoBP() {
CompensoBulk compenso = (CompensoBulk) getModel();
if (!isViewing()) {
if (Boolean.TRUE.equals(compenso.getFl_compenso_stipendi()))
setStatus(VIEW);
else if (compenso != null && (compenso.isAnnullato()))
setStatus(VIEW);
}
}
public void basicEdit(it.cnr.jada.action.ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk, boolean doInitializeForEdit) throws it.cnr.jada.action.BusinessProcessException {
super.basicEdit(context, bulk, doInitializeForEdit);
try {
isCompensoValidoXStampa(context, (CompensoBulk) bulk);
} catch (BusinessProcessException e) {
e.printStackTrace();
} catch (ComponentException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
aggiornaStatoBP();
}
/**
* isAnnoSolareInScrivania = TRUE --> se l'anno di scrivania e' uguale a quello solare
* isRiportaAvantiIndietro = TRUE --> se sia'esercizio di scrivania che quello successivo sono aperti
*/
protected boolean basicRiportaButtonHidden() {
CompensoBulk compenso = (CompensoBulk) getModel();
return isAnnoSolareInScrivania() || !isRiportaAvantiIndietro() ||
isDeleting() || !isEditing() || compenso.isSenzaCalcoli() ||
compenso.isPagato() || compenso.isAnnullato() || !compenso.isObbligazioneObbligatoria() ||
(getParent() != null && (getParent() instanceof IDocumentoAmministrativoBP));
}
/**
* Insert the method's description here.
* Creation date: (25/02/2002 12.56.44)
*
* @param userContext it.cnr.jada.UserContext
* @param compenso it.cnr.contab.compensi00.docs.bulk.CompensoBulk
* @param aTerzo it.cnr.contab.compensi00.docs.bulk.V_terzo_per_compensoBulk
* @return it.cnr.contab.compensi00.docs.bulk.CompensoBulk
*/
public void completaTerzo(ActionContext context, CompensoBulk compenso, V_terzo_per_compensoBulk vTerzo) throws BusinessProcessException {
try {
CompensoComponentSession component = (CompensoComponentSession) createComponentSession();
CompensoBulk compensoClone = component.completaTerzo(context.getUserContext(), compenso, vTerzo);
setModel(context, compensoClone);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public ConguaglioBulk conguaglioAssociatoACompenso(ActionContext context) throws BusinessProcessException {
try {
CompensoComponentSession session = (CompensoComponentSession) createComponentSession();
return session.conguaglioAssociatoACompenso(context.getUserContext(), (CompensoBulk) getModel());
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
}
}
/**
* Insert the method's description here.
* Creation date: (25/02/2002 12.56.44)
*
* @param userContext it.cnr.jada.UserContext
* @param compenso it.cnr.contab.compensi00.docs.bulk.CompensoBulk
* @param aTerzo it.cnr.contab.compensi00.docs.bulk.V_terzo_per_compensoBulk
* @return it.cnr.contab.compensi00.docs.bulk.CompensoBulk
*/
public void contabilizzaCompensoCOFI(ActionContext context) throws BusinessProcessException {
try {
CompensoComponentSession comp = (CompensoComponentSession) createComponentSession();
CompensoBulk compenso = comp.doContabilizzaCompensoCofi(context.getUserContext(), (CompensoBulk) getModel());
setModel(context, compenso);
commitUserTransaction();
aggiornaStatoBP();
resetTabs(context);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public void create(it.cnr.jada.action.ActionContext context)
throws it.cnr.jada.action.BusinessProcessException {
try {
getModel().setToBeCreated();
setModel(
context,
((CompensoComponentSession) createComponentSession()).creaConBulk(
context.getUserContext(),
getModel(),
getUserConfirm()));
setUserConfirm(null);
} catch (Throwable e) {
throw handleException(e);
}
}
/**
* Inizializzazione della Toolbar del Compenso
*/
public it.cnr.jada.util.jsp.Button[] createToolbar() {
it.cnr.jada.util.jsp.Button[] toolbar = new it.cnr.jada.util.jsp.Button[12];
int i = 0;
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.search");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.startSearch");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.freeSearch");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.new");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.save");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.delete");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.bringBack");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.undoBringBack");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.contabilizza");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.print");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.riportaAvanti");
toolbar[i++] = new it.cnr.jada.util.jsp.Button(it.cnr.jada.util.Config.getHandler().getProperties(getClass()), "CRUDToolbar.riportaIndietro");
return toolbar;
}
public void doConfermaModificaCORI(ActionContext context) throws BusinessProcessException {
try {
CompensoComponentSession session = (CompensoComponentSession) createComponentSession();
CompensoBulk compenso = session.confermaModificaCORI(context.getUserContext(), (CompensoBulk) getModel(), (Contributo_ritenutaBulk) getContributiCRUDController().getModel());
getContributiCRUDController().setModelIndex(context, -1);
setModel(context, compenso);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
/**
* Gestisce la richiesta di eliminazione dell'associazione compenso/scadenza obbligazione
*/
public CompensoBulk doEliminaObbligazione(ActionContext context) throws BusinessProcessException {
try {
CompensoBulk compenso = (CompensoBulk) getModel();
if (compenso.isStatoCompensoEseguiCalcolo())
throw new it.cnr.jada.comp.ApplicationException("E' necessario eseguire il calcolo prima di eliminare l'impegno");
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
compenso = sess.eliminaObbligazione(context.getUserContext(), compenso);
setModel(context, compenso);
setDirty(true);
return compenso;
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public void edit(ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk, boolean doInitializeForEdit) throws it.cnr.jada.action.BusinessProcessException {
setCarryingThrough(false);
super.edit(context, bulk, doInitializeForEdit);
}
public void elaboraScadenze(ActionContext context, Obbligazione_scadenzarioBulk oldScad, Obbligazione_scadenzarioBulk newScad) throws BusinessProcessException {
try {
CompensoBulk compenso = (CompensoBulk) getModel();
CompensoComponentSession session = (CompensoComponentSession) createComponentSession();
compenso = session.elaboraScadenze(context.getUserContext(), compenso, oldScad, newScad);
if (!isObbligazioneValida(context, newScad))
compenso.setStatoCompensoToSincronizzaObbligazione();
else
compenso.setStatoCompensoToObbligazioneSincronizzata();
setModel(context, compenso);
setDirty(true);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
/**
* Gestisce la richiesta di "esecuzione del calcolo" del compenso
*/
public void eseguiCalcolo(ActionContext context) throws BusinessProcessException {
try {
validaDatiLiquidazione(context);
CompensoComponentSession comp = (CompensoComponentSession) createComponentSession();
CompensoBulk compenso = comp.eseguiCalcolo(context.getUserContext(), (CompensoBulk) getModel());
setModel(context, compenso);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public void findListaBanche(ActionContext context) throws BusinessProcessException {
try {
CompensoBulk compenso = (CompensoBulk) getModel();
if (compenso.getModalitaPagamento() != null) {
CompensoComponentSession component = (CompensoComponentSession) createComponentSession();
java.util.List coll = component.findListaBanche(context.getUserContext(), compenso);
// Assegno di default la prima banca tra quelle selezionate
if (coll == null || coll.isEmpty()) {
compenso.setBanca(null);
// throw new it.cnr.jada.comp.ApplicationException("Non esistono banche associate alla modalità selezionata");
} else
compenso.setBanca((it.cnr.contab.anagraf00.core.bulk.BancaBulk) new java.util.Vector(coll).firstElement());
} else
compenso.setBanca(null);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
/**
* Effettua una operazione di ricerca per un attributo di un modello.
*
* @param userContext lo userContext che ha generato la richiesta
* @param filtro modello che fa da contesto alla ricerca (il modello del FormController padre del
* controller che ha scatenato la ricerca)
* @return un RemoteIterator sul risultato della ricerca o null se la ricerca non ha ottenuto nessun risultato
**/
public it.cnr.jada.util.RemoteIterator findObbligazioni(it.cnr.jada.UserContext userContext, it.cnr.contab.docamm00.docs.bulk.Filtro_ricerca_obbligazioniVBulk filtro) throws it.cnr.jada.action.BusinessProcessException {
try {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
return sess.cercaObbligazioni(userContext, filtro);
} catch (it.cnr.jada.comp.ComponentException e) {
throw handleException(e);
} catch (java.rmi.RemoteException e) {
throw handleException(e);
}
}
/**
* Effettua una operazione di ricerca per un attributo di un modello.
*
* @param actionContext contesto dell'azione in corso
* @param clauses Albero di clausole da utilizzare per la ricerca
* @param bulk prototipo del modello di cui si effettua la ricerca
* @param context modello che fa da contesto alla ricerca (il modello del FormController padre del
* controller che ha scatenato la ricerca)
* @return un RemoteIterator sul risultato della ricerca o null se la ricerca non ha ottenuto nessun risultato
**/
public it.cnr.jada.util.RemoteIterator findObbligazioniAttributes(it.cnr.jada.action.ActionContext actionContext, it.cnr.jada.persistency.sql.CompoundFindClause clauses, it.cnr.jada.bulk.OggettoBulk bulk, it.cnr.jada.bulk.OggettoBulk context, java.lang.String property) throws it.cnr.jada.action.BusinessProcessException {
try {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
return it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(
actionContext,
sess.cerca(
actionContext.getUserContext(),
clauses,
bulk,
context,
property));
} catch (it.cnr.jada.comp.ComponentException e) {
throw handleException(e);
} catch (java.rmi.RemoteException e) {
throw handleException(e);
}
}
public void findTipiRapporto(ActionContext context) throws BusinessProcessException {
try {
CompensoBulk compenso = (CompensoBulk) getModel();
if (compenso.getTerzo() != null) {
CompensoComponentSession component = (CompensoComponentSession) createComponentSession();
java.util.Collection coll = component.findTipiRapporto(context.getUserContext(), compenso);
compenso.setTipiRapporto(coll);
if (coll == null || coll.isEmpty()) {
compenso.setTipoRapporto(null);
throw new it.cnr.jada.comp.ApplicationException("Non esistono Tipi Rapporto validi associati al terzo selezionato");
}
} else
compenso.setTipoRapporto(null);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public void findTipiTrattamento(ActionContext context) throws BusinessProcessException {
try {
CompensoBulk compenso = (CompensoBulk) getModel();
if (compenso.getTipoRapporto() != null) {
CompensoComponentSession component = (CompensoComponentSession) createComponentSession();
java.util.Collection coll = component.findTipiTrattamento(context.getUserContext(), compenso);
compenso.setTipiTrattamento(coll);
if (coll == null || coll.isEmpty()) {
compenso.setTipoTrattamento(null);
throw new it.cnr.jada.comp.ApplicationException("Non esistono Tipi Trattamento associati al Tipo di Rapporto selezionato");
}
} else
compenso.setTipoTrattamento(null);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public void findTipiPrestazioneCompenso(ActionContext context) throws BusinessProcessException {
try {
CompensoBulk compenso = (CompensoBulk) getModel();
if (compenso.getTipoRapporto() != null) {
CompensoComponentSession component = (CompensoComponentSession) createComponentSession();
java.util.Collection coll = component.findTipiPrestazioneCompenso(context.getUserContext(), compenso);
compenso.setTipiPrestazioneCompenso(coll);
if ((coll == null || coll.isEmpty()) && compenso.isPrestazioneCompensoEnabled()) {
compenso.setTipoPrestazioneCompenso(null);
throw new it.cnr.jada.comp.ApplicationException("Non esistono Tipi di prestazione associati al Tipo di Rapporto selezionato");
}
} else
compenso.setTipoPrestazioneCompenso(null);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
/**
* Insert the method's description here.
* Creation date: (27/05/2002 14.40.04)
*
* @return it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk
*/
public it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk getAccertamento_scadenziario_corrente() {
return null;
}
/**
* Insert the method's description here.
* Creation date: (27/05/2002 14.40.04)
*
* @return it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk
*/
public IDocumentoAmministrativoBulk getBringBackDocAmm() {
return getDocumentoAmministrativoCorrente();
}
/**
* Insert the method's description here.
* Creation date: (04/03/2002 14.59.58)
*
* @return it.cnr.jada.util.action.SimpleDetailCRUDController
*/
public final SimpleDetailCRUDController getContributiCRUDController() {
return contributiCRUDController;
}
/**
* Insert the method's description here.
* Creation date: (24/05/2002 13.22.57)
*
* @return it.cnr.contab.doccont00.core.bulk.IDefferUpdateSaldi
*/
public it.cnr.contab.doccont00.core.bulk.IDefferUpdateSaldi getDefferedUpdateSaldiBulk() {
if (getParent() != null && getParent() instanceof IDefferedUpdateSaldiBP)
return getDefferedUpdateSaldiParentBP().getDefferedUpdateSaldiBulk();
return (it.cnr.contab.doccont00.core.bulk.IDefferUpdateSaldi) getModel();
}
/**
* Insert the method's description here.
* Creation date: (24/05/2002 13.17.50)
*
* @return it.cnr.contab.doccont00.bp.IDefferedUpdateSaldiBP
*/
public IDefferedUpdateSaldiBP getDefferedUpdateSaldiParentBP() {
if (getParent() != null && getParent() instanceof IDefferedUpdateSaldiBP)
return ((IDefferedUpdateSaldiBP) getParent()).getDefferedUpdateSaldiParentBP();
return (IDefferedUpdateSaldiBP) this;
}
/**
* Insert the method's description here.
* Creation date: (27/05/2002 14.40.04)
*
* @return it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk
*/
public it.cnr.contab.docamm00.docs.bulk.Risultato_eliminazioneVBulk getDeleteManager() {
return null;
}
/**
* Insert the method's description here.
* Creation date: (27/05/2002 17.28.12)
*
* @return it.cnr.jada.bulk.OggettoBulk
*/
public it.cnr.jada.bulk.OggettoBulk getDocAmmModel() {
return getModel();
}
/**
* Insert the method's description here.
* Creation date: (04/03/2002 14.59.58)
*
* @return it.cnr.jada.util.action.SimpleDetailCRUDController
*/
public final SimpleDetailCRUDController getDocContAssociatiCRUDController() {
return docContAssociatiCRUDController;
}
/**
* Insert the method's description here.
* Creation date: (27/05/2002 14.40.05)
*
* @return it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk
*/
public IDocumentoAmministrativoBulk getDocumentoAmministrativoCorrente() {
return (IDocumentoAmministrativoBulk) getModel();
}
/**
* Insert the method's description here.
* Creation date: (27/05/2002 14.40.04)
*
* @return it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk
*/
public it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk getObbligazione_scadenziario_corrente() {
return ((CompensoBulk) getModel()).getObbligazioneScadenzario();
}
/**
* Insert the method's description here.
* Creation date: (19/07/2002 12.53.56)
*
* @return it.cnr.contab.doccont00.core.bulk.OptionRequestParameter
*/
public it.cnr.contab.doccont00.core.bulk.OptionRequestParameter getUserConfirm() {
return userConfirm;
}
/**
* Insert the method's description here.
* Creation date: (19/07/2002 12.53.56)
*
* @param newUserConfirm it.cnr.contab.doccont00.core.bulk.OptionRequestParameter
*/
public void setUserConfirm(it.cnr.contab.doccont00.core.bulk.OptionRequestParameter newUserConfirm) {
userConfirm = newUserConfirm;
}
protected void init(Config config, ActionContext context) throws BusinessProcessException {
// Se NULL allora non sono in un contesto transazionale
// Imposto il compenso NON EDITABILE
if (getUserTransaction() == null)
setEditable(false);
super.init(config, context);
try {
setGestioneIncarichiEnabled(Utility.createParametriCnrComponentSession().getParametriCnr(context.getUserContext(), CNRUserContext.getEsercizio(context.getUserContext())).getFl_incarico());
/*
String attivaPrestazione = ((it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession")).getVal01(context.getUserContext(), CNRUserContext.getEsercizio(context.getUserContext()), "*", "GESTIONE_COMPENSI", "ATTIVA_PRESTAZIONE");
if (attivaPrestazione==null)
throw new ApplicationException("Configurazione CNR: non sono stati impostati i valori per GESTIONE_COMPENSI - ATTIVA_PRESTAZIONE");
if (attivaPrestazione.compareTo(new String("Y"))==0)
setGestionePrestazioneCompensoEnabled(true);
else
setGestionePrestazioneCompensoEnabled(false);
*/
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
resetTabs(context);
}
public it.cnr.jada.bulk.OggettoBulk initializeModelForEdit(ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk) throws BusinessProcessException {
CompensoBulk compenso = (CompensoBulk) super.initializeModelForEdit(context, bulk);
return initializePerRiporta(context, compenso);
}
public it.cnr.jada.bulk.OggettoBulk initializeModelForFreeSearch(ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk) throws BusinessProcessException {
CompensoBulk compenso = (CompensoBulk) super.initializeModelForFreeSearch(context, bulk);
return initializePerRiporta(context, compenso);
}
public it.cnr.jada.bulk.OggettoBulk initializeModelForInsert(ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk) throws BusinessProcessException {
CompensoBulk compenso = (CompensoBulk) super.initializeModelForInsert(context, bulk);
return initializePerRiporta(context, compenso);
}
public it.cnr.jada.bulk.OggettoBulk initializeModelForSearch(ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk) throws BusinessProcessException {
CompensoBulk compenso = (CompensoBulk) super.initializeModelForSearch(context, bulk);
return initializePerRiporta(context, compenso);
}
public it.cnr.jada.bulk.OggettoBulk initializePerRiporta(ActionContext context, CompensoBulk compenso) throws BusinessProcessException {
try {
java.sql.Timestamp tsOdierno = it.cnr.jada.util.ejb.EJBCommonServices.getServerDate();
java.util.GregorianCalendar tsOdiernoGregorian = (java.util.GregorianCalendar) java.util.GregorianCalendar.getInstance();
tsOdiernoGregorian.setTime(tsOdierno);
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MM/yyyy");
compenso.setAnnoSolare(tsOdiernoGregorian.get(java.util.GregorianCalendar.YEAR));
compenso.setEsercizioScrivania(it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()).intValue());
setAnnoSolareInScrivania(compenso.getAnnoSolare() == compenso.getEsercizioScrivania());
setRibaltato(initRibaltato(context));
if (!isAnnoSolareInScrivania()) {
String cds = it.cnr.contab.utenze00.bp.CNRUserContext.getCd_cds(context.getUserContext());
try {
DocumentoGenericoComponentSession session = (DocumentoGenericoComponentSession) createComponentSession("CNRDOCAMM00_EJB_DocumentoGenericoComponentSession", DocumentoGenericoComponentSession.class);
boolean esercizioScrivaniaAperto = session.verificaStatoEsercizio(context.getUserContext(), new EsercizioBulk(cds, new Integer(compenso.getEsercizioScrivania())));
boolean esercizioSuccessivoAperto = session.verificaStatoEsercizio(context.getUserContext(), new EsercizioBulk(cds, new Integer(compenso.getEsercizioScrivania() + 1)));
setRiportaAvantiIndietro(esercizioScrivaniaAperto && esercizioSuccessivoAperto && isRibaltato());
} catch (Throwable t) {
// handleException(t);
throw new BusinessProcessException(t);
}
} else
setRiportaAvantiIndietro(false);
} catch (javax.ejb.EJBException e) {
setAnnoSolareInScrivania(false);
throw new BusinessProcessException(e);
}
return compenso;
}
protected void initializePrintBP(ActionContext context, AbstractPrintBP bp) {
OfflineReportPrintBP printbp = (OfflineReportPrintBP) bp;
CompensoBulk compenso = (CompensoBulk) getModel();
// printbp.setReportName("/docamm/docamm/compenso.rpt");
// printbp.setReportParameter(0, compenso.getCd_cds());
// printbp.setReportParameter(1, compenso.getCd_unita_organizzativa());
// printbp.setReportParameter(2, compenso.getEsercizio().toString());
// printbp.setReportParameter(3, compenso.getPg_compenso().toString());
printbp.setReportName("/docamm/docamm/compenso.jasper");
Print_spooler_paramBulk param;
param = new Print_spooler_paramBulk();
param.setNomeParam("Esercizio");
param.setValoreParam(compenso.getEsercizio().toString());
param.setParamType("java.lang.Integer");
printbp.addToPrintSpoolerParam(param);
param = new Print_spooler_paramBulk();
param.setNomeParam("CDS");
param.setValoreParam(compenso.getCd_cds());
param.setParamType("java.lang.String");
printbp.addToPrintSpoolerParam(param);
param = new Print_spooler_paramBulk();
param.setNomeParam("UO");
param.setValoreParam(compenso.getCd_unita_organizzativa());
param.setParamType("java.lang.String");
printbp.addToPrintSpoolerParam(param);
param = new Print_spooler_paramBulk();
param.setNomeParam("Pg_compenso");
param.setValoreParam(compenso.getPg_compenso().toString());
param.setParamType("java.lang.Integer");
printbp.addToPrintSpoolerParam(param);
}
public void inizializzaCompensoPerConguaglio(ActionContext context, ConguaglioBulk conguaglio) throws BusinessProcessException {
CompensoBulk compenso = (CompensoBulk) getModel();
if (compenso.getImportoObbligazione().compareTo(new java.math.BigDecimal(0)) <= 0) {
compenso.setStatoCompensoToObbligazioneSincronizzata();
compenso.setStato_cofi(compenso.STATO_CONTABILIZZATO);
} else {
compenso.setStatoCompensoToSincronizzaObbligazione();
setTab("tab", "tabCompensoObbligazioni");
}
}
/**
* Insert the method's description here.
* Creation date: (10/07/2003 10.56.37)
*
* @return boolean
*/
public boolean isAnnoSolareInScrivania() {
return annoSolareInScrivania;
}
/**
* Insert the method's description here.
* Creation date: (10/07/2003 10.56.37)
*
* @param newAnnoSolareInScrivania boolean
*/
public void setAnnoSolareInScrivania(boolean newAnnoSolareInScrivania) {
annoSolareInScrivania = newAnnoSolareInScrivania;
}
/**
* Insert the method's description here.
* Creation date: (27/05/2002 14.40.04)
*
* @return it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk
*/
public boolean isAutoGenerated() {
return false;
}
public boolean isBottoneAnnullaModificaCORIEnabled() throws BusinessProcessException {
if (this.isViewing() || this.isSearching())
return false;
return (getContributiCRUDController().getModelIndex() != -1 ||
!getContributiCRUDController().getSelection().isEmpty());
}
public boolean isBottoneConfermaModificaCORIEnabled() throws BusinessProcessException {
if (this.isViewing() || this.isSearching())
return false;
return (getContributiCRUDController().getModelIndex() != -1 ||
!getContributiCRUDController().getSelection().isEmpty());
}
public boolean isBottoneCreaObbligazioneEnabled() throws BusinessProcessException {
if (this.isViewing() || this.isSearching())
return false;
CompensoBulk compenso = (CompensoBulk) getModel();
return (compenso != null &&
compenso.getObbligazioneScadenzario() == null &&
compenso.isStatoCompensoSincronizzaObbligazione() &&
!compenso.isROPerChiusura());
}
public boolean isBottoneEliminaObbligazioneEnabled() throws BusinessProcessException {
if (this.isViewing() || this.isSearching())
return false;
CompensoBulk compenso = (CompensoBulk) getModel();
if (compenso != null && compenso.isROPerChiusura())
return false;
if (compenso != null && compenso.isStatoCompensoEseguiCalcolo())
return false;
return (compenso != null && compenso.getObbligazioneScadenzario() != null && !compenso.isStatoCofiPagato() && !compenso.isAnnullato());
}
public boolean isBottoneEseguiCalcoloEnabled() throws BusinessProcessException {
if (this.isViewing() || this.isSearching())
return false;
CompensoBulk compenso = (CompensoBulk) getModel();
return compenso != null && compenso.isStatoCompensoEseguiCalcolo() && !compenso.isROPerChiusura();
}
public boolean isBottoneModificaAutomaticaObbligazioneEnabled() throws BusinessProcessException {
if (this.isViewing() || this.isSearching())
return false;
CompensoBulk compenso = (CompensoBulk) getModel();
return (compenso != null &&
compenso.getObbligazioneScadenzario() != null &&
compenso.isStatoCompensoSincronizzaObbligazione() &&
!compenso.isROPerChiusura());
}
public boolean isBottoneModificaManualeObbligazioneEnabled() throws BusinessProcessException {
if (this.isSearching())
return false;
CompensoBulk compenso = (CompensoBulk) getModel();
if (compenso != null && compenso.isStatoCompensoEseguiCalcolo())
return false;
return (compenso != null &&
compenso.getObbligazioneScadenzario() != null && !compenso.isStatoCofiPagato() && !compenso.isAnnullato());
}
public boolean isBottoneVisualizzaDocContPrincipaleEnabled() throws BusinessProcessException {
return ((CompensoBulk) getModel()).getDocContPrincipale() != null;
}
/**
* Insert the method's description here.
* Creation date: (10/07/2003 10.56.37)
*
* @return boolean
*/
public boolean isCarryingThrough() {
return carryingThrough;
}
/**
* Insert the method's description here.
* Creation date: (10/07/2003 10.56.37)
*
* @param newCarryingThrough boolean
*/
public void setCarryingThrough(boolean newCarryingThrough) {
carryingThrough = newCarryingThrough;
}
public boolean isContabilizzaButtonEnabled() throws BusinessProcessException {
if (isSearching() || isInputReadonly())
return false;
CompensoBulk compenso = (CompensoBulk) getModel();
boolean flg = false;
if (compenso != null &&
compenso.isStatoCompensoContabilizzaCofi() &&
compenso.STATO_CONTABILIZZATO.equals(compenso.getStato_cofi()) &&
compenso.LIBERO_FONDO_ECO.equals(compenso.getStato_pagamento_fondo_eco()))
flg = true;
// Chiusura : se carico un compenso con esercizio precedente a quello solare :
// - esercizio scrivania != anno solare e obbligazione riportata --> disabilito
// - esercizio scrivania != anno solare e obbligazione non riportata --> abilito
// - esercizio scrivania = anno solare e obbligazione riportata --> abilito
// - esercizio scrivania = anno solare e obbligazione non riportata --> disabilito
//if( flg && compenso.getEsercizio().intValue()!=compenso.getAnnoSolare())
//{
//if(compenso.getEsercizioScrivania()==compenso.getAnnoSolare())
//return compenso.isRiportataInScrivania();
//else
//return !compenso.isRiportata();
//}
// Gennaro Borriello - (04/11/2004 19.42.55)
// Modif. relativa alla nuova gestione di isRiportata()
if (flg) {
if (compenso.getEsercizio().intValue() == compenso.getEsercizioScrivania())
return !compenso.isRiportata();
else
return compenso.isRiportataInScrivania();
}
return flg;
}
public boolean isContabilizzaButtonHidden() {
return isBringBack();
}
public boolean isDeleteButtonEnabled() {
CompensoBulk compenso = (CompensoBulk) getModel();
boolean flg = compenso != null &&
compenso.getDt_cancellazione() == null &&
!compenso.isStatoCompensoEseguiCalcolo() &&
!isInputReadonly() &&
!isSearching() &&
!isInserting() &&
!compenso.isDaFatturaPassiva();
// Chiusura : se carico un compenso con esercizio precedente a quello solare :
// - esercizio scrivania != anno solare e obbligazione riportata --> disabilito
// - esercizio scrivania != anno solare e obbligazione non riportata --> abilito
// - esercizio scrivania = anno solare e obbligazione riportata --> abilito
// - esercizio scrivania = anno solare e obbligazione non riportata --> disabilito
//if(flg && compenso.getEsercizio().intValue()!=compenso.getAnnoSolare())
//{
//if(compenso.getEsercizioScrivania()==compenso.getAnnoSolare())
//return compenso.isRiportata();
//else
//return !compenso.isRiportata();
//}
// Gennaro Borriello - (05/11/2004 12.23.28)
// Modif. relativa alla nuova gestione di isRiportata()
if (flg) {
if (compenso.getEsercizio().intValue() == compenso.getEsercizioScrivania())
return !compenso.isRiportata();
else
return compenso.isRiportataInScrivania();
}
return flg;
}
/**
* Insert the method's description here.
* Creation date: (27/05/2002 14.40.05)
*
* @return it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk
*/
public boolean isDeleting() {
return false;
}
public boolean isFreeSearchButtonHidden() {
return super.isFreeSearchButtonHidden() || isSpesaBP();
}
/**
* Insert the method's description here.
* Creation date: (16/07/2002 12.39.40)
*
* @return it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk
*/
public boolean isManualModify() {
return true;
}
/**
* Insert the method's description here.
* Creation date: (03/09/2002 14.45.43)
*
* @return boolean
*/
public boolean isObbligazioneValida(ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk) throws BusinessProcessException {
try {
try {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
sess.validaObbligazione(context.getUserContext(), (Obbligazione_scadenzarioBulk) bulk, (CompensoBulk) getModel());
} catch (it.cnr.jada.comp.ComponentException ex) {
return false;
}
return true;
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
//inserire il metodo verificaEsistenzaCompenso in isPrintButton
public void isCompensoValidoXStampa(ActionContext context, CompensoBulk compenso) throws BusinessProcessException, ComponentException, RemoteException {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
setNocompenso(!sess.verificaEsistenzaCompenso(context.getUserContext(), compenso));
}
public boolean isCompensoValidoXContabil(ActionContext context, CompensoBulk compenso) throws BusinessProcessException, ComponentException, RemoteException {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
return (sess.isCompensoValido(context.getUserContext(), compenso));
}
public boolean isPrintButtonHidden() {
// return true;
return super.isPrintButtonHidden() || isInserting() || isSearching() || isNocompenso();
}
public boolean isRiportaAvantiButtonEnabled() {
CompensoBulk compenso = (CompensoBulk) getModel();
return isCarryingThrough() || !compenso.isRiportata();
}
public boolean isRiportaAvantiButtonHidden() {
return basicRiportaButtonHidden();
}
/**
* Insert the method's description here.
* Creation date: (10/07/2003 10.56.37)
*
* @return boolean
*/
public boolean isRiportaAvantiIndietro() {
return riportaAvantiIndietro;
}
/**
* Insert the method's description here.
* Creation date: (10/07/2003 10.56.37)
*
* @param newRiportaAvantiIndietro boolean
*/
public void setRiportaAvantiIndietro(boolean newRiportaAvantiIndietro) {
riportaAvantiIndietro = newRiportaAvantiIndietro;
}
public boolean isRiportaIndietroButtonEnabled() {
return isEditing() && !isDeleting() && !isDirty() && !isCarryingThrough();
}
public boolean isRiportaIndietroButtonHidden() {
CompensoBulk compenso = (CompensoBulk) getModel();
return basicRiportaButtonHidden() || (compenso != null && !(compenso.isRiportata() || isCarryingThrough()));
}
/**
* Se l'esercizio della scrivania è precedente a quello solare
* non posso creare una fattura da compenso
*/
public boolean isRODatiFatturaPerChiusura(CompensoBulk compenso) {
if (compenso == null)
return false;
if (compenso.getEsercizio() == null)
return false;
if (compenso.getAnnoSolare() > compenso.getEsercizio().intValue())
return true;
return false;
}
public boolean isROFindDatiLiquidazione() throws BusinessProcessException {
CompensoBulk compenso = (CompensoBulk) getModel();
if (compenso != null && !isViewing()) {
if ((getParent() instanceof GestioneUtenteBP) && (compenso.isAssociatoADocumento())) {
return true;
}
}
return false;
}
public boolean isSaveButtonEnabled() {
CompensoBulk compenso = (CompensoBulk) getModel();
if (compenso == null)
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)) || (isCigModificabile()));
}
/**
* Insert the method's description here.
* Creation date: (27/05/2002 14.40.05)
*
* @return boolean
*/
public boolean isSpesaBP() {
return getParent() != null && (getParent() instanceof it.cnr.contab.fondecon00.bp.FondoSpesaBP);
}
/**
* Abilito il bottone undo Bring Back sempre
*/
public boolean isUndoBringBackButtonEnabled() {
return super.isUndoBringBackButtonEnabled() || isViewing();
}
/**
* Carica tutti i mandati e le reversali associati al compenso in esame
*
* @param context il Context che ha generato la richiesta
* @param compenso it.cnr.contab.compensi00.docs.bulk.CompensoBulk
* @param aTerzo it.cnr.contab.compensi00.docs.bulk.V_terzo_per_compensoBulk
* @return it.cnr.contab.compensi00.docs.bulk.CompensoBulk
*/
public void loadDocContAssociati(ActionContext context) throws BusinessProcessException {
try {
CompensoBulk compenso = (CompensoBulk) getModel();
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
java.util.List l = sess.loadDocContAssociati(context.getUserContext(), compenso);
compenso.setDocContAssociati(l);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
/**
* Gestisce la selezione di un Tipo Trattamento
*/
public void onTipoTrattamentoChange(ActionContext context) throws BusinessProcessException {
try {
CompensoComponentSession comp = (CompensoComponentSession) createComponentSession();
CompensoBulk compenso = comp.onTipoTrattamentoChange(context.getUserContext(), (CompensoBulk) getModel());
setModel(context, compenso);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public void onTipoRapportoInpsChange(ActionContext context) throws BusinessProcessException {
try {
CompensoComponentSession comp = (CompensoComponentSession) createComponentSession();
CompensoBulk compenso = comp.onTipoRapportoInpsChange(context.getUserContext(), (CompensoBulk) getModel());
setModel(context, compenso);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public void reset(ActionContext context) throws BusinessProcessException {
super.reset(context);
setCarryingThrough(false);
}
public void resetForSearch(ActionContext context) throws BusinessProcessException {
setCarryingThrough(false);
super.resetForSearch(context);
}
/**
* Insert the method's description here.
* Creation date: (22/02/2002 18.28.25)
*/
public void resetTabs(ActionContext context) {
setTab("tab", "tabCompenso");
}
/**
* Il metodo gestisce il 'riporto avanti' del documento contabile del compenso
*/
public void riportaAvanti(ActionContext context) throws it.cnr.jada.bulk.ValidationException, BusinessProcessException {
try {
RiportoDocAmmComponentSession session = (RiportoDocAmmComponentSession) createComponentSession("CNRDOCAMM00_EJB_RiportoDocAmmComponentSession", RiportoDocAmmComponentSession.class);
CompensoBulk compensoRiportato = (CompensoBulk) session.riportaAvanti(context.getUserContext(),
(IDocumentoAmministrativoBulk) getModel(),
getUserConfirm());
setModel(context, compensoRiportato);
} catch (Throwable e) {
throw handleException(e);
} finally {
setUserConfirm(null);
}
}
/**
* Il metodo gestisce il 'riporto indietro' del documento contabile del compenso
*/
public void riportaIndietro(ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
if (isDirty()) {
setMessage("Il documento è stato modificato! Operazione annullata.");
return;
}
rollbackUserTransaction();
setCarryingThrough(true);
try {
RiportoDocAmmComponentSession session = (RiportoDocAmmComponentSession) createComponentSession("CNRDOCAMM00_EJB_RiportoDocAmmComponentSession", RiportoDocAmmComponentSession.class);
CompensoBulk compensoRiportato = (CompensoBulk) session.riportaIndietro(context.getUserContext(),
(IDocumentoAmministrativoBulk) getModel());
basicEdit(context, compensoRiportato, true);
setDirty(true);
} catch (Throwable t) {
setCarryingThrough(false);
rollbackUserTransaction();
throw handleException(t);
}
}
/**
* Ripristina la selezione del vecchio Tipo Rapporto
**/
public void ripristinaSelezioneTipoRapporto() {
CompensoBulk compenso = (CompensoBulk) getModel();
Tipo_rapportoBulk tipoRapporto = compenso.getTipoRapporto();
// ripristino la selezione del Tipo Rapporto
if (tipoRapporto != null) {
for (java.util.Iterator i = compenso.getTipiRapporto().iterator(); i.hasNext(); ) {
Tipo_rapportoBulk tipoRapp = (Tipo_rapportoBulk) i.next();
if (tipoRapp.getCd_tipo_rapporto().equals(tipoRapporto.getCd_tipo_rapporto()))
compenso.setTipoRapporto(tipoRapp);
}
}
}
/**
* Ripristina la selezione del vecchio Tipo Trattamento
**/
public void ripristinaSelezioneTipoTrattamento(ActionContext context) throws BusinessProcessException {
CompensoBulk compenso = (CompensoBulk) getModel();
Tipo_trattamentoBulk tipoTrattamento = compenso.getTipoTrattamento();
// ripristino la selezione del Tipo Trattamento
if (tipoTrattamento != null) {
for (java.util.Iterator i = compenso.getTipiTrattamento().iterator(); i.hasNext(); ) {
Tipo_trattamentoBulk tratt = (Tipo_trattamentoBulk) i.next();
if (tratt.getCd_trattamento().equals(tipoTrattamento.getCd_trattamento())) {
compenso.setTipoTrattamento(tratt);
// onTipoTrattamentoChange(context);
}
}
}
}
/**
* Annulla le modifiche apportate al compenso e ritorna al savepoint impostato in precedenza
*
* Pre-post-conditions:
*
* Nome: Rollback to savePoint
* Pre: Una richiesta di annullare tutte le modifiche apportate e di ritornare al savepoint e' stata generata
* Post: Tutte le modifiche effettuate sul compenso vengono annullate, mentre rimangono valide le
* modifiche apportate al doc. amministrativo che ha aperto il compenso
*
* @param context il Context che ha generato la richiesta
* @param savePointName il nome del savePoint
*/
public void rollbackToSavePoint(ActionContext context, String savePointName) throws BusinessProcessException {
try {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
sess.rollbackToSavePoint(context.getUserContext(), savePointName);
} catch (java.rmi.RemoteException e) {
throw handleException(e);
} catch (it.cnr.jada.comp.ComponentException e) {
throw handleException(e);
}
}
/**
* Il metodo gestisce il 'riporto avanti' del documento contabile del compenso.
* Il metodo salva il compenso, invoca la procedura per riportare avanti il documento contabile e committa
*/
public void salvaRiportandoAvanti(ActionContext context) throws it.cnr.jada.bulk.ValidationException, BusinessProcessException {
CompensoBulk compensoTemp = (CompensoBulk) getModel();
try {
setSavePoint(context, "RIPORTA_AVANTI");
completeSearchTools(context, this);
validate(context);
saveChildren(context);
update(context);
riportaAvanti(context);
} catch (Throwable e) {
rollbackToSavePoint(context, "RIPORTA_AVANTI");
setModel(context, compensoTemp);
throw handleException(e);
}
if (getMessage() == null)
setMessage("Salvataggio e riporto all'esercizio successivo eseguito in modo corretto.");
commitUserTransaction();
setCarryingThrough(false);
try {
basicEdit(context, getModel(), true);
} catch (BusinessProcessException e) {
setModel(context, null);
setDirty(false);
throw e;
}
}
public void save(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException, it.cnr.jada.bulk.ValidationException {
super.save(context);
setCarryingThrough(false);
}
/**
* Insert the method's description here.
* Creation date: (27/05/2002 14.40.05)
*
* @return it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk
*/
public void setIsDeleting(boolean newIsDeleting) {
}
/**
* Imposta un savepoint che consente di salvare le modifiche apportate al doc. amministrativo fino a quel momento
* in modo che se gli aggiornamenti apportati al compenso non venissero confermati (rollback), comunque non verrebbero persi
* anche quelli del documento amministrativo.
*
* Pre-post-conditions:
*
* Nome: Imposta savePoint
* Pre: Una richiesta di impostare un savepoint e' stata generata
* Post: Un savepoint e' stato impostato in modo che le modifiche apportate al doc. amministrativo vengono consolidate
*
* @param context il Context che ha generato la richiesta
* @param savePointName il nome del savePoint
*/
public void setSavePoint(ActionContext context, String savePointName) throws BusinessProcessException {
try {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
sess.setSavePoint(context.getUserContext(), savePointName);
} catch (java.rmi.RemoteException e) {
throw handleException(e);
} catch (it.cnr.jada.comp.ComponentException e) {
throw handleException(e);
}
}
public void update(ActionContext context)
throws it.cnr.jada.action.BusinessProcessException {
try {
getModel().setToBeUpdated();
setModel(
context,
((CompensoComponentSession) createComponentSession()).modificaConBulk(
context.getUserContext(),
getModel(),
getUserConfirm()));
setUserConfirm(null);
} catch (Throwable e) {
throw handleException(e);
}
}
/**
* Insert the method's description here.
* Creation date: (25/02/2002 12.56.44)
*
* @param userContext it.cnr.jada.UserContext
* @param compenso it.cnr.contab.compensi00.docs.bulk.CompensoBulk
* @param aTerzo it.cnr.contab.compensi00.docs.bulk.V_terzo_per_compensoBulk
* @return it.cnr.contab.compensi00.docs.bulk.CompensoBulk
*/
private void validaDatiLiquidazione(ActionContext context) throws BusinessProcessException {
try {
CompensoBulk compenso = (CompensoBulk) getModel();
//Controllo su Regione IRAP, Voce IVA e Tipologia Rischio
if (compenso.isVisualizzaRegioneIrap())
if (compenso.getCd_regione_irap() == null)
throw new it.cnr.jada.bulk.ValidationException("Inserire la Regione IRAP");
else
completeSearchTool(context, getModel(), getBulkInfo().getFieldProperty("find_regione_irap"));
if (compenso.isVisualizzaVoceIva())
if (compenso.getCd_voce_iva() == null)
throw new it.cnr.jada.bulk.ValidationException("Inserire la Voce IVA");
else
completeSearchTool(context, getModel(), getBulkInfo().getFieldProperty("find_voce_iva"));
if (compenso.isVisualizzaTipologiaRischio())
if (compenso.getTipologiaRischio() == null)
throw new it.cnr.jada.bulk.ValidationException("Inserire la Tipologia di Rischio");
else
completeSearchTool(context, getModel(), getBulkInfo().getFieldProperty("find_tipologia_rischio"));
} catch (it.cnr.jada.bulk.ValidationException ex) {
throw handleException(ex);
}
}
/**
* Validazione dell'obbligazione in fase di creazione di una nuova obbligazione
* o modifica di una già creata.
* Il metodo viene chiamato sul riporta dell'Obbligazione in modo da validare
* istantaneamente l'oggetto creato.
* Chi non ne ha bisogno lo lasci vuoto.
**/
public void validaObbligazionePerDocAmm(ActionContext context, it.cnr.jada.bulk.OggettoBulk bulk) throws BusinessProcessException {
}
/**
* Significato codici di errore:
* -> 0 nessun errore
* -> 1 non è selezionato il TERZO
* -> 2 il TERZO non è valido
* -> 3 non è stato selezionato il TIPO RAPPORTO
* -> 4 il TIPO RAPPORTO non è valido
* -> 5 non è stato selezionato il TIPO TRATTAMENTO
* -> 6 il TIPO TRATTAMENTO non è valido
**/
public int validaTerzo(ActionContext context, boolean aBool) throws BusinessProcessException {
try {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
return sess.validaTerzo(context.getUserContext(), (CompensoBulk) getModel(), aBool);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public boolean initRibaltato(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
try {
return (((RicercaDocContComponentSession) createComponentSession("CNRCHIUSURA00_EJB_RicercaDocContComponentSession", RicercaDocContComponentSession.class)).isRibaltato(context.getUserContext()));
} catch (Exception e) {
throw handleException(e);
}
}
public boolean isRibaltato() {
return ribaltato;
}
public void setRibaltato(boolean b) {
ribaltato = b;
}
public boolean isNocompenso() {
return nocompenso;
}
public void setNocompenso(boolean nocompenso) {
this.nocompenso = nocompenso;
}
public boolean isTerzoCervellone(UserContext userContext, CompensoBulk compenso) throws BusinessProcessException {
try {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
return sess.isTerzoCervellone(userContext, compenso);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public boolean isAccontoAddComOkPerContabil(UserContext userContext, CompensoBulk compenso) throws BusinessProcessException {
try {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
return sess.isAccontoAddComOkPerContabil(userContext, compenso);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public boolean isGestiteDeduzioniIrpef(UserContext userContext) throws BusinessProcessException {
try {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
return sess.isGestiteDeduzioniIrpef(userContext);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public void completaIncarico(ActionContext context, CompensoBulk compenso, Incarichi_repertorio_annoBulk incarico_anno) throws BusinessProcessException {
try {
CompensoComponentSession component = (CompensoComponentSession) createComponentSession();
CompensoBulk compensoClone = component.completaIncarico(context.getUserContext(), compenso, incarico_anno);
setModel(context, compensoClone);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public BigDecimal prendiUtilizzato(ActionContext context, CompensoBulk compenso, Incarichi_repertorio_annoBulk incarico_anno) throws BusinessProcessException {
try {
CompensoComponentSession component = (CompensoComponentSession) createComponentSession();
BigDecimal utilizzato = component.prendiUtilizzato(context.getUserContext(), incarico_anno);
return utilizzato;
//setModel(context, compensoClone);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
/**
* Gestisce l'obbligatorietà dell'inserimento o meno dell'incarico sul compenso
*/
public boolean isIncaricoRequired(ActionContext context) throws BusinessProcessException {
return isIncaricoRequired(context, (CompensoBulk) getModel());
}
/**
* Gestisce l'obbligatorietà dell'inserimento o meno dell'incarico sul compenso
*/
public boolean isIncaricoRequired(ActionContext context, CompensoBulk compenso) throws BusinessProcessException {
try {
if (isGestioneIncarichiEnabled == null)
setGestioneIncarichiEnabled(Utility.createParametriCnrComponentSession().getParametriCnr(context.getUserContext(), CNRUserContext.getEsercizio(context.getUserContext())).getFl_incarico());
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
return this.isGestioneIncarichiEnabled() && compenso != null &&
compenso.isIncaricoEnabled();
}
public Boolean isGestioneIncarichiEnabled() {
return isGestioneIncarichiEnabled;
}
private void setGestioneIncarichiEnabled(Boolean isGestioneIncarichiEnabled) {
this.isGestioneIncarichiEnabled = isGestioneIncarichiEnabled;
}
public void validaIncaricoAnno(ActionContext context, Incarichi_repertorio_annoBulk incAnno) throws BusinessProcessException, ValidationException {
try {
if (incAnno != null) {
if (Utility.createIncarichiRepertorioComponentSession().hasVariazioneIntegrazioneIncaricoProvvisoria(context.getUserContext(), incAnno.getIncarichi_repertorio())) {
throw new it.cnr.jada.bulk.ValidationException("Contratto " + incAnno.getEsercizio() + "-" + incAnno.getPg_repertorio() +
" non utilizzabile in quanto risulta associata una variazione di " +
"tipo \n\"Periodo transitorio - Adeguamento alla durata del progetto\" in stato \"Provvisorio\".\n" +
"Rendere \"Definitiva\" la variazione del contratto e successivamente registrare il compenso.");
}
}
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public boolean isSospensioneIrpefOkPerContabil(UserContext userContext, CompensoBulk compenso) throws BusinessProcessException {
try {
CompensoComponentSession sess = (CompensoComponentSession) createComponentSession();
return sess.isSospensioneIrpefOkPerContabil(userContext, compenso);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public void ricercaDatiTrovato(ActionContext context) throws Exception {
FatturaPassivaComponentSession h;
CompensoBulk riga = (CompensoBulk) getModel();
try {
h = (FatturaPassivaComponentSession) createComponentSession("CNRDOCAMM00_EJB_FatturaPassivaComponentSession", FatturaPassivaComponentSession.class);
TrovatoBulk trovato = h.ricercaDatiTrovatoValido(context.getUserContext(), riga.getPg_trovato());
riga.setTrovato(trovato);
} catch (java.rmi.RemoteException e) {
riga.setTrovato(new TrovatoBulk());
handleException(e);
} catch (BusinessProcessException e) {
riga.setTrovato(new TrovatoBulk());
handleException(e);
} catch (Exception e) {
riga.setTrovato(new TrovatoBulk());
throw e;
}
}
/*
public Boolean isGestionePrestazioneCompensoEnabled() {
return isGestionePrestazioneCompensoEnabled;
}
private void setGestionePrestazioneCompensoEnabled(Boolean isGestionePrestazioneCompensoEnabled) {
this.isGestionePrestazioneCompensoEnabled = isGestionePrestazioneCompensoEnabled;
}
*/
public void valorizzaInfoDocEle(ActionContext context, CompensoBulk compenso) throws BusinessProcessException {
try {
CompensoComponentSession comp = (CompensoComponentSession) createComponentSession();
compenso = comp.valorizzaInfoDocEle(context.getUserContext(), compenso);
setModel(context, compenso);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
public Boolean isCigModificabile() {
return Optional.ofNullable(getModel())
.filter(CompensoBulk.class::isInstance)
.map(CompensoBulk.class::cast)
.map(compensoBulk -> {
return Optional.ofNullable(compensoBulk.getTipoTrattamento())
.filter(tipo_trattamentoBulk -> Optional.ofNullable(tipo_trattamentoBulk.getCd_trattamento()).isPresent())
.filter(tipo_trattamentoBulk -> tipo_trattamentoBulk.isTipoDebitoSiopeCommerciale())
.isPresent() &&
Optional.ofNullable(compensoBulk.getObbligazioneScadenzario())
.map(obbligazione_scadenzarioBulk -> Optional.ofNullable(obbligazione_scadenzarioBulk.getObbligazione()).isPresent())
.orElse(Boolean.FALSE) &&
Optional.ofNullable(compensoBulk.getObbligazioneScadenzario().getObbligazione())
.flatMap(obbligazioneBulk -> Optional.ofNullable(obbligazioneBulk.getContratto()))
.map(contrattoBulk -> {
return !Optional.ofNullable(contrattoBulk.getPg_contratto()).isPresent() ||
!Optional.ofNullable(contrattoBulk.getCig()).map(CigBulk::getCdCig).isPresent();
}).orElse(Boolean.TRUE);
}).orElse(Boolean.FALSE);
}
@Override
public boolean isInputReadonly() {
CompensoBulk compenso = (CompensoBulk) getModel();
if (!isViewing()) {
if (compenso != null && compenso.isPagato())
return true;
}
return super.isInputReadonly();
}
}