package gcom.gui.faturamento;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.localidade.FiltroQuadra;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoAtivCronRota;
import gcom.faturamento.FaturamentoAtividade;
import gcom.faturamento.FiltroFaturamentoAtivCronRota;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.leitura.FiltroLeituraAnormalidade;
import gcom.micromedicao.leitura.LeituraAnormalidade;
import gcom.micromedicao.leitura.LeituraSituacao;
import gcom.micromedicao.leitura.LeituraTipo;
import gcom.micromedicao.medicao.FiltroMedicaoHistorico;
import gcom.micromedicao.medicao.FiltroMedicaoTipo;
import gcom.micromedicao.medicao.MedicaoHistorico;
import gcom.micromedicao.medicao.MedicaoTipo;
import gcom.util.ConstantesSistema;
import gcom.util.ControladorException;
import gcom.util.Util;
import gcom.util.filtro.ParametroNaoNulo;
import gcom.util.filtro.ParametroSimples;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.List;
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 ExibirDadosFaturamentoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
throws ControladorException {
ActionForward retorno = actionMapping
.findForward("atualizarFaturamentoDados");
// obtendo uma instancia da sessao
HttpSession sessao = httpServletRequest.getSession(false);
sessao.removeAttribute("medicoesTipo");
sessao.removeAttribute("imovel");
sessao.removeAttribute("medicaoHistorico");
sessao.removeAttribute("alterarFaturamentoDadosActionForm");
AlterarFaturamentoDadosActionForm alterarFaturamentoDadosActionForm = (AlterarFaturamentoDadosActionForm) actionForm;
if (httpServletRequest.getParameter("telaMedicaoConsumoDadosAnt") != null
&& !httpServletRequest.getParameter(
"telaMedicaoConsumoDadosAnt").equals("")) {
sessao.setAttribute("telaMedicaoConsumoDadosAnt",
httpServletRequest
.getParameter("telaMedicaoConsumoDadosAnt"));
alterarFaturamentoDadosActionForm.setIdAnormalidade("");
}
if (httpServletRequest.getParameter("desfazer") != null
&& !httpServletRequest.getParameter("desfazer").equals("")) {
alterarFaturamentoDadosActionForm.setIdAnormalidade("");
}
// se a requisi��o vier da Tela de Apresentar Dados Para An�lise da Medi��o e Consumo
// carregar o im�vel
if(httpServletRequest.getParameter("idRegistroAtualizacao") != null
&& !httpServletRequest.getParameter("idRegistroAtualizacao").equals("")
&& httpServletRequest.getParameter("medicaoTipo") != null
&& !httpServletRequest.getParameter("medicaoTipo").equals("")){
String idImovel = httpServletRequest.getParameter("idRegistroAtualizacao");
String medicaoTipo = httpServletRequest.getParameter("medicaoTipo");
alterarFaturamentoDadosActionForm.setIdImovel(idImovel);
alterarFaturamentoDadosActionForm.setTipoMedicao(medicaoTipo);
}
// se a requisi��o vier da Tela de Apresentar Dados Para An�lise da Medi��o e Consumo
// carregar o im�vel
if(httpServletRequest.getParameter("idRegistroAtualizacao") != null
&& !httpServletRequest.getParameter("idRegistroAtualizacao").equals("")
&& httpServletRequest.getParameter("medicaoTipo") != null
&& !httpServletRequest.getParameter("medicaoTipo").equals("")){
String idImovel = httpServletRequest.getParameter("idRegistroAtualizacao");
String medicaoTipo = httpServletRequest.getParameter("medicaoTipo");
alterarFaturamentoDadosActionForm.setIdImovel(idImovel);
alterarFaturamentoDadosActionForm.setTipoMedicao(medicaoTipo);
}
// Obt�m a inst�ncia da Fachada
Fachada fachada = Fachada.getInstancia();
// Deve ser alterado por Leo
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
// Parte que pega as cole��es da sess�o
// Medi��o Tipo
FiltroMedicaoTipo filtroMedicaoTipoSessao = new FiltroMedicaoTipo();
filtroMedicaoTipoSessao.adicionarParametro(new ParametroSimples(
FiltroMedicaoTipo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection medicoesTipo = fachada.pesquisar(filtroMedicaoTipoSessao,
MedicaoTipo.class.getName());
if (medicoesTipo.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null,
"tipo de medi��o");
} else {
sessao.setAttribute("medicoesTipo", medicoesTipo);
}
// Pega os codigos que o usuario digitou para a pesquisa direta de
// Im�vel
// Parte que verifica se a acao de atualizar deve ser bloqueada
if(((httpServletRequest.getParameter("idImovel") != null &&
!httpServletRequest.getParameter("idImovel").toString().equals("")) ||
alterarFaturamentoDadosActionForm.getIdImovel() != null) ){
String idImovel = null;
if(httpServletRequest.getParameter("idImovel") != null &&
!httpServletRequest.getParameter("idImovel").toString().equals("")){
idImovel = httpServletRequest.getParameter("idImovel").toString();
}else if(httpServletRequest.getParameter("idRegistroAtualizacao") != null
&& !httpServletRequest.getParameter("idRegistroAtualizacao").equals("")){
idImovel = httpServletRequest.getParameter("idRegistroAtualizacao");
}
if(idImovel == null || idImovel.equals("")){
idImovel = alterarFaturamentoDadosActionForm.getIdImovel();
}
Integer leituraImovel = null;
FiltroImovel filtroImovel1 = null;
Collection ColecaoimovelEncontrado1 = null;
Imovel imovel1 = null;
Integer gerarDadosLeitura = null;
filtroImovel1 = new FiltroImovel();
filtroImovel1.adicionarParametro(new ParametroSimples(FiltroImovel.ID,
idImovel));
filtroImovel1.adicionarCaminhoParaCarregamentoEntidade("quadra");
filtroImovel1.adicionarCaminhoParaCarregamentoEntidade("imovelPerfil");
filtroImovel1.adicionarCaminhoParaCarregamentoEntidade("rotaAlternativa.leituraTipo");
ColecaoimovelEncontrado1 = fachada.pesquisar(filtroImovel1,Imovel.class.getName());
if(ColecaoimovelEncontrado1 != null && !ColecaoimovelEncontrado1.isEmpty()){
imovel1 = (Imovel) Util.retonarObjetoDeColecao(ColecaoimovelEncontrado1);
if(imovel1 != null && imovel1.getImovelPerfil() != null &&
imovel1.getImovelPerfil().getIndicadorGerarDadosLeitura() != null){
gerarDadosLeitura = new Integer(imovel1.getImovelPerfil().getIndicadorGerarDadosLeitura());
}
if(imovel1 != null && imovel1.getQuadra() != null){
Integer idQuadra = imovel1.getQuadra().getId();
FiltroQuadra filtroQuadra = new FiltroQuadra();
filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID,idQuadra));
filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("rota");
Collection colecaoQuadraEncontrada = fachada.pesquisar(filtroQuadra,Quadra.class.getName());
Quadra quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadraEncontrada);
// Alterado por R�mulo Aur�lio
// Analista: Nelson Carvalho
// Motivo: Quando o imovel tinha rota alternativa as informa��es que eram referentes a essa rota eram
// retidas da rota da quadra
// Data: 05/11/2010
// RM: 57
if(imovel1.getRotaAlternativa() != null ){
leituraImovel = imovel1.getRotaAlternativa().getLeituraTipo().getId();
}else if(quadra != null && quadra.getRota().getLeituraTipo() != null){
leituraImovel = quadra.getRota().getLeituraTipo().getId();
}
}
// Alterado por Ulysses Dias
// Analista: Wellington Monteiro
// Motivo: Desbloquear Anormalidade de Leitura Informada para todos os tipos de imovel.
// Data: 10/03/2011
// [UC0091] Alterar Dados para Faturamento
if(gerarDadosLeitura == ImovelPerfil.SIM.intValue() &&
leituraImovel == LeituraTipo.LEITURA_E_ENTRADA_SIMULTANEA.intValue()
){
sessao.setAttribute("bloquearAtualizar","nao");
if(httpServletRequest.getParameter("tipoMedicao") != null &&
!httpServletRequest.getParameter("tipoMedicao").toString().equals("")){
alterarFaturamentoDadosActionForm.setTipoMedicao(httpServletRequest.getParameter("tipoMedicao"));
}
boolean jaGeradoArquivoImpressaoParaRotaDoImovel = false;
if(imovel1.getRotaAlternativa() == null){
jaGeradoArquivoImpressaoParaRotaDoImovel =
fachada.verificarExistenciaArquivoDeImpressao(
new Integer(alterarFaturamentoDadosActionForm.getIdImovel()),
new Integer(alterarFaturamentoDadosActionForm.getTipoMedicao()));
} else{
jaGeradoArquivoImpressaoParaRotaDoImovel =
fachada.verificarExistenciaArquivoDeImpressaoRotaAlternativa(
new Integer(alterarFaturamentoDadosActionForm.getIdImovel()),
new Integer(alterarFaturamentoDadosActionForm.getTipoMedicao()));
}
if(!jaGeradoArquivoImpressaoParaRotaDoImovel){
sessao.setAttribute("bloquearAtualizarleitura","nao");
}else{
sessao.setAttribute("bloquearAtualizarleitura","sim");
}
}
else{
sessao.setAttribute("bloquearAtualizar","nao");
}
}
// Fim Parte que verifica se a acao de atualizar deve ser bloqueada
}
else{
sessao.setAttribute("bloquearAtualizar","nao");
}
// Parte que cuida da pesquisa efetuada pelo enter
if (httpServletRequest.getParameter("pesquisaImovel") != null) {
String codigoImovelDigitadoEnter = alterarFaturamentoDadosActionForm
.getIdImovel();
httpServletRequest.setAttribute("nomeCampo", "tipoMedicao");
if (codigoImovelDigitadoEnter != null
&& !codigoImovelDigitadoEnter.trim().equalsIgnoreCase("")) {
// Seta os campos para vazio
alterarFaturamentoDadosActionForm.setIdImovelSelecionado("");
alterarFaturamentoDadosActionForm.setTipoMedicaoSelecionada("");
alterarFaturamentoDadosActionForm.setIdLocalidade("");
alterarFaturamentoDadosActionForm.setNomeLocalidade("");
alterarFaturamentoDadosActionForm.setIdSetorComercial("");
alterarFaturamentoDadosActionForm.setNomeSetorComercial("");
alterarFaturamentoDadosActionForm.setLeituraAnterior("");
alterarFaturamentoDadosActionForm.setDataLeituraAnterior("");
alterarFaturamentoDadosActionForm.setIdLeiturista("");
alterarFaturamentoDadosActionForm.setNomeLeiturista("");
alterarFaturamentoDadosActionForm.setLeituraAtual("");
alterarFaturamentoDadosActionForm.setDataLeituraAtual("");
alterarFaturamentoDadosActionForm.setIdSituacaoLeituraAtual("");
alterarFaturamentoDadosActionForm
.setNomeSituacaoLeituraAtual("");
alterarFaturamentoDadosActionForm.setIdAnormalidade("");
alterarFaturamentoDadosActionForm.setNomeAnormalidade("");
alterarFaturamentoDadosActionForm.setConsumoMedido("");
alterarFaturamentoDadosActionForm.setConsumoInformado("");
alterarFaturamentoDadosActionForm.setNomeUsuario("");
alterarFaturamentoDadosActionForm.setLigacaoAguaSituacao("");
alterarFaturamentoDadosActionForm.setLigacaoEsgotoSituacao("");
// filtro para pesquisar o imovel digitado --- pesquisa por
// enter
FiltroImovel filtroImovelPesquisa = new FiltroImovel();
filtroImovelPesquisa
.adicionarCaminhoParaCarregamentoEntidade("setorComercial");
filtroImovelPesquisa
.adicionarCaminhoParaCarregamentoEntidade("localidade");
filtroImovelPesquisa
.adicionarCaminhoParaCarregamentoEntidade("quadra");
filtroImovelPesquisa.adicionarParametro(new ParametroSimples(
FiltroImovel.ID, codigoImovelDigitadoEnter));
Collection colecaoImovel = fachada.pesquisar(
filtroImovelPesquisa, Imovel.class.getName());
if (!colecaoImovel.isEmpty()) {
Imovel imovelPesquisa = (Imovel) Util
.retonarObjetoDeColecao(colecaoImovel);
alterarFaturamentoDadosActionForm
.setInscricaoImovel(imovelPesquisa
.getInscricaoFormatada());
String enderecoCompleto = fachada
.pesquisarEnderecoFormatado(new Integer(
codigoImovelDigitadoEnter));
httpServletRequest.setAttribute("enderecoCompleto",
enderecoCompleto);
} else {
sessao.setAttribute("bloquearAtualizar","nao");
alterarFaturamentoDadosActionForm
.setInscricaoImovel("IM�VEL INEXISTENTE");
}
}
}
else if(httpServletRequest.getParameter("pesquisaImovel") == null){
Imovel imovel = new Imovel();
MedicaoHistorico medicaoHistorico = new MedicaoHistorico();
String codigoImovelDigitadoEnter = null;
String idTipoMedicao = null;
if (httpServletRequest.getParameter("idImovel") != null
&& !httpServletRequest.getParameter("idImovel").equals("")
&& httpServletRequest.getParameter("idTipoMedicao") != null
&& !httpServletRequest.getParameter("idTipoMedicao")
.equals("")) {
codigoImovelDigitadoEnter = httpServletRequest
.getParameter("idImovel");
sessao
.setAttribute("idImovelSessao",
codigoImovelDigitadoEnter);
idTipoMedicao = httpServletRequest
.getParameter("idTipoMedicao");
alterarFaturamentoDadosActionForm.setTipoMedicao(idTipoMedicao);
sessao.setAttribute("idTipoMedicaoSessao", idTipoMedicao);
sessao.setAttribute("bloqueaCampos", "S");
} else {
codigoImovelDigitadoEnter = alterarFaturamentoDadosActionForm
.getIdImovel();
idTipoMedicao = alterarFaturamentoDadosActionForm
.getTipoMedicao();
}
String codigoAnormalidadeLeituraDigitadoEnter = alterarFaturamentoDadosActionForm
.getIdAnormalidade();
alterarFaturamentoDadosActionForm
.setIndicadorConfirmacao(ConstantesSistema.NAO_CONFIRMADA);
// Seta os campos para vazio
alterarFaturamentoDadosActionForm.setIdImovelSelecionado("");
alterarFaturamentoDadosActionForm.setTipoMedicaoSelecionada("");
alterarFaturamentoDadosActionForm.setIdLocalidade("");
alterarFaturamentoDadosActionForm.setNomeLocalidade("");
alterarFaturamentoDadosActionForm.setIdSetorComercial("");
alterarFaturamentoDadosActionForm.setNomeSetorComercial("");
alterarFaturamentoDadosActionForm.setLeituraAnterior("");
alterarFaturamentoDadosActionForm.setDataLeituraAnterior("");
alterarFaturamentoDadosActionForm.setIdLeiturista("");
alterarFaturamentoDadosActionForm.setNomeLeiturista("");
alterarFaturamentoDadosActionForm.setLeituraAtual("");
alterarFaturamentoDadosActionForm.setDataLeituraAtual("");
alterarFaturamentoDadosActionForm.setIdSituacaoLeituraAtual("");
alterarFaturamentoDadosActionForm.setNomeSituacaoLeituraAtual("");
alterarFaturamentoDadosActionForm.setIdAnormalidade("");
alterarFaturamentoDadosActionForm.setNomeAnormalidade("");
alterarFaturamentoDadosActionForm.setConsumoMedido("");
alterarFaturamentoDadosActionForm.setConsumoInformado("");
alterarFaturamentoDadosActionForm.setNomeUsuario("");
alterarFaturamentoDadosActionForm.setLigacaoAguaSituacao("");
alterarFaturamentoDadosActionForm.setLigacaoEsgotoSituacao("");
if (sessao.getAttribute("nomeCampo") != null
&& !sessao.getAttribute("nomeCampo").toString().trim()
.equals("")) {
httpServletRequest.setAttribute("nomeCampo", sessao
.getAttribute("nomeCampo").toString());
}
if (codigoImovelDigitadoEnter != null
&& !codigoImovelDigitadoEnter.trim().equals("")) {
// Pesquisa o imovel na base
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("localidade");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("setorComercial.municipio.unidadeFederacao");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.cep");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("quadra.rota.faturamentoGrupo");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("rotaAlternativa.faturamentoGrupo");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("hidrometroInstalacaoHistorico.hidrometro");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("ligacaoAgua.hidrometroInstalacaoHistorico.hidrometro");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade("leituraAnormalidade");
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LIGACAO_AGUA_SITUACAO);
filtroImovel
.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LIGACAO_ESGOTO_SITUACAO);
filtroImovel.adicionarParametro(new ParametroSimples(
FiltroImovel.ID, codigoImovelDigitadoEnter));
Collection imovelEncontrado = fachada.pesquisar(filtroImovel,
Imovel.class.getName());
String enderecoCompleto = fachada
.pesquisarEnderecoFormatado(new Integer(
codigoImovelDigitadoEnter));
httpServletRequest.setAttribute("enderecoCompleto",
enderecoCompleto);
if (imovelEncontrado != null && !imovelEncontrado.isEmpty()) {
// O imovel foi encontrado
imovel = ((Imovel) ((List) imovelEncontrado).get(0));
Cliente clienteUsuario = fachada.pesquisarClienteUsuarioImovel(imovel.getId());
alterarFaturamentoDadosActionForm.setNomeUsuario(clienteUsuario.getNome());
alterarFaturamentoDadosActionForm.setLigacaoAguaSituacao(imovel.getLigacaoAguaSituacao().getDescricao());
alterarFaturamentoDadosActionForm.setLigacaoEsgotoSituacao(imovel.getLigacaoEsgotoSituacao().getDescricao());
if(idTipoMedicao == null){
httpServletRequest.setAttribute("nomeCampo", "idImovel");
// Alterado por R�mulo Aur�lio
// Analista: Nelson Carvalho
// Motivo: Quando o imovel tinha rota alternativa as informa��es que eram referentes a essa rota eram
// retidas da rota da quadra
// Data: 05/11/2010
// RM: 57
Integer anoMesReferenciaGrupo = (imovel.getRotaAlternativa() != null ? imovel.getRotaAlternativa().getFaturamentoGrupo()
.getAnoMesReferencia() : imovel.getQuadra().getRota().getFaturamentoGrupo().getAnoMesReferencia());
throw new ActionServletException(
"atencao.imovel.ano.mes.faturamento.inexistente",
null,
Util.formatarAnoMesParaMesAno(anoMesReferenciaGrupo));
}
FiltroMedicaoTipo filtroMedicaoTipo = new FiltroMedicaoTipo();
filtroMedicaoTipo.adicionarParametro(new ParametroSimples(
FiltroMedicaoTipo.ID, idTipoMedicao));
Collection tipoMedicaoEncontrada = fachada.pesquisar(
filtroMedicaoTipo, MedicaoTipo.class.getName());
FiltroFaturamentoAtivCronRota filtroFaturamentoAtividadeCronogramaRota = new FiltroFaturamentoAtivCronRota();
// Alterado por R�mulo Aur�lio
// Analista: Nelson Carvalho
// Motivo: Quando o imovel tinha rota alternativa as informa��es que eram referentes a essa rota eram
// retidas da rota da quadra
// Data: 05/11/2010
// RM: 57
filtroFaturamentoAtividadeCronogramaRota
.adicionarParametro(new ParametroSimples(
FiltroFaturamentoAtivCronRota.COMP_ID_ROTA_ID,
(imovel.getRotaAlternativa() != null ? imovel.getRotaAlternativa().getId()
: imovel.getQuadra().getRota().getId())));
filtroFaturamentoAtividadeCronogramaRota
.adicionarParametro(new ParametroSimples(
FiltroFaturamentoAtivCronRota.COMP_ID_FATURAMENTO_ATIVIDADE_CRONOGRAMA_FATURAMENTO_ATIVIDADE_ID,
FaturamentoAtividade.FATURAR_GRUPO));
// Alterado por R�mulo Aur�lio
// Analista: Nelson Carvalho
// Motivo: Quando o imovel tinha rota alternativa as informa��es que eram referentes a essa rota eram
// retidas da rota da quadra
// Data: 05/11/2010
// RM: 57
filtroFaturamentoAtividadeCronogramaRota
.adicionarParametro(new ParametroSimples(
FiltroFaturamentoAtivCronRota.COMP_ID_FATURAMENTO_ATIVIDADE_CRONOGRAMA_FATURAMENTO_GRUPO_CRONOGRAMA_MENSAL_ANO_MES_REFERENCIA,
(imovel.getRotaAlternativa() != null ? imovel.getRotaAlternativa().getFaturamentoGrupo().getAnoMesReferencia()
: imovel.getQuadra().getRota().getFaturamentoGrupo().getAnoMesReferencia())));
filtroFaturamentoAtividadeCronogramaRota
.adicionarParametro(new ParametroNaoNulo(
FiltroFaturamentoAtivCronRota.COMP_ID_FATURAMENTO_ATIVIDADE_CRONOGRAMA_DATA_REALIZACAO));
Collection faturamentoAtividadeCronogramaRota = fachada
.pesquisar(
filtroFaturamentoAtividadeCronogramaRota,
FaturamentoAtivCronRota.class.getName());
// Alterado por R�mulo Aur�lio
// Analista: Nelson Carvalho
// Motivo: Quando o imovel tinha rota alternativa as informa��es que eram referentes a essa rota eram
// retidas da rota da quadra
// Data: 05/11/2010
// RM: 57
if (!faturamentoAtividadeCronogramaRota.isEmpty()) {
httpServletRequest
.setAttribute("nomeCampo", "idImovel");
throw new ActionServletException(
"atencao.imovel.faturamento.existente", null,
""
+ (imovel.getRotaAlternativa() != null ? imovel.getRotaAlternativa().getFaturamentoGrupo().getId()
: imovel.getQuadra().getRota().getFaturamentoGrupo().getId()));
} else {
sessao.setAttribute("imovel", imovel);
Collection medicaoHistoricoEncontrada = null;
alterarFaturamentoDadosActionForm.setIdImovel(""
+ imovel.getId());
alterarFaturamentoDadosActionForm
.setIdImovelSelecionado("" + imovel.getId());
if (!tipoMedicaoEncontrada.isEmpty()) {
alterarFaturamentoDadosActionForm
.setTipoMedicaoSelecionada(((MedicaoTipo) ((List) tipoMedicaoEncontrada)
.get(0)).getDescricao());
}
FiltroMedicaoHistorico filtroMedicaoHistorico = new FiltroMedicaoHistorico();
filtroMedicaoHistorico
.adicionarCaminhoParaCarregamentoEntidade("funcionario");
filtroMedicaoHistorico
.adicionarCaminhoParaCarregamentoEntidade("leituraSituacaoAtual");
filtroMedicaoHistorico
.adicionarCaminhoParaCarregamentoEntidade("leituraAnormalidadeInformada");
// Alterado por R�mulo Aur�lio
// Analista: Nelson Carvalho
// Motivo: Quando o imovel tinha rota alternativa as informa��es que eram referentes a essa rota eram
// retidas da rota da quadra
// Data: 05/11/2010
// RM: 57
filtroMedicaoHistorico
.adicionarParametro(new ParametroSimples(
FiltroMedicaoHistorico.ANO_MES_REFERENCIA_FATURAMENTO,
(((Imovel) ((List) imovelEncontrado).get(0)).getRotaAlternativa() != null ?
((Imovel) ((List) imovelEncontrado).get(0)).getRotaAlternativa().getFaturamentoGrupo().getAnoMesReferencia()
: ((Imovel) ((List) imovelEncontrado).get(0)).getQuadra().getRota().getFaturamentoGrupo().getAnoMesReferencia())
));
if (idTipoMedicao.trim().equalsIgnoreCase(
MedicaoTipo.LIGACAO_AGUA.toString())) {
if (imovel.getLigacaoAgua() == null
|| imovel.getLigacaoAgua().getId().equals(0)) {
throw new ActionServletException(
"atencao.imovel.agua.sem_indicacao");
} else {
filtroMedicaoHistorico
.adicionarParametro(new ParametroSimples(
FiltroMedicaoHistorico.LIGACAO_AGUA_ID,
codigoImovelDigitadoEnter));
}
} else {
if (imovel.getHidrometroInstalacaoHistorico() == null
|| imovel.getHidrometroInstalacaoHistorico().getId().equals(0)) {
throw new ActionServletException(
"atencao.imovel.poco.sem_indicacao");
} else {
filtroMedicaoHistorico
.adicionarParametro(new ParametroSimples(
FiltroMedicaoHistorico.IMOVEL_ID,
codigoImovelDigitadoEnter));
httpServletRequest.setAttribute("nomeCampo",
"idImovel");
}
}
medicaoHistoricoEncontrada = fachada.pesquisar(
filtroMedicaoHistorico, MedicaoHistorico.class
.getName());
if ( medicaoHistoricoEncontrada == null || medicaoHistoricoEncontrada.size() == 0 ){
MedicaoHistorico medicaoHistoricoGeradaSessao = (MedicaoHistorico)sessao.getAttribute( "medicaoHistoricoGerada" );
if (medicaoHistoricoGeradaSessao != null){
String idImovel = null;
if(idTipoMedicao.trim().equalsIgnoreCase(
MedicaoTipo.LIGACAO_AGUA.toString())){
idImovel = medicaoHistoricoGeradaSessao.getLigacaoAgua().getId().toString();
}else{
idImovel = medicaoHistoricoGeradaSessao.getImovel().getId().toString();
}
if(idImovel.equals(imovel.getId().toString())){
medicaoHistoricoEncontrada.add( (MedicaoHistorico) sessao.getAttribute("medicaoHistoricoGerada") );
}
}
}
if (medicaoHistoricoEncontrada != null
&& !medicaoHistoricoEncontrada.isEmpty()) {
medicaoHistorico = ((MedicaoHistorico) ((List) medicaoHistoricoEncontrada)
.get(0));
if (medicaoHistorico.getLeituraSituacaoAtual()
.getId().equals(LeituraSituacao.CONFIRMADA)) {
alterarFaturamentoDadosActionForm
.setIndicadorConfirmacao(ConstantesSistema.CONFIRMADA);
}
SimpleDateFormat dataFormatada = new SimpleDateFormat(
"dd/MM/yyyy");
String dataLeituraAnterior = "";
if (medicaoHistorico
.getDataLeituraAnteriorFaturamento() != null
&& !medicaoHistorico
.getDataLeituraAnteriorFaturamento()
.equals("")) {
dataLeituraAnterior = dataFormatada
.format(medicaoHistorico
.getDataLeituraAnteriorFaturamento());
}
String dataLeituraAtual = "";
if (medicaoHistorico.getDataLeituraAtualInformada() != null
&& !medicaoHistorico
.getDataLeituraAtualInformada()
.equals("")) {
dataLeituraAtual = dataFormatada
.format(medicaoHistorico
.getDataLeituraAtualInformada());
}
alterarFaturamentoDadosActionForm
.setIdLocalidade(""
+ imovel.getLocalidade().getId());
alterarFaturamentoDadosActionForm
.setNomeLocalidade(imovel.getLocalidade()
.getDescricao());
alterarFaturamentoDadosActionForm
.setIdSetorComercial(""
+ imovel.getSetorComercial()
.getCodigo());
alterarFaturamentoDadosActionForm
.setNomeSetorComercial(imovel
.getSetorComercial().getDescricao());
alterarFaturamentoDadosActionForm
.setLeituraAnterior(""
+ medicaoHistorico
.getLeituraAnteriorFaturamento());
alterarFaturamentoDadosActionForm
.setDataLeituraAnterior(dataLeituraAnterior);
alterarFaturamentoDadosActionForm
.setIdLeiturista(medicaoHistorico
.getFuncionario() == null ? "" : ""
+ medicaoHistorico.getFuncionario()
.getId());
alterarFaturamentoDadosActionForm
.setNomeLeiturista(medicaoHistorico
.getFuncionario() == null ? ""
: medicaoHistorico.getFuncionario()
.getNome());
alterarFaturamentoDadosActionForm
.setLeituraAtual(medicaoHistorico
.getLeituraAtualInformada() == null ? ""
: ""
+ medicaoHistorico
.getLeituraAtualInformada());
alterarFaturamentoDadosActionForm
.setDataLeituraAtual(dataLeituraAtual);
alterarFaturamentoDadosActionForm
.setIdSituacaoLeituraAtual(""
+ medicaoHistorico
.getLeituraSituacaoAtual()
.getId());
alterarFaturamentoDadosActionForm
.setNomeSituacaoLeituraAtual(""
+ medicaoHistorico
.getLeituraSituacaoAtual()
.getDescricao());
alterarFaturamentoDadosActionForm
.setIdAnormalidade(medicaoHistorico
.getLeituraAnormalidadeInformada() == null ? ""
: ""
+ medicaoHistorico
.getLeituraAnormalidadeInformada()
.getId());
alterarFaturamentoDadosActionForm
.setNomeAnormalidade(medicaoHistorico
.getLeituraAnormalidadeInformada() == null ? ""
: medicaoHistorico
.getLeituraAnormalidadeInformada()
.getDescricao());
alterarFaturamentoDadosActionForm
.setConsumoMedido(medicaoHistorico
.getNumeroConsumoMes() == null ? ""
: ""
+ medicaoHistorico
.getNumeroConsumoMes());
alterarFaturamentoDadosActionForm
.setConsumoInformado(medicaoHistorico
.getNumeroConsumoInformado() == null ? ""
: ""
+ medicaoHistorico
.getNumeroConsumoInformado());
alterarFaturamentoDadosActionForm.setInscricaoImovel(fachada.pesquisarInscricaoImovel(new Integer(codigoImovelDigitadoEnter)));
}
// else if ((imovel.getLigacaoAgua() != null ? (imovel
// .getLigacaoAgua().getId().toString().equals(
// codigoImovelDigitadoEnter) && imovel
// .getLigacaoAgua()
// .getHidrometroInstalacaoHistorico() == null)
// : false)
// || (imovel.getHidrometroInstalacaoHistorico() ==
// null)) {
// alterarFaturamentoDadosActionForm
// .setIdAnormalidade(imovel
// .getLeituraAnormalidade() == null ? ""
// : ""
// + imovel
// .getLeituraAnormalidade()
// .getId());
// alterarFaturamentoDadosActionForm
// .setNomeAnormalidade(imovel
// .getLeituraAnormalidade() == null ? ""
// : imovel.getLeituraAnormalidade()
// .getDescricao());
// httpServletRequest.setAttribute(
// "hidrometroInexistente", "true");
//
// } else {
//
// httpServletRequest.setAttribute("nomeCampo",
// "idImovel");
//
// throw new ActionServletException(
// "atencao.imovel.ano.mes.faturamento.inexistente",
// null, Util.formatarAnoMesParaMesAno(imovel
// .getQuadra().getRota()
// .getFaturamentoGrupo()
// .getAnoMesReferencia()));
//
// }
else {
if (idTipoMedicao.equals(MedicaoTipo.LIGACAO_AGUA
.toString())) {
/*if (imovel.getHidrometroInstalacaoHistorico() == null) {
alterarFaturamentoDadosActionForm
.setIdAnormalidade(imovel
.getLeituraAnormalidade() == null ? ""
: ""
+ imovel
.getLeituraAnormalidade()
.getId());
alterarFaturamentoDadosActionForm
.setNomeAnormalidade(imovel
.getLeituraAnormalidade() == null ? ""
: imovel
.getLeituraAnormalidade()
.getDescricao());
httpServletRequest.setAttribute(
"hidrometroInexistente", "true");
sessao.removeAttribute("bloquearAtualizarleitura");
} else*/ if (imovel.getLigacaoAgua() != null
&& imovel
.getLigacaoAgua()
.getId()
.toString()
.equals(
codigoImovelDigitadoEnter)
&& imovel
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico() == null) {
alterarFaturamentoDadosActionForm
.setIdAnormalidade(imovel
.getLeituraAnormalidade() == null ? ""
: ""
+ imovel
.getLeituraAnormalidade()
.getId());
alterarFaturamentoDadosActionForm
.setNomeAnormalidade(imovel
.getLeituraAnormalidade() == null ? ""
: imovel
.getLeituraAnormalidade()
.getDescricao());
httpServletRequest.setAttribute(
"hidrometroInexistente", "true");
sessao.removeAttribute("bloquearAtualizarleitura");
} else {
sessao.removeAttribute( "medicaoHistoricoGerada" );
MedicaoTipo medicaoTipo= ((MedicaoTipo) ((List) tipoMedicaoEncontrada)
.get(0));
// Alterado por R�mulo Aur�lio
// Analista: Nelson Carvalho
// Motivo: Quando o imovel tinha rota alternativa as informa��es que eram referentes a essa rota eram
// retidas da rota da quadra
// Data: 05/11/2010
// RM: 57
sistemaParametro.setAnoMesFaturamento(
(imovel.getRotaAlternativa() != null ? imovel.getRotaAlternativa().getFaturamentoGrupo().getAnoMesReferencia()
: imovel.getQuadra().getRota().getFaturamentoGrupo().getAnoMesReferencia()));
MedicaoHistorico medicaoHistoricoGerada = fachada.gerarHistoricoMedicao(
medicaoTipo,
imovel,
(imovel.getRotaAlternativa() != null ? imovel.getRotaAlternativa().getFaturamentoGrupo()
: imovel.getQuadra().getRota().getFaturamentoGrupo()),
sistemaParametro);
sessao.setAttribute( "medicaoHistoricoGerada", medicaoHistoricoGerada );
retorno = actionMapping
.findForward("rechecarFaturamentoDados");
}
} else {
if (imovel.getHidrometroInstalacaoHistorico() == null) {
alterarFaturamentoDadosActionForm
.setIdAnormalidade(imovel
.getLeituraAnormalidade() == null ? ""
: ""
+ imovel
.getLeituraAnormalidade()
.getId());
alterarFaturamentoDadosActionForm
.setNomeAnormalidade(imovel
.getLeituraAnormalidade() == null ? ""
: imovel
.getLeituraAnormalidade()
.getDescricao());
httpServletRequest.setAttribute(
"hidrometroInexistente", "true");
sessao.removeAttribute("bloquearAtualizarleitura");
} else {
sessao.removeAttribute( "medicaoHistoricoGerada" );
MedicaoTipo medicaoTipo= ((MedicaoTipo) ((List) tipoMedicaoEncontrada)
.get(0));
// Alterado por R�mulo Aur�lio
// Analista: Nelson Carvalho
// Motivo: Quando o imovel tinha rota alternativa as informa��es que eram referentes a essa rota eram
// retidas da rota da quadra
// Data: 05/11/2010
// RM: 57
sistemaParametro.setAnoMesFaturamento((imovel.getRotaAlternativa() != null ? imovel.getRotaAlternativa().getFaturamentoGrupo().getAnoMesReferencia()
: imovel.getQuadra().getRota().getFaturamentoGrupo().getAnoMesReferencia()));
MedicaoHistorico medicaoHistoricoGerada = fachada.gerarHistoricoMedicao(
medicaoTipo,
imovel,
(imovel.getRotaAlternativa() != null ? imovel.getRotaAlternativa().getFaturamentoGrupo()
: imovel.getQuadra().getRota().getFaturamentoGrupo())
, sistemaParametro );
sessao.setAttribute( "medicaoHistoricoGerada", medicaoHistoricoGerada );
retorno = actionMapping
.findForward("rechecarFaturamentoDados");
}
}
}
}
// Verifica se o usu�rio alterou a Anormalidade de Leitura
if (codigoAnormalidadeLeituraDigitadoEnter != null
&& !codigoAnormalidadeLeituraDigitadoEnter
.equals("")) {
FiltroLeituraAnormalidade filtroLeituraAnormalidade = new FiltroLeituraAnormalidade();
filtroLeituraAnormalidade
.adicionarParametro(new ParametroSimples(
FiltroLeituraAnormalidade.ID,
codigoAnormalidadeLeituraDigitadoEnter));
Collection anormalidadeLeituraEncontrada = fachada
.pesquisar(filtroLeituraAnormalidade,
LeituraAnormalidade.class.getName());
if (anormalidadeLeituraEncontrada != null
&& !anormalidadeLeituraEncontrada.isEmpty()) {
alterarFaturamentoDadosActionForm
.setIdAnormalidade(""
+ ((LeituraAnormalidade) ((List) anormalidadeLeituraEncontrada)
.get(0)).getId());
alterarFaturamentoDadosActionForm
.setNomeAnormalidade(((LeituraAnormalidade) ((List) anormalidadeLeituraEncontrada)
.get(0)).getDescricao());
} else {
alterarFaturamentoDadosActionForm
.setIdAnormalidade("");
httpServletRequest.setAttribute(
"idAnormalidadeNaoEncontrada", "true");
alterarFaturamentoDadosActionForm
.setNomeAnormalidade("Anormalidade de leitura inexistente");
httpServletRequest.setAttribute("nomeCampo",
"idAnormalidade");
}
/**
* Alterando o c�lculo da m�dia
*/
MedicaoTipo medicao = new MedicaoTipo();
medicao.setId(new Integer(MedicaoTipo.LIGACAO_AGUA));
boolean houveIntslacaoHidrometro = false;
try {
houveIntslacaoHidrometro = fachada.verificarInstalacaoSubstituicaoHidrometro(imovel.getId(), medicao);
} catch (ControladorException e) {
e.printStackTrace();
}
// Alterado por R�mulo Aur�lio
// Analista: Nelson Carvalho
// Motivo: Quando o imovel tinha rota alternativa as informa��es que eram referentes a essa rota eram
// retidas da rota da quadra
// Data: 05/11/2010
// RM: 57
sistemaParametro.setAnoMesFaturamento(
(imovel.getRotaAlternativa() != null ? imovel.getRotaAlternativa().getFaturamentoGrupo().getAnoMesReferencia()
: imovel.getQuadra().getRota().getFaturamentoGrupo().getAnoMesReferencia()));
int qtdeEconomias = fachada
.obterQuantidadeEconomias(imovel);
int[] consumoMedioImovel = fachada
.obterVolumeMedioAguaEsgoto(imovel.getId(),
sistemaParametro.getAnoMesFaturamento(),Util.converterStringParaInteger(idTipoMedicao),
houveIntslacaoHidrometro);
if (consumoMedioImovel != null
&& consumoMedioImovel.length > 0) {
int consumoMedio = consumoMedioImovel[0];
int consumoMedio5 = consumoMedio * 5;
int qtdeEconomias30 = qtdeEconomias * 30;
httpServletRequest.setAttribute("consumoMedio5",
consumoMedio5);
httpServletRequest.setAttribute("qtdeEconomias30",
qtdeEconomias30);
}
}
} else {
httpServletRequest.setAttribute("nomeCampo", "idImovel");
throw new ActionServletException(
"atencao.pesquisa_inexistente", null,
"Matr�cula do im�vel");
}
}
// Verificamos se a leitura atual informada existe
if ( medicaoHistorico.getDataLeituraAtualInformada() == null ){
httpServletRequest.setAttribute(
"dataLeituraAtualNaoInformada", "true");
}
sessao.setAttribute("alterarFaturamentoDadosActionForm",
alterarFaturamentoDadosActionForm);
sessao.setAttribute("medicaoHistorico", medicaoHistorico);
if (sessao.getAttribute("telaMedicaoConsumoDadosAnt") != null
&& !sessao.getAttribute("telaMedicaoConsumoDadosAnt")
.equals("")) {
httpServletRequest.setAttribute("voltar", "S");
}
httpServletRequest.setAttribute("nomeCampo", "tipoMedicao");
}
return retorno;
}
}