package gcom.gui.atendimentopublico;
import gcom.atendimentopublico.FiltroLigacaoOrigem;
import gcom.atendimentopublico.LigacaoOrigem;
import gcom.atendimentopublico.ligacaoagua.FiltroDiametroLigacao;
import gcom.atendimentopublico.ligacaoagua.FiltroMaterialLigacao;
import gcom.atendimentopublico.ligacaoagua.FiltroPerfilLigacao;
import gcom.atendimentopublico.ligacaoagua.FiltroRamalLocalInstalacao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaDiametro;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaMaterial;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaPerfil;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoagua.RamalLocalInstalacao;
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.localidade.Quadra;
import gcom.cadastro.localidade.bean.IntegracaoQuadraFaceHelper;
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.FiltroHidrometroLocalInstalacao;
import gcom.micromedicao.hidrometro.FiltroHidrometroProtecao;
import gcom.micromedicao.hidrometro.Hidrometro;
import gcom.micromedicao.hidrometro.HidrometroCapacidade;
import gcom.micromedicao.hidrometro.HidrometroLocalInstalacao;
import gcom.micromedicao.hidrometro.HidrometroProtecao;
import gcom.seguranca.acesso.PermissaoEspecial;
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.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;
/**
* Action respons�vel pela pre-exibi��o da pagina de inserir bairro
*
* @author Leandro Cavalcanti
* @created 20 de Junho de 2006
*/
public class ExibirEfetuarLigacaoAguaComInstalacaoHidrometroAction extends
GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado");
Fachada fachada = Fachada.getInstancia();
// -----------------------------------------------------------
// Verificar permiss�o especial
boolean temPermissaoMotivoNaoCobranca = fachada
.verificarPermissaoInformarMotivoNaoCobranca(usuarioLogado);
// -----------------------------------------------------------
// Set no mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("efetuarLigacaoAguaComInstalacaoHidrometro");
EfetuarLigacaoAguaComInstalacaoHidrometroActionForm efetuarLigacaoAguaComInstalacaoHidrometroActionForm = (EfetuarLigacaoAguaComInstalacaoHidrometroActionForm) actionForm;
if (httpServletRequest.getParameter("desfazer") != null) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setAceitaLacre(null);
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setSituacaoCavalete(null);
}
Boolean veioEncerrarOS = null;
if (httpServletRequest.getAttribute("veioEncerrarOS") != null
|| (efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.getVeioEncerrarOS() != null && efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.getVeioEncerrarOS().equals("true"))) {
veioEncerrarOS = Boolean.TRUE;
} else {
if (efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.getVeioEncerrarOS() != null
&& !efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.getVeioEncerrarOS().equals("")) {
if (efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.getVeioEncerrarOS().toLowerCase().equals("true")) {
veioEncerrarOS = veioEncerrarOS = Boolean.TRUE;
} else {
veioEncerrarOS = veioEncerrarOS = Boolean.FALSE;
}
} else {
veioEncerrarOS = Boolean.FALSE;
}
}
this.consultaSelectObrigatorio(sessao);
// Variavel responsav�l pelo preenchimento do imovel no formul�rio
String idOrdemServico = null;
if (efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.getIdOrdemServico() != null) {
idOrdemServico = efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.getIdOrdemServico();
} else {
idOrdemServico = (String) httpServletRequest
.getAttribute("veioEncerrarOS");
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setDataLigacao((String) httpServletRequest
.getAttribute("dataEncerramento"));
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setDataInstalacao((String) httpServletRequest
.getAttribute("dataEncerramento"));
sessao.setAttribute("caminhoRetornoIntegracaoComercial",
httpServletRequest
.getAttribute("caminhoRetornoIntegracaoComercial"));
}
if (httpServletRequest.getAttribute("semMenu") != null) {
sessao.setAttribute("semMenu", "SIM");
} else {
sessao.removeAttribute("semMenu");
}
OrdemServico ordemServico = null;
String matriculaImovel = null;
Imovel imovelComLocalidade = null;
// Permissao Especial Efetuar Ligacao de Agua com Instalacao de
// hidrometro sem RA
boolean efetuarLigacaoAguaComInstalacaodeHidrometroSemRA = Fachada
.getInstancia()
.verificarPermissaoEspecial(
PermissaoEspecial.EFETUAR_LIGACAO_DE_AGUA_COM_INSTALACAO_DE_HIDROMETRO_SEM_RA,
usuarioLogado);
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setPermissaoEfetuarLigacaoAguaComInstalacaoHidrometrosemRA("false");
if (!veioEncerrarOS) {
httpServletRequest.setAttribute(
"efetuarLigacaoAguaComInstalacaodeHidrometroSemRA",
efetuarLigacaoAguaComInstalacaodeHidrometroSemRA);
if (efetuarLigacaoAguaComInstalacaodeHidrometroSemRA) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setPermissaoEfetuarLigacaoAguaComInstalacaoHidrometrosemRA("true");
}
}
String idImovel = efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.getIdImovel();
if (idImovel != null && !idImovel.trim().equals("")) {
// Pesquisa o imovel na base
String inscricaoImovelEncontrado = fachada
.pesquisarInscricaoImovel(new Integer(idImovel));
if (inscricaoImovelEncontrado != null
&& !inscricaoImovelEncontrado.equalsIgnoreCase("")) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setMatriculaImovel(idImovel);
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setInscricaoImovel(inscricaoImovelEncontrado);
Imovel imovel = (Imovel) fachada
.pesquisarDadosImovel(new Integer(idImovel));
// [FS0002] Validar Situa��o de �gua do Im�vel.
if (imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.POTENCIAL
.intValue()
&& imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.FACTIVEL
.intValue()
&& imovel.getLigacaoAguaSituacao().getId().intValue() != LigacaoAguaSituacao.EM_FISCALIZACAO
.intValue()) {
throw new ActionServletException(
"atencao.situacao_validar_ligacao_agua_invalida_exibir",
null, imovel.getLigacaoAguaSituacao()
.getDescricao());
}
/*
* [FS0007] Verificar Situa��o Rede de �gua na Quadra
*
* Integra��o com o conceito de face da quadra
* Raphael Rossiter em 22/05/2009
*/
IntegracaoQuadraFaceHelper integracao = fachada.integracaoQuadraFace(imovel.getId());
if ((integracao.getIndicadorRedeAgua()).equals(Quadra.SEM_REDE)) {
throw new ActionServletException("atencao.seituacao_rede_agua_quadra",
null, imovel.getId() + "");
}
// [FS0006] Verificar Situa��o do Imovel
if (imovel.getIndicadorExclusao() != ConstantesSistema.INDICADOR_IMOVEL_ATIVO) {
throw new ActionServletException(
"atencao.situacao_imovel_indicador_exclusao", null,
imovel.getId() + "");
}
sessao.setAttribute("imovel", imovel);
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 (imovel.getLocalidade().getHidrometroLocalArmazenagem() != null) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setIdLocalArmazenagem(imovel.getLocalidade()
.getHidrometroLocalArmazenagem()
.getId().toString());
}
// Matricula Im�vel
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setMatriculaImovel(imovel.getId().toString());
// Situa��o da Liga��o de Agua
String situacaoLigacaoAgua = imovel
.getLigacaoAguaSituacao().getDescricao();
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setSituacaoLigacaoAgua(situacaoLigacaoAgua);
// Situa��o da Liga��o de Esgoto
String situacaoLigacaoEsgoto = imovel
.getLigacaoEsgotoSituacao().getDescricao();
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setSituacaoLigacaoEsgoto(situacaoLigacaoEsgoto);
this
.pesquisarCliente(
efetuarLigacaoAguaComInstalacaoHidrometroActionForm,
new Integer(idImovel));
}
httpServletRequest.setAttribute("habilitaDataLigacao", true);
} else {
httpServletRequest.setAttribute("corImovel", "exception");
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setInscricaoImovel(ConstantesSistema.CODIGO_IMOVEL_INEXISTENTE);
}
}
// [FS0001] Validar Ordem de Servi�o.
if (idOrdemServico != null && !idOrdemServico.trim().equals("")) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setVeioEncerrarOS("" + veioEncerrarOS);
ordemServico = fachada.recuperaOSPorId(new Integer(idOrdemServico));
if (ordemServico != null) {
fachada.validarLigacaoAguaComInstalacaoHidrometroExibir(
ordemServico, veioEncerrarOS);
sessao.setAttribute("ordemServico", ordemServico);
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setIdOrdemServico(idOrdemServico);
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setNomeOrdemServico(ordemServico.getServicoTipo()
.getDescricao());
Imovel imovel = ordemServico.getRegistroAtendimento()
.getImovel();
ServicoTipo servicoTipo = ordemServico.getServicoTipo();
BigDecimal valorDebito = new BigDecimal(0.00);
if (servicoTipo != null && servicoTipo.getDebitoTipo() != null) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setIdTipoDebito(servicoTipo.getDebitoTipo()
.getId().toString());
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setDescricaoTipoDebito(servicoTipo.getDebitoTipo()
.getDescricao());
// [FS0013] - Altera��o de Valor
this
.permitirAlteracaoValor(ordemServico
.getServicoTipo(),
efetuarLigacaoAguaComInstalacaoHidrometroActionForm);
// Colocado por Raphael Rossiter em 04/05/2007 (Analista:
// Rosana Carvalho)
valorDebito = this
.calcularValores(httpServletRequest, ordemServico,
efetuarLigacaoAguaComInstalacaoHidrometroActionForm);
if (ordemServico.getServicoNaoCobrancaMotivo() != null) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setMotivoNaoCobranca(ordemServico
.getServicoNaoCobrancaMotivo().getId()
.toString());
}
if (ordemServico.getPercentualCobranca() != null) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setPercentualCobranca(ordemServico
.getPercentualCobranca().toString());
}
}
if (ordemServico.getDataEncerramento() != null) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setDataLigacao(Util.formatarData(ordemServico
.getDataEncerramento()));
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setDataInstalacao(Util.formatarData(ordemServico
.getDataEncerramento()));
}
sessao.setAttribute("imovel", imovel);
matriculaImovel = imovel.getId().toString();
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setMatriculaImovel("" + matriculaImovel);
/*-------------- In�cio dados do Im�vel---------------*/
sessao.setAttribute("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) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setIdLocalArmazenagem(imovelComLocalidade
.getLocalidade()
.getHidrometroLocalArmazenagem()
.getId().toString());
}
// Matricula Im�vel
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setMatriculaImovel(imovel.getId().toString());
// Inscri��o Im�vel
String inscricaoImovel = fachada
.pesquisarInscricaoImovel(imovel.getId());
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setInscricaoImovel(inscricaoImovel);
// Situa��o da Liga��o de Agua
String situacaoLigacaoAgua = imovel
.getLigacaoAguaSituacao().getDescricao();
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setSituacaoLigacaoAgua(situacaoLigacaoAgua);
// Situa��o da Liga��o de Esgoto
String situacaoLigacaoEsgoto = imovel
.getLigacaoEsgotoSituacao().getDescricao();
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setSituacaoLigacaoEsgoto(situacaoLigacaoEsgoto);
this
.pesquisarCliente(
efetuarLigacaoAguaComInstalacaoHidrometroActionForm,
new Integer(matriculaImovel));
}
if (temPermissaoMotivoNaoCobranca) {
httpServletRequest.setAttribute(
"permissaoMotivoNaoCobranca",
temPermissaoMotivoNaoCobranca);
} else {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setPercentualCobranca("100");
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setQuantidadeParcelas("1");
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setValorParcelas(Util.formataBigDecimal(
valorDebito, 2, true));
}
} else {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setNomeOrdemServico("Ordem de Servi�o inexistente");
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setIdOrdemServico("");
httpServletRequest.setAttribute("OrdemServioInexistente", true);
}
} /*
* else {
*
* httpServletRequest.setAttribute("nomeCampo", "idOrdemServico");
*
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setIdOrdemServico("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setMatriculaImovel("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setInscricaoImovel("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setClienteUsuario("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setCpfCnpjCliente("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setSituacaoLigacaoAgua("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setSituacaoLigacaoEsgoto("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setDataLigacao("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setDiametroLigacao("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setMaterialLigacao("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setPerfilLigacao("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setIdTipoDebito("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setDescricaoTipoDebito("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setQuantidadeParcelas("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setValorParcelas("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setIdLocalArmazenagem("");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setPercentualCobranca("-1");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setMotivoNaoCobranca("-1");
* efetuarLigacaoAguaComInstalacaoHidrometroActionForm
* .setAceitaLacre("2");
* }
*/
String numeroHidrometro = efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.getNumeroHidrometro();
// Verificar se o n�mero do hidr�metro n�o est� cadastrado
if (numeroHidrometro != null && !numeroHidrometro.trim().equals("")) {
// Pesquisa o hidr�metro
Hidrometro hidrometro = fachada
.pesquisarHidrometroPeloNumero(numeroHidrometro);
if (hidrometro == null) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setNumeroHidrometro("");
throw new ActionServletException(
"atencao.hidrometro_inexistente");
} else {
if ( imovelComLocalidade != null
&& imovelComLocalidade.getLocalidade().getHidrometroLocalArmazenagem() != null
&& hidrometro.getHidrometroLocalArmazenagem() != null
&& !hidrometro.getHidrometroLocalArmazenagem()
.getId()
.equals(
imovelComLocalidade
.getLocalidade()
.getHidrometroLocalArmazenagem()
.getId())) {
throw new ActionServletException(
"atencao.hidrometro_local_armazenagem_imovel_diferente_hidrometro_local_armazenagem_hidrometro");
}
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setNumeroHidrometro(hidrometro.getNumero());
if (ordemServico != null) {
// Alterado por S�vio Data:26/12/2007
// Quando era calculado o valor com o valor do debito
// alterado, ent�o n�o pesquisa o valor
// do debito novamente na base.
if (httpServletRequest.getParameter("calculaValores") == null
|| (httpServletRequest
.getParameter("calculaValores") != null && !httpServletRequest
.getParameter("calculaValores").equals("S"))) {
// Valor D�bito
BigDecimal valorDebito = fachada.obterValorDebito(
ordemServico.getServicoTipo().getId(),
new Integer(matriculaImovel), hidrometro
.getHidrometroCapacidade());
if (valorDebito != null) {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setValorDebito(Util.formataBigDecimal(
valorDebito, 2, true));
} else {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setValorDebito("0");
}
if (temPermissaoMotivoNaoCobranca) {
httpServletRequest.setAttribute(
"permissaoMotivoNaoCobranca",
temPermissaoMotivoNaoCobranca);
} else {
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setPercentualCobranca("100");
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setQuantidadeParcelas("1");
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setValorParcelas(Util.formataBigDecimal(
valorDebito, 2, true));
}
}
}
}
}
return retorno;
}
/*
* [FS0013 - Altera��o de Valor]
*
* autor: Raphael Rossiter data: 19/04/2007
*/
private void permitirAlteracaoValor(ServicoTipo servicoTipo,
EfetuarLigacaoAguaComInstalacaoHidrometroActionForm 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,
EfetuarLigacaoAguaComInstalacaoHidrometroActionForm 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);
}
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 ( form.getNumeroHidrometro() != null && !form.getNumeroHidrometro().equals("") ) {
HidrometroCapacidade hidrometroCapacidade =
Fachada.getInstancia().pesquisarCapacidadeHidrometro(form.getNumeroHidrometro());
valorDebito = Fachada.getInstancia().obterValorDebito(
ordemServico.getServicoTipo().getId(),
ordemServico.getRegistroAtendimento().getImovel().getId(),
hidrometroCapacidade);
} else {
valorDebito = Fachada.getInstancia().obterValorDebito(
ordemServico.getServicoTipo().getId(),
ordemServico.getRegistroAtendimento().getImovel().getId(),
new Short(LigacaoTipo.LIGACAO_AGUA + ""));
}
form.setValorDebito(Util.formataBigDecimal(valorDebito, 2, true));
}
return valorDebito;
}
/**
* Pesquisa Cliente
*
* @author Rafael Corr�a
* @date 27/11/2006
*/
private void pesquisarCliente(
EfetuarLigacaoAguaComInstalacaoHidrometroActionForm efetuarLigacaoAguaComInstalacaoHidrometroActionForm,
Integer matriculaImovel) {
// Filtro para carregar o Cliente
FiltroClienteImovel filtroClienteImovel = new FiltroClienteImovel();
filtroClienteImovel.adicionarParametro(new ParametroSimples(
FiltroClienteImovel.IMOVEL_ID, matriculaImovel));
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
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setClienteUsuario(cliente.getNome());
efetuarLigacaoAguaComInstalacaoHidrometroActionForm
.setCpfCnpjCliente(documento);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Cliente");
}
}
/**
* Monta os select�s obrigatorios
*
* @author Rafael Corr�a
* @date 27/11/2006
*/
private void consultaSelectObrigatorio(HttpSession sessao) {
Fachada fachada = Fachada.getInstancia();
// Filtro para o campo Diametro Liga��o �gua
Collection colecaoDiametroLigacao = (Collection) sessao
.getAttribute("colecaoDiametroLigacaoAgua");
if (colecaoDiametroLigacao == null) {
FiltroDiametroLigacao filtroDiametroLigacao = new FiltroDiametroLigacao();
filtroDiametroLigacao.adicionarParametro(new ParametroSimples(
FiltroDiametroLigacao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroDiametroLigacao
.setCampoOrderBy(FiltroDiametroLigacao.DESCRICAO);
colecaoDiametroLigacao = fachada.pesquisar(filtroDiametroLigacao,
LigacaoAguaDiametro.class.getName());
if (colecaoDiametroLigacao != null
&& !colecaoDiametroLigacao.isEmpty()) {
sessao.setAttribute("colecaoDiametroLigacao",
colecaoDiametroLigacao);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Diametro da Liga��o");
}
}
// Filtro para o campo Material da Liga��o
Collection colecaoMaterialLigacao = (Collection) sessao
.getAttribute("colecaoMaterialLigacao");
if (colecaoMaterialLigacao == null) {
FiltroMaterialLigacao filtroMaterialLigacao = new FiltroMaterialLigacao();
filtroMaterialLigacao.adicionarParametro(new ParametroSimples(
FiltroMaterialLigacao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroMaterialLigacao
.setCampoOrderBy(FiltroMaterialLigacao.DESCRICAO);
colecaoMaterialLigacao = fachada.pesquisar(filtroMaterialLigacao,
LigacaoAguaMaterial.class.getName());
if (colecaoMaterialLigacao != null
&& !colecaoMaterialLigacao.isEmpty()) {
sessao.setAttribute("colecaoMaterialLigacao",
colecaoMaterialLigacao);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Material da Liga��o");
}
}
// Filtro para o campo Perfil da Liga��o
Collection colecaoPerfilLigacao = (Collection) sessao
.getAttribute("colecaoPerfilLigacao");
if (colecaoPerfilLigacao == null) {
FiltroPerfilLigacao filtroPerfilLigacao = new FiltroPerfilLigacao();
filtroPerfilLigacao.adicionarParametro(new ParametroSimples(
FiltroPerfilLigacao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroPerfilLigacao.setCampoOrderBy(FiltroPerfilLigacao.DESCRICAO);
colecaoPerfilLigacao = fachada.pesquisar(filtroPerfilLigacao,
LigacaoAguaPerfil.class.getName());
if (colecaoPerfilLigacao != null && !colecaoPerfilLigacao.isEmpty()) {
sessao.setAttribute("colecaoPerfilLigacao",
colecaoPerfilLigacao);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Material da Liga��o");
}
}
// 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");
}
}
// Filtro para o campo Ramal local instalacao
Collection colecaoRamalLocalInstalacao = (Collection) sessao
.getAttribute("colecaoRamalLocalInstalacao");
if (colecaoRamalLocalInstalacao == null) {
FiltroRamalLocalInstalacao filtroRamalLocalInstalacao = new FiltroRamalLocalInstalacao();
filtroRamalLocalInstalacao.adicionarParametro(new ParametroSimples(
FiltroRamalLocalInstalacao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroRamalLocalInstalacao
.setCampoOrderBy(FiltroPerfilLigacao.DESCRICAO);
colecaoRamalLocalInstalacao = fachada.pesquisar(
filtroRamalLocalInstalacao, RamalLocalInstalacao.class
.getName());
if (colecaoRamalLocalInstalacao != null
&& !colecaoRamalLocalInstalacao.isEmpty()) {
sessao.setAttribute("colecaoRamalLocalInstalacao",
colecaoRamalLocalInstalacao);
} else {
throw new ActionServletException("atencao.naocadastrado", null,
"Local de Instala��o do Ramal");
}
}
// 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());
sessao.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());
sessao.setAttribute("colecaoHidrometroProtecao",
colecaoHidrometroProtecao);
// Filtro para o campo Ligacao origem
Collection colecaoLigacaoOrigem = (Collection) sessao
.getAttribute("colecaoLigacaoOrigem");
if (colecaoLigacaoOrigem == null) {
FiltroLigacaoOrigem filtroLigacaoOrigem = new FiltroLigacaoOrigem();
filtroLigacaoOrigem.adicionarParametro(new ParametroSimples(
FiltroLigacaoOrigem.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroLigacaoOrigem.setCampoOrderBy(FiltroLigacaoOrigem.DESCRICAO);
colecaoLigacaoOrigem = fachada.pesquisar(filtroLigacaoOrigem,
LigacaoOrigem.class.getName());
if (colecaoLigacaoOrigem != null && !colecaoLigacaoOrigem.isEmpty()) {
sessao.setAttribute("colecaoLigacaoOrigem",
colecaoLigacaoOrigem);
} else {
sessao.setAttribute("colecaoLigacaoOrigem", new ArrayList());
}
}
}
}