package gcom.gui.cadastro.localidade;
import gcom.cadastro.geografico.FiltroMunicipio;
import gcom.cadastro.geografico.Municipio;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.Localidade;
import gcom.gui.GcomAction;
import gcom.operacional.FiltroFonteCaptacao;
import gcom.operacional.FonteCaptacao;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
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;
public class ExibirInserirSetorComercialAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Seta o retorno
ActionForward retorno = actionMapping.findForward("exibirInserirSetorComercial");
PesquisarAtualizarSetorComercialActionForm form =
(PesquisarAtualizarSetorComercialActionForm) actionForm;
String objetoConsulta = (String) httpServletRequest.getParameter("objetoConsulta");
String acao = (String) httpServletRequest.getParameter("acao");
if (httpServletRequest.getParameter("menu") != null
&& httpServletRequest.getParameter("menu").equals("sim")) {
form.setIndicadorSetorAlternativo( "" + ConstantesSistema.INDICADOR_USO_DESATIVO ) ;
}
if (objetoConsulta != null && !objetoConsulta.trim().equalsIgnoreCase("")) {
Collection colecaoPesquisa = null;
switch (Integer.parseInt(objetoConsulta)) {
//Localidade
case 1:
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
//Recebe o valor do campo localidadeID do formul�rio.
String localidadeID = form.getLocalidadeID();
filtroLocalidade.adicionarParametro(
new ParametroSimples(
FiltroLocalidade.ID,
localidadeID));
filtroLocalidade.adicionarParametro(
new ParametroSimples(
FiltroLocalidade.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
//Retorna localidade
colecaoPesquisa =
this.getFachada().pesquisar(
filtroLocalidade,
Localidade.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
//Localidade nao encontrada
//Limpa os campos localidadeID e localidadeNome do
// formul�rio
httpServletRequest.setAttribute("corLocalidade","exception");
form.setLocalidadeID("");
form.setLocalidadeNome("Localidade inexistente");
httpServletRequest.setAttribute("nomeCampo","localidadeID");
} else {
Localidade objetoLocalidade =
(Localidade) Util.retonarObjetoDeColecao(colecaoPesquisa);
form.setLocalidadeID(String.valueOf(objetoLocalidade.getId()));
form.setLocalidadeNome(objetoLocalidade.getDescricao());
httpServletRequest.setAttribute("corLocalidade", "valor");
int codigoSetorComercial =
this.getFachada().pesquisarMaximoCodigoSetorComercial(objetoLocalidade.getId());
codigoSetorComercial = codigoSetorComercial + 1;
form.setSetorComercialCD("" + codigoSetorComercial);
httpServletRequest.setAttribute("nomeCampo","setorComercialCD");
}
break;
//Municipio
case 2:
FiltroMunicipio filtroMunicipio = new FiltroMunicipio();
//Recebe o valor do campo municipioID do formul�rio.
String municipioID = form.getMunicipioID();
filtroMunicipio.adicionarParametro(
new ParametroSimples(
FiltroMunicipio.ID,
municipioID));
filtroMunicipio.adicionarParametro(
new ParametroSimples(
FiltroMunicipio.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
//Retorna municipio
colecaoPesquisa =
this.getFachada().pesquisar(
filtroMunicipio,
Municipio.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
//Municipio nao encontrado
//Limpa os campos municipioID e municipioNome do formul�rio
httpServletRequest.setAttribute("corMunicipio", "exception");
form.setMunicipioID("");
form.setMunicipioNome("Munic�pio inexistente.");
httpServletRequest.setAttribute("nomeCampo","municipioID");
} else {
Municipio objetoMunicipio =
(Municipio) Util.retonarObjetoDeColecao(colecaoPesquisa);
form.setMunicipioID(String.valueOf(objetoMunicipio.getId()));
form.setMunicipioNome(objetoMunicipio.getNome());
httpServletRequest.setAttribute("corMunicipio", "valor");
httpServletRequest.setAttribute("nomeCampo","botaoInserir");
}
break;
case 3:
FonteCaptacao objetoFonteCaptacao =
this.pesquisarFonteCaptacao(form.getFonteCaptacao());
if (objetoFonteCaptacao == null) {
form.setFonteCaptacao("");
form.setDescricaoFonteCaptacao("Fonte de Capta��o inexistente.");
}else{
form.setFonteCaptacao(String.valueOf(objetoFonteCaptacao.getId()));
form.setDescricaoFonteCaptacao(objetoFonteCaptacao.getDescricao());
httpServletRequest.setAttribute("fonteCaptacaoEncontrada", true);
}
break;
default:
break;
}
} else if(acao != null && !acao.trim().equalsIgnoreCase("") && acao.equals("A")){
this.montarColecaoFonte(httpServletRequest,form.getFonteCaptacao());
form.setFonteCaptacao("");
form.setDescricaoFonteCaptacao("");
} else if(acao != null && !acao.trim().equalsIgnoreCase("") && acao.equals("R")){
String idRemover = (String) httpServletRequest.getParameter("idRemover");
this.removerColecaoFonte(httpServletRequest,idRemover);
} else {
//Limpando o formul�rio
form.setLocalidadeID("");
form.setLocalidadeNome("");
form.setMunicipioID("");
form.setMunicipioNome("");
form.setSetorComercialCD("");
form.setSetorComercialNome("");
form.setFonteCaptacao("");
form.setDescricaoFonteCaptacao("");
}
//devolve o mapeamento de retorno
this.setaRequest(httpServletRequest,form);
return retorno;
}
private FonteCaptacao pesquisarFonteCaptacao(String fonte){
Collection colecaoPesquisa = null;
FonteCaptacao objetoFonteCaptacao = null;
FiltroFonteCaptacao filtroFonteCaptacao = new FiltroFonteCaptacao();
filtroFonteCaptacao.adicionarParametro(
new ParametroSimples(
FiltroFonteCaptacao.ID,
fonte));
filtroFonteCaptacao.adicionarParametro(
new ParametroSimples(
FiltroFonteCaptacao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
//Retorna a fonte de captacao
colecaoPesquisa =
this.getFachada().pesquisar(
filtroFonteCaptacao,
FonteCaptacao.class.getName());
if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) {
objetoFonteCaptacao =
(FonteCaptacao) Util.retonarObjetoDeColecao(colecaoPesquisa);
}
return objetoFonteCaptacao;
}
private void montarColecaoFonte(HttpServletRequest httpServletRequest,String fonte){
Collection colecaoFonte = (Collection)
this.getSessao(httpServletRequest).getAttribute("colecaoFonteCaptacao");
if(colecaoFonte != null && !colecaoFonte.isEmpty()){
Iterator itera = colecaoFonte.iterator();
boolean jaExisteFonte = false;
while (itera.hasNext()) {
FonteCaptacao element = (FonteCaptacao) itera.next();
if(fonte.equals(""+element.getId())){
jaExisteFonte = true;
break;
}
}
if(!jaExisteFonte){
FonteCaptacao objetoFonteCaptacao =
this.pesquisarFonteCaptacao(fonte);
colecaoFonte.add(objetoFonteCaptacao);
}
}else{
colecaoFonte = new ArrayList();
FonteCaptacao objetoFonteCaptacao =
this.pesquisarFonteCaptacao(fonte);
colecaoFonte.add(objetoFonteCaptacao);
this.getSessao(httpServletRequest).setAttribute("colecaoFonteCaptacao",colecaoFonte);
}
}
private void removerColecaoFonte(HttpServletRequest httpServletRequest,String fonte){
Collection colecaoFonte = (Collection)
this.getSessao(httpServletRequest).getAttribute("colecaoFonteCaptacao");
Iterator itera = colecaoFonte.iterator();
while (itera.hasNext()) {
FonteCaptacao element = (FonteCaptacao) itera.next();
if(fonte.equals(""+element.getId())){
itera.remove();
break;
}
}
}
/**
* Seta os request com os id encontrados
*
* @author Rafael Pinto
* @date 16/10/2006
*/
private void setaRequest(HttpServletRequest httpServletRequest,
PesquisarAtualizarSetorComercialActionForm form) {
// Fonte de Captacao
if (form.getFonteCaptacao() != null &&
!form.getFonteCaptacao().equals("") &&
form.getDescricaoFonteCaptacao() != null &&
!form.getDescricaoFonteCaptacao().equals("")) {
httpServletRequest.setAttribute("fonteCaptacaoEncontrada", true);
}
}
}