package gcom.gui.atendimentopublico.ligacaoagua;
import gcom.atendimentopublico.bean.EfetuarLigacaoAguaComInstalacaoHidrometroSemRAHelper;
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.RamalLocalInstalacao;
import gcom.atendimentopublico.ordemservico.FiltroServicoNaoCobrancaMotivo;
import gcom.atendimentopublico.ordemservico.ServicoNaoCobrancaMotivo;
import gcom.fachada.Fachada;
import gcom.faturamento.debito.FiltroDebitoTipo;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.gui.atendimentopublico.EfetuarLigacaoAguaComInstalacaoHidrometroSemRAActionForm;
import gcom.micromedicao.hidrometro.FiltroHidrometroLocalInstalacao;
import gcom.micromedicao.hidrometro.FiltroHidrometroProtecao;
import gcom.micromedicao.hidrometro.Hidrometro;
import gcom.micromedicao.hidrometro.HidrometroLocalInstalacao;
import gcom.micromedicao.hidrometro.HidrometroProtecao;
import gcom.util.ConstantesSistema;
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;
/**
* Action respons�vel pela pre-exibi��o da pagina de inserir bairro
*
* @author Leandro Cavalcanti
* @created 20 de Junho de 2006
*/
public class ExibirEfetuarLigacaoAguaComInstalacaoHidrometroSemRAAction 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("efetuarLigacaoAguaComInstalacaoHidrometroSemRA");
EfetuarLigacaoAguaComInstalacaoHidrometroSemRAActionForm form = (EfetuarLigacaoAguaComInstalacaoHidrometroSemRAActionForm) actionForm;
if (httpServletRequest.getParameter("desfazer") != null) {
form.setAceitaLacre(null);
form.setSituacaoCavalete(null);
}
this.consultaSelectObrigatorio(sessao);
//String matriculaImovel = null;
if (form.getMatriculaImovel() != null
&& !form.getMatriculaImovel().trim().equals("")) {
String inscricao = fachada
.pesquisarInscricaoImovel(new Integer(form
.getMatriculaImovel()));
if(inscricao == null || inscricao.trim().equals("")){
form.setImovelNaoEncontrado("true");
form.setInscricaoImovel("Im�vel Inexistente");
}
EfetuarLigacaoAguaComInstalacaoHidrometroSemRAHelper efetuarHelper = fachada
.pesquisarEfetuarLigacaoAguaHidrometroSemRA(new Integer(
form.getMatriculaImovel()));
if (efetuarHelper != null) {
form.setImovelNaoEncontrado("false");
form.setMatriculaImovel(efetuarHelper.getMatriculaImovel());
form.setClienteUsuario(efetuarHelper.getClienteUsuario());
form.setCpfCnpjCliente(efetuarHelper.getCpfCnpjCliente());
form.setSituacaoLigacaoAgua(efetuarHelper
.getSituacaoLigacaoAgua());
form.setSituacaoLigacaoEsgoto(efetuarHelper
.getSituacaoLigacaoEsgoto());
form.setInscricaoImovel(inscricao);
}
}else{
}
if (httpServletRequest.getParameter("limpar") != null) {
form.setMatriculaImovel("");
form.setInscricaoImovel("");
form.setClienteUsuario("");
form.setCpfCnpjCliente("");
form.setSituacaoLigacaoAgua("");
form.setSituacaoLigacaoEsgoto("");
form.setDataLigacao("");
form.setDiametroLigacao("");
form.setMaterialLigacao("");
form.setPerfilLigacao("");
form.setAceitaLacre("2");
}
// }
String numeroHidrometro = form.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) {
form.setNumeroHidrometro("");
throw new ActionServletException(
"atencao.hidrometro_inexistente");
} else {
form.setNumeroHidrometro(hidrometro.getNumero());
}
}
return retorno;
}
/**
* 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());
if (colecaoHidrometroLocalInstalacao == null
|| colecaoHidrometroLocalInstalacao.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"Hidr�metro local de instala��o");
}
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());
if (colecaoHidrometroProtecao == null
|| colecaoHidrometroProtecao.isEmpty()) {
throw new ActionServletException(
"atencao.entidade_sem_dados_para_selecao", null,
"Hidr�metro prote��o");
}
sessao.setAttribute("colecaoHidrometroProtecao",
colecaoHidrometroProtecao);
}
}