package gcom.gui.operacional;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.operacional.FiltroFonteCaptacao;
import gcom.operacional.FiltroSistemaAbastecimento;
import gcom.operacional.FiltroTipoCaptacao;
import gcom.operacional.FonteCaptacao;
import gcom.operacional.SistemaAbastecimento;
import gcom.operacional.TipoCaptacao;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
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;
/**
* [UC0522] Atualizar Sistema de Abastecimento
*
* @author Fernando Fontelles Filho
* @date 03/11/2009
*/
public class ExibirAtualizarSistemaAbastecimentoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("sistemaAbastecimentoAtualizar");
AtualizarSistemaAbastecimentoActionForm form = (AtualizarSistemaAbastecimentoActionForm)actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
String id = null;
if (httpServletRequest.getParameter("idRegistroAtualizacao") != null) {
id = httpServletRequest.getParameter("idRegistroAtualizacao");
} else {
//id = ((SistemaAbastecimento) sessao.getAttribute("sistemaAbastecimento")).getId().toString();
id = ((SistemaAbastecimento)sessao.getAttribute("atualizarSistemaAbastecimento")).getId().toString();
}
if (httpServletRequest.getParameter("manter") != null) {
sessao.setAttribute("manter", true);
} else if (httpServletRequest.getParameter("filtrar") != null) {
sessao.removeAttribute("manter");
}
if (id == null) {
if (httpServletRequest.getAttribute("idRegistroAtualizacao") == null) {
id = (String) sessao.getAttribute("idRegistroAtualizacao");
} else {
id = (String) httpServletRequest.getAttribute(
"idRegistroAtualizacao").toString();
}
} else {
sessao.setAttribute("i", true);
}
SistemaAbastecimento sistemaAbastecimento = new SistemaAbastecimento();
if (id != null && !id.trim().equals("") && Integer.parseInt(id) > 0) {
FiltroSistemaAbastecimento filtroSistemaAbastecimento = new FiltroSistemaAbastecimento();
filtroSistemaAbastecimento.adicionarCaminhoParaCarregamentoEntidade("fonteCaptacao");
filtroSistemaAbastecimento.adicionarCaminhoParaCarregamentoEntidade("fonteCaptacao.tipoCaptacao");
filtroSistemaAbastecimento.adicionarParametro(new ParametroSimples(FiltroSistemaAbastecimento.ID, id));
Collection colecaoSistemaAbastecimento = fachada.pesquisar
(filtroSistemaAbastecimento,SistemaAbastecimento.class.getName());
if(colecaoSistemaAbastecimento != null && !colecaoSistemaAbastecimento.isEmpty()){
sistemaAbastecimento = (SistemaAbastecimento)Util.retonarObjetoDeColecao(colecaoSistemaAbastecimento);
}
if(id == null || id.trim().equals("")){
form.setId(sistemaAbastecimento.getId().toString());
form.setDescricao(sistemaAbastecimento.getDescricao());
form.setDescricaoAbreviada(sistemaAbastecimento.getDescricaoAbreviada());
form.setIndicadorUso(sistemaAbastecimento.getIndicadorUso());
if(sistemaAbastecimento.getFonteCaptacao() != null){
if (sistemaAbastecimento.getFonteCaptacao().getTipoCaptacao() != null){
form.setTipoCaptacao(sistemaAbastecimento.getFonteCaptacao().getTipoCaptacao().getId().toString());
form.setDescricaoTipoCaptacao(sistemaAbastecimento.getFonteCaptacao().getTipoCaptacao().getDescricao());
}
form.setFonteCaptacaoId(sistemaAbastecimento.getFonteCaptacao().getId().toString());
form.setFonteCaptacaoDescricao(sistemaAbastecimento.getFonteCaptacao().getDescricao());
}
}
form.setId(sistemaAbastecimento.getId().toString());
form.setDescricao(sistemaAbastecimento.getDescricao());
form.setDescricaoAbreviada(sistemaAbastecimento.getDescricaoAbreviada());
form.setIndicadorUso(sistemaAbastecimento.getIndicadorUso());
if(sistemaAbastecimento.getFonteCaptacao() != null){
if (sistemaAbastecimento.getFonteCaptacao().getTipoCaptacao() != null){
form.setTipoCaptacao(sistemaAbastecimento.getFonteCaptacao().getTipoCaptacao().getId().toString());
form.setDescricaoTipoCaptacao(sistemaAbastecimento.getFonteCaptacao().
getTipoCaptacao().getDescricao());
}
form.setFonteCaptacaoId(sistemaAbastecimento.getFonteCaptacao().getId().toString());
form.setFonteCaptacaoDescricao(sistemaAbastecimento.getFonteCaptacao().getDescricao());
}
if (sistemaAbastecimento.getFonteCaptacao() != null
&& sistemaAbastecimento.getFonteCaptacao().getId() != null
&& sistemaAbastecimento.getFonteCaptacao().getDescricao() != null
&& !sistemaAbastecimento.getFonteCaptacao().getDescricao().equals("FONTE DE CAPTAC�O INEXISTENTE")){
httpServletRequest.setAttribute("fonteCaptacaoEncontrada", true);
}
if (sistemaAbastecimento.getFonteCaptacao() != null
&& sistemaAbastecimento.getFonteCaptacao().getTipoCaptacao().getId() != null
&& sistemaAbastecimento.getFonteCaptacao().getTipoCaptacao().getDescricao() != null
&& !sistemaAbastecimento.getFonteCaptacao().getTipoCaptacao().getDescricao().equals("TIPO DE CAPTAC�O INEXISTENTE")){
httpServletRequest.setAttribute("tipoCaptacaoEncontrado", true);
}
sessao.setAttribute("atualizarSistemaAbastecimento", sistemaAbastecimento);
if (sessao.getAttribute("colecaoSistemaAbastecimento") != null) {
sessao.setAttribute("caminhoRetornoVoltar",
"/gsan/filtrarSistemaAbastecimentoAction.do");
} else {
sessao.setAttribute("caminhoRetornoVoltar",
"/gsan/exibirFiltrarSistemaAbastecimentoAction.do");
}
}
// pesquisa os dados do enter
pesquisarEnter(form, httpServletRequest,fachada);
return retorno;
}
private void pesquisarEnter(
AtualizarSistemaAbastecimentoActionForm form,
HttpServletRequest httpServletRequest, Fachada fachada) {
if ( httpServletRequest.getParameter("idTipoCaptacao") != null ) {
String idTipoCaptacao = (String) httpServletRequest.getParameter("idTipoCaptacao");
form.setTipoCaptacao(idTipoCaptacao);
}
if ( httpServletRequest.getParameter("idFonteCaptacao") != null ) {
String idFonteCaptacao = (String) httpServletRequest.getParameter("idFonteCaptacao");
form.setFonteCaptacaoId(idFonteCaptacao);
}
// pesquisa enter de FONTE DE CAPTACAO sem ter realizado pesquisa de TIPO DE CAPTACAO
if ((form.getTipoCaptacao() == null || form.getTipoCaptacao().equals(""))
&& form.getFonteCaptacaoId() != null
&& !form.getFonteCaptacaoId().equals("")) {
FiltroFonteCaptacao filtroFonteCaptacao = new FiltroFonteCaptacao();
try {
filtroFonteCaptacao.adicionarParametro(new ParametroSimples(
FiltroFonteCaptacao.ID, new Integer(
form.getFonteCaptacaoId())));
} catch (NumberFormatException ex) {
throw new ActionServletException(
"atencao.campo_texto.numero_obrigatorio", null,
"Fonte de Capta��o");
}
filtroFonteCaptacao
.setCampoOrderBy(FiltroFonteCaptacao.DESCRICAO);
Collection colecaoFonteCaptacao = fachada.pesquisar(
filtroFonteCaptacao, FonteCaptacao.class.getName());
if (colecaoFonteCaptacao != null
&& !colecaoFonteCaptacao.isEmpty()) {
FonteCaptacao fonteCaptacao = (FonteCaptacao) Util.retonarObjetoDeColecao(colecaoFonteCaptacao);
form.setFonteCaptacaoDescricao(fonteCaptacao.getDescricao());
if (form.getDescricaoTipoCaptacao() != null && form.getTipoCaptacao() != null
&& !form.getDescricaoTipoCaptacao().equals("TIPO DE CAPTAC�O INEXISTENTE")){
httpServletRequest.setAttribute("tipoCaptacaoEncontrado", true);
}
httpServletRequest.setAttribute("fonteCaptacaoEncontrada", true);
} else {
form.setFonteCaptacaoId("");
form.setFonteCaptacaoDescricao("FONTE DE CAPTAC�O INEXISTENTE");
httpServletRequest.removeAttribute("fonteCaptacaoEncontrada");
}
}
//pesquisa enter de tipo de captacao
if (form.getTipoCaptacao() != null
&& !form.getTipoCaptacao().equals("")) {
FiltroTipoCaptacao filtroTipoCaptacao = new FiltroTipoCaptacao();
try {
filtroTipoCaptacao.adicionarParametro(new ParametroSimples(
FiltroTipoCaptacao.ID, new Integer(
form.getTipoCaptacao())));
} catch (NumberFormatException ex) {
throw new ActionServletException(
"atencao.campo_texto.numero_obrigatorio", null,
"Tipo de Capta��o");
}
filtroTipoCaptacao
.setCampoOrderBy(FiltroFonteCaptacao.DESCRICAO);
Collection colecaoTipoCaptacao = fachada.pesquisar(
filtroTipoCaptacao, TipoCaptacao.class.getName());
if (colecaoTipoCaptacao != null
&& !colecaoTipoCaptacao.isEmpty()) {
TipoCaptacao tipoCaptacao = (TipoCaptacao) Util.retonarObjetoDeColecao(colecaoTipoCaptacao);
form.setDescricaoTipoCaptacao(tipoCaptacao.getDescricao());
if (form.getFonteCaptacaoDescricao() != null && form.getFonteCaptacaoId() != null
&& !form.getFonteCaptacaoDescricao().equals("FONTE DE CAPTAC�O INEXISTENTE")){
httpServletRequest.setAttribute("fonteCaptacaoEncontrada", true);
}
httpServletRequest.setAttribute("tipoCaptacaoEncontrado", true);
} else {
form.setTipoCaptacao("");
form.setDescricaoTipoCaptacao("TIPO DE CAPTAC�O INEXISTENTE");
httpServletRequest.removeAttribute("tipoCaptacaoEncontrado");
}
}
//Pesquisar Fonte de Captacao Com Tipo de Captacao
if (form.getTipoCaptacao() != null
&& !form.getTipoCaptacao().equals("")
&& form.getFonteCaptacaoId() != null
&& !form.getFonteCaptacaoId().equals("")) {
FiltroFonteCaptacao filtroFonteCaptacao = new FiltroFonteCaptacao();
try {
filtroFonteCaptacao.adicionarParametro(new ParametroSimples(
FiltroFonteCaptacao.ID_TIPO_CAPTACAO,form.getTipoCaptacao()));
filtroFonteCaptacao.adicionarParametro(new ParametroSimples(
FiltroFonteCaptacao.ID, new Integer(
form.getFonteCaptacaoId())));
} catch (NumberFormatException ex) {
throw new ActionServletException(
"atencao.campo_texto.numero_obrigatorio", null,
"Fonte de Capta��o");
}
filtroFonteCaptacao
.setCampoOrderBy(FiltroFonteCaptacao.DESCRICAO);
Collection colecaoFonteCaptacao = fachada.pesquisar(
filtroFonteCaptacao, FonteCaptacao.class.getName());
if (colecaoFonteCaptacao != null
&& !colecaoFonteCaptacao.isEmpty()) {
FonteCaptacao fonteCaptacao = (FonteCaptacao) Util.retonarObjetoDeColecao(colecaoFonteCaptacao);
form.setFonteCaptacaoDescricao(fonteCaptacao.getDescricao());
httpServletRequest.setAttribute("tipoCaptacaoEncontrado", true);
httpServletRequest.setAttribute("fonteCaptacaoEncontrada", true);
} else {
form.setFonteCaptacaoId("");
form.setFonteCaptacaoDescricao("FONTE DE CAPTAC�O INEXISTENTE");
httpServletRequest.removeAttribute("fonteCaptacaoEncontrada");
}
}
}
}