package gcom.gui.atendimentopublico;
import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.atendimentopublico.ordemservico.OrdemServico;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.cliente.ClienteRelacaoTipo;
import gcom.cadastro.cliente.FiltroClienteImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.bean.IntegracaoQuadraFaceHelper;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ConectorAnd;
import gcom.util.filtro.ConectorOr;
import gcom.util.filtro.ParametroNulo;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
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;
public class ExibirAlterarSituacaoLigacaoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("alterarSituacaoLigacao");
AlterarSituacaoLigacaoActionForm form = (AlterarSituacaoLigacaoActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
String indicadorRedeAgua = null;
String indicadorRedeEsgoto = null;
String idOrdemServico = null;
idOrdemServico = form.getIdOrdemServico();
this.pesquisarSelectObrigatorio(httpServletRequest, form, indicadorRedeAgua, indicadorRedeEsgoto);
OrdemServico ordemServico = null;
if (idOrdemServico != null && !idOrdemServico.trim().equals("")) {
ordemServico = fachada.recuperaOSPorId(new Integer(idOrdemServico));
if (ordemServico != null) {
boolean veioEncerrarOS = false;
fachada.validarOrdemServicoAlterarSituacaoLigacao(ordemServico, veioEncerrarOS);
form.setIdOrdemServico(idOrdemServico);
form.setNomeOrdemServico(ordemServico.getServicoTipo().getDescricao());
sessao.setAttribute("ordemServico", ordemServico);
Imovel imovel = ordemServico.getImovel();
String matriculaImovel = imovel.getId().toString();
form.setMatriculaImovel("" + matriculaImovel);
sessao.setAttribute("imovel", ordemServico.getImovel());
if (imovel != null) {
form.setMatriculaImovel(imovel.getId().toString());
String inscricaoImovel = fachada.pesquisarInscricaoImovel(imovel.getId());
form.setInscricaoImovel(inscricaoImovel);
String situacaoLigacaoAgua = imovel.getLigacaoAguaSituacao().getDescricao();
form.setSituacaoLigacaoAguaAtual(situacaoLigacaoAgua);
String situacaoLigacaoEsgoto = imovel.getLigacaoEsgotoSituacao().getDescricao();
form.setSituacaoLigacaoEsgotoAtual(situacaoLigacaoEsgoto);
IntegracaoQuadraFaceHelper integracao = fachada.integracaoQuadraFace(imovel.getId());
indicadorRedeAgua = integracao.getIndicadorRedeAgua().toString();
indicadorRedeEsgoto = integracao.getIndicadorRedeEsgoto().toString();
this.pesquisarSelectObrigatorio(httpServletRequest, form, indicadorRedeAgua, indicadorRedeEsgoto);
this.pesquisarCliente(form, new Integer(matriculaImovel));
}
} else {
httpServletRequest.setAttribute("OrdemServicoInexistente", true);
form.setIdOrdemServico("");
form.setNomeOrdemServico("ORDEM DE SERVI�O INEXISTENTE");
}
}
return retorno;
}
private void pesquisarCliente(AlterarSituacaoLigacaoActionForm form, Integer matriculaImovel) {
FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel();
filtroClienteImovel.adicionarParametro(new ParametroSimples(FiltroClienteImovel.IMOVEL_ID, matriculaImovel));
filtroClienteImovel.adicionarParametro(new ParametroSimples(FiltroClienteImovel.CLIENTE_RELACAO_TIPO,
new Integer(ClienteRelacaoTipo.USUARIO)));
filtroClienteImovel.adicionarParametro(new ParametroNulo(FiltroClienteImovel.DATA_FIM_RELACAO));
filtroClienteImovel.adicionarCaminhoParaCarregamentoEntidade("cliente");
Collection colecaoClienteImovel = Fachada.getInstancia().pesquisar(filtroClienteImovel, ClienteImovel.class.getName());
if (colecaoClienteImovel != null && !colecaoClienteImovel.isEmpty()) {
ClienteImovel clienteImovel = (ClienteImovel) colecaoClienteImovel.iterator().next();
Cliente cliente = clienteImovel.getCliente();
String documento = "";
if (cliente.getCpf() != null && !cliente.getCpf().equals("")) {
documento = cliente.getCpfFormatado();
} else {
documento = cliente.getCnpjFormatado();
}
form.setClienteUsuario(cliente.getNome());
form.setCpfCnpjCliente(documento);
} else {
throw new ActionServletException("atencao.naocadastrado", null, "Cliente");
}
}
private void pesquisarSelectObrigatorio(HttpServletRequest httpServletRequest, AlterarSituacaoLigacaoActionForm form,
String indicadorRedeAgua, String indicadorRedeEsgoto) {
Fachada fachada = Fachada.getInstancia();
FiltroLigacaoAguaSituacao filtroLigacaoAguaSituacao = new FiltroLigacaoAguaSituacao();
FiltroLigacaoEsgotoSituacao filtroLigacaoEsgotoSituacao = new FiltroLigacaoEsgotoSituacao();
httpServletRequest.setAttribute("colecaoLigacaoAguaSituacao", new ArrayList());
httpServletRequest.setAttribute("colecaoLigacaoEsgotoSituacao",new ArrayList());
if (form.getIndicadorTipoLigacao() != null) {
if (form.getIndicadorTipoLigacao().equals("1") || form.getIndicadorTipoLigacao().equals("3")) {
if (indicadorRedeAgua != null) {
Collection<LigacaoAguaSituacao> colecaoLigacaoAguaSituacao = null;
httpServletRequest.setAttribute("comboLigacaoAgua", "sim");
if (indicadorRedeAgua.equalsIgnoreCase("" + Quadra.SEM_REDE)) {
filtroLigacaoAguaSituacao.setCampoOrderBy(FiltroLigacaoAguaSituacao.DESCRICAO);
filtroLigacaoAguaSituacao.adicionarParametro(new ParametroSimples(
FiltroLigacaoAguaSituacao.ID, LigacaoAguaSituacao.POTENCIAL));
colecaoLigacaoAguaSituacao = fachada.pesquisar(filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName());
}
if (indicadorRedeAgua.equalsIgnoreCase("" + Quadra.COM_REDE)) {
filtroLigacaoAguaSituacao.setCampoOrderBy(FiltroLigacaoAguaSituacao.DESCRICAO);
filtroLigacaoAguaSituacao.adicionarParametro(new ParametroSimples(
FiltroLigacaoAguaSituacao.ID, LigacaoAguaSituacao.FACTIVEL));
filtroLigacaoAguaSituacao.adicionarParametro( new ParametroSimples(
FiltroLigacaoAguaSituacao.INDICADOR_FATURAMENTO, ConstantesSistema.NAO ));
colecaoLigacaoAguaSituacao = fachada.pesquisar(filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName());
}
if (indicadorRedeAgua.equalsIgnoreCase(""+ Quadra.REDE_PARCIAL)) {
filtroLigacaoAguaSituacao.setCampoOrderBy(FiltroLigacaoAguaSituacao.DESCRICAO);
filtroLigacaoAguaSituacao.adicionarParametro(new ParametroSimples(FiltroLigacaoAguaSituacao.ID,
LigacaoAguaSituacao.POTENCIAL, ConectorOr.CONECTOR_OR ));
filtroLigacaoAguaSituacao.adicionarParametro(new ParametroSimples(FiltroLigacaoAguaSituacao.ID,
LigacaoAguaSituacao.FACTIVEL, ConectorAnd.CONECTOR_AND, 2));
filtroLigacaoAguaSituacao.adicionarParametro( new ParametroSimples(
FiltroLigacaoAguaSituacao.INDICADOR_FATURAMENTO, ConstantesSistema.NAO ) );
colecaoLigacaoAguaSituacao = fachada.pesquisar(filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName());
}
if (colecaoLigacaoAguaSituacao == null || colecaoLigacaoAguaSituacao.isEmpty()) {
throw new ActionServletException("atencao.entidade_sem_dados_para_selecao",
null, "Tabela Ligacao Agua Situacao ");
}
httpServletRequest.setAttribute("colecaoLigacaoAguaSituacao", colecaoLigacaoAguaSituacao);
}
}
if (form.getIndicadorTipoLigacao().equals("2") || form.getIndicadorTipoLigacao().equals("3")) {
if (indicadorRedeEsgoto != null) {
Collection<LigacaoEsgotoSituacao> colecaoLigacaoEsgotoSituacao = null;
httpServletRequest.setAttribute("comboLigacaoEsgoto", "sim");
if (indicadorRedeEsgoto.equalsIgnoreCase("" + Quadra.SEM_REDE)) {
filtroLigacaoEsgotoSituacao.adicionarParametro(new ParametroSimples(
FiltroLigacaoEsgotoSituacao.ID, LigacaoEsgotoSituacao.POTENCIAL));
colecaoLigacaoEsgotoSituacao = fachada.pesquisar(filtroLigacaoEsgotoSituacao, LigacaoEsgotoSituacao.class.getName());
}
if (indicadorRedeEsgoto.equalsIgnoreCase("" + Quadra.COM_REDE)) {
filtroLigacaoEsgotoSituacao.adicionarParametro(new ParametroSimples(
FiltroLigacaoEsgotoSituacao.ID, LigacaoEsgotoSituacao.FACTIVEL));
filtroLigacaoEsgotoSituacao.adicionarParametro( new ParametroSimples(
FiltroLigacaoEsgotoSituacao.INDICADORFATURAMENTOSITUACAO, ConstantesSistema.NAO ) );
colecaoLigacaoEsgotoSituacao = fachada.pesquisar(filtroLigacaoEsgotoSituacao, LigacaoEsgotoSituacao.class.getName());
}
if (indicadorRedeEsgoto.equalsIgnoreCase("" + Quadra.REDE_PARCIAL)) {
filtroLigacaoEsgotoSituacao.adicionarParametro(new ParametroSimples(
FiltroLigacaoEsgotoSituacao.ID, LigacaoEsgotoSituacao.POTENCIAL,
ConectorOr.CONECTOR_OR ));
filtroLigacaoEsgotoSituacao.adicionarParametro(new ParametroSimples(
FiltroLigacaoEsgotoSituacao.ID, LigacaoEsgotoSituacao.FACTIVEL,
ConectorAnd.CONECTOR_AND, 2));
filtroLigacaoEsgotoSituacao.adicionarParametro( new ParametroSimples(
FiltroLigacaoEsgotoSituacao.INDICADORFATURAMENTOSITUACAO,
ConstantesSistema.NAO));
colecaoLigacaoEsgotoSituacao = fachada.pesquisar(filtroLigacaoEsgotoSituacao, LigacaoEsgotoSituacao.class.getName());
}
if (colecaoLigacaoEsgotoSituacao == null || colecaoLigacaoEsgotoSituacao.isEmpty()) {
throw new ActionServletException("atencao.entidade_sem_dados_para_selecao",
null, "Ligacao Esgoto Situacao");
}
httpServletRequest.setAttribute("colecaoLigacaoEsgotoSituacao", colecaoLigacaoEsgotoSituacao);
}
}
}
}
}