package gcom.gui.micromedicao;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.FiltroRateioTipo;
import gcom.micromedicao.RateioTipo;
import gcom.micromedicao.hidrometro.FiltroHidrometroInstalacaoHistorico;
import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroNulo;
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;
/**
* Atualizar Tipo de Rateio
*
* @author Rafael Santos
* @since 11/01/2006
*/
public class ExibirAtualizarTipoRateioPopupAction extends GcomAction {
/**
* Description of the Method
*
* @param actionMapping
* Description of the Parameter
* @param actionForm
* Description of the Parameter
* @param httpServletRequest
* Description of the Parameter
* @param httpServletResponse
* Description of the Parameter
* @return Description of the Return Value
*/
@Override
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("atualizarTipoRateioPopup");
Fachada fachada = Fachada.getInstancia();
AtualizarTipoRateioPopupActionForm form = (AtualizarTipoRateioPopupActionForm) actionForm;
if (httpServletRequest.getParameter("limpar") != null
&& httpServletRequest.getParameter("limpar").equalsIgnoreCase("ok")) {
form.setRateioTipoAgua(null);
form.setRateioTipoPoco(null);
form.setBotao("");
form.setMatriculaImovelAreaComum("");
form.setInscricaoImovelAreaComum("");
form.setMatriculaImovelAreaComumAtual("");
}
if (httpServletRequest.getParameter("pesquisarInscricao") != null
&& ((String) httpServletRequest.getParameter("pesquisarInscricao")).equals("sim")
&& form.getMatriculaImovelAreaComum() != null && Integer.valueOf(form.getMatriculaImovelAreaComum()) > 0) {
this.pesquisarInscricaoImovel(new Integer(form.getMatriculaImovelAreaComum()), form, httpServletRequest);
form.setBotao("Visualizar");
} else {
form.setMatriculaImovelAreaComum("");
form.setInscricaoImovelAreaComum("");
FiltroRateioTipo filtroRateioTipo = new FiltroRateioTipo();
filtroRateioTipo.setCampoOrderBy(FiltroRateioTipo.DESCRICAO);
filtroRateioTipo.adicionarParametro(new ParametroSimples(FiltroRateioTipo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection<RateioTipo> colecaoRateioTipo = fachada.pesquisar(filtroRateioTipo, RateioTipo.class.getName());
HttpSession sessao = httpServletRequest.getSession(false);
sessao.setAttribute("colecaoRateioTipo", colecaoRateioTipo);
String matriculaImovel = "";
if (httpServletRequest.getParameter("MatriculaImovel") != null) {
sessao.setAttribute("matriculaImovel", httpServletRequest.getParameter("MatriculaImovel"));
matriculaImovel = (String) httpServletRequest.getParameter("MatriculaImovel");
} else {
matriculaImovel = (String) sessao.getAttribute("matriculaImovel");
}
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID,
matriculaImovel));
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("ligacaoAgua.hidrometroInstalacaoHistorico.rateioTipo");
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("hidrometroInstalacaoHistorico.rateioTipo");
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.QUADRA);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra.rota");
Collection<Imovel> imovelPesquisado = fachada.pesquisar(filtroImovel, Imovel.class.getName());
Imovel imovel = (Imovel) Util.retonarObjetoDeColecao(imovelPesquisado);
// ligacao agua
FiltroHidrometroInstalacaoHistorico filtroHidrometroInstalacaoHistorico = new FiltroHidrometroInstalacaoHistorico();
filtroHidrometroInstalacaoHistorico.adicionarParametro(new ParametroSimples(FiltroHidrometroInstalacaoHistorico.LIGACAO_AGUA_ID,
matriculaImovel));
filtroHidrometroInstalacaoHistorico.adicionarParametro(new ParametroNulo(FiltroHidrometroInstalacaoHistorico.DATA_RETIRADA));
Collection colecaoHidrometroInstalacaoHistoricoAgua = fachada.pesquisar(filtroHidrometroInstalacaoHistorico, HidrometroInstalacaoHistorico.class.getName());
if (colecaoHidrometroInstalacaoHistoricoAgua != null && !colecaoHidrometroInstalacaoHistoricoAgua.isEmpty()) {
RateioTipo rateioTipo = ((HidrometroInstalacaoHistorico) Util.retonarObjetoDeColecao(colecaoHidrometroInstalacaoHistoricoAgua)).getRateioTipo();
if (rateioTipo != null) {
form.setRateioTipoAgua(rateioTipo.getId().toString());
} else {
form.setRateioTipoAgua("");
}
form.setBotao("Visualizar");
}
// po�o
FiltroHidrometroInstalacaoHistorico filtroHidrometroInstalacaoHistoricoPoco = new FiltroHidrometroInstalacaoHistorico();
filtroHidrometroInstalacaoHistoricoPoco.adicionarParametro(new ParametroSimples(FiltroHidrometroInstalacaoHistorico.IMOVEL_ID,
matriculaImovel));
Collection colecaoHidrometroInstalacaoHistoricoPoco = fachada.pesquisar(filtroHidrometroInstalacaoHistoricoPoco, HidrometroInstalacaoHistorico.class.getName());
if (colecaoHidrometroInstalacaoHistoricoPoco != null && !colecaoHidrometroInstalacaoHistoricoPoco.isEmpty()) {
RateioTipo rateioTipo = ((HidrometroInstalacaoHistorico) colecaoHidrometroInstalacaoHistoricoPoco.iterator()
.next()).getRateioTipo();
if (rateioTipo != null) {
form.setRateioTipoPoco(rateioTipo.getId().toString());
} else {
form.setRateioTipoPoco("");
}
form.setBotao("Visualizar");
}
// [FS0009] - Verificar se o im�vel � um condom�nio
if (imovel.getIndicadorImovelCondominio() == null
|| imovel.getIndicadorImovelCondominio().equals(ConstantesSistema.NAO)) {
throw new ActionServletException("atencao.imovel.nao_condominio");
}
/*
* Magno Gouveia [SB0001] Atualizar tipo de rateio
*/
form.setMatriculaImovelAreaComumAtual("");
/*
* Caso o tipo da rateio do im�vel condom�nio da liga��o de �gua corresponda a 'RATEIO
* POR �REA COMUM' o sistema pesquisa na tabela cadastro.imovel a matr�cula vinculada ao
* im�vel condom�nio que tenha o indicador(imov_icimovelareacomum = 1) e exibe a ma-
* tr�cula ao lado da descri��o do tipo de rateio e habilita o bot�o 'ATUALIZAR IMOVEL
* AREA COMUM', Caso Contr�rio mover nulo para a matr�cula ao lado da descri��o do tipo
* de rateio e desabilitar o bot�o �ATUALIZAR IMOVEL AREA COMUM�
*/
if (!Util.isVazioOrNulo(colecaoHidrometroInstalacaoHistoricoAgua)) {
HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = (HidrometroInstalacaoHistorico) Util.retonarObjetoDeColecao(colecaoHidrometroInstalacaoHistoricoAgua);
if (hidrometroInstalacaoHistorico.getRateioTipo() != null
&& hidrometroInstalacaoHistorico.getRateioTipo().getId().equals(RateioTipo.RATEIO_AREA_COMUM)) {
Integer idImovelAreaComum = (Integer) fachada.pesquisarImovelAreaComum(imovel.getId());
if (idImovelAreaComum != null) {
form.setMatriculaImovelAreaComumAtual(idImovelAreaComum.toString());
}
}
}
sessao.setAttribute("imovelVinculado", imovel);
}
if ((httpServletRequest.getParameter("tipoConsulta") != null && !httpServletRequest.getParameter("tipoConsulta")
.equals(""))
&& (httpServletRequest.getParameter("tipoConsulta").equals("imovel"))) {
form.setMatriculaImovelAreaComum(httpServletRequest.getParameter("idCampoEnviarDados"));
form.setInscricaoImovelAreaComum(httpServletRequest.getParameter("descricaoCampoEnviarDados"));
}
return retorno;
}
private void pesquisarInscricaoImovel(Integer idImovel, AtualizarTipoRateioPopupActionForm form,
HttpServletRequest httpServletRequest) {
Fachada fachada = Fachada.getInstancia();
String inscricaoImovel = fachada.pesquisarInscricaoImovel(idImovel);
// Verificar exist�ncioa da matr�cula do im�vel
if (inscricaoImovel == null || inscricaoImovel.equals("")) {
form.setMatriculaImovelAreaComum("");
form.setInscricaoImovelAreaComum("MATR�CULA INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo", "matriculaImovelAreaComum");
httpServletRequest.setAttribute("idImovelNaoEncontrado", "exception");
} else {
form.setInscricaoImovelAreaComum(inscricaoImovel);
}
}
}