package gcom.gui.atendimentopublico.registroatendimento;
import gcom.atendimentopublico.ligacaoagua.FiltroDiametroLigacao;
import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoagua.FiltroMaterialLigacao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.atendimentopublico.registroatendimento.EspecificacaoImovSitCriterio;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Date;
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;
/**
* [UC0404] - Manter Especifica��o da Situa��o do Im�vel
*
* [SB0001] - Atualizar Especifica��o da situa��o Criterio Imovel
*
* @author Rafael Pinto
*
* @date 09/11/2006
*/
public class ExibirInserirEspecificacaoSituacaoCriterioImovelAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("inserirEspecificacaoSituacaoImovelCriterio");
AtualizarEspecificacaoSituacaoImovelActionForm form =
(AtualizarEspecificacaoSituacaoImovelActionForm) actionForm;
HttpSession sessao = this.getSessao(httpServletRequest);
String tipoOperacao = httpServletRequest.getParameter("tipoOperacao");
if(tipoOperacao != null && !tipoOperacao.equals("")){
EspecificacaoImovSitCriterio novaEspecificacaoImovSitCriterio = new EspecificacaoImovSitCriterio();
if(form.getIndicadorHidrometroLigacaoAgua() != null &&
!form.getIndicadorHidrometroLigacaoAgua().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
novaEspecificacaoImovSitCriterio.setIndicadorHidrometroLigacaoAgua(
new Short(form.getIndicadorHidrometroLigacaoAgua()));
}
if(form.getIndicadorHidrometroPoco() != null &&
!form.getIndicadorHidrometroPoco().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
novaEspecificacaoImovSitCriterio.setIndicadorHidrometroPoco(
new Short(form.getIndicadorHidrometroPoco()));
}
if(form.getSituacaoLigacaoAgua() != null &&
!form.getSituacaoLigacaoAgua().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
Integer idSituacaoLigacaoAgua = new Integer(form.getSituacaoLigacaoAgua());
LigacaoAguaSituacao ligacaoAguaSituacao = this.retornaLigacaoAguaSituacao(sessao,idSituacaoLigacaoAgua);
novaEspecificacaoImovSitCriterio.setLigacaoAguaSituacao(ligacaoAguaSituacao);
}
if(form.getSituacaoLigacaoEsgoto() != null &&
!form.getSituacaoLigacaoEsgoto().equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){
Integer idSituacaoLigacaoEsgoto = new Integer(form.getSituacaoLigacaoEsgoto());
LigacaoEsgotoSituacao ligacaoEsgotoSituacao =
this.retornaLigacaoEsgotoSituacao(sessao,idSituacaoLigacaoEsgoto);
novaEspecificacaoImovSitCriterio.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao);
}
novaEspecificacaoImovSitCriterio.setUltimaAlteracao(new Date());
// Faz as valida��es de inser��o de especificao situacao imovel
this.getFachada().validarExibirInsercaoEspecificacaoImovSitCriterio(
form.getEspecificacaoImovelSituacaoCriterio(),novaEspecificacaoImovSitCriterio);
form.getEspecificacaoImovelSituacaoCriterio().add(novaEspecificacaoImovSitCriterio);
form.setTamanhoColecao(form.getEspecificacaoImovelSituacaoCriterio().size()+"");
httpServletRequest.setAttribute("fechaPopup", "true");
}else{
this.resetPopup(form);
this.consultaSelectObrigatorio(sessao);
}
return retorno;
}
private void consultaSelectObrigatorio(HttpSession sessao){
// Filtro para o campo Situa��o Liga��o �gua
Collection colecaoSituacaoLigacaoAgua = (Collection)
sessao.getAttribute("colecaoSituacaoLigacaoAgua");
if(colecaoSituacaoLigacaoAgua == null){
FiltroLigacaoAguaSituacao filtroLigacaoAguaSituacao = new FiltroLigacaoAguaSituacao();
filtroLigacaoAguaSituacao.adicionarParametro(new ParametroSimples(
FiltroLigacaoAguaSituacao.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO));
filtroLigacaoAguaSituacao.setCampoOrderBy(FiltroDiametroLigacao.DESCRICAO);
colecaoSituacaoLigacaoAgua =
this.getFachada().pesquisar(filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName());
if (colecaoSituacaoLigacaoAgua != null && !colecaoSituacaoLigacaoAgua.isEmpty()) {
sessao.setAttribute("colecaoSituacaoLigacaoAgua",colecaoSituacaoLigacaoAgua);
} else {
throw new ActionServletException("atencao.naocadastrado",null, "Situa��o Liga��o de Agua");
}
}
// Filtro para o campo Situacao da Liga��o Esgoto
Collection colecaoSituacaoLigacaoEsgoto = (Collection)
sessao.getAttribute("colecaoSituacaoLigacaoEsgoto");
if(colecaoSituacaoLigacaoEsgoto == null){
FiltroLigacaoEsgotoSituacao filtroLigacaoEsgotoSituacao = new FiltroLigacaoEsgotoSituacao();
filtroLigacaoEsgotoSituacao.adicionarParametro(new ParametroSimples(
FiltroLigacaoEsgotoSituacao.INDICADOR_USO,ConstantesSistema.INDICADOR_USO_ATIVO));
filtroLigacaoEsgotoSituacao.setCampoOrderBy(FiltroMaterialLigacao.DESCRICAO);
colecaoSituacaoLigacaoEsgoto =
this.getFachada().pesquisar(filtroLigacaoEsgotoSituacao, LigacaoEsgotoSituacao.class.getName());
if (colecaoSituacaoLigacaoEsgoto != null && !colecaoSituacaoLigacaoEsgoto.isEmpty()) {
sessao.setAttribute("colecaoSituacaoLigacaoEsgoto",colecaoSituacaoLigacaoEsgoto);
} else {
throw new ActionServletException("atencao.naocadastrado",null, "Situa��o Liga��o de Esgoto");
}
}
}
//retorna LigacaoAguaSituacao pelo id na colecao de ligacaoAguaSituacao
private LigacaoAguaSituacao retornaLigacaoAguaSituacao(HttpSession sessao,Integer id){
LigacaoAguaSituacao retorno = null;
Collection colecao = (Collection) sessao.getAttribute("colecaoSituacaoLigacaoAgua");
if(colecao != null && !colecao.isEmpty()){
Iterator itera = colecao.iterator();
while (itera.hasNext()) {
LigacaoAguaSituacao ligacaoAguaSituacao = (LigacaoAguaSituacao) itera.next();
if(ligacaoAguaSituacao.getId().intValue() == id.intValue()){
retorno = ligacaoAguaSituacao;
break;
}
}
}
return retorno;
}
//retorna LigacaoEsgotoSituacao pelo id na colecao de ligacaoEsgotoSituacao
private LigacaoEsgotoSituacao retornaLigacaoEsgotoSituacao(HttpSession sessao,Integer id){
LigacaoEsgotoSituacao retorno = null;
Collection colecao = (Collection) sessao.getAttribute("colecaoSituacaoLigacaoEsgoto");
if(colecao != null && !colecao.isEmpty()){
Iterator itera = colecao.iterator();
while (itera.hasNext()) {
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) itera.next();
if(ligacaoEsgotoSituacao.getId().intValue() == id.intValue()){
retorno = ligacaoEsgotoSituacao;
break;
}
}
}
return retorno;
}
/**
* Reseta informa��es vindas do popup
*
* @author Rafael Pinto
* @date 03/08/2006
*
* @param inserirEspecificacaoSituacaoImovelActionForm
*/
private void resetPopup(AtualizarEspecificacaoSituacaoImovelActionForm form) {
form.setIndicadorHidrometroLigacaoAgua(null);
form.setIndicadorHidrometroPoco(null);
form.setSituacaoLigacaoAgua(null);
form.setSituacaoLigacaoEsgoto(null);
}
}