it.cnr.contab.compensi00.actions.CRUDCompensoAction 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.actions;
import it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk;
import it.cnr.contab.anagraf00.core.bulk.TerzoBulk;
import it.cnr.contab.anagraf00.tabrif.bulk.Codici_rapporti_inpsBulk;
import it.cnr.contab.anagraf00.tabter.bulk.RegioneBulk;
import it.cnr.contab.compensi00.bp.CRUDCompensoBP;
import it.cnr.contab.compensi00.docs.bulk.CompensoBulk;
import it.cnr.contab.compensi00.docs.bulk.Contributo_ritenutaBulk;
import it.cnr.contab.compensi00.docs.bulk.Contributo_ritenuta_detBulk;
import it.cnr.contab.compensi00.docs.bulk.V_doc_cont_compBulk;
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;
import it.cnr.contab.doccont00.bp.CRUDMandatoBP;
import it.cnr.contab.doccont00.bp.CRUDReversaleBP;
import it.cnr.contab.doccont00.core.bulk.MandatoBulk;
import it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk;
import it.cnr.contab.doccont00.core.bulk.ObbligazioneOrdBulk;
import it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk;
import it.cnr.contab.doccont00.core.bulk.OptionRequestParameter;
import it.cnr.contab.doccont00.core.bulk.ReversaleBulk;
import it.cnr.contab.incarichi00.bulk.Incarichi_repertorio_annoBulk;
import it.cnr.contab.utenze00.bulk.UtenteBulk;
import it.cnr.contab.util.Utility;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.action.Forward;
import it.cnr.jada.action.HookForward;
import it.cnr.jada.action.MessageToUser;
import it.cnr.jada.bulk.OggettoBulk;
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;
/**
* Insert the type's description here.
* Creation date: (21/02/2002 16.13.08)
* @author: Roberto Fantino
*/
public class CRUDCompensoAction extends it.cnr.jada.util.action.CRUDAction {
/**
* CRUDCompensoAction constructor comment.
*/
public CRUDCompensoAction() {
super();
}
public Forward basicDoBringBackOpenObbligazioniWindow(ActionContext context, Obbligazione_scadenzarioBulk scadenza)
{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
try
{
if (scadenza==null)
return context.findDefaultForward();
CompensoBulk compenso = (CompensoBulk)bp.getModel();
TerzoBulk creditore = scadenza.getObbligazione().getCreditore();
// compenso.setCollegatoCapitoloPerTrovato(scadenza.getObbligazione().getElemento_voce().isVocePerTrovati());
if (!compenso.getTerzo().equalsByPrimaryKey(creditore) &&
!AnagraficoBulk.DIVERSI.equalsIgnoreCase(creditore.getAnagrafico().getTi_entita()))
setMessage(context, FormBP.ERROR_MESSAGE, "La scadenza selezionata deve appartenere ad un'obbligazione che ha come creditore il fornitore del compenso!");
Obbligazione_scadenzarioBulk oldScad = compenso.getObbligazioneScadenzario();
bp.elaboraScadenze(context, oldScad, scadenza);
return context.findDefaultForward();
}
catch (Throwable t)
{
it.cnr.contab.doccont00.core.bulk.IDefferUpdateSaldi defSaldiBulk = bp.getDefferedUpdateSaldiParentBP().getDefferedUpdateSaldiBulk();
if (scadenza.getObbligazione().getPg_ver_rec().equals((Long)scadenza.getObbligazione().getSaldiInfo().get("pg_ver_rec")))
defSaldiBulk.removeFromDefferredSaldi(scadenza.getObbligazione());
try
{
it.cnr.contab.doccont00.bp.CRUDVirtualObbligazioneBP.rollbackToSafePoint(context);
}
catch (Exception e)
{
handleException(context, e);
}
return handleException(context, t);
}
}
/**
* Gestisce una richiesta di ricerca.
*
* L'implementazione di default utilizza il metodo astratto read
* di CRUDBusinessProcess.
* Se la ricerca fornisce più di un risultato viene creato un
* nuovo SelezionatoreListaBP per la selezione di un elemento.
* Al business process viene anche chiesto l'elenco delle colonne da
* visualizzare.
*/
protected Forward basicDoCerca(ActionContext context) throws java.rmi.RemoteException,InstantiationException,javax.ejb.RemoveException {
try {
fillModel(context);
it.cnr.jada.util.action.CRUDBP bp = getBusinessProcess(context);
it.cnr.jada.bulk.OggettoBulk model = (it.cnr.jada.bulk.OggettoBulk)bp.getModel();
it.cnr.jada.util.RemoteIterator ri = bp.find(context,null,model);
if (ri == null || ri.countElements() == 0) {
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context,ri);
bp.setMessage("La ricerca non ha fornito alcun risultato.");
return context.findDefaultForward();
//} else if (ri.countElements() == 1) {
//it.cnr.jada.bulk.OggettoBulk bulk = (it.cnr.jada.bulk.OggettoBulk)ri.nextElement();
//return basicDoRiportaSelezione(context, bulk);
} else {
bp.setModel(context,model);
it.cnr.jada.util.action.SelezionatoreListaBP nbp = (it.cnr.jada.util.action.SelezionatoreListaBP)context.createBusinessProcess("Selezionatore");
nbp.setIterator(context,ri);
nbp.setBulkInfo(bp.getBulkInfo());
nbp.setColumns(getBusinessProcess(context).getSearchResultColumns());
context.addHookForward("seleziona",this,"doRiportaSelezione");
return context.addBusinessProcess(nbp);
}
} catch(Throwable e) {
return handleException(context,e);
}
}
/**
* Gestisce un comando di cancellazione.
*/
private Forward basicDoEliminaCompenso(ActionContext context) {
try{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
bp.delete(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
CompensoComponentSession session = (CompensoComponentSession)bp.createComponentSession();
if (session.isCompensoAnnullato(context.getUserContext(), compenso)){
bp.edit(context, compenso);
bp.setMessage("Annullamento effettuato");
}else{
bp.reset(context);
bp.setMessage("Cancellazione effettuata");
}
return context.findDefaultForward();
}catch(Throwable ex){
return handleException(context, ex);
}
}
public Forward doVerificaEsistenzaTrovato(ActionContext context) {
try {
fillModel( context );
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
bp.ricercaDatiTrovato(context);
} catch (Exception e) {
return handleException(context, e);
}
return context.findDefaultForward();
// try {
// CRUDFatturaPassivaBP bp = (CRUDFatturaPassivaBP)getBusinessProcess(context);
// Fattura_passivaBulk fattura = (Fattura_passivaBulk)bp.getModel();
// java.sql.Timestamp dataEmissione = fattura.getDt_fattura_fornitore();
// try {
// fillModel( context );
// if (!bp.isSearching())
// fattura.validateDate();
// creaEsercizioPerFatturaFornitore(context, fattura);
//
// return context.findDefaultForward();
// } catch(Throwable e) {
// fattura.setDt_fattura_fornitore(dataEmissione);
// bp.setModel(context,fattura);
// throw e;
// }
// } catch(Throwable e) {
// return handleException(context, e);
// }
}
private Forward basicDoLoadDocContAssociati(ActionContext context) throws BusinessProcessException{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (!compenso.STATO_PAGATO.equals(compenso.getStato_cofi()) || compenso.getDocContAssociati()!=null)
return context.findDefaultForward();
bp.loadDocContAssociati(context);
return context.findDefaultForward();
}
/**
* Gestisce un HookForward di ritorno da un risultato di una ricerca (SelezionatoreBP)
*/
protected Forward basicDoRiportaSelezione(ActionContext context, it.cnr.jada.bulk.OggettoBulk selezione) throws java.rmi.RemoteException {
try {
if (selezione != null) {
CRUDCompensoBP bp = (CRUDCompensoBP)context.getBusinessProcess();
bp.edit(context,selezione);
selezione = bp.getModel();
//if (!CompensoBulk.COMPLETAMENTE_RIPORTATO.equalsIgnoreCase(((CompensoBulk)selezione).getRiportata()))
//throw new it.cnr.jada.comp.ApplicationException("Il documento amministrativo risulta riportato! Operazione annullata.");
// Borriello: integrazione Err. CNR 775
Integer esScriv = it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext());
if ( (((CompensoBulk)selezione).getEsercizio().compareTo(esScriv) == 0) && ((CompensoBulk)selezione).isRiportata()){
throw new it.cnr.jada.comp.ApplicationException("Il documento amministrativo risulta (parzialmente) riportato! Operazione annullata.");
}
// Nuova gestione dello stato getRiportata()
if ( (((CompensoBulk)selezione).getEsercizio().compareTo(esScriv) != 0) && (!CompensoBulk.COMPLETAMENTE_RIPORTATO.equalsIgnoreCase(((CompensoBulk)selezione).getRiportataInScrivania())) ){
throw new it.cnr.jada.comp.ApplicationException("Il documento amministrativo non risulta completamente riportato! Operazione annullata.");
}
eliminaCompensoClone(context, (CompensoBulk)selezione);
context.closeBusinessProcess();
HookForward forward = (HookForward)context.findForward("bringback");
forward.addParameter("documentoAmministrativoSelezionato", selezione);
return forward;
}
} catch(Throwable e) {
return handleException(context,e);
}
return context.findDefaultForward();
}
private Forward basicDoVisualizzaMandato(ActionContext context, MandatoBulk mandato) throws BusinessProcessException{
CRUDMandatoBP mandatoBP = (CRUDMandatoBP)context.getUserInfo().createBusinessProcess(context,"CRUDMandatoBP",new Object[] { "VRSWTh" });
mandatoBP.edit(context, mandato);
return context.addBusinessProcess(mandatoBP);
}
private Forward basicDoVisualizzaMandatoReversale(ActionContext context, V_doc_cont_compBulk docCont) throws BusinessProcessException{
Forward fwd = null;
if (docCont.TIPO_DOC_CONT_MANDATO.equals(docCont.getTipo_doc_cont()))
fwd = basicDoVisualizzaMandato(context, (MandatoBulk)docCont.getManRev());
if (docCont.TIPO_DOC_CONT_REVERSALE.equals(docCont.getTipo_doc_cont()))
fwd = basicDoVisualizzaReversale(context, (ReversaleBulk)docCont.getManRev());
if (fwd==null)
return context.findDefaultForward();
return fwd;
}
private Forward basicDoVisualizzaReversale(ActionContext context, ReversaleBulk reversale) throws BusinessProcessException{
CRUDReversaleBP reversaleBP = (CRUDReversaleBP)context.getUserInfo().createBusinessProcess(context,"CRUDReversaleBP",new Object[] { "VRSWTh" });
reversaleBP.edit(context, reversale);
return context.addBusinessProcess(reversaleBP);
}
public Forward doAnnullaModificaCORI(ActionContext context){
try {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
bp.getContributiCRUDController().setModelIndex(context, -1);
return context.findDefaultForward();
} catch(Throwable ex) {
return handleException(context, ex);
}
}
/**
* Gestisce un comando "riporta".
*/
public Forward doAnnullaRiporta(ActionContext context) {
try{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
bp.rollbackToSavePoint(context, "COMP_DA_DOC_AMM_UNDO_SP");
return super.doAnnullaRiporta(context);
}catch(Throwable ex){
return handleException(context, ex);
}
}
private void doAzzeraTipoRapporto(ActionContext context, CompensoBulk compenso) {
if (compenso!=null){
compenso.setTipiRapporto(null);
compenso.setTipoRapporto(null);
doAzzeraTipoTrattamento(context , compenso);
}
}
private void doAzzeraTipoTrattamento(ActionContext context, CompensoBulk compenso) {
if (compenso!=null){
compenso.setTipiTrattamento(null);
compenso.setTipoTrattamento(null);
compenso.setTipiPrestazioneCompenso(null);
compenso.setTipoPrestazioneCompenso(null);
compenso.resetDatiLiquidazione();
}
}
public Forward doBlankSearchFind_regione_irap(ActionContext context, CompensoBulk compenso) {
if (compenso!=null){
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
compenso.setRegioneIrap(new RegioneBulk());
compenso.setStatoCompensoToEseguiCalcolo();
bp.setDirty(true);
}
return context.findDefaultForward();
}
public Forward doBlankSearchFind_terzo(ActionContext context, CompensoBulk compenso) {
if (compenso!=null){
V_terzo_per_compensoBulk v_terzo = new V_terzo_per_compensoBulk();
compenso.setV_terzo(v_terzo);
compenso.setCd_terzo(null);
compenso.setNome(null);
compenso.setCognome(null);
compenso.setRagione_sociale(null);
compenso.setPartita_iva(null);
compenso.setCodice_fiscale(null);
compenso.setPg_comune_add(null);
compenso.setCd_provincia_add(null);
compenso.setCd_regione_add(null);
compenso.setTermini(null);
compenso.setTerminiPagamento(null);
compenso.setModalita(null);
compenso.setModalitaPagamento(null);
compenso.setBanca(null);
compenso.setTipiRapporto(null);
compenso.setTipoRapporto(null);
compenso.setTipiTrattamento(null);
compenso.setTipoTrattamento(null);
compenso.setTipoPrestazioneCompenso(null);
compenso.setCodici_rapporti_inps(null);
compenso.setVisualizzaCodici_rapporti_inps(false);
compenso.setCodici_attivita_inps(null);
compenso.setVisualizzaCodici_attivita_inps(false);
compenso.setCodici_altra_forma_ass_inps(null);
compenso.setVisualizzaCodici_altra_forma_ass_inps(false);
compenso.setComune_inps(null);
compenso.setIncarichi_repertorio_anno(null);
compenso.setContratto(null);
compenso.setOggetto_contratto(null);
compenso.setPignorato(null);
compenso.setVisualizzaPignorato(false);
compenso.setStatoCompensoToEseguiCalcolo();
}
return context.findDefaultForward();
}
public Forward doBlankSearchCodici_rapporti_inps(ActionContext context, CompensoBulk compenso) {
if (compenso!=null){
compenso.setCodici_rapporti_inps(new Codici_rapporti_inpsBulk());
compenso.setCodici_attivita_inps(null);
compenso.setVisualizzaCodici_attivita_inps(false);
}
return context.findDefaultForward();
}
public Forward doBlankSearchFind_tipologia_rischio(ActionContext context, CompensoBulk compenso) {
if (compenso!=null){
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
compenso.setTipologiaRischio(new Tipologia_rischioBulk());
compenso.setStatoCompensoToEseguiCalcolo();
bp.setDirty(true);
}
return context.findDefaultForward();
}
public Forward doBlankSearchFind_voce_iva(ActionContext context, CompensoBulk compenso) {
if (compenso!=null){
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
compenso.setVoceIva(new Voce_ivaBulk());
compenso.setStatoCompensoToEseguiCalcolo();
bp.setDirty(true);
}
return context.findDefaultForward();
}
public Forward doBringBackCORIDett(ActionContext context) {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
bp.getContributiCRUDController().getSelection().clear();
bp.getContributiCRUDController().setModelIndex(context, -1);
return context.findDefaultForward();
}
public Forward doBringBackOpenObbligazioniWindow(ActionContext context) {
try {
HookForward caller = (HookForward)context.getCaller();
Obbligazione_scadenzarioBulk obblig = (Obbligazione_scadenzarioBulk)caller.getParameter("bringback");
if (obblig!=null)
return basicDoBringBackOpenObbligazioniWindow(context, obblig);
return context.findDefaultForward();
} catch(Throwable ex) {
return handleException(context, ex);
}
}
public Forward doBringBackRicercaObbligazioniWindow(ActionContext context) {
try {
HookForward caller = (HookForward)context.getCaller();
Obbligazione_scadenzarioBulk obblig = (Obbligazione_scadenzarioBulk)caller.getParameter("obbligazioneSelezionata");
return basicDoBringBackOpenObbligazioniWindow(context, obblig);
} catch(Throwable ex) {
return handleException(context, ex);
}
}
public Forward doBringBackSearchFind_regione_irap(ActionContext context, CompensoBulk compenso, RegioneBulk reg) {
if (reg!=null){
CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
compenso.setRegioneIrap(reg);
compenso.setStatoCompensoToEseguiCalcolo();
bp.setDirty(true);
}
return context.findDefaultForward();
}
public Forward doBringBackSearchFind_terzo(ActionContext context, CompensoBulk compenso, V_terzo_per_compensoBulk vTerzo) {
try {
if(vTerzo != null) {
doBlankSearchFind_terzo(context, compenso);
CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
bp.completaTerzo(context, compenso, vTerzo);
((CompensoBulk)bp.getModel()).setStatoCompensoToEseguiCalcolo();
}
return context.findDefaultForward();
} catch(BusinessProcessException e) {
return handleException(context,e);
}
}
public Forward doBringBackSearchFind_tipologia_rischio(ActionContext context, CompensoBulk compenso, Tipologia_rischioBulk rischio) {
if (rischio!=null){
CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
compenso.setTipologiaRischio(rischio);
compenso.setStatoCompensoToEseguiCalcolo();
bp.setDirty(true);
}
return context.findDefaultForward();
}
public Forward doBringBackSearchFind_voce_iva(ActionContext context, CompensoBulk compenso, Voce_ivaBulk voce) {
if (voce!=null){
CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
compenso.setVoceIva(voce);
compenso.setStatoCompensoToEseguiCalcolo();
bp.setDirty(true);
}
return context.findDefaultForward();
}
/**
* Gestisce una richiesta di ricerca.
*
* L'implementazione di default utilizza il metodo astratto read
* di CRUDBusinessProcess.
* Se la ricerca fornisce più di un risultato viene creato un
* nuovo SelezionatoreListaBP per la selezione di un elemento.
* Al business process viene anche chiesto l'elenco delle colonne da
* visualizzare.
*/
public Forward doCerca(ActionContext context) throws java.rmi.RemoteException,InstantiationException,javax.ejb.RemoveException {
CRUDCompensoBP bp = (CRUDCompensoBP)context.getBusinessProcess();
if (bp instanceof IDocumentoAmministrativoSpesaBP && ((IDocumentoAmministrativoSpesaBP)bp).isSpesaBP())
return basicDoCerca(context);
return super.doCerca(context);
}
public Forward doConfermaModificaCORI(ActionContext context){
try {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (compenso.isStatoCompensoEseguiCalcolo()){
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "E' necessario eseguire il calcolo");
return context.findDefaultForward();
}
fillModel(context);
bp.doConfermaModificaCORI(context);
impostaStatoCompenso(context);
return context.findDefaultForward();
} catch(Throwable ex) {
return handleException(context, ex);
}
}
/**
* Significato dei codici di errore:
* --> 1 terzo non valido
* --> 2 tipo rapporto non valido
* --> 3 tipo trattamento non valido
*
*
**/
public Forward doConfermaModificaDataCompetenzaCoge(ActionContext context, OptionBP optionBP){
try{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
java.sql.Timestamp oldDataCompCoge = (java.sql.Timestamp)optionBP.getAttribute("oldDataCompCoge");
int errorCodeTerzo = ((Integer)optionBP.getAttribute("errorCodeTerzo")).intValue();
if (optionBP.getOption() == OptionBP.YES_BUTTON){
compenso.setStatoCompensoToEseguiCalcolo();
switch (errorCodeTerzo) {
case 6: {
doAzzeraTipoRapporto(context, compenso);
bp.findTipiRapporto(context);
break;
}
}
}else
compenso.setDt_da_competenza_coge(oldDataCompCoge);
return context.findDefaultForward();
}catch(Throwable ex){
return handleException(context, ex);
}
}
/**
* Significato dei codici di errore:
* --> 1 terzo non valido
* --> 2 tipo rapporto non valido
* --> 3 tipo trattamento non valido
*
*
**/
public Forward doConfermaModificaDataRegistrazione(ActionContext context, OptionBP optionBP){
try{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
java.sql.Timestamp oldDataReg= (java.sql.Timestamp)optionBP.getAttribute("dataReg");
int errorCodeTerzo = ((Integer)optionBP.getAttribute("errorCodeTerzo")).intValue();
if (optionBP.getOption() == OptionBP.YES_BUTTON){
compenso.setStatoCompensoToEseguiCalcolo();
switch (errorCodeTerzo) {
case 2: {
doBlankSearchFind_terzo(context, compenso);
break;
}case 8: {
doAzzeraTipoTrattamento(context, compenso);
bp.findTipiTrattamento(context);
break;
}
}
}else
compenso.setDt_registrazione(oldDataReg);
return context.findDefaultForward();
}catch(Throwable ex){
return handleException(context, ex);
}
}
/**
* Gestisce un comando "close".
*/
public Forward doConfirmCloseForm(ActionContext context, int option) throws BusinessProcessException {
if (option == OptionBP.YES_BUTTON) {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
bp.rollbackToSavePoint(context, "COMP_DA_DOC_AMM_UNDO_SP");
context.closeBusinessProcess();
HookForward closeForward = (HookForward)context.findForward("close");
if (closeForward != null)
return closeForward;
}
return context.findDefaultForward();
}
public Forward doContabilizzaCompensoCOFI(ActionContext context){
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (bp.isDirty()){
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Sono state effettuate delle modifiche. Prima di proseguire e' necessario salvare.");
return context.findDefaultForward();
}
if (compenso.getFl_compenso_mcarriera_tassep())
{
if (!compenso.getMinicarriera().getEsercizio().equals(it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext())))
{
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Poichè la Minicarriera è a tassazione separata, l'esercizio della Minicarriera deve essere uguale a quello del pagamento.");
return context.findDefaultForward();
}
}
if (!compenso.getFl_compenso_mcarriera_tassep())
{
if (!bp.isAccontoAddComOkPerContabil(context.getUserContext(), compenso))
{
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Per un corretto calcolo dell'Acconto dell'Addizionale Comunale, prima di proseguire e' necessario eseguire nuovamente il calcolo del compenso.");
compenso.setStatoCompensoToEseguiCalcolo();
return context.findDefaultForward();
}
}
if (compenso.getTipoTrattamento().getFl_utilizzabile_art35())
{
if (compenso.getPartita_iva() == null)
{
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Per la tipologia di trattamento utilizzata è necessario che il Terzo abbia la Partita Iva (Art.35 DL n.223/2006).");
return context.findDefaultForward();
}
if (compenso.getCodice_fiscale() == null)
{
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Per la tipologia di trattamento utilizzata è necessario che il Terzo abbia il Codice Fiscale valorizzato.");
return context.findDefaultForward();
}
if (!compenso.getFl_generata_fattura())
{
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Per la tipologia di trattamento utilizzata è necessaria la generazione della fattura (Art.35 DL n.223/2006).");
return context.findDefaultForward();
}
if (!bp.isCompensoValidoXContabil(context,compenso))
{
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Compenso non valido (Art.35 DL n.223/2006).");
return context.findDefaultForward();
}
}
if (bp.isIncaricoRequired(context, compenso) && (compenso.getIncarichi_repertorio_anno()==null || compenso.getIncarichi_repertorio_anno().getCrudStatus()== OggettoBulk.UNDEFINED))
{
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Inserire il contratto.");
return context.findDefaultForward();
}
if (compenso.isContrattoEnabled() && (compenso.getContratto()==null || compenso.getContratto().getCrudStatus()== OggettoBulk.UNDEFINED))
{
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Inserire il contratto.");
return context.findDefaultForward();
}
if (!compenso.getFl_compenso_conguaglio())
{
if (!bp.isSospensioneIrpefOkPerContabil(context.getUserContext(), compenso))
{
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Per un corretto calcolo della Sospensione IRPEF, prima di proseguire e' necessario eseguire nuovamente il calcolo del compenso.");
compenso.setStatoCompensoToEseguiCalcolo();
return context.findDefaultForward();
}
}
// else
// {
// if (!bp.isSospensioneIrpefOkPerContabil(context.getUserContext(), compenso))
// {
// setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Per un corretto calcolo della Sospensione IRPEF, prima di proseguire e' necessario eliminare il conguaglio ed elaborarlo nuovamente.");
// return context.findDefaultForward();
// }
// }
bp.contabilizzaCompensoCOFI(context);
((CompensoBulk)bp.getModel()).setStatoCompensoToContabilizzaCofi();
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Contabilizzazione eseguita in modo corretto.");
return context.findDefaultForward();
}catch(Throwable ex){
return handleException(context, ex);
}
}
public Forward doCreaObbligazione(ActionContext context){
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
context.addHookForward("bringback",this,"doBringBackOpenObbligazioniWindow");
context.addHookForward("close",this,"doBringBackOpenObbligazioniWindow");
it.cnr.contab.doccont00.bp.CRUDObbligazioneBP obbligazioneBP = (it.cnr.contab.doccont00.bp.CRUDObbligazioneBP)context.getUserInfo().createBusinessProcess(context,"CRUDObbligazioneBP",new Object[] { "MRSWTh" });
obbligazioneBP.reset(context);
ObbligazioneBulk obbligazione = (ObbligazioneBulk)obbligazioneBP.getModel();
obbligazione.setStato_obbligazione(ObbligazioneOrdBulk.STATO_OBB_DEFINITIVO);
obbligazione.setCreditore(compenso.getTerzo()!=null?compenso.getTerzo():new it.cnr.contab.anagraf00.core.bulk.TerzoBulk());
obbligazione.setDs_obbligazione("Impegno per compenso");
obbligazione.setDt_registrazione(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate());
obbligazione.setFl_calcolo_automatico(Boolean.TRUE);
obbligazione.setIm_obbligazione(compenso.getImportoObbligazione());
obbligazione.setRiportato("N");
Obbligazione_scadenzarioBulk scadenza = new Obbligazione_scadenzarioBulk(obbligazione);
obbligazione.addToObbligazione_scadenzarioColl(scadenza);
scadenza.setDs_scadenza("Scadenza per compenso");
scadenza.setDt_scadenza(new java.sql.Timestamp(System.currentTimeMillis()));
scadenza.setIm_scadenza(compenso.getImportoObbligazione());
scadenza.setUser(obbligazione.getUser());
scadenza.setToBeCreated();
return context.addBusinessProcess(obbligazioneBP);
} catch(Throwable ex) {
return handleException(context, ex);
}
}
/**
* Gestisce un comando di cancellazione.
*/
public Forward doElimina(ActionContext context) throws java.rmi.RemoteException {
try {
fillModel(context);
} catch(it.cnr.jada.bulk.FillException e) {
return handleException(context,e);
}
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
return basicDoEliminaCompenso(context);
}
public Forward doEliminaObbligazione(ActionContext context){
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = bp.doEliminaObbligazione(context);
if (compenso.getImportoObbligazione().compareTo(new java.math.BigDecimal(0))<=0)
compenso.setStatoCompensoToObbligazioneSincronizzata();
else
compenso.setStatoCompensoToSincronizzaObbligazione();
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Impegno scollegato.");
return context.findDefaultForward();
} catch(Throwable ex) {
return handleException(context, ex);
}
}
/**
* Azione che si scatena al clicked del bottone ESEGUI CALCOLO
*
* Chiama la Procedura Oracle e eseguo le seguenti operazioni:
* 1. Importo Lordo <= 0 e non esiste obblig.
* --> imposto STATO_COMPENSO_OBBLIGAZIONE_SINCORNIZZATA
* 2. Importo Lordo <= 0 e esiste obblig.
* --> Elimino obbligazione e imposto STATO_COMPENSO_OBBLIGAZIONE_SINCORNIZZATA
* 3. Importo Lordo > 0 e esiste obblig. con importo uguale a importo lordo compenso
* --> imposto STATO_COMPENSO_OBBLIGAZIONE_SINCORNIZZATA
* 4. Importo Lordo > 0 e non esiste obblig. oppure obblig. ha importo diverso da importo lordo compenso
* --> imposto STATO_COMPENSO_SINCORNIZZA_OBBLIGAZIONE
*
**/
public Forward doEseguiCalcolo(ActionContext context){
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
bp.completeSearchTools(context,bp);
bp.eseguiCalcolo(context);
impostaStatoCompenso(context);
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Calcolo eseguito in modo corretto.");
return context.findDefaultForward();
}catch(Throwable ex){
return handleException(context, ex);
}
}
public Forward doLoadDocContAssociati(ActionContext context) {
try{
return basicDoLoadDocContAssociati(context);
}catch(BusinessProcessException ex){
return handleException(context, ex);
}
}
public Forward doModificaAutomaticaObbligazione(ActionContext context) {
try {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
fillModel(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
Obbligazione_scadenzarioBulk scadenza = (Obbligazione_scadenzarioBulk)compenso.getObbligazioneScadenzario();
if (scadenza == null)
throw new it.cnr.jada.comp.ApplicationException("Operazione non consentita! Obbligazione inesistente");
it.cnr.contab.doccont00.ejb.ObbligazioneAbstractComponentSession h = it.cnr.contab.doccont00.bp.CRUDVirtualObbligazioneBP.getVirtualComponentSession(context, true);
try {
if ( scadenza.getIm_scadenza().compareTo(compenso.getImportoObbligazione()) == 0 )
compenso.setStatoCompensoToObbligazioneSincronizzata();
scadenza = (Obbligazione_scadenzarioBulk)h.modificaScadenzaInAutomatico(context.getUserContext(), scadenza, compenso.getImportoObbligazione(), false);
bp.getDefferedUpdateSaldiParentBP().getDefferedUpdateSaldiBulk().addToDefferredSaldi(
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);
} catch (it.cnr.jada.comp.ComponentException e) {
if (e.getDetail() instanceof it.cnr.contab.doccont00.comp.CheckDisponibilitaCassaFailed)
throw new it.cnr.jada.comp.ApplicationException(e.getDetail().getMessage());
if (e.getDetail() instanceof it.cnr.contab.doccont00.comp.SfondamentoPdGException)
throw new it.cnr.jada.comp.ApplicationException(e.getDetail().getMessage());
throw e;
}
return context.findDefaultForward();
} catch(Throwable ex) {
return handleException(context, ex);
}
}
public Forward doModificaManualeObbligazione(ActionContext context){
try {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
fillModel(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (compenso.isStatoCompensoEseguiCalcolo())
throw new it.cnr.jada.comp.ApplicationException("E' necessario eseguire il calcolo prima di continuare.");
Obbligazione_scadenzarioBulk scadenza = (Obbligazione_scadenzarioBulk)compenso.getObbligazioneScadenzario();
boolean viewMode = bp.isViewing();
if (scadenza == null)
throw new it.cnr.jada.comp.ApplicationException("Operazione non consentita. Obbligazione inesistente.");
if(compenso.isROPerChiusura())
viewMode = true;
String status = viewMode ?"V":"M";
it.cnr.contab.doccont00.bp.CRUDVirtualObbligazioneBP nbp = it.cnr.contab.doccont00.bp.CRUDVirtualObbligazioneBP.getBusinessProcessFor(context, scadenza.getObbligazione(), status + "RSWTh");
nbp.edit(context,scadenza.getObbligazione());
nbp.selezionaScadenza(scadenza, context);
context.addHookForward("bringback",this,"doBringBackOpenObbligazioniWindow");
context.addHookForward("close",this,"doBringBackRicercaObbligazioniWindow");
HookForward hook = (HookForward)context.findForward("bringback");
return context.addBusinessProcess(nbp);
} catch(Throwable ex) {
return handleException(context, ex);
}
}
public Forward doOnCheckDisponibilitaCassaFailed(ActionContext context, int option) {
if (option == it.cnr.jada.util.action.OptionBP.OK_BUTTON) {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
try {
boolean modified = fillModel(context);
OptionRequestParameter userConfirmation = new OptionRequestParameter();
userConfirmation.setCheckDisponibilitaDiCassaRequired(Boolean.FALSE);
bp.setUserConfirm(userConfirmation);
if (bp.isBringBack())
doConfermaRiporta(context, it.cnr.jada.util.action.OptionBP.OK_BUTTON);
else
doSalva(context);
} catch(Throwable e) {
return handleException(context,e);
}
}
return context.findDefaultForward();
}
/**
* Metodo utilizzato per gestire la conferma dell'inserimento/modifica di una obbligazione che ha sfondato
* la disponibilità per il contratto
* @param context ActionContext in uso.
* @param option Esito della risposta alla richiesta di sfondamento
*
* @return Forward
*
* @exception RemoteException
*
*/
public Forward doOnCheckDisponibilitaContrattoFailed( ActionContext context, int option) {
if (option == it.cnr.jada.util.action.OptionBP.OK_BUTTON){
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
try
{
boolean modified = fillModel(context);
OptionRequestParameter userConfirmation = new OptionRequestParameter();
userConfirmation.setCheckDisponibilitaContrattoRequired(Boolean.FALSE);
bp.setUserConfirm(userConfirmation);
if (bp.isBringBack())
doConfermaRiporta(context, it.cnr.jada.util.action.OptionBP.OK_BUTTON);
else
doSalva(context);
}
catch(Throwable e){
return handleException(context,e);
}
}
return context.findDefaultForward();
}
public Forward doOnDtACompetenzaCogeChange(ActionContext context) {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
java.sql.Timestamp oldDataCompCoge = compenso.getDt_a_competenza_coge();
java.sql.Timestamp competenzaABck = compenso.getDt_a_competenza_coge();
try{
try {
fillModel(context);
if (bp.isSearching())
return context.findDefaultForward();
if (compenso.getDt_a_competenza_coge() == null)
throw new it.cnr.jada.comp.ApplicationException("Non è possibile annullare la data di competenza");
GregorianCalendar data_a = (GregorianCalendar) GregorianCalendar.getInstance();
GregorianCalendar old_data_a = (GregorianCalendar) GregorianCalendar.getInstance();
data_a.setTime(((CompensoBulk)bp.getModel()).getDt_a_competenza_coge());
if (oldDataCompCoge!=null)
old_data_a.setTime(oldDataCompCoge);
int annoCompetenzaA = data_a.get(java.util.GregorianCalendar.YEAR);
int annoOldCompetenzaA = old_data_a.get(java.util.GregorianCalendar.YEAR);
if (bp.isTerzoCervellone(context.getUserContext(),(CompensoBulk)bp.getModel()) &&
annoCompetenzaA != annoOldCompetenzaA)
{
((CompensoBulk)bp.getModel()).setDt_a_competenza_coge(oldDataCompCoge);
throw new it.cnr.jada.comp.ApplicationException("Operazione non consentita. Non è possibile cambiare l'anno di competenza poichè il Terzo scelto potrebbe essere soggetto ad Agevolazioni per 'Rientro dei Cervelli'.");
}
//r.p. 20/10/2008 commentato perchè non vengono valorizzate in automatico data inizio e fine competenze
//compenso.validaDate();
} catch(it.cnr.jada.bulk.FillException e) {
compenso.setDt_a_competenza_coge(oldDataCompCoge);
throw e;
} catch(it.cnr.jada.comp.ApplicationException e) {
compenso.setDt_a_competenza_coge(oldDataCompCoge);
throw e;
}
int errorCodeTerzo = bp.validaTerzo(context, false);
if (errorCodeTerzo==6){
String msg = null;
switch (errorCodeTerzo) {
case 6: {
msg = "Il tipo rapporto selezionato non è più valido! I dati verranno persi. Vuoi continuare?";
break;
}
}
OptionBP option = openConfirm(context, msg , OptionBP.CONFIRM_YES_NO,"doConfermaModificaDataCompetenzaCoge");
option.addAttribute("oldDataCompCoge", oldDataCompCoge);
option.addAttribute("errorCodeTerzo", new Integer(errorCodeTerzo));
return option;
}
((CompensoBulk)bp.getModel()).setStatoCompensoToEseguiCalcolo();
bp.findTipiRapporto(context);
bp.ripristinaSelezioneTipoRapporto();
java.sql.Timestamp CompetenzaA = compenso.getDt_a_competenza_coge();
java.util.GregorianCalendar tsOdiernoGregorian = new GregorianCalendar();
tsOdiernoGregorian.setTime(new Date(CompetenzaA.getTime()));
Integer esercizioCompetenzaA = new Integer (tsOdiernoGregorian.get(java.util.GregorianCalendar.YEAR));
String cds = compenso.getCd_cds();
if (((CompensoComponentSession)bp.createComponentSession()).isEsercizioChiusoPerDataCompetenza(context.getUserContext(),esercizioCompetenzaA,cds))
throw new it.cnr.jada.comp.ApplicationException("Le date \"Competenza da\" e \"Competenza a\" non possono appartenere ad un esercizio chiuso");
compenso.setStatoCompensoToEseguiCalcolo();
return context.findDefaultForward();
} catch(Throwable e) {
compenso.setDt_a_competenza_coge(competenzaABck);
return handleException(context, e);
}
}
public Forward doOnDtDaCompetenzaCogeChange(ActionContext context) {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
java.sql.Timestamp oldDataCompCoge = compenso.getDt_da_competenza_coge();
java.sql.Timestamp competenzaDaBck = compenso.getDt_da_competenza_coge();
try {
fillModel(context);
if (bp.isSearching())
return context.findDefaultForward();
if (compenso.getDt_da_competenza_coge() == null)
throw new it.cnr.jada.comp.ApplicationException("Non è possibile annullare la data di competenza");
GregorianCalendar data_da = (GregorianCalendar) GregorianCalendar.getInstance();
GregorianCalendar old_data_da = (GregorianCalendar) GregorianCalendar.getInstance();
data_da.setTime(((CompensoBulk)bp.getModel()).getDt_da_competenza_coge());
if (oldDataCompCoge!=null)
old_data_da.setTime(oldDataCompCoge);
int annoCompetenzaDa = data_da.get(java.util.GregorianCalendar.YEAR);
int annoOldCompetenzaDa = old_data_da.get(java.util.GregorianCalendar.YEAR);
if (bp.isTerzoCervellone(context.getUserContext(),(CompensoBulk)bp.getModel()) &&
annoCompetenzaDa != annoOldCompetenzaDa)
{
((CompensoBulk)bp.getModel()).setDt_da_competenza_coge(oldDataCompCoge);
throw new it.cnr.jada.comp.ApplicationException("Operazione non consentita. Non è possibile cambiare l'anno di competenza poichè il Terzo scelto potrebbe essere soggetto ad Agevolazioni per 'Rientro dei Cervelli'.");
}
//r.p. 20/10/2008 commentato perchè non vengono valorizzate in automatico data inizio e fine competenze
/*try{
((CompensoBulk)bp.getModel()).validaDate();
} catch(it.cnr.jada.comp.ApplicationException e) {
((CompensoBulk)bp.getModel()).setDt_da_competenza_coge(oldDataCompCoge);
throw e;
}*/
int errorCodeTerzo = bp.validaTerzo(context, false);
if (errorCodeTerzo==6){
String msg = null;
switch (errorCodeTerzo) {
case 6: {
msg = "Il tipo rapporto selezionato non è più valido! I dati verranno persi. Vuoi continuare?";
break;
}
}
OptionBP option = openConfirm(context, msg , OptionBP.CONFIRM_YES_NO,"doConfermaModificaDataCompetenzaCoge");
option.addAttribute("oldDataCompCoge", oldDataCompCoge);
option.addAttribute("errorCodeTerzo", new Integer(errorCodeTerzo));
return option;
}
((CompensoBulk)bp.getModel()).setStatoCompensoToEseguiCalcolo();
bp.findTipiRapporto(context);
bp.ripristinaSelezioneTipoRapporto();
java.sql.Timestamp CompetenzaDa = compenso.getDt_da_competenza_coge();
java.util.GregorianCalendar tsOdiernoGregorian = new GregorianCalendar();
tsOdiernoGregorian.setTime(new Date(CompetenzaDa.getTime()));
Integer esercizioCompetenzaDa = new Integer (tsOdiernoGregorian.get(java.util.GregorianCalendar.YEAR));
String cds = compenso.getCd_cds();
if (((CompensoComponentSession)bp.createComponentSession()).isEsercizioChiusoPerDataCompetenza(context.getUserContext(),esercizioCompetenzaDa,cds))
throw new it.cnr.jada.comp.ApplicationException("Le date \"Competenza da\" e \"Competenza a\" non possono appartenere ad un esercizio chiuso");
return context.findDefaultForward();
}catch (Throwable ex) {
compenso.setDt_da_competenza_coge(competenzaDaBck);
return handleException(context, ex);
}
}
public Forward doOnDtRegistrazioneChange(ActionContext context) {
try {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
java.sql.Timestamp oldDataReg = ((CompensoBulk)bp.getModel()).getDt_registrazione();
fillModel(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (bp.isSearching())
return context.findDefaultForward();
try{
compenso.validaDate();
} catch(it.cnr.jada.comp.ApplicationException e) {
compenso.setDt_registrazione(oldDataReg);
throw e;
}
int errorCodeTerzo = bp.validaTerzo(context, false);
if (errorCodeTerzo==2 || errorCodeTerzo==8){
String msg = null;
switch (errorCodeTerzo) {
case 2: {
msg = "Il terzo selezionato non è più valido! I dati verranno persi. Vuoi continuare?";
break;
}case 8: {
msg = "Il tipo trattamento selezionato non è più valido! I dati verranno persi. Vuoi continuare?";
break;
}
}
OptionBP option = openConfirm(context, msg , OptionBP.CONFIRM_YES_NO,"doConfermaModificaDataRegistrazione");
option.addAttribute("dataReg", oldDataReg);
option.addAttribute("errorCodeTerzo", new Integer(errorCodeTerzo));
return option;
}
compenso.setStatoCompensoToEseguiCalcolo();
bp.valorizzaInfoDocEle(context, compenso);
compenso.resetDatiFattura();
doAzzeraTipoTrattamento(context, compenso);
bp.findTipiTrattamento(context);
bp.ripristinaSelezioneTipoTrattamento(context);
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
public Forward doOnFlSenzaCalcoliChange(ActionContext context) {
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (bp.isSearching())
return context.findDefaultForward();
compenso.setStatoCompensoToEseguiCalcolo();
doAzzeraTipoTrattamento(context, compenso);
bp.findTipiTrattamento(context);
compenso.setIncarichi_repertorio_anno(null);
compenso.setContratto(null);
compenso.setOggetto_contratto(null);
if(!compenso.getFl_generata_fattura())
compenso.resetDatiFattura();
// Puo' valere TRUE solo se il compenso è senza calcoli
if(!compenso.isSenzaCalcoli() && compenso.getFl_recupero_rate().booleanValue())
compenso.setFl_recupero_rate(Boolean.FALSE);
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
public Forward doOnFlGenerataFatturaChange(ActionContext context) {
try{
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if(!compenso.getFl_generata_fattura())
compenso.resetDatiFattura();
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
public Forward doOnFlLiquidazioneDifferitaChange(ActionContext context){
try{
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if(compenso.getFl_liquidazione_differita() && compenso.getDt_fattura_fornitore()!=null){
java.sql.Timestamp data_limite = ((it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession", it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession.class)).getDt01(context.getUserContext(), new Integer(0), "*", "COSTANTI", "LIMITE_CREAZIONE_FATT_PASS_ES_DIF");
java.sql.Timestamp data_limite_sup = ((it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession", it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession.class)).getDt02(context.getUserContext(), new Integer(0), "*", "COSTANTI", "LIMITE_CREAZIONE_FATT_PASS_ES_DIF");
if(compenso.getDt_fattura_fornitore().compareTo(data_limite)<0||compenso.getDt_fattura_fornitore().compareTo(data_limite_sup)>0){
compenso.setFl_liquidazione_differita(false);
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Non è possibile indicare la liquidazione differita con la data fattura fornitore indicata.");
}
}
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
public Forward doOnImLordoPercipienteChange(ActionContext context) {
try{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
java.math.BigDecimal oldImp = compenso.getIm_lordo_percipiente();
try {
fillModel(context);
if (Utility.nvl(compenso.getQuota_esente_inps()).compareTo(Utility.nvl(compenso.getIm_lordo_percipiente())) == 1){
compenso.setIm_lordo_percipiente(oldImp);
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "L'importo Lordo non può superare la Quota esente INPS.");
return context.findDefaultForward();
}
compenso.setStatoCompensoToEseguiCalcolo();
return context.findDefaultForward();
} catch(it.cnr.jada.bulk.FillException e) {
compenso.setIm_lordo_percipiente(oldImp);
bp.setModel(context,compenso);
throw e;
}
} catch(Throwable e) {
return handleException(context, e);
}
}
public Forward doOnQuotaEsenteINPSChange(ActionContext context) {
try{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
java.math.BigDecimal oldImp = compenso.getQuota_esente_inps();
try {
fillModel(context);
if (Utility.nvl(compenso.getQuota_esente_inps()).compareTo(Utility.nvl(compenso.getIm_lordo_percipiente())) == 1){
compenso.setQuota_esente_inps(oldImp);
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "La Quota esente INPS non può superare l'importo lordo.");
return context.findDefaultForward();
}
compenso.setStatoCompensoToEseguiCalcolo();
return context.findDefaultForward();
} catch(it.cnr.jada.bulk.FillException e) {
compenso.setQuota_esente_inps(oldImp);
bp.setModel(context,compenso);
throw e;
}
} catch(Throwable e) {
return handleException(context, e);
}
}
public Forward doOnImNoFiscaleChange(ActionContext context) {
try{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
java.math.BigDecimal oldImp = compenso.getIm_no_fiscale();
try {
fillModel(context);
compenso.setStatoCompensoToEseguiCalcolo();
return context.findDefaultForward();
} catch(it.cnr.jada.bulk.FillException e) {
compenso.setIm_no_fiscale(oldImp);
bp.setModel(context,compenso);
throw e;
}
} catch(Throwable e) {
return handleException(context, e);
}
}
public Forward doOnImponibileInailChange(ActionContext context) {
try{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
java.math.BigDecimal oldImp = compenso.getImponibile_inail();
try {
fillModel(context);
compenso.setStatoCompensoToEseguiCalcolo();
return context.findDefaultForward();
} catch(it.cnr.jada.bulk.FillException e) {
compenso.setImponibile_inail(oldImp);
bp.setModel(context,compenso);
throw e;
}
} catch(Throwable e) {
return handleException(context, e);
}
}
/**
* Alla selezione della Modalita di Pagamento ricerco le banche
*/
public Forward doOnModalitaPagamentoChange(ActionContext context) {
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
bp.findListaBanche(context);
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
public Forward doOnQuotaEsenteChange(ActionContext context) {
try{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
java.math.BigDecimal oldImp = compenso.getQuota_esente();
try {
fillModel(context);
compenso.setStatoCompensoToEseguiCalcolo();
return context.findDefaultForward();
} catch(it.cnr.jada.bulk.FillException e) {
compenso.setQuota_esente(oldImp);
bp.setModel(context,compenso);
throw e;
}
} catch(Throwable e) {
return handleException(context, e);
}
}
public Forward doOnQuotaEsenteNoIvaChange(ActionContext context) {
try{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
java.math.BigDecimal oldImp = compenso.getQuota_esente_no_iva();
try {
fillModel(context);
compenso.setStatoCompensoToEseguiCalcolo();
return context.findDefaultForward();
} catch(it.cnr.jada.bulk.FillException e) {
compenso.setQuota_esente_no_iva(oldImp);
bp.setModel(context,compenso);
throw e;
}
} catch(Throwable e) {
return handleException(context, e);
}
}
public Forward doOnTipoAnagraficoChange(ActionContext context) {
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if(bp.isSearching())
return context.findDefaultForward();
compenso.setStatoCompensoToEseguiCalcolo();
return doBlankSearchFind_terzo(context, compenso);
} catch(Exception e) {
return handleException(context,e);
}
}
public Forward doOnTipoIstituzCommercChange(ActionContext context) {
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (bp.isSearching())
return context.findDefaultForward();
compenso.setFl_liquidazione_differita(false);
compenso.setStatoCompensoToEseguiCalcolo();
doAzzeraTipoTrattamento(context, compenso);
bp.findTipiTrattamento(context);
compenso.setIncarichi_repertorio_anno(null);
compenso.setContratto(null);
compenso.setOggetto_contratto(null);
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
public Forward doOnStatoPagamentoFondoEcoChange(ActionContext context) {
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (bp.isSearching())
return context.findDefaultForward();
compenso.setFl_liquidazione_differita(false);
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
/**
* Alla selezione del Tipo Rapporto vengono caricati i relativi tipi trattamento
*/
public Forward doOnTipoRapportoChange(ActionContext context) {
try {
fillModel(context);
PostTipoRapportoChange(context);
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
/**
* Alla selezione del Tipo Trattamento imposta i dati relativi alla Liquidazione
*/
public Forward doOnTipoTrattamentoChange(ActionContext context) {
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if(!compenso.getTipoTrattamento().getFl_visibile_a_tutti()&& !UtenteBulk.isAbilitatoAllTrattamenti(context.getUserContext()))
{
doAzzeraTipoTrattamento(context, compenso);
bp.findTipiTrattamento(context);
throw new it.cnr.jada.comp.ApplicationException(
"Utente non abilitato all'utilizzo del trattamento selezionato!");
}
compenso.setTipoPrestazioneCompenso(null);
compenso.setIncarichi_repertorio_anno(null);
compenso.setImporto_utilizzato(null);
compenso.setContratto(null);
compenso.setOggetto_contratto(null);
bp.findTipiPrestazioneCompenso(context);
if (compenso.getTipoTrattamento()!=null && compenso.getTipoTrattamento().getFl_pignorato_obbl())
{
compenso.setVisualizzaPignorato(true);
compenso.setPignorato(new TerzoBulk());
}
else
{
compenso.setPignorato(null);
compenso.setVisualizzaPignorato(false);
}
bp.onTipoTrattamentoChange(context);
((CompensoBulk)bp.getModel()).setStatoCompensoToEseguiCalcolo();
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
public Forward doOnTipoPrestazioneCompensoChange(ActionContext context) {
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if(compenso.getTipoPrestazioneCompenso()== null)
{
compenso.setIncarichi_repertorio_anno(null);
compenso.setImporto_utilizzato(null);
compenso.setContratto(null);
compenso.setOggetto_contratto(null);
}
if (compenso.getTipoPrestazioneCompenso()!= null && !compenso.getTipoPrestazioneCompenso().getFl_incarico())
{
compenso.setIncarichi_repertorio_anno(null);
compenso.setImporto_utilizzato(null);
}
if (compenso.getTipoPrestazioneCompenso()!= null && !compenso.getTipoPrestazioneCompenso().getFl_contratto())
{
compenso.setContratto(null);
compenso.setOggetto_contratto(null);
}
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
public Forward doBringBackSearchCodici_rapporti_inps(ActionContext context, CompensoBulk compenso, Codici_rapporti_inpsBulk codici_rapporti_inps) throws BusinessProcessException {
if (codici_rapporti_inps!=null){
CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
compenso.setCodici_rapporti_inps(codici_rapporti_inps);
bp.onTipoRapportoInpsChange(context);
bp.setDirty(true);
}
return context.findDefaultForward();
}
/*public Forward doOnTipoRapportoInpsChange(ActionContext context) {
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
bp.onTipoRapportoInpsChange(context);
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}*/
/**
* Gestisce la creazione/ricerca di un'obbligazione
*/
public Forward doRicercaObbligazione(ActionContext context) {
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (compenso.getTerzo() == null)
throw new it.cnr.jada.comp.ApplicationException("Per eseguire questa operazione è necessario impostare un fornitore!");
Filtro_ricerca_obbligazioniVBulk filtro = new Filtro_ricerca_obbligazioniVBulk();
filtro.setFornitore(compenso.getTerzo());
filtro.setIm_importo(compenso.getImportoObbligazione());
filtro.setCd_unita_organizzativa(compenso.getCd_unita_organizzativa());
filtro.setFl_importo(Boolean.TRUE);
filtro.setData_scadenziario(null);
filtro.setFl_data_scadenziario(Boolean.FALSE);
filtro.setDs_obbligazione("Impegno per compenso");
filtro.setDs_scadenza("Scadenza per compenso");
BulkBP robp = (BulkBP)context.getUserInfo().createBusinessProcess(context,"RicercaObbligazioniBP", new Object[] { "MRSWTh" });
robp.setModel(context,filtro);
context.addHookForward("bringback",this,"doBringBackRicercaObbligazioniWindow");
return context.addBusinessProcess(robp);
} catch(Throwable e) {
return handleException(context,e);
}
}
/**
* Il metodo gestisce la selezione del bottone "Riporta avanti". Ciò implica salvare il compenso,
* riportare avanti l'obbligazione e committare
*/
public Forward doRiportaAvanti(ActionContext context) throws java.rmi.RemoteException
{
CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
try
{
fillModel(context);
bp.salvaRiportandoAvanti(context);
return context.findDefaultForward();
}
catch(it.cnr.jada.bulk.ValidationException e)
{
bp.setErrorMessage(e.getMessage());
return context.findDefaultForward();
}
catch(Throwable e)
{
return handleException(context,e);
}
}
/**
* Il metodo gestisce la selezione del bottone "Riporta indietro". Ciò implica riportare
* indietro l'obbligazione senza committare
*/
public Forward doRiportaIndietro(ActionContext context) throws java.rmi.RemoteException
{
try
{
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
bp.riportaIndietro(context);
return context.findDefaultForward();
}
catch (Throwable t)
{
return handleException(context, t);
}
}
/**
* Gestisce un HookForward di ritorno da un risultato di una ricerca (SelezionatoreBP)
*/
public Forward doRiportaSelezione(ActionContext context) throws java.rmi.RemoteException {
CRUDBP bp = (CRUDBP)context.getBusinessProcess();
if (bp instanceof IDocumentoAmministrativoSpesaBP && ((IDocumentoAmministrativoSpesaBP)bp).isSpesaBP()) {
HookForward caller = (HookForward)context.getCaller();
it.cnr.jada.bulk.OggettoBulk selezione = (it.cnr.jada.bulk.OggettoBulk)caller.getParameter("focusedElement");
return basicDoRiportaSelezione(context, selezione);
}
return super.doRiportaSelezione(context);
}
/**
* Gestisce la selezione del bottone di ricerca delle Banche
*/
public Forward doSearchListaBanche(ActionContext context) {
CompensoBulk compenso = (CompensoBulk)getBusinessProcess(context).getModel();
String columnSet = compenso.getModalitaPagamento().getTiPagamentoColumnSet();
return search(context, getFormField(context, "main.listaBanche"), columnSet);
}
/**
* Gestisce un cambiamento di pagina su un controllo tabbed {@link it.cnr.jada.util.jsp.JSPUtils.tabbed}
*/
public Forward doTab(ActionContext context,String tabName,String pageName) {
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (!bp.isSearching()){
if ("tabCompenso".equalsIgnoreCase(bp.getTab(tabName))){
compenso.validaTestata();
}
if ("tabCompensoTerzo".equalsIgnoreCase(bp.getTab(tabName))){
}
if ("tabCompensoDatiLiquidazione".equalsIgnoreCase(bp.getTab(tabName))) {
}
if ("tabCompensoContributiRitenute".equalsIgnoreCase(bp.getTab(tabName))) {
bp.getContributiCRUDController().setModelIndex(context, -1);
}
if ("tabCompensoObbligazioni".equalsIgnoreCase(bp.getTab(tabName))) {
}
if ("tabCompensoDocumentiAssociati".equalsIgnoreCase(pageName)) {
basicDoLoadDocContAssociati(context);
}
}
return super.doTab( context, tabName, pageName );
} catch(Throwable e) {
return handleException(context,e);
}
}
public Forward doVisualizzaDettagli(ActionContext context){
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
Contributo_ritenutaBulk coriBulk = (Contributo_ritenutaBulk)bp.getContributiCRUDController().getModel();
if (coriBulk==null)
throw new MessageToUser("Selezionare un contributo/ritenuta valido");
if (coriBulk.getDettagli().isEmpty())
throw new MessageToUser("Il contributo/ritenuta selezionato non ha dettagli");
it.cnr.jada.util.action.SelezionatoreListaBP slbp = (it.cnr.jada.util.action.SelezionatoreListaBP) select(
context,
new it.cnr.jada.util.ListRemoteIterator((java.util.List)coriBulk.getDettagli()),
it.cnr.jada.bulk.BulkInfo.getBulkInfo(Contributo_ritenuta_detBulk.class),
null,
"doBringBackCORIDett");
slbp.setMultiSelection(false);
slbp.disableSelection();
return slbp;
}catch(Throwable ex){
return handleException(context, ex);
}
}
public Forward doVisualizzaDocContPrincipale(ActionContext context){
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (compenso==null)
throw new MessageToUser("Non è stato creato il compenso");
V_doc_cont_compBulk docContPrincipale = compenso.getDocContPrincipale();
if (docContPrincipale == null)
throw new MessageToUser("Non esiste il documento contabile principale");
return basicDoVisualizzaMandatoReversale(context, docContPrincipale);
}catch(Throwable ex){
return handleException(context, ex);
}
}
public Forward doVisualizzaDocumentoContabile(ActionContext context){
try {
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
V_doc_cont_compBulk docCont = (V_doc_cont_compBulk)bp.getDocContAssociatiCRUDController().getModel();
if (docCont==null)
throw new MessageToUser("Selezionare un Mandato o una Reversale");
if (docCont.getManRev()==null)
throw new MessageToUser("Non esiste il Mandato/Reversale");
return basicDoVisualizzaMandatoReversale(context, docCont);
}catch(Throwable ex){
return handleException(context, ex);
}
}
private void eliminaCompensoClone(ActionContext context, CompensoBulk compenso) throws Throwable{
if (compenso != null){
Long pgCompensoClone = compenso.getPgCompensoPerClone();
if (pgCompensoClone!=null){
Long pgCompenso = compenso.getPg_compenso();
CompensoComponentSession session = (CompensoComponentSession)((CRUDCompensoBP)getBusinessProcess(context)).createComponentSession();
session.eliminaCompensoTemporaneo(context.getUserContext(), compenso, pgCompensoClone);
compenso.setPg_compenso(pgCompenso);
compenso.setPgCompensoPerClone(null);
}
}
}
private void eliminaCompensoTemporaneo(ActionContext context, CompensoBulk compenso) throws Throwable{
if (compenso != null && compenso.isTemporaneo()){
CompensoComponentSession session = (CompensoComponentSession)((CRUDCompensoBP)getBusinessProcess(context)).createComponentSession();
session.eliminaCompensoTemporaneo(context.getUserContext(), compenso, compenso.getPg_compenso());
}
}
private void impostaStatoCompenso(ActionContext context) throws BusinessProcessException{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
if (compenso.getImportoObbligazione().compareTo(new java.math.BigDecimal(0))<=0){
if (compenso.getObbligazioneScadenzario()!=null)
compenso = bp.doEliminaObbligazione(context);
compenso.setStato_cofi(compenso.STATO_CONTABILIZZATO);
compenso.setStatoCompensoToObbligazioneSincronizzata();
} else if (compenso.getObbligazioneScadenzario()!=null && compenso.getImportoObbligazione().compareTo(compenso.getObbligazioneScadenzario().getIm_scadenza())==0)
compenso.setStatoCompensoToObbligazioneSincronizzata();
else{
compenso.setStatoCompensoToSincronizzaObbligazione();
compenso.setStato_cofi(compenso.STATO_INIZIALE);
}
}
/**
* Gestisce un comando "riporta".
*/
protected Forward riporta(ActionContext context, it.cnr.jada.bulk.OggettoBulk model) {
try{
eliminaCompensoClone(context, (CompensoBulk)model);
} catch(Throwable e) {
return handleException(context,e);
}
return super.riporta(context, model);
}
public Forward doBringBackSearchIncarichi_repertorio_anno(ActionContext context, CompensoBulk compenso, Incarichi_repertorio_annoBulk incarico_anno) throws BusinessProcessException {
if(incarico_anno != null)
try
{
fillModel(context);
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
if (incarico_anno!=null)
bp.validaIncaricoAnno(context, incarico_anno);
if(compenso.getTipoRapporto()==null )
{
compenso.impostaTipoRapporto(incarico_anno.getIncarichi_repertorio().getTipo_rapporto());
PostTipoRapportoChange(context);
//P.R. Reinizializzo l'oggetto perchè il metodo precedente ha risettato
// il model
compenso = (CompensoBulk)bp.getModel();
}
if(compenso.getTipoTrattamento()==null)
bp.findTipiTrattamento(context);
compenso.setIncarichi_repertorio_anno(incarico_anno);
//compenso.setIncarichi_oggetto(incarico_anno.getIncarichi_repertorio().getOggetto());
compenso.setImporto_utilizzato(bp.prendiUtilizzato(context, compenso, incarico_anno));
if (compenso.getImporto_utilizzato().compareTo(compenso.getImporto_complessivo())>=0)
setMessage(context, FormBP.ERROR_MESSAGE, "Contratto già completamente utilizzato. Non sarà possibile completare la registrazione del compenso.");
//bp.completaIncarico(context, compenso,incarico_anno);
bp.setDirty(true);
}catch (Throwable ex) {
return handleException(context, ex);
}
return context.findDefaultForward();
}
public Forward doBlankSearchIncarichi_repertorio_anno(ActionContext context, CompensoBulk compenso) {
if (compenso!=null){
compenso.setIncarichi_repertorio_anno(new Incarichi_repertorio_annoBulk());
}
return context.findDefaultForward();
}
public void PostTipoRapportoChange(ActionContext context) {
try {
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
//Azzero la quota esente INPS
compenso.setQuota_esente_inps(new java.math.BigDecimal(0));
doAzzeraTipoTrattamento(context, compenso);
bp.findTipiTrattamento(context);
compenso.setTipiPrestazioneCompenso(null);
compenso.setTipoPrestazioneCompenso(null);
compenso.setIncarichi_repertorio_anno(null);
compenso.setContratto(null);
compenso.setOggetto_contratto(null);
//P.R. Reinizializzo l'oggetto perchè il metodo precedente ha risettato
// il model
compenso = (CompensoBulk)bp.getModel();
compenso.setStatoCompensoToEseguiCalcolo();
compenso.setCodici_rapporti_inps(null);
compenso.setVisualizzaCodici_rapporti_inps(false);
compenso.setCodici_attivita_inps(null);
compenso.setVisualizzaCodici_attivita_inps(false);
compenso.setCodici_altra_forma_ass_inps(null);
compenso.setVisualizzaCodici_altra_forma_ass_inps(false);
compenso.setComune_inps(null);
compenso.setPignorato(null);
compenso.setVisualizzaPignorato(false);
}catch (Throwable ex) {
handleException(context, ex);
}
}
public Forward doOnImNettoDaTrattenereChange(ActionContext context) {
try{
CRUDCompensoBP bp = (CRUDCompensoBP)getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
java.math.BigDecimal oldImp = compenso.getIm_netto_da_trattenere();
try {
fillModel(context);
if (compenso.isStatoCompensoEseguiCalcolo())
{
compenso.setIm_netto_da_trattenere(oldImp);
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "E' necessario eseguire prima il calcolo.");
return context.findDefaultForward();
}
if (Utility.nvl(compenso.getIm_netto_da_trattenere()).compareTo(new BigDecimal(0)) < 0){
compenso.setIm_netto_da_trattenere(new BigDecimal(0));
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "L'importo Netto da sospendere non può essere negativo.");
return context.findDefaultForward();
}
if (Utility.nvl(compenso.getIm_netto_percipiente()).compareTo(Utility.nvl(compenso.getIm_netto_da_trattenere())) < 0){
compenso.setIm_netto_da_trattenere(oldImp);
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "L'importo Netto da sospendere non può superare l'importo netto da pagare.");
return context.findDefaultForward();
}
return context.findDefaultForward();
} catch(it.cnr.jada.bulk.FillException e) {
compenso.setIm_netto_da_trattenere(oldImp);
bp.setModel(context,compenso);
throw e;
}
} catch(Throwable e) {
return handleException(context, e);
}
}
public Forward doOnStatoLiquidazioneChange(ActionContext context) {
try {
CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
fillModel(context);
if(compenso.getStato_liquidazione()!=null && compenso.getStato_liquidazione().equals(compenso.LIQ)){
if(compenso.getCausale()!=null){
compenso.setCausale(null);
}
}else if(compenso.getStato_liquidazione()!=null && compenso.getStato_liquidazione().equals(compenso.SOSP)){
compenso.setCausale(compenso.ATTLIQ);
} else if(compenso.getStato_liquidazione()!=null && compenso.getStato_liquidazione().equals(compenso.NOLIQ)){
compenso.setCausale(compenso.CONT);
}
bp.setModel(context, compenso);
} catch (Throwable t) {
return handleException(context, t);
}
return context.findDefaultForward();
}
public Forward doOnCausaleChange(ActionContext context) {
try {
CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
CompensoBulk compenso = (CompensoBulk)bp.getModel();
String oldCausale=compenso.getCausale();
fillModel(context);
if(compenso.getStato_liquidazione()!=null && compenso.getStato_liquidazione().equals(compenso.LIQ)){
if(compenso.getCausale()!=null){
compenso.setCausale(null);
throw new it.cnr.jada.comp.ApplicationException("Causale non valida, per lo stato della Liquidazione");
}
}else if(compenso.getStato_liquidazione()!=null && compenso.getStato_liquidazione().equals(compenso.NOLIQ)){
if (compenso.getCausale()!= null && !compenso.getCausale().equals(compenso.CONT)){
if(oldCausale!=null)
compenso.setCausale(oldCausale);
else
compenso.setCausale(null);
throw new it.cnr.jada.comp.ApplicationException("Causale non valida, per lo stato della Liquidazione");
}
}else if(compenso.getStato_liquidazione()!=null && compenso.getStato_liquidazione().equals(compenso.SOSP)){
if (compenso.getCausale()!= null && (!compenso.getCausale().equals(compenso.ATTLIQ) &&!compenso.getCausale().equals(compenso.CONT))){
if(oldCausale!=null )
compenso.setCausale(oldCausale);
else
compenso.setCausale(null);
throw new it.cnr.jada.comp.ApplicationException("Causale non valida, per lo stato della Liquidazione");
}
}
bp.setModel(context, compenso);
} catch (Throwable t) {
return handleException(context, t);
}
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();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy