it.cnr.contab.compensi00.actions.CRUDConguaglioAction 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.compensi00.bp.*;
import it.cnr.contab.compensi00.docs.bulk.*;
import it.cnr.contab.compensi00.ejb.*;
import it.cnr.jada.action.*;
import it.cnr.jada.util.action.*;
/**
* Insert the type's description here.
* Creation date: (08/07/2002 16.56.46)
* @author: Roberto Fantino
*/
public class CRUDConguaglioAction extends it.cnr.jada.util.action.CRUDAction {
/**
* CRUDConguaglioAction constructor comment.
*/
public CRUDConguaglioAction() {
super();
}
/**
* Gestisce un comando di cancellazione del conguaglio
*/
private Forward basicDoEliminaConguaglio(ActionContext context)
{
try
{
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
bp.delete(context);
ConguaglioBulk conguaglio = (ConguaglioBulk)bp.getModel();
ConguaglioComponentSession session = (ConguaglioComponentSession)bp.createComponentSession();
if (session.isConguaglioAnnullato(context.getUserContext(), conguaglio))
{
bp.edit(context, conguaglio);
bp.setMessage("Annullamento effettuato");
}
else
{
bp.reset(context);
bp.setMessage("Cancellazione effettuata");
}
return context.findDefaultForward();
}
catch(Throwable ex)
{
return handleException(context, ex);
}
}
/**
* Abilito il conguaglio alla creazione del compenso
*/
public Forward doAbilitaConguaglio(ActionContext context) {
try {
fillModel(context);
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
bp.doAbilitaConguaglio(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);
}
}
private void doAzzeraTipoRapporto(ActionContext context, ConguaglioBulk conguaglio) {
if (conguaglio!=null){
conguaglio.setTipiRapporto(null);
conguaglio.setTipoRapporto(null);
doAzzeraTipoTrattamento(context , conguaglio);
}
}
private void doAzzeraTipoTrattamento(ActionContext context, ConguaglioBulk conguaglio) {
if (conguaglio!=null){
conguaglio.setTipiTrattamento(null);
conguaglio.setTipoTrattamento(null);
}
}
public Forward doBlankSearchFind_terzo(ActionContext context, ConguaglioBulk conguaglio) {
if (conguaglio!=null){
V_terzo_per_conguaglioBulk v_terzo = new V_terzo_per_conguaglioBulk();
conguaglio.setV_terzo(v_terzo);
conguaglio.setCd_terzo(null);
conguaglio.setNome(null);
conguaglio.setCognome(null);
conguaglio.setRagione_sociale(null);
conguaglio.setPartita_iva(null);
conguaglio.setCodice_fiscale(null);
conguaglio.setPg_comune(null);
conguaglio.setCd_provincia(null);
conguaglio.setCd_regione(null);
conguaglio.setTermini(null);
conguaglio.setTerminiPagamento(null);
conguaglio.setModalita(null);
conguaglio.setModalitaPagamento(null);
conguaglio.setBanca(null);
doAzzeraTipoRapporto(context, conguaglio);
}
return context.findDefaultForward();
}
/**
* gestisco il rientro dalla creazione/modifica di un compenso
*/
public Forward doBringBackCompenso(ActionContext context) {
try{
HookForward caller = (HookForward)context.getCaller();
CompensoBulk compenso = (CompensoBulk)caller.getParameter("bringback");
if(compenso == null)
return context.findDefaultForward();
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
ConguaglioBulk conguaglio = (ConguaglioBulk)bp.getModel();
conguaglio.setCompenso(compenso);
return super.doSalva(context);
}catch(Throwable ex){
return handleException(context, ex);
}
}
public Forward doBringBackSearchFind_terzo(ActionContext context, ConguaglioBulk conguaglio, V_terzo_per_compensoBulk vTerzo) {
try {
if(vTerzo != null) {
doBlankSearchFind_terzo(context, conguaglio);
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
bp.completaTerzo(context, conguaglio, vTerzo);
}
return context.findDefaultForward();
} catch(BusinessProcessException e) {
return handleException(context,e);
}
}
/**
* 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{
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
ConguaglioBulk conguaglio = (ConguaglioBulk)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){
switch (errorCodeTerzo) {
case 6: {
doAzzeraTipoRapporto(context, conguaglio);
bp.findTipiRapporto(context);
break;
}
}
conguaglio.setStatoToAbilitaConguaglio();
}else
conguaglio.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{
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
ConguaglioBulk conguaglio = (ConguaglioBulk)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){
switch (errorCodeTerzo) {
case 2: {
doBlankSearchFind_terzo(context, conguaglio);
break;
}case 8: {
doAzzeraTipoTrattamento(context, conguaglio);
bp.findTipiTrattamento(context);
break;
}
}
conguaglio.setStatoToAbilitaConguaglio();
}else
conguaglio.setDt_registrazione(oldDataReg);
return context.findDefaultForward();
}catch(Throwable ex){
return handleException(context, ex);
}
}
public Forward doCreaCompensoConguaglio(ActionContext context) {
try {
fillModel(context);
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
ConguaglioBulk conguaglio = (ConguaglioBulk)bp.getModel();
if ( conguaglio.isStatoAbilitaConguaglio()){
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, conguaglio.getMsgAbilitaConguaglio());
return context.findDefaultForward();
}
bp.doValidaDatiEsterni(context);
String message = bp.doVerificaIncoerenzaCarichiFam(context);
bp.doCreaCompensoConguaglio(context);
if(message!=null)
setMessage(context,it.cnr.jada.util.action.FormBP.WARNING_MESSAGE,message);
else
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Compenso creato in modo corretto");
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
/**
* Gestisce un comando di cancellazione del conguaglio
*/
public Forward doElimina(ActionContext context) throws java.rmi.RemoteException
{
try
{
fillModel(context);
}
catch(it.cnr.jada.bulk.FillException e)
{
return handleException(context,e);
}
return basicDoEliminaConguaglio(context);
}
public Forward doOnDtACompetenzaCogeChange(ActionContext context) {
try{
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
ConguaglioBulk conguaglio = (ConguaglioBulk)bp.getModel();
java.sql.Timestamp oldDataCompCoge = conguaglio.getDt_a_competenza_coge();
try {
fillModel(context);
if (bp.isSearching())
return context.findDefaultForward();
((ConguaglioBulk)bp.getModel()).validaDate();
} catch(it.cnr.jada.bulk.FillException e) {
conguaglio.setDt_a_competenza_coge(oldDataCompCoge);
throw e;
} catch(it.cnr.jada.comp.ApplicationException e) {
conguaglio.setDt_a_competenza_coge(oldDataCompCoge);
throw e;
}
conguaglio.setStatoToAbilitaConguaglio();
return context.findDefaultForward();
} catch(Throwable e) {
return handleException(context, e);
}
}
public Forward doOnDtDaCompetenzaCogeChange(ActionContext context) {
try {
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
java.sql.Timestamp oldDataCompCoge = ((ConguaglioBulk)bp.getModel()).getDt_da_competenza_coge();
fillModel(context);
if (bp.isSearching())
return context.findDefaultForward();
try{
((ConguaglioBulk)bp.getModel()).validaDate();
} catch(it.cnr.jada.comp.ApplicationException e) {
((ConguaglioBulk)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;
}
bp.findTipiRapporto(context);
bp.ripristinaSelezioneTipoRapporto();
((ConguaglioBulk)bp.getModel()).setStatoToAbilitaConguaglio();
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
public Forward doOnDtRegistrazioneChange(ActionContext context) {
try {
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
java.sql.Timestamp oldDataReg = ((ConguaglioBulk)bp.getModel()).getDt_registrazione();
fillModel(context);
if (bp.isSearching())
return context.findDefaultForward();
try{
((ConguaglioBulk)bp.getModel()).validaDate();
} catch(it.cnr.jada.comp.ApplicationException e) {
((ConguaglioBulk)bp.getModel()).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;
}
bp.findTipiTrattamento(context);
bp.ripristinaSelezioneTipoTrattamento();
((ConguaglioBulk)bp.getModel()).setStatoToAbilitaConguaglio();
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
/**
* Alla selezione delle Flag nel Tab Testata devo verificare se e' gia' stato creato eseguito il "calcola". Se si
* devo forzare il ricalcolo
*/
public Forward doOnFlagChange(ActionContext context)
{
try
{
fillModel(context);
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
ConguaglioBulk aConguaglio = (ConguaglioBulk)bp.getModel();
if(aConguaglio.isStatoNormale())
{
aConguaglio.setStatoToAbilitaConguaglio();
setMessage(context, it.cnr.jada.util.action.FormBP.WARNING_MESSAGE, "Riabilitare il conguaglio.");
}
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
/**
* Alla selezione della Modalita di Pagamento ricerco le banche
*/
public Forward doOnModalitaPagamentoChange(ActionContext context) {
try {
fillModel(context);
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
bp.findListaBanche(context);
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
/**
* Alla selezione del Tipo Rapporto ricerco i Tipi Trattamento eleggibili
*/
public Forward doOnTipoRapportoChange(ActionContext context) {
try {
fillModel(context);
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
bp.findTipiTrattamento(context);
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
public Forward doOnTipoTrattamentoChange(ActionContext context) {
try {
fillModel(context);
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
ConguaglioBulk conguaglio = (ConguaglioBulk)bp.getModel();
conguaglio.setStatoToAbilitaConguaglio();
return context.findDefaultForward();
}catch (Throwable ex) {
return handleException(context, ex);
}
}
/**
* Gestisce una richiesta di salvataggio.
*/
public Forward doSalva(ActionContext context){
try
{
fillModel(context);
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
ConguaglioBulk conguaglio = (ConguaglioBulk)bp.getModel();
conguaglio.validaTestata();
ConguaglioComponentSession sess = (ConguaglioComponentSession)bp.createComponentSession();
sess.validaTerzo(context.getUserContext(), conguaglio);
if (conguaglio.isStatoAbilitaConguaglio()){
setMessage(context, 0, conguaglio.getMsgAbilitaConguaglio());
return context.findDefaultForward();
}else if (conguaglio.isStatoCreaCompensoConguaglio()){
setMessage(context, 0, conguaglio.getMsgCreaCompensoConguaglio());
return context.findDefaultForward();
}
return doSalvaCompenso(context, conguaglio);
}catch(Throwable ex){
return handleException(context, ex);
}
}
/**
* Gestisce una richiesta di salvataggio.
*/
private Forward doSalvaCompenso(ActionContext context, ConguaglioBulk conguaglio) {
try {
CompensoBulk compenso = (CompensoBulk)conguaglio.getCompenso();
boolean viewMode = getBusinessProcess(context).isViewing();
if (compenso == null)
throw new it.cnr.jada.comp.ApplicationException("Operazione non consentita. Compenso inesistente.");
String status = viewMode ?"V":"M";
CRUDCompensoBP compensoBP = CRUDCompensoBP.getBusinessProcessFor(context, compenso, status + "RSWTh");
compensoBP.edit(context,compenso);
compensoBP.inizializzaCompensoPerConguaglio(context, conguaglio);
context.addHookForward("bringback",this,"doBringBackCompenso");
context.addHookForward("close",this,"doBringBackCompenso");
HookForward hook = (HookForward)context.findForward("bringback");
return context.addBusinessProcess(compensoBP);
} catch(Exception e) {
return handleException(context,e);
}
}
/**
* Gestisce la selezione del bottone di ricerca delle Banche
*/
public Forward doSearchListaBanche(ActionContext context) {
ConguaglioBulk conguaglio = (ConguaglioBulk)getBusinessProcess(context).getModel();
String columnSet = conguaglio.getModalitaPagamento().getTiPagamentoColumnSet();
return search(context, getFormField(context, "main.listaBanche"), columnSet);
}
/**
* Viene richiesto di visualizzare il compenso collegato al conguaglio
*
**/
public Forward doVisualizzaCompenso(ActionContext context) {
try {
CRUDConguaglioBP bp = (CRUDConguaglioBP)getBusinessProcess(context);
ConguaglioBulk conguaglio = (ConguaglioBulk)bp.getModel();
fillModel(context);
if (conguaglio != null && conguaglio.getPg_compenso()==null){
setMessage(context, bp.WARNING_MESSAGE, "Non esiste un compenso collegato a questo conguaglio");
return context.findDefaultForward();
}
CompensoBulk compenso = conguaglio.getCompenso();
CRUDCompensoBP compBP = CRUDCompensoBP.getBusinessProcessFor(context, compenso, "VRSWTh");
compBP.edit(context,compenso);
return context.addBusinessProcess(compBP);
} catch(Exception e) {
return handleException(context,e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy