package gcom.gui.faturamento.conta;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroQuadra;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.SetorComercial;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.ErroRepositorioException;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.rmi.RemoteException;
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;
/**
* Selecionar as quadras do �movel
*
* @author Ana Maria
* @created 12/03/2007
*/
public class ExibirSelecionarQuadraImovelInserirManterContaAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,ActionForm actionForm,
HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("exibirSelecionarQuadraImovelInserirManterConta");
//Sess�o
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
InserirConjuntoQuadraActionForm inserirConjuntoQuadraActionForm = (InserirConjuntoQuadraActionForm) actionForm;
Integer idLocalidade = null;
if(httpServletRequest.getParameter("idLocalidade") != null && !httpServletRequest.getParameter("idLocalidade").equals("")){
idLocalidade = Integer.parseInt(httpServletRequest.getParameter("idLocalidade"));
inserirConjuntoQuadraActionForm.setLocalidade(idLocalidade.toString());
}
Integer codigoSetorComercial = null;
if(httpServletRequest.getParameter("codigoSetorComercial") != null && !httpServletRequest.getParameter("codigoSetorComercial").equals("")){
codigoSetorComercial = Integer.parseInt(httpServletRequest.getParameter("codigoSetorComercial"));
inserirConjuntoQuadraActionForm.setIdSetorComercial(codigoSetorComercial.toString());
}
Localidade localidade = pesquisarLocalidade(fachada, idLocalidade);
inserirConjuntoQuadraActionForm.setLocalidade(localidade.getDescricao());
SetorComercial setorComercial = (SetorComercial) pesquisarSetorComercial(
idLocalidade,codigoSetorComercial.toString());
inserirConjuntoQuadraActionForm.setIdSetorComercial(codigoSetorComercial.toString());
inserirConjuntoQuadraActionForm.setSetorComercial(setorComercial.getDescricao());
Collection colecaoQuadra = pesquisarQuadra(fachada, setorComercial.getId());
sessao.setAttribute("colecaoQuadra", colecaoQuadra);
return retorno;
}
private Collection pesquisarQuadra(Fachada fachada, Integer idSetorComercial) {
FiltroQuadra filtroQuadra = new FiltroQuadra();
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.ID_SETORCOMERCIAL, idSetorComercial));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroQuadra.setCampoOrderBy(FiltroQuadra.NUMERO_QUADRA);
//Retorna quadra
Collection colecaoQuadra = fachada.pesquisar(filtroQuadra, Quadra.class.getName());
return colecaoQuadra;
}
/**
* Valida os valores digitados pelo usu�rio
*
* @param campoDependencia
* @param dependente
* @param tipoObjeto
* @return Object
* @throws RemoteException
* @throws ErroRepositorioException
*/
private Object pesquisarSetorComercial(Integer idLocalidade, String codigoSetorComercial) {
Object objeto = null;
Collection colecaoPesquisa;
//Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
filtroSetorComercial
.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE,
idLocalidade));
filtroSetorComercial
.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,
new Integer(codigoSetorComercial)));
filtroSetorComercial
.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
colecaoPesquisa = fachada.pesquisar(filtroSetorComercial,
SetorComercial.class.getName());
if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) {
objeto = Util.retonarObjetoDeColecao(colecaoPesquisa);
}else{
throw new ActionServletException(
"atencao.setor_comercial.inexistente");
}
return objeto;
}
private Localidade pesquisarLocalidade(Fachada fachada, Integer idLocalidade) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, idLocalidade));
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
//Retorna localidade
Collection localidades = fachada.pesquisar(filtroLocalidade,
Localidade.class.getName());
Localidade localidade = null;
if ( !Util.isVazioOrNulo(localidades)) {
localidade = (Localidade)Util.retonarObjetoDeColecao(localidades);
} else {
throw new ActionServletException(
"atencao.pesquisa.localidade_inexistente");
}
return localidade;
}
}