package gcom.gui.cobranca; import gcom.cobranca.CobrancaAtividade; import gcom.cobranca.FiltroCobrancaAtividade; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; 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; /** * Esta classe tem por finalidade remover uma ou v�rias atividades de cobran�a que tenham * sido selecionadas anteriormente pelo usu�rio * * @author Raphael Rossiter * @date 13/09/2007 */ public class RemoverAtividadeCobrancaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); ManterAtividadeCobrancaActionForm manterAtividadeCobrancaActionForm = (ManterAtividadeCobrancaActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Collection colecaoCobrancaAtividade = (Collection) sessao.getAttribute("colecaoCobrancaAtividade"); String[] selecaoCobrancaAtividade = manterAtividadeCobrancaActionForm .getCobrancaAtividadeSelectID(); if (selecaoCobrancaAtividade == null || selecaoCobrancaAtividade.length < 1) { throw new ActionServletException("atencao.registros.nao_selecionados"); } else{ Collection<CobrancaAtividade> colecaoCobrancaAtividadeRemocao = this.carregarColecaoCobrancaAtividade(colecaoCobrancaAtividade, selecaoCobrancaAtividade); Iterator colecaoIter = colecaoCobrancaAtividadeRemocao.iterator(); while (colecaoIter.hasNext()){ CobrancaAtividade CobAt = (CobrancaAtividade) colecaoIter.next(); // Verificar se a cobran�a atividade j� foi atualizado por outro usu�rio // durante // esta atualiza��o FiltroCobrancaAtividade filtroCobrancaAtividadeNoBanco = new FiltroCobrancaAtividade(); filtroCobrancaAtividadeNoBanco.adicionarParametro(new ParametroSimples( FiltroCobrancaAtividade.ID, CobAt.getId())); filtroCobrancaAtividadeNoBanco .adicionarCaminhoParaCarregamentoEntidade("processo"); Collection colecaoCobrancaAtividadeNaBase = Fachada.getInstancia().pesquisar( filtroCobrancaAtividadeNoBanco, CobrancaAtividade.class.getName()); if (colecaoCobrancaAtividadeNaBase != null && !colecaoCobrancaAtividadeNaBase.isEmpty()) { CobrancaAtividade cobrancaAtividadeNaBase = (CobrancaAtividade) Util .retonarObjetoDeColecao(colecaoCobrancaAtividadeNaBase); if (cobrancaAtividadeNaBase.getUltimaAlteracao().after( CobAt.getUltimaAlteracao())) { throw new ActionServletException( "atencao.atualizacao.timestamp"); } } else { throw new ActionServletException( "atencao.atualizacao.timestamp"); } Fachada.getInstancia().remover(CobAt); } } sessao.removeAttribute("colecaoCobrancaAtividade"); montarPaginaSucesso(httpServletRequest, selecaoCobrancaAtividade.length + " Atividade(s) de Cobran�a removida(s) com sucesso.", "Realizar outra manuten��o de Atividade de Cobran�a", "exibirManterAtividadeCobrancaAction.do?menu=sim"); return retorno; } private Collection<CobrancaAtividade> carregarColecaoCobrancaAtividade(Collection colecaoCobrancaAtividade, String[] selecaoCobrancaAtividade){ Collection<CobrancaAtividade> colecaoRetorno = new ArrayList(); if (colecaoCobrancaAtividade.size() != selecaoCobrancaAtividade.length){ Integer idCobrancaAtividade = null; Iterator itColecaoCobrancaAtividade = null; CobrancaAtividade cobrancaAtividade = null; for (int x = 0; x < selecaoCobrancaAtividade.length; x++){ idCobrancaAtividade = Integer.parseInt(selecaoCobrancaAtividade[x]); itColecaoCobrancaAtividade = colecaoCobrancaAtividade.iterator(); while (itColecaoCobrancaAtividade.hasNext()){ cobrancaAtividade = (CobrancaAtividade) itColecaoCobrancaAtividade.next(); if (cobrancaAtividade.getId().equals(idCobrancaAtividade)){ colecaoRetorno.add(cobrancaAtividade); break; } } } } else{ colecaoRetorno.addAll(colecaoCobrancaAtividade); } return colecaoRetorno; } }