package gcom.gui.micromedicao;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ControladorException;
import gcom.util.Util;
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;
public class ExibirSubstituirConsumoAnteriorAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o retorno
ActionForward retorno = actionMapping
.findForward("substituirConsumoAnterior");
// Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
// Obt�m a sess�o
HttpSession sessao = httpServletRequest.getSession(false);
LeituraConsumoActionForm leituraConsumoActionForm = (LeituraConsumoActionForm) actionForm;
String codigoImovel = httpServletRequest.getParameter("idImovel");
sessao.removeAttribute("colecaoConsumoHistorico");
if (codigoImovel != null && !codigoImovel.trim().equalsIgnoreCase("")) {
try {
String enderecoFormatadoImovel = fachada.pesquisarEnderecoFormatado(new Integer(codigoImovel));
httpServletRequest.setAttribute("enderecoImovel",
enderecoFormatadoImovel);
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (ControladorException e) {
e.printStackTrace();
}
}
if(httpServletRequest.getParameter("peloMenu") != null){
sessao.setAttribute("peloMenu", true);
}
if(codigoImovel != null || leituraConsumoActionForm.getIdImovelSubstituirConsumo() != null){
//FiltroConsumoHistorico filtroConsumoHistoricoAgua = new FiltroConsumoHistorico();
//FiltroConsumoHistorico filtroConsumoHistoricoEsgoto = new FiltroConsumoHistorico();
//Collection colecaoConsumoHistorico = new ArrayList();
// ImovelMicromedicao imovelMicromedicao = new ImovelMicromedicao();
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LIGACAO_AGUA_SITUACAO);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LIGACAO_ESGOTO_SITUACAO);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.SETOR_COMERCIAL);
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.QUADRA);
// Imovel imovel = new Imovel();
if(codigoImovel != null){
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, codigoImovel));
// imovel.setId(new Integer(codigoImovel));
}else if(httpServletRequest.getParameter("tipoConsulta") != null){
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, leituraConsumoActionForm.getIdImovelSubstituirConsumo()));
// imovel.setId(new Integer(leituraConsumoActionForm.getIdImovelSubstituirConsumo()));
}
Collection colecaoImoveis = fachada.pesquisar(filtroImovel, Imovel.class.getName());
Imovel imovel = (Imovel) Util.retonarObjetoDeColecao(colecaoImoveis);
if (imovel != null){
try {
String endereceoFormatado = fachada.pesquisarEnderecoFormatado(imovel.getId());
// String inscricaoFormatada = fachada.pesquisarInscricaoImovel(imovel.getId());
String inscricaoFormatada = imovel.getInscricaoFormatada();
Cliente clienteUsuario = fachada.pesquisarClienteUsuarioImovel(imovel.getId());
leituraConsumoActionForm.setNomeUsuario(clienteUsuario.getNome());
leituraConsumoActionForm.setLigacaoAguaSituacao(imovel.getLigacaoAguaSituacao().getDescricao());
leituraConsumoActionForm.setLigacaoEsgotoSituacao(imovel.getLigacaoEsgotoSituacao().getDescricao());
if(endereceoFormatado == null || endereceoFormatado.trim().equals("")){
leituraConsumoActionForm.setInscricaoImovel("Matr�cula inexistente.");
leituraConsumoActionForm.setIdImovelSubstituirConsumo(null);
httpServletRequest.setAttribute("corTexto", "#ff0000");
}else{
// leituraConsumoActionForm.setEnderecoFormatado(endereceoFormatado);
httpServletRequest.setAttribute("enderecoImovel", endereceoFormatado);
leituraConsumoActionForm.setInscricaoImovel(inscricaoFormatada);
httpServletRequest.setAttribute("corTexto", "#000000");
sessao.setAttribute("idImovelSelecionado", imovel.getId());
Collection colecaoGeral = fachada.pesquisaConsumoHistoricoSubstituirConsumo(imovel.getId());
if(colecaoGeral != null && !colecaoGeral.isEmpty()){
// joga as colecoes na sessao
sessao.setAttribute("colecaoConsumoHistorico",
colecaoGeral);
// ConsumoHistorico consumoHistorico = null;
// ConsumoHistorico consumoHistoricoJuncao = null;
// Iterator iteratorConsumoHistorico = colecaoGeral.iterator();
// Iterator iteratorConsumoHistoricoJuncao = null;
// while(iteratorConsumoHistorico.hasNext()){
// ImovelMicromedicao imovelMicromedicao = new ImovelMicromedicao();
// imovelMicromedicao.setImovel(imovel);
// //
// iteratorConsumoHistoricoJuncao = colecaoGeral.iterator();
//
// consumoHistorico = (ConsumoHistorico)iteratorConsumoHistorico.next();
// if(consumoHistorico.getLigacaoTipo() != null && consumoHistorico.getLigacaoTipo().getId().equals(LigacaoTipo.LIGACAO_AGUA)){
// imovelMicromedicao.setConsumoHistorico(consumoHistorico);
// colecaoConsumoHistorico.add(imovelMicromedicao);
// }else if(consumoHistorico.getLigacaoTipo() != null && consumoHistorico.getLigacaoTipo().getId().equals(LigacaoTipo.LIGACAO_ESGOTO)){
// imovelMicromedicao.setConsumoHistoricoEsgoto(consumoHistorico);
// colecaoConsumoHistorico.add(imovelMicromedicao);
// }
// while(iteratorConsumoHistoricoJuncao.hasNext()){
// consumoHistoricoJuncao = (ConsumoHistorico)iteratorConsumoHistoricoJuncao.next();
//
// if(consumoHistoricoJuncao.getMesAno().equals(consumoHistorico.getMesAno())
// && !consumoHistorico.getLigacaoTipo().getId().equals(consumoHistoricoJuncao.getLigacaoTipo().getId())){
//
// if(consumoHistoricoJuncao.getLigacaoTipo() != null && consumoHistoricoJuncao.getLigacaoTipo().getId().equals(LigacaoTipo.LIGACAO_AGUA)){
// imovelMicromedicao.setConsumoHistorico(consumoHistoricoJuncao);
// colecaoConsumoHistorico.add(imovelMicromedicao);
// iteratorConsumoHistorico.remove();
// break;
// }else if(consumoHistoricoJuncao.getLigacaoTipo() != null && consumoHistoricoJuncao.getLigacaoTipo().getId().equals(LigacaoTipo.LIGACAO_ESGOTO)){
// imovelMicromedicao.setConsumoHistoricoEsgoto(consumoHistoricoJuncao);
// colecaoConsumoHistorico.add(imovelMicromedicao);
// iteratorConsumoHistorico.remove();
// break;
// }
//
// }
// }
// }
}else{
throw new ActionServletException("atencao.nenhum_consumo_substituir");
}
}
} catch (ControladorException e) {
e.printStackTrace();
}
// imovelMicromedicao.setImovel(imovel);
}
else{
leituraConsumoActionForm.setInscricaoImovel("Matr�cula inexistente.");
leituraConsumoActionForm.setIdImovelSubstituirConsumo(null);
httpServletRequest.setAttribute("corTexto", "#ff0000");
}
}
httpServletRequest.setAttribute("nomeCampo","idImovelSubstituirConsumo");
// devolve o mapeamento de retorno
return retorno;
}
}