package gcom.gui.atendimentopublico.ordemservico; import gcom.atendimentopublico.ordemservico.FiltroServicoTipo; import gcom.atendimentopublico.ordemservico.ServicoTipo; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.FiltroCategoria; import gcom.cadastro.imovel.FiltroImovelPerfil; import gcom.cadastro.imovel.FiltroSubCategoria; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.imovel.Subcategoria; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.hidrometro.FiltroHidrometroCapacidade; import gcom.micromedicao.hidrometro.HidrometroCapacidade; import gcom.seguranca.acesso.PermissaoEspecial; import gcom.seguranca.acesso.usuario.Usuario; 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; /** * [UC0391] Inserir Valor de Cobran�a de Servi�o * * Este caso de uso permite a inclus�o de um novo valor de cobran�a de servi�o * * @author Leonardo Regis * @date 28/09/2006 */ public class ExibirInserirValorCobrancaServicoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { HttpSession sessao = httpServletRequest.getSession(false); ActionForward retorno = actionMapping.findForward("inserirValorCobrancaServico"); Fachada fachada = Fachada.getInstancia(); Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO); InserirValorCobrancaServicoActionForm form = (InserirValorCobrancaServicoActionForm) actionForm; this.getPerfilImovelCollection(sessao); this.getHidrometroCapacidadeCollection(sessao, fachada); // Pesquisar Categoria this.pesquisarCategoria(httpServletRequest, form); // pesquisar SubCategoria this.pesquisarSubCategoria(httpServletRequest, form); if(form.getTipoServico() !=null && !form.getTipoServico().equals("")) { this.getServicoTipo(form, httpServletRequest); } if(form.getIndicativoTipoSevicoEconomias() == null){ form.setIndicativoTipoSevicoEconomias(ConstantesSistema.NAO.toString()); } if(form.getIndicadorMedido() == null){ form.setIndicadorMedido(ConstantesSistema.NAO.toString()); } // Verificar permiss�o especial para replicar boolean usuarioPodeReplicar = fachada.verificarPermissaoEspecial(PermissaoEspecial.REPLICAR_VALOR_COBRANCA_SERVICO, usuarioLogado); if (usuarioPodeReplicar){ httpServletRequest.setAttribute("usuarioPodeReplicar", "true"); //throw new ActionServletException("atencao.necessario_permissao_especial_para_retificar_apenas_volume_esgoto"); }else{ httpServletRequest.setAttribute("usuarioPodeReplicar", "false"); } if(form.getIndicadorMedido()!=null && form.getIndicadorMedido().equals(ConstantesSistema.SIM.toString())){ if((form.getIdCategoria()!=null && !form.getIdCategoria().equals(ConstantesSistema.NUMERO_NAO_INFORMADO+"")) || (form.getIdSubCategoria()!=null && !form.getIdSubCategoria().equals(ConstantesSistema.NUMERO_NAO_INFORMADO+""))){ sessao.setAttribute("capacidadeObrigatoria","sim"); }else{ sessao.setAttribute("capacidadeObrigatoria","nao"); } }else{ sessao.setAttribute("capacidadeObrigatoria","nao"); } if(httpServletRequest.getParameter("menu")!=null && httpServletRequest.getParameter("menu").toString().equalsIgnoreCase("sim")){ form.setIndicadorGeracaoDebito("1"); } return retorno; } /** * Recupera Tipo de Servi�o * * [FS0001] - Verificar Servi�o Geral D�bito * * @author Leonardo Regis * @date 29/09/2006 * * @param filtrarRegistroAtendimentoActionForm * @param fachada */ private void getServicoTipo(InserirValorCobrancaServicoActionForm form, HttpServletRequest httpServletRequest) { Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); // Filtra Tipo de Servi�o FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples(FiltroServicoTipo.ID, form.getTipoServico())); filtroServicoTipo.adicionarCaminhoParaCarregamentoEntidade("debitoTipo"); // Recupera Tipo de Servi�o Collection colecaoServicoTipo = fachada.pesquisar(filtroServicoTipo, ServicoTipo.class.getName()); if (colecaoServicoTipo != null && !colecaoServicoTipo.isEmpty()) { sessao.setAttribute("servicoTipoEncontrada", "true"); ServicoTipo servicoTipo = (ServicoTipo) colecaoServicoTipo.iterator().next(); form.setNomeTipoServico(servicoTipo.getDescricao()); // if (servicoTipo.getDebitoTipo() == null) { // throw new ActionServletException("atencao.valor_cobranca_tipo_servico_sem_debito", null, servicoTipo.getDescricao()); // } } else { sessao.removeAttribute("servicoTipoEncontrada"); form.setTipoServico(""); form.setNomeTipoServico("Tipo de Servi�o inexistente"); } } /** * Carrega a cole��o de capacidade de hidr�metro * * @author Leonardo Regis * @date 28/09/2006 * * @param sessao */ private void getHidrometroCapacidadeCollection(HttpSession sessao, Fachada fachada) { // Filtro para o campo Capacidade do Hidr�metro FiltroHidrometroCapacidade filtroHidrometroCapacidade = new FiltroHidrometroCapacidade(); filtroHidrometroCapacidade.adicionarParametro(new ParametroSimples(FiltroHidrometroCapacidade.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroHidrometroCapacidade.setCampoOrderBy(FiltroHidrometroCapacidade.DESCRICAO); Collection colecaoHidrometroCapacidade = fachada.pesquisar(filtroHidrometroCapacidade, HidrometroCapacidade.class.getName()); if (colecaoHidrometroCapacidade != null && !colecaoHidrometroCapacidade.isEmpty()) { sessao.setAttribute("colecaoHidrometroCapacidade", colecaoHidrometroCapacidade); } else { throw new ActionServletException("atencao.naocadastrado", null, "Capacidade Hidr�metro"); } } /** * Carrega a cole��o de perfil de im�vel * * @author Leonardo Regis * @date 28/09/2006 * * @param sessao */ private void getPerfilImovelCollection(HttpSession sessao) { Fachada fachada = Fachada.getInstancia(); // Filtro para o campo Perfil do Im�vel FiltroImovelPerfil filtroPerfilImovel = new FiltroImovelPerfil(); filtroPerfilImovel.adicionarParametro(new ParametroSimples(FiltroImovelPerfil.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroPerfilImovel.setCampoOrderBy(FiltroImovelPerfil.DESCRICAO); Collection colecaoImovelPerfil = fachada.pesquisar(filtroPerfilImovel, ImovelPerfil.class.getName()); if (colecaoImovelPerfil != null && !colecaoImovelPerfil.isEmpty()) { sessao.setAttribute("colecaoImovelPerfil", colecaoImovelPerfil); } else { throw new ActionServletException("atencao.naocadastrado", null, "Perfil do Im�vel"); } } // Hugo Leonardo - 19/04/2010 - CRC - 3507 // Verificar exist�ncia de dados (CATEGORIA) private void pesquisarCategoria(HttpServletRequest httpServletRequest, InserirValorCobrancaServicoActionForm form) { FiltroCategoria filtroCategoria = new FiltroCategoria(); filtroCategoria.setConsultaSemLimites(true); filtroCategoria.adicionarParametro(new ParametroSimples(FiltroCategoria.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoCategoria = this.getFachada().pesquisar(filtroCategoria, Categoria.class.getName()); if(colecaoCategoria == null || colecaoCategoria.isEmpty()){ throw new ActionServletException("atencao.naocadastrado", null, "Categorias"); }else{ httpServletRequest.setAttribute("colecaoCategoria", colecaoCategoria); } } // Hugo Leonardo - 19/04/2010 - CRC - 3507 // [FS0004] - Verificar exist�ncia de dados (SUBCATEGORIA) private void pesquisarSubCategoria(HttpServletRequest httpServletRequest, InserirValorCobrancaServicoActionForm form) { String idCategoria = form.getIdCategoria(); Collection colecaoSubCategoria = null; if(idCategoria != null && !idCategoria.equalsIgnoreCase("-1")){ FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria(FiltroSubCategoria.DESCRICAO); filtroSubCategoria.adicionarParametro(new ParametroSimples(FiltroSubCategoria.CATEGORIA_ID, idCategoria)); filtroSubCategoria.adicionarParametro(new ParametroSimples(FiltroSubCategoria.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); colecaoSubCategoria = this.getFachada().pesquisar(filtroSubCategoria, Subcategoria.class.getName()); if(colecaoSubCategoria == null || colecaoSubCategoria.isEmpty()){ throw new ActionServletException("atencao.naocadastrado", null, "SubCategorias"); }else{ httpServletRequest.setAttribute("colecaoSubCategoria", colecaoSubCategoria); } }else{ httpServletRequest.setAttribute("colecaoSubCategoria", colecaoSubCategoria); } } }