All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.cnr.contab.pdg00.action.ElaboraFileStipendiAction 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.pdg00.action;

import it.cnr.contab.pdg00.bp.DettagliFileStipendiBP;
import it.cnr.contab.pdg00.bp.ElaboraFileStipendiBP;
import it.cnr.contab.pdg00.cdip.bulk.Stipendi_cofi_coriBulk;
import it.cnr.contab.pdg00.cdip.bulk.Stipendi_cofi_cori_dettBulk;
import it.cnr.contab.pdg00.cdip.bulk.Stipendi_cofi_obb_scadBulk;
import it.cnr.contab.pdg00.cdip.bulk.Stipendi_cofi_obb_scad_dettBulk;
import it.cnr.contab.pdg00.cdip.bulk.V_stipendi_cofi_dettBulk;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.action.Forward;
import it.cnr.jada.bulk.FillException;
import it.cnr.jada.comp.ApplicationException;

/**
 * Insert the type's description here.
 * Creation date: (10/04/2003 12.04.09)
 * @author: Gennaro Borriello
 */
public class ElaboraFileStipendiAction extends it.cnr.jada.util.action.CRUDAction {
/**
 * CaricaFileCassiereAction constructor comment.
 */
public ElaboraFileStipendiAction() {
	super();
}
public Forward doBringBack(ActionContext context) {
	return context.findDefaultForward();
}

public Forward doVisualizzaDettagli(ActionContext context) {	

	ElaboraFileStipendiBP bp = (ElaboraFileStipendiBP)context.getBusinessProcess();
	
	try{
		V_stipendi_cofi_dettBulk v = (V_stipendi_cofi_dettBulk)bp.getModel();
		V_stipendi_cofi_dettBulk dett =(V_stipendi_cofi_dettBulk)bp.getV_stipendi_cofi_dett().getModel();
		if (v.getMese() == null){
			throw new it.cnr.jada.comp.ApplicationException("Attenzione: selezionare un Mese");
		}
		if (v.getV_stipendi_cofi_dett().isEmpty()){
			throw new it.cnr.jada.comp.ApplicationException("Attenzione: non esistono dettagli da visualizzare");
		}
		if (dett == null){
			throw new it.cnr.jada.comp.ApplicationException("Attenzione: selezionare la riga per la quale si vogliono visualizzare i dettagli");
		}
		if (dett.getEntrata_spesa().equals("E"))
		{
			it.cnr.jada.util.RemoteIterator ri = bp.createComponentSession().cerca(context.getUserContext(), null,new Stipendi_cofi_cori_dettBulk(),  dett, "DettagliFileStipendi");
			ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,ri);
			if (ri.countElements() == 0) {
				it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context,ri);
				throw new it.cnr.jada.comp.ApplicationException("Attenzione: non ci sono dettagli");
			}
			DettagliFileStipendiBP nbp = (DettagliFileStipendiBP)context.createBusinessProcess("DettagliFileStipendiBP");
			nbp.setIterator(context,ri);
			nbp.setMultiSelection(false);
			nbp.setBulkInfo(it.cnr.jada.bulk.BulkInfo.getBulkInfo(Stipendi_cofi_cori_dettBulk.class));
			return context.addBusinessProcess(nbp);
		}
		else
		{
			it.cnr.jada.util.RemoteIterator ri = bp.createComponentSession().cerca(context.getUserContext(), null,new Stipendi_cofi_obb_scad_dettBulk(),  dett, "DettagliFileStipendi");
			ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,ri);
			if (ri.countElements() == 0) {
				it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context,ri);
				throw new it.cnr.jada.comp.ApplicationException("Attenzione: non ci sono dettagli");
			}
			DettagliFileStipendiBP nbp = (DettagliFileStipendiBP)context.createBusinessProcess("DettagliFileStipendiBP");
			nbp.setIterator(context,ri);
			nbp.setMultiSelection(false);
			nbp.setBulkInfo(it.cnr.jada.bulk.BulkInfo.getBulkInfo(Stipendi_cofi_obb_scad_dettBulk.class));
			return context.addBusinessProcess(nbp);
		}
	}
	catch (Throwable e){		
		return handleException(context,e);
	}

}
public Forward doVisualizzaEntrata(ActionContext context) {	

	ElaboraFileStipendiBP bp = (ElaboraFileStipendiBP)context.getBusinessProcess();
	
	try{
		V_stipendi_cofi_dettBulk v = (V_stipendi_cofi_dettBulk)bp.getModel();
		if (v.getMese() == null){
			throw new it.cnr.jada.comp.ApplicationException("Attenzione: selezionare un Mese");
		}
		if (v.getV_stipendi_cofi_dett().isEmpty()||v.getBatch_log_riga().isEmpty()){
			throw new it.cnr.jada.comp.ApplicationException("Attenzione: non esistono dati da visualizzare");
		}
		
		it.cnr.jada.util.RemoteIterator ri = bp.createComponentSession().cerca(context.getUserContext(), null,new Stipendi_cofi_coriBulk(),  v, "FlussoStipendiEntrata");
		ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,ri);
		if (ri.countElements() == 0) {
			it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context,ri);
			throw new it.cnr.jada.comp.ApplicationException("Attenzione: non ci sono dettagli");
		}
		DettagliFileStipendiBP nbp = (DettagliFileStipendiBP)context.createBusinessProcess("DettagliFileStipendiBP");
		nbp.setIterator(context,ri);
		nbp.setMultiSelection(false);
		nbp.setBulkInfo(it.cnr.jada.bulk.BulkInfo.getBulkInfo(Stipendi_cofi_coriBulk.class));
		nbp.setColumns(it.cnr.jada.bulk.BulkInfo.getBulkInfo(Stipendi_cofi_coriBulk.class).getColumnFieldPropertyDictionary("elaborazione_flussi"));
		return context.addBusinessProcess(nbp);
	}
	catch (Throwable e){		
		return handleException(context,e);
	}
}
public Forward doVisualizzaSpesa(ActionContext context) {	

	ElaboraFileStipendiBP bp = (ElaboraFileStipendiBP)context.getBusinessProcess();
	
	try{
		V_stipendi_cofi_dettBulk v = (V_stipendi_cofi_dettBulk)bp.getModel();
		if (v.getMese() == null){
			throw new it.cnr.jada.comp.ApplicationException("Attenzione: selezionare un Mese");
		}
		if (v.getV_stipendi_cofi_dett().isEmpty()||v.getBatch_log_riga().isEmpty()){
			throw new it.cnr.jada.comp.ApplicationException("Attenzione: non esistono dati da visualizzare");
		}
		
		it.cnr.jada.util.RemoteIterator ri = bp.createComponentSession().cerca(context.getUserContext(), null,new Stipendi_cofi_obb_scadBulk(),  v, "FlussoStipendiSpesa");
		ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,ri);
		if (ri.countElements() == 0) {
			it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context,ri);
			throw new it.cnr.jada.comp.ApplicationException("Attenzione: non ci sono dettagli");
		}
		DettagliFileStipendiBP nbp = (DettagliFileStipendiBP)context.createBusinessProcess("DettagliFileStipendiBP");
		nbp.setIterator(context,ri);
		nbp.setMultiSelection(false);
		nbp.setBulkInfo(it.cnr.jada.bulk.BulkInfo.getBulkInfo(Stipendi_cofi_obb_scadBulk.class));
		nbp.setColumns(it.cnr.jada.bulk.BulkInfo.getBulkInfo(Stipendi_cofi_obb_scadBulk.class).getColumnFieldPropertyDictionary("elaborazione_flussi"));
		return context.addBusinessProcess(nbp);
	}
	catch (Throwable e){		
		return handleException(context,e);
	}
}
/**
  * Gestisce un Eccezione di chiave duplicata.
  *
  * @param context il ActionContext che contiene le informazioni relative alla richiesta
  *
  * @return forward Forward
**/ 
protected Forward handleApplicationPersistencyException(ActionContext context, it.cnr.jada.persistency.sql.ApplicationPersistencyException e) {

	it.cnr.jada.comp.ApplicationException mess = new it.cnr.jada.comp.ApplicationException(e.getMessage());

	return handleException(context, mess);
}
/**
  * Gestisce un Eccezione di chiave duplicata.
  *
  * @param context il ActionContext che contiene le informazioni relative alla richiesta
  *
  * @return forward Forward
**/ 
protected Forward handleDuplicateKeyException(ActionContext context, it.cnr.jada.persistency.sql.DuplicateKeyException e) {

	it.cnr.jada.comp.ApplicationException mess = new it.cnr.jada.comp.ApplicationException("Si sta tentando di creare un oggetto già esistente in archivio.");

	return handleException(context, mess);
}
public it.cnr.jada.action.Forward doOnMeseChange(ActionContext context) {
	it.cnr.contab.pdg00.bp.ElaboraFileStipendiBP bp= (it.cnr.contab.pdg00.bp.ElaboraFileStipendiBP) context.getBusinessProcess();
    try {
        bp.fillModel(context); 
        bp.refresh(context);
        doCercaBatch(context);
	    return context.findDefaultForward();
	} catch (Exception e) {
		return handleException(context,e);
	}        
}
public Forward doCercaBatch(ActionContext context) {
	try {
		fillModel(context);
		ElaboraFileStipendiBP bp = (ElaboraFileStipendiBP) context.getBusinessProcess();
		V_stipendi_cofi_dettBulk dett = (V_stipendi_cofi_dettBulk)bp.getModel();
	
		if (dett.getPg_exec() != null)
		try {
			bp.doCercaBatch(context,dett);
		} catch (Throwable e) {
		   	return handleException(context, e);
		}
	} catch (FillException e1) {
		return handleException(context, e1);
	}
	return context.findDefaultForward();
}
public Forward doElaboraFile(ActionContext context) throws ApplicationException {	

	try{
		fillModel(context);
		ElaboraFileStipendiBP bp = (ElaboraFileStipendiBP) context.getBusinessProcess();
		V_stipendi_cofi_dettBulk dett = (V_stipendi_cofi_dettBulk)bp.getModel();

		if (dett.getMese() == null )
			return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare il Mese"));
		if (dett.getV_stipendi_cofi_dett().isEmpty())
			return handleException(context, new it.cnr.jada.bulk.ValidationException("Elaborazione non consentita: non sono stati caricati i dati per il mese specificato"));
		if (!dett.getBatch_log_riga().isEmpty())
			return handleException(context, new it.cnr.jada.bulk.ValidationException("Elaborazione già effettuata in precedenza"));
		try {
				bp.doElaboraFile(context,dett);
				bp.refresh(context);
		} catch (BusinessProcessException e) {
			return handleException(context, e);
		}
		bp.setMessage("Elaborazione completata.");
		return context.findDefaultForward();
	} catch (it.cnr.jada.bulk.FillException e){
		return handleException(context, e);
	}
}
public Forward doReset(ActionContext context) {
	try{
		fillModel(context);
		ElaboraFileStipendiBP bp = (ElaboraFileStipendiBP) context.getBusinessProcess();
		V_stipendi_cofi_dettBulk dett = (V_stipendi_cofi_dettBulk)bp.getModel();

		if (dett.getMese() == null )
			return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare il Mese"));
		if (dett.getV_stipendi_cofi_dett().isEmpty())
			return handleException(context, new it.cnr.jada.bulk.ValidationException("Operazione non consentita: il mese selezionato non è stato ancora caricato"));
		if (dett.getBatch_log_riga().isEmpty())
			return handleException(context, new it.cnr.jada.bulk.ValidationException("Operazione non consentita: il mese selezionato non è stato ancora elaborato"));
		try {
				bp.doReset(context,dett);
				bp.refresh(context);
		} catch (BusinessProcessException e) {
			return handleException(context, e);
		}
		bp.setMessage("Elaborazione Annullata.");
		return context.findDefaultForward();
	} catch (it.cnr.jada.bulk.FillException e){
		return handleException(context, e);
	}
}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy