package gcom.gui.util.tabelaauxiliar.abreviada;
import gcom.arrecadacao.banco.Banco;
import gcom.atendimentopublico.ordemservico.EquipamentosEspeciais;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.gui.ManutencaoRegistroActionForm;
import gcom.operacional.FonteCaptacao;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import gcom.util.tabelaauxiliar.abreviada.FiltroTabelaAuxiliarAbreviada;
import gcom.util.tabelaauxiliar.abreviada.TabelaAuxiliarAbreviada;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* < <Descri��o da Classe>>
*
* @author rodrigo
*/
public class ExibirAtualizarTabelaAuxiliarAbreviadaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("atualizarTabelaAuxiliarAbreviada");
//Obt�m a inst�ncia da sess�o
HttpSession sessao = httpServletRequest.getSession(false);
ManutencaoRegistroActionForm manutencaoRegistroActionForm = (ManutencaoRegistroActionForm) actionForm;
//String com path do pacote mais o nome do objeto
String pacoteNomeObjeto = (String) sessao.getAttribute("pacoteNomeObjeto");
String id = null;
if (httpServletRequest.getParameter("manter") != null) {
sessao.setAttribute("manter", true);
} else if (httpServletRequest.getParameter("filtrar") != null) {
sessao.removeAttribute("manter");
}
//C�digo da tabela auxiliar a ser atualizada
if (httpServletRequest.getAttribute("id") != null) {
id = (String) httpServletRequest.getAttribute("id");
sessao.setAttribute("id", id);
} else {
if (manutencaoRegistroActionForm.getIdRegistroAtualizacao() != null) {
id = manutencaoRegistroActionForm.getIdRegistroAtualizacao();
sessao.setAttribute("id", id);
}
}
if (sessao.getAttribute("id") != null) {
id = (String) sessao.getAttribute("id");
}
//Cria o filtro para atividade
FiltroTabelaAuxiliarAbreviada filtroTabelaAuxiliarAbreviada = new FiltroTabelaAuxiliarAbreviada();
String tela = (String) sessao.getAttribute("tela");
if (httpServletRequest.getAttribute("desfazer") == null) {
//Adiciona o par�metro no filtro
filtroTabelaAuxiliarAbreviada.adicionarParametro(
new ParametroSimples(
FiltroTabelaAuxiliarAbreviada.ID, id));
//Pesquisa a tabela auxiliar no sistema
Collection tabelasAuxiliaresAbreviadas = this.getFachada()
.pesquisarTabelaAuxiliar(filtroTabelaAuxiliarAbreviada,
pacoteNomeObjeto);
//Caso a cole��o esteja vazia, indica erro inesperado
if (tabelasAuxiliaresAbreviadas == null || tabelasAuxiliaresAbreviadas.isEmpty()) {
throw new ActionServletException("erro.sistema");
}
Iterator iteratorTabelaAuxiliarAbreviada = tabelasAuxiliaresAbreviadas.iterator();
//A tabela auxiliar abreviada que ser� atualizada
TabelaAuxiliarAbreviada tabelaAuxiliarAbreviada =
(TabelaAuxiliarAbreviada) iteratorTabelaAuxiliarAbreviada.next();
//Manda a tabela auxiliar na sess�o
sessao.setAttribute("tabelaAuxiliarAbreviada", tabelaAuxiliarAbreviada);
if(tabelaAuxiliarAbreviada.getIndicadorUso().intValue() == ConstantesSistema.INDICADOR_USO_ATIVO.intValue()){
sessao.setAttribute("indicadorUso", "sim");
}else{
sessao.setAttribute("indicadorUso", "nao");
}
DadosTelaTabelaAuxiliarAbreviada dados = DadosTelaTabelaAuxiliarAbreviada
.obterDadosTelaTabelaAuxiliar(tela);
if (dados.getTabela() instanceof FonteCaptacao) {
sessao.setAttribute("tamMaxCampoDescricao", 30);
sessao.setAttribute("tamMaxCampoDescricaoAbreviada", 10);
}
sessao.setAttribute("funcionalidadeTabelaAuxiliarAbreviadaFiltrar",
dados.getFuncionalidadeTabelaAuxFiltrar());
if (dados.getTabela() instanceof EquipamentosEspeciais) {
sessao.setAttribute("tamMaxCampoDescricao", 40);
sessao.setAttribute("tamMaxCampoDescricaoAbreviada", 8);
}
if (dados.getTabela() instanceof Banco) {
sessao.setAttribute("tamMaxCampoDescricao", 40);
sessao.setAttribute("tamMaxCampoDescricaoAbreviada", 20);
}
}
if (httpServletRequest.getAttribute("desfazer") != null) {
// Cria o filtro para atividade
filtroTabelaAuxiliarAbreviada.limparListaParametros();
// Adiciona o par�metro no filtro
filtroTabelaAuxiliarAbreviada
.adicionarParametro(new ParametroSimples(
FiltroTabelaAuxiliarAbreviada.ID, id));
// Pesquisa a tabela auxiliar no sistema
Collection tabelasAuxiliaresAbreviadaBase = this.getFachada()
.pesquisarTabelaAuxiliar(filtroTabelaAuxiliarAbreviada,
pacoteNomeObjeto);
// Caso a cole��o esteja vazia, indica erro inesperado
if (tabelasAuxiliaresAbreviadaBase == null
|| tabelasAuxiliaresAbreviadaBase.isEmpty()) {
throw new ActionServletException("erro.sistema");
}
Iterator iteratorTabelaAuxiliarAbreviadaBase = tabelasAuxiliaresAbreviadaBase
.iterator();
// A tabela auxiliar abreviada que ser� atualizada
TabelaAuxiliarAbreviada tabelaAuxiliarAbreviadaBase = (TabelaAuxiliarAbreviada) iteratorTabelaAuxiliarAbreviadaBase
.next();
// Manda a tabela auxiliar na sess�o
sessao.setAttribute("tabelaAuxiliarAbreviada",
tabelaAuxiliarAbreviadaBase);
}
httpServletRequest.setAttribute("tela",tela);
//Devolve o mapeamento de retorno
return retorno;
}
}