package gcom.gui.atendimentopublico.hidrometro;
import gcom.atendimentopublico.ligacaoagua.LigacaoAgua;
import gcom.atendimentopublico.ordemservico.FiltroServicoNaoCobrancaMotivo;
import gcom.atendimentopublico.ordemservico.OrdemServico;
import gcom.atendimentopublico.ordemservico.ServicoNaoCobrancaMotivo;
import gcom.atendimentopublico.ordemservico.ServicoTipo;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.cliente.ClienteRelacaoTipo;
import gcom.cadastro.cliente.FiltroClienteImovel;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.faturamento.debito.FiltroDebitoTipo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.consumo.LigacaoTipo;
import gcom.micromedicao.hidrometro.FiltroHidrometro;
import gcom.micromedicao.hidrometro.FiltroHidrometroLocalArmazenagem;
import gcom.micromedicao.hidrometro.FiltroHidrometroLocalInstalacao;
import gcom.micromedicao.hidrometro.FiltroHidrometroProtecao;
import gcom.micromedicao.hidrometro.FiltroHidrometroSituacao;
import gcom.micromedicao.hidrometro.Hidrometro;
import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico;
import gcom.micromedicao.hidrometro.HidrometroLocalArmazenagem;
import gcom.micromedicao.hidrometro.HidrometroLocalInstalacao;
import gcom.micromedicao.hidrometro.HidrometroProtecao;
import gcom.micromedicao.hidrometro.HidrometroSituacao;
import gcom.micromedicao.medicao.FiltroMedicaoHistorico;
import gcom.micromedicao.medicao.MedicaoTipo;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroNulo;
import gcom.util.filtro.ParametroSimples;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Date;
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;
/**
* Action que define o pr�-processamento da p�gina de efetuar substitui��o de
* hidr�metro
*
* @author Ana Maria
* @date 19/07/2006
*/
public class ExibirEfetuarSubstituicaoHidrometroAction extends GcomAction {
/**
* Este caso de uso permite efetuar a substitui��o de hidr�metro, sendo
* chamado pela funcionalidade que encerra a execu��o da ordem de servi�o ou
* chamada diretamente do Menu.
*
* [UC0364] Efetuar Substitui��o de Hidr�metro
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("efetuarSubstituicaoHidrometro");
EfetuarSubstituicaoHidrometroActionForm form = (EfetuarSubstituicaoHidrometroActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
Boolean veioEncerrarOS = null;
if (httpServletRequest.getAttribute("veioEncerrarOS") != null) {
veioEncerrarOS = Boolean.TRUE;
} else {
if (form.getVeioEncerrarOS() != null
&& !form
.getVeioEncerrarOS().equals("")) {
if (form.getVeioEncerrarOS()
.toLowerCase().equals("true")) {
veioEncerrarOS = veioEncerrarOS = Boolean.TRUE;
} else {
veioEncerrarOS = veioEncerrarOS = Boolean.FALSE;
}
} else {
veioEncerrarOS = Boolean.FALSE;
}
}
this.pesquisarObjetosObrigatorios(httpServletRequest);
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado");
// Colocado por Vivianne Sousa em 05/12/2007
// ------------------------------------------------------------
if(form.getIndicadorTrocaProtecao() == null){
form.setIndicadorTrocaProtecao(ConstantesSistema.NAO.toString());
}
if(form.getIndicadorTrocaRegistro() == null){
form.setIndicadorTrocaRegistro(ConstantesSistema.NAO.toString());
}
// ------------------------------------------------------------
String idOrdemServico = null;
if (form.getIdOrdemServico() != null) {
idOrdemServico = form.getIdOrdemServico();
}
else {
idOrdemServico = (String) httpServletRequest
.getAttribute("veioEncerrarOS");
form.setDataInstalacao((String) httpServletRequest
.getAttribute("dataEncerramento"));
form.setDataRetirada((String) httpServletRequest
.getAttribute("dataEncerramento"));
sessao.setAttribute("caminhoRetornoIntegracaoComercial",
httpServletRequest.getAttribute("caminhoRetornoIntegracaoComercial"));
}
if (httpServletRequest.getAttribute("semMenu") != null || sessao.getAttribute("semMenu") != null ) {
sessao.setAttribute("semMenu", "SIM");
form.setIndicadorSemMenu("sim");
if (httpServletRequest.getParameter("idCampoEnviarDados") != null ) {
form.setNumeroHidrometro( "" + httpServletRequest.getParameter("idCampoEnviarDados"));
}
}
else {
sessao.removeAttribute("semMenu");
form.setIndicadorSemMenu("nao");
}
OrdemServico ordemServico = null;
Imovel imovel = null;
Imovel imovelComLocalidade = null;
if (idOrdemServico != null && !idOrdemServico.trim().equals("")) {
ordemServico = fachada
.recuperaOSPorId(new Integer(idOrdemServico));
if (ordemServico != null){
//[FS0013] - Altera��o de Valor
this.permitirAlteracaoValor(ordemServico.getServicoTipo(),
form);
// Colocado por Raphael Rossiter em 04/05/2007 (Analista:
// Rosana Carvalho)
BigDecimal valorDebito = this.calcularValores(
httpServletRequest, ordemServico, form);
// -----------------------------------------------------------
// Verificar permiss�o especial
boolean temPermissaoMotivoNaoCobranca = fachada
.verificarPermissaoInformarMotivoNaoCobranca(usuarioLogado);
// -----------------------------------------------------------
if (temPermissaoMotivoNaoCobranca) {
httpServletRequest.setAttribute(
"permissaoMotivoNaoCobranca",
temPermissaoMotivoNaoCobranca);
} else {
form.setPercentualCobranca("100");
form.setQuantidadeParcelas("1");
form.setValorParcelas(Util.formataBigDecimal(
valorDebito, 2, true));
}
if(ordemServico.getImovel() != null){
imovel = ordemServico.getImovel();
}else{
imovel = ordemServico.getRegistroAtendimento()
.getImovel();
}
if (imovel != null) {
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("localidade.hidrometroLocalArmazenagem");
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, imovel.getId()));
Collection colecaoImoveis = fachada.pesquisar(filtroImovel, Imovel.class.getName());
imovelComLocalidade = (Imovel) Util.retonarObjetoDeColecao(colecaoImoveis);
if (imovelComLocalidade.getLocalidade().getHidrometroLocalArmazenagem() != null) {
form.setIdLocalArmazenagem(imovelComLocalidade
.getLocalidade()
.getHidrometroLocalArmazenagem()
.getId().toString());
}
}
}
}
if (httpServletRequest.getParameter("pesquisaHidrometro") != null
&& !httpServletRequest.getParameter("pesquisaHidrometro")
.equals("")) {
String numeroHidrometro = form.getNumeroHidrometro();
// Verificar se o n�mero do hidr�metro n�o est� cadastrado
if (numeroHidrometro != null && !numeroHidrometro.trim().equals("")) {
// Filtro para descobrir id do Hidrometro
FiltroHidrometro filtroHidrometro = new FiltroHidrometro();
filtroHidrometro.adicionarParametro(new ParametroSimples(
FiltroHidrometro.NUMERO_HIDROMETRO, numeroHidrometro));
Collection colecaoHidrometro = fachada.pesquisar(filtroHidrometro,
Hidrometro.class.getName());
if (colecaoHidrometro == null || colecaoHidrometro.isEmpty()) {
form.setNumeroHidrometro("");
throw new ActionServletException(
"atencao.numero_hidrometro_inexistente", null,
numeroHidrometro);
} else {
Hidrometro hidrometro = (Hidrometro) Util.retonarObjetoDeColecao(colecaoHidrometro);
if (imovelComLocalidade != null && imovelComLocalidade.getLocalidade().getHidrometroLocalArmazenagem() != null &&
!hidrometro.getHidrometroLocalArmazenagem().getId().equals(imovelComLocalidade.getLocalidade().getHidrometroLocalArmazenagem().getId())) {
throw new ActionServletException("atencao.hidrometro_local_armazenagem_imovel_diferente_hidrometro_local_armazenagem_hidrometro");
}
}
}
httpServletRequest.setAttribute("nomeCampo", "localInstalacao");
} else {
if (idOrdemServico != null && !idOrdemServico.trim().equals("")) {
if (ordemServico != null) {
httpServletRequest.setAttribute("ordemServicoEncontrado",
"true");
fachada.validarExibirSubstituicaoHidrometro(ordemServico,
veioEncerrarOS);
sessao.setAttribute("ordemServico", ordemServico);
form.setIdOrdemServico(idOrdemServico);
form.setNomeOrdemServico(ordemServico.getServicoTipo()
.getDescricao());
form.setVeioEncerrarOS("" + veioEncerrarOS);
if (ordemServico.getDataEncerramento() != null
&& !ordemServico.getDataEncerramento().equals("")) {
form.setDataRetirada(Util.formatarData(ordemServico
.getDataEncerramento()));
}
if(ordemServico.getImovel() != null){
imovel = ordemServico.getImovel();
}else{
imovel = ordemServico.getRegistroAtendimento()
.getImovel();
}
String matriculaImovel = null;
// Matricula Im�vel
matriculaImovel = imovel.getId().toString();
form.setMatriculaImovel(matriculaImovel);
// Inscri��o Im�vel
String inscricaoImovel = fachada
.pesquisarInscricaoImovel(imovel.getId());
form.setInscricaoImovel(inscricaoImovel);
// Situa��o da Liga��o de Agua
String situacaoLigacaoAgua = imovel
.getLigacaoAguaSituacao().getDescricao();
form.setSituacaoLigacaoAgua(situacaoLigacaoAgua);
// Situa��o da Liga��o de Esgoto
String situacaoLigacaoEsgoto = imovel
.getLigacaoEsgotoSituacao().getDescricao();
form.setSituacaoLigacaoEsgoto(situacaoLigacaoEsgoto);
// Cliente
this.pesquisarCliente(form);
FiltroMedicaoHistorico filtroMedicaoHistorico = new FiltroMedicaoHistorico();
filtroMedicaoHistorico
.setCampoOrderBy(FiltroMedicaoHistorico.ANO_MES_REFERENCIA_FATURAMENTO);
HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = null;
// Tipo medi��o - Liga��o �gua
if (ordemServico.getRegistroAtendimento() == null ||
ordemServico.getRegistroAtendimento()
.getSolicitacaoTipoEspecificacao()
.getIndicadorLigacaoAgua().equals(
MedicaoTipo.LIGACAO_AGUA.shortValue())) {
LigacaoAgua ligacaoAgua = imovel.getLigacaoAgua();
hidrometroInstalacaoHistorico = ligacaoAgua
.getHidrometroInstalacaoHistorico();
form
.setTipoMedicao(MedicaoTipo.LIGACAO_AGUA
.toString());
Integer numeroLeitura = fachada
.pesquisarNumeroLeituraRetiradaLigacaoAgua(ligacaoAgua
.getId());
if (numeroLeitura != null) {
form.setNumeroLeitura(numeroLeitura.toString());
} else {
form.setNumeroLeitura(null);
}
sessao.setAttribute("hidrometroSubstituicaoHistorico",
ligacaoAgua.getHidrometroInstalacaoHistorico());
// Tipo medi��o- Po�o
} else {
hidrometroInstalacaoHistorico = imovel
.getHidrometroInstalacaoHistorico();
form.setTipoMedicao(MedicaoTipo.POCO.toString());
Integer numeroLeitura = fachada
.pesquisarNumeroLeituraRetiradaImovel(imovel
.getId());
if (numeroLeitura != null) {
form.setNumeroLeitura(numeroLeitura.toString());
} else {
form.setNumeroLeitura(null);
}
sessao.setAttribute("hidrometroSubstituicaoHistorico",
imovel.getHidrometroInstalacaoHistorico());
}
form.setTipoMedicaoAtual(hidrometroInstalacaoHistorico
.getMedicaoTipo().getDescricao());
form.setNumeroHidrometroAtual(hidrometroInstalacaoHistorico
.getHidrometro().getNumero());
//Flag que verifica se a veio do reload do combo de situacao de hidrometro
if(httpServletRequest.getParameter("comboSituacaoHidrometro") == null){
if (hidrometroInstalacaoHistorico.getHidrometro()
.getHidrometroSituacao() != null) {
form
.setSituacaoHidrometro(hidrometroInstalacaoHistorico
.getHidrometro()
.getHidrometroSituacao().getId()
.toString());
}
}
// Data recibida da execu��o da OS
Date dataInstalacao = ordemServico.getDataEncerramento();
if (dataInstalacao != null && !dataInstalacao.equals("")) {
form.setDataInstalacao(Util
.formatarData(dataInstalacao));
}
// Preencher dados da Gera��o
// this.pesquisarDadosGeracao(efetuarSubstituicaoHidrometroActionForm,
// ordemServico);
// Tipo D�bito
if (ordemServico.getServicoTipo().getDebitoTipo() != null) {
form.setIdTipoDebito(ordemServico.getServicoTipo()
.getDebitoTipo().getId()
+ "");
form.setDescricaoTipoDebito(ordemServico
.getServicoTipo().getDebitoTipo()
.getDescricao()
+ "");
} else {
form.setIdTipoDebito("");
form.setDescricaoTipoDebito("");
}
SistemaParametro sistemaParametro = Fachada.getInstancia()
.pesquisarParametrosDoSistema();
form.setQtdeMaxParcelas(sistemaParametro
.getNumeroMaximoParcelasFinanciamento()
+ "");
if (ordemServico.getServicoNaoCobrancaMotivo() != null) {
form.setMotivoNaoCobranca(ordemServico
.getServicoNaoCobrancaMotivo().getId()
.toString());
}
if (ordemServico.getServicoNaoCobrancaMotivo() != null) {
form.setPercentualCobranca(ordemServico
.getPercentualCobranca().toString());
}
} else {
httpServletRequest.setAttribute("ordemServicoEncontrado",
"exception");
form.setNomeOrdemServico("Ordem de Servi�o inexistente");
form.setIdOrdemServico("");
}
} else {
httpServletRequest.setAttribute("nomeCampo", "idOrdemServico");
form.setIdLocalArmazenagem("");
form.setIdOrdemServico("");
form.setMatriculaImovel("");
form.setInscricaoImovel("");
form.setClienteUsuario("");
form.setCpfCnpjCliente("");
form.setSituacaoLigacaoAgua("");
form.setSituacaoLigacaoEsgoto("");
form.setNomeOrdemServico("");
form.setIdTipoDebito("");
form.setDescricaoTipoDebito("");
form.setQuantidadeParcelas("");
form.setValorParcelas("");
form.setPercentualCobranca("-1");
form.setMotivoNaoCobranca("-1");
form.setIdTipoDebito("");
form.setDescricaoTipoDebito("");
form.setValorDebito("");
}
}
// Parte em que � Verificado se o hidrometro esta extraviado.
String idSituacaoHidrometro = (String) form.getHidrometroExtraviado();
if(idSituacaoHidrometro == null || idSituacaoHidrometro.equals("") ||
idSituacaoHidrometro.equalsIgnoreCase("nao") || idSituacaoHidrometro.equalsIgnoreCase("sim") ){
idSituacaoHidrometro = form.getSituacaoHidrometro();
}
if(idSituacaoHidrometro!= null && !idSituacaoHidrometro.equals("")
&& !idSituacaoHidrometro.equals("-1")){
HidrometroSituacao hidrometroSituacao = new HidrometroSituacao();
FiltroHidrometroSituacao filtroHidrometroSituacao = new FiltroHidrometroSituacao();
filtroHidrometroSituacao.adicionarParametro(new ParametroSimples(FiltroHidrometroSituacao.ID,idSituacaoHidrometro));
Collection colecaoHidrometroSituacao = fachada.pesquisar(filtroHidrometroSituacao,
HidrometroSituacao.class.getName());
hidrometroSituacao = (HidrometroSituacao) colecaoHidrometroSituacao
.iterator().next();
Integer hidrometroExtraviado = null;
if(hidrometroSituacao != null){
hidrometroExtraviado = new Integer(hidrometroSituacao.getExtraviado().toString());
}
// hidrometroExtraviado==1, significa que o hidrometro esta extraviado,
// como mostra o campo "hist_ichidrometroextraviado" da tabela "micromedicao.hidrometro_situacao".
if(hidrometroExtraviado.intValue() == HidrometroSituacao.EXTRAVIADO.intValue()){
httpServletRequest.setAttribute("hidrometroExtravido","sim");
sessao.setAttribute("hidrometroExtravido","sim");
form.setHidrometroExtraviado("sim");
}
else{
sessao.removeAttribute("hidrometroExtravido");
form.setHidrometroExtraviado("nao");
}
}
// Fim da Verificacao se o hidrometro esta extraviado.
return retorno;
}
/*
* [FS0013 - Altera��o de Valor]
*
* autor: Raphael Rossiter
* data: 19/04/2007
*/
private void permitirAlteracaoValor(ServicoTipo servicoTipo, EfetuarSubstituicaoHidrometroActionForm form){
if (servicoTipo.getIndicadorPermiteAlterarValor() ==
ConstantesSistema.INDICADOR_USO_ATIVO.shortValue()){
form.setAlteracaoValor("OK");
}
else{
form.setAlteracaoValor("");
}
}
/*
* Calcular valor da presta��o com juros
*
* return: Retorna o valor total do d�bito
*
* autor: Raphael Rossiter
* data: 04/05/2007
*/
private BigDecimal calcularValores(HttpServletRequest httpServletRequest, OrdemServico ordemServico,
EfetuarSubstituicaoHidrometroActionForm form){
String calculaValores = httpServletRequest.getParameter("calculaValores");
BigDecimal valorDebito = new BigDecimal(0);
SistemaParametro sistemaParametro = this.getFachada().pesquisarParametrosDoSistema();
Integer qtdeParcelas = null;
if(calculaValores != null && calculaValores.equals("S")){
//[UC0186] - Calcular Presta��o
BigDecimal taxaJurosFinanciamento = null;
qtdeParcelas = new Integer(form.getQuantidadeParcelas());
if(ordemServico.getServicoTipo().getIndicadorCobrarJuros() == ConstantesSistema.SIM.shortValue() &&
qtdeParcelas.intValue() > 1){
taxaJurosFinanciamento = sistemaParametro.getPercentualTaxaJurosFinanciamento();
}else{
taxaJurosFinanciamento = new BigDecimal(0);
qtdeParcelas = 1;
}
BigDecimal valorPrestacao = null;
if(taxaJurosFinanciamento != null){
valorDebito = new BigDecimal(form.getValorDebito().replace(",","."));
String percentualCobranca = form.getPercentualCobranca();
if(percentualCobranca.equals("70")){
valorDebito = valorDebito.multiply(new BigDecimal(0.7));
}else if (percentualCobranca.equals("50")){
valorDebito = valorDebito.multiply(new BigDecimal(0.5));
}
valorPrestacao =
this.getFachada().calcularPrestacao(
taxaJurosFinanciamento,
qtdeParcelas,
valorDebito,
new BigDecimal("0.00"));
valorPrestacao.setScale(2,BigDecimal.ROUND_HALF_UP);
}
if (valorPrestacao != null) {
String valorPrestacaoComVirgula = Util.formataBigDecimal(valorPrestacao,2,true);
form.setValorParcelas(valorPrestacaoComVirgula);
} else {
form.setValorParcelas("0,00");
}
}else if(ordemServico.getRegistroAtendimento() != null){
valorDebito = Fachada.getInstancia().obterValorDebito(ordemServico.getServicoTipo().getId(),
ordemServico.getRegistroAtendimento().getImovel().getId(),
new Short(LigacaoTipo.LIGACAO_AGUA + ""));
if (valorDebito != null) {
form.setValorDebito(Util.formataBigDecimal(valorDebito, 2, true));
} else {
form.setValorDebito("0");
}
}
return valorDebito;
}
/**
* Pesquisa o local de instalacao do hidrometro Pesquisa a protecao do
* hidrometro Pesquisa a situacao do hidrometro
*/
private void pesquisarObjetosObrigatorios(
HttpServletRequest httpServletRequest) {
Fachada fachada = Fachada.getInstancia();
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
// Pesquisando local de instala��o
FiltroHidrometroLocalInstalacao filtroHidrometroLocalInstalacao = new FiltroHidrometroLocalInstalacao();
filtroHidrometroLocalInstalacao
.setCampoOrderBy(FiltroHidrometroLocalInstalacao.DESCRICAO);
filtroHidrometroLocalInstalacao
.adicionarParametro(new ParametroSimples(
FiltroHidrometroLocalInstalacao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoHidrometroLocalInstalacao = Fachada.getInstancia()
.pesquisar(filtroHidrometroLocalInstalacao,
HidrometroLocalInstalacao.class.getName());
if (colecaoHidrometroLocalInstalacao == null
|| colecaoHidrometroLocalInstalacao.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"Hidr�metro local de instala��o");
}
httpServletRequest.setAttribute("colecaoHidrometroLocalInstalacao",
colecaoHidrometroLocalInstalacao);
// Pesquisando prote��o
FiltroHidrometroProtecao filtroHidrometroProtecao = new FiltroHidrometroProtecao();
filtroHidrometroProtecao
.setCampoOrderBy(FiltroHidrometroProtecao.DESCRICAO);
filtroHidrometroProtecao.adicionarParametro(new ParametroSimples(
FiltroHidrometroProtecao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoHidrometroProtecao = Fachada.getInstancia()
.pesquisar(filtroHidrometroProtecao,
HidrometroProtecao.class.getName());
if (colecaoHidrometroProtecao == null
|| colecaoHidrometroProtecao.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"Hidr�metro prote��o");
}
httpServletRequest.setAttribute("colecaoHidrometroProtecao",
colecaoHidrometroProtecao);
// Pesquisando situa��o do hidr�metro
FiltroHidrometroSituacao filtroHidrometroSituacao = new FiltroHidrometroSituacao();
filtroHidrometroSituacao
.setCampoOrderBy(FiltroHidrometroSituacao.DESCRICAO);
Collection colecaoHidrometroSituacao = Fachada.getInstancia()
.pesquisar(filtroHidrometroSituacao,
HidrometroSituacao.class.getName());
httpServletRequest.setAttribute("colecaoHidrometroSituacao",
colecaoHidrometroSituacao);
// Pesquisando hidrometro local armazenagem
FiltroHidrometroLocalArmazenagem filtroHidrometroLocalArmazenagem = new FiltroHidrometroLocalArmazenagem();
filtroHidrometroLocalArmazenagem
.setCampoOrderBy(FiltroHidrometroLocalArmazenagem.DESCRICAO);
filtroHidrometroLocalArmazenagem
.adicionarParametro(new ParametroSimples(
FiltroHidrometroLocalArmazenagem.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoHidrometroLocalArmazenagem = Fachada.getInstancia()
.pesquisar(filtroHidrometroLocalArmazenagem,
HidrometroLocalArmazenagem.class.getName());
if (colecaoHidrometroLocalArmazenagem == null
|| colecaoHidrometroLocalArmazenagem.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"Local de Armazenagem do Hidr�metro");
}
httpServletRequest.setAttribute("colecaoHidrometroLocalArmazenagem",
colecaoHidrometroLocalArmazenagem);
// Filtro para o campo Tpo Debito
Collection colecaoNaoCobranca = (Collection) sessao
.getAttribute("colecaoNaoCobranca");
if (colecaoNaoCobranca == null) {
FiltroServicoNaoCobrancaMotivo filtroServicoNaoCobrancaMotivo = new FiltroServicoNaoCobrancaMotivo();
filtroServicoNaoCobrancaMotivo
.setCampoOrderBy(FiltroDebitoTipo.DESCRICAO);
colecaoNaoCobranca = fachada.pesquisar(
filtroServicoNaoCobrancaMotivo,
ServicoNaoCobrancaMotivo.class.getName());
if (colecaoNaoCobranca != null && !colecaoNaoCobranca.isEmpty()) {
sessao.setAttribute("colecaoNaoCobranca", colecaoNaoCobranca);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Motivo da N�o Cobran�a");
}
}
}
/**
* Pesquisa Cliente
*
* @author Rafael Pinto
* @date 25/08/2006
*/
private void pesquisarCliente(
EfetuarSubstituicaoHidrometroActionForm efetuarSubstituicaoHidrometroActionForm) {
// Filtro para carregar o Cliente
FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel();
filtroClienteImovel.adicionarParametro(new ParametroSimples(
FiltroClienteImovel.IMOVEL_ID,
efetuarSubstituicaoHidrometroActionForm.getMatriculaImovel()));
filtroClienteImovel.adicionarParametro(new ParametroSimples(
FiltroClienteImovel.CLIENTE_RELACAO_TIPO,
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();
}
// Cliente Nome/CPF-CNPJ
efetuarSubstituicaoHidrometroActionForm.setClienteUsuario(cliente
.getNome());
efetuarSubstituicaoHidrometroActionForm
.setCpfCnpjCliente(documento);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Cliente");
}
}
}