package gcom.gui.batch;
import gcom.batch.FiltroProcessoIniciado;
import gcom.batch.FuncionalidadeSituacao;
import gcom.batch.ProcessoIniciado;
import gcom.batch.ProcessoSituacao;
import gcom.batch.ProcessoTipo;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.gui.ManutencaoRegistroActionForm;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* Remove os processos iniciados selecionados na lista da funcionalidade
* Consultar Processo Iniciado
*
* @author Genival Barbosa
* @date 09/07/2009
*/
public class AutorizarProcessoIniciadoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ManutencaoRegistroActionForm manutencaoRegistroActionForm = (ManutencaoRegistroActionForm) actionForm;
String[] ids = manutencaoRegistroActionForm.getIdRegistrosAutorizar();
ActionForward retorno = actionMapping.findForward("telaSucesso");
Fachada fachada = Fachada.getInstancia();
// mensagem de erro quando o usu�rio tenta excluir sem ter selecionado
// nenhum registro
if (ids == null || ids.length == 0) {
throw new ActionServletException(
"atencao.registros.nao_selecionados");
}
for(int i=0; i<ids.length;i++) {
FiltroProcessoIniciado filtroProcessoIniciado = new FiltroProcessoIniciado();
filtroProcessoIniciado.adicionarCaminhoParaCarregamentoEntidade(FiltroProcessoIniciado.PROCESSO);
filtroProcessoIniciado.adicionarCaminhoParaCarregamentoEntidade(FiltroProcessoIniciado.USUARIO);
filtroProcessoIniciado.adicionarCaminhoParaCarregamentoEntidade(FiltroProcessoIniciado.PROCESSO_SITUACAO);
filtroProcessoIniciado.adicionarParametro(new ParametroSimples(FiltroProcessoIniciado.ID,ids[i]));
Collection coll = fachada.pesquisar(filtroProcessoIniciado,ProcessoIniciado.class.getName());
if (coll !=null && !coll.isEmpty()) {
Iterator it = coll.iterator();
ProcessoIniciado processoIniciado = (ProcessoIniciado) it.next();
if(!processoIniciado.getProcesso().getProcessoTipo().getId().equals(ProcessoTipo.RELATORIO)){
fachada.autorizarProcessoIniciado(processoIniciado,ProcessoSituacao.EM_ESPERA,FuncionalidadeSituacao.EM_ESPERA);
}else{
fachada.autorizarProcessoIniciado(processoIniciado,ProcessoSituacao.AGENDADO,FuncionalidadeSituacao.AGENDADA);
}
}
}
// Monta a p�gina de sucesso
if (retorno.getName().equalsIgnoreCase("telaSucesso")) {
montarPaginaSucesso(httpServletRequest, ids.length
+ " Processo(s) Iniciado(s) autorizado(s) com sucesso",
"Autorizar Outro Relat�rio/Processo", "exibirAutorizarRelatoriosBatchAction.do?menu=sim"
);
}
return retorno;
}
}