package gcom.gui.faturamento.conta; import gcom.atendimentopublico.registroatendimento.EspecificacaoTipoValidacao; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.CobrancaDocumentoItem; import gcom.cobranca.FiltroCobrancaDocumentoItem; import gcom.fachada.Fachada; import gcom.faturamento.conta.Conta; import gcom.faturamento.conta.ContaMotivoCancelamento; import gcom.faturamento.conta.FiltroConta; import gcom.faturamento.conta.FiltroMotivoCancelamentoConta; import gcom.faturamento.debito.DebitoCreditoSituacao; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.StringTokenizer; 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 ExibirCancelarContaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("exibirCancelarConta"); HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); //Carregando o identificador das contas selecionadas String contaSelected = httpServletRequest.getParameter("conta"); String idImovel = httpServletRequest.getParameter("idImovel"); /* * Colocado por Ana Maria em 22/04/2009 */ if (!fachada.verificarPermissaoRetificarContaImovelPefilBloqueado((Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO))){ Boolean imovelBloqueado = fachada.verificarImovelPerfilBloqueado(new Integer(httpServletRequest.getParameter("idImovel"))); if(imovelBloqueado){ throw new ActionServletException( "atencao.perfil_imovel_nao_permite_operacao"); } } //Inst�ncia do formul�rio que est� sendo utilizado CancelarContaActionForm cancelarContaActionForm = (CancelarContaActionForm) actionForm; SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); StringTokenizer idsContas = new StringTokenizer(contaSelected, ","); while (idsContas.hasMoreElements()) { String dadosConta = (String) idsContas.nextElement(); String idConta = dadosConta.split("-")[0]; FiltroConta filtroConta = new FiltroConta(); filtroConta.adicionarParametro(new ParametroSimples(FiltroConta.ID, Integer.valueOf(idConta))); Collection colecaoConta = fachada.pesquisar(filtroConta, Conta.class.getName()); if (colecaoConta != null && !colecaoConta.isEmpty()) { Conta conta = (Conta) Util.retonarObjetoDeColecao(colecaoConta); if (conta.getDebitoCreditoSituacaoAtual().getId().equals(DebitoCreditoSituacao.RETIFICADA) || conta.getDebitoCreditoSituacaoAtual().getId().equals(DebitoCreditoSituacao.INCLUIDA)) { FiltroCobrancaDocumentoItem filtroCobrancaDocumentoItem = new FiltroCobrancaDocumentoItem(); filtroCobrancaDocumentoItem.adicionarParametro(new ParametroSimples(FiltroCobrancaDocumentoItem.CONTA_GERAL_ID, Integer.valueOf(idConta))); Collection colecaoCobrancaDocumentoItem = fachada.pesquisar(filtroCobrancaDocumentoItem, CobrancaDocumentoItem.class.getName()); if (conta.getReferenciaContabil().intValue() >= sistemaParametro.getAnoMesFaturamento().intValue() && colecaoCobrancaDocumentoItem != null && !colecaoCobrancaDocumentoItem.isEmpty()) { String contasComExtrato = ""; if (cancelarContaActionForm.getContasEmExtratoDebito() != null) { contasComExtrato = cancelarContaActionForm.getContasEmExtratoDebito() + ", "; } contasComExtrato = contasComExtrato + Util.formatarAnoMesParaMesAno(conta.getReferencia()); cancelarContaActionForm.setContasEmExtratoDebito(contasComExtrato); } } } } /****************************************************************** * Verifica se o Usu�rio tem Permissao Especial para * Cancelar Conta sem RA * * Ivan S�rgio * 28/01/2008 ******************************************************************/ Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); boolean usuarioPermissaoCancelarSemRA = fachada.verificarPermissaoCancelarContaSemRA(usuario); if (!usuarioPermissaoCancelarSemRA) { // [FS0001] - Verificar Exist�ncia de RA fachada.verificarExistenciaRegistroAtendimento(new Integer(idImovel), "atencao.conta_existencia_registro_atendimento", EspecificacaoTipoValidacao.ALTERACAO_CONTA); } //Carregar: Lista dos motivos de cancelamento da conta if (sessao.getAttribute("colecaoMotivoCancelamentoConta") == null){ FiltroMotivoCancelamentoConta filtroMotivoCancelamentoConta = new FiltroMotivoCancelamentoConta(FiltroMotivoCancelamentoConta.DESCRICAO_MOTIVO_CANCELAMENTO_CONTA); filtroMotivoCancelamentoConta.adicionarParametro( new ParametroSimples(FiltroMotivoCancelamentoConta.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoMotivoCancelamentoConta = fachada.pesquisar(filtroMotivoCancelamentoConta, ContaMotivoCancelamento.class.getName()); if (colecaoMotivoCancelamentoConta == null || colecaoMotivoCancelamentoConta.isEmpty()){ throw new ActionServletException( "atencao.pesquisa.nenhum_registro_tabela", null, "MOTIVO_CANCELAMENTO_CONTA"); } // Disponibiliza a cole��o pela sess�o sessao.setAttribute("colecaoMotivoCancelamentoConta", colecaoMotivoCancelamentoConta); } cancelarContaActionForm.setContaSelected(contaSelected); cancelarContaActionForm.setMotivoCancelamentoContaID( "" ); return retorno; } }