package gcom.gui.arrecadacao; import gcom.arrecadacao.Devolucao; import gcom.arrecadacao.FiltroAvisoBancario; import gcom.arrecadacao.FiltroDevolucao; import gcom.arrecadacao.aviso.AvisoBancario; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.gui.ManutencaoRegistroActionForm; import gcom.seguranca.acesso.Operacao; import gcom.seguranca.acesso.OperacaoEfetuada; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioAcao; import gcom.seguranca.acesso.usuario.UsuarioAcaoUsuarioHelper; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.List; 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; /** * Remove as devolu��es selecionadas na lista da funcionalidade Manter Devolu��o * * @author Fernanda Paiva * @created 09 de Mar�o de 2006 */ public class RemoverDevolucaoAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ManutencaoRegistroActionForm manutencaoRegistroActionForm = (ManutencaoRegistroActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); //------------ REGISTRAR TRANSA��O ---------------- Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_DEVOLUCOES_REMOVER); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); //------------ REGISTRAR TRANSA��O ---------------- Fachada fachada = Fachada.getInstancia(); // Obt�m os ids de remo��o String[] ids = manutencaoRegistroActionForm.getIdRegistrosRemocao(); if (ids != null) { for (int i = 0; i < ids.length; i++) { FiltroDevolucao filtroDevolucao = new FiltroDevolucao(); filtroDevolucao.adicionarCaminhoParaCarregamentoEntidade("devolucaoSituacaoAtual"); filtroDevolucao.adicionarCaminhoParaCarregamentoEntidade("devolucaoSituacaoAnterior"); filtroDevolucao.adicionarParametro(new ParametroSimples( FiltroDevolucao.ID, ids[i])); Collection<Devolucao> devolucaoPesquisado = fachada.pesquisar( filtroDevolucao, Devolucao.class.getName()); if (devolucaoPesquisado != null && !devolucaoPesquisado.isEmpty()) { Devolucao dadosDevolucao = (Devolucao) ((List) devolucaoPesquisado).get(0); //O endere�o foi encontrado if ((dadosDevolucao.getDevolucaoSituacaoAtual() != null && !dadosDevolucao.getDevolucaoSituacaoAtual().equals("")) && (dadosDevolucao.getDevolucaoSituacaoAnterior() != null && !dadosDevolucao.getDevolucaoSituacaoAnterior().equals(""))) { String situacaoAnterior = dadosDevolucao.getDevolucaoSituacaoAnterior().getDescricaoDevolucaoSituacao(); String situacaoAtual = dadosDevolucao.getDevolucaoSituacaoAtual().getDescricaoDevolucaoSituacao(); throw new ActionServletException( "atencao.devolucao.nao_excluir_situacao_alterada", "" + situacaoAnterior, situacaoAtual); } FiltroAvisoBancario filtroAvisoBancario = new FiltroAvisoBancario(); filtroAvisoBancario.adicionarParametro(new ParametroSimples( FiltroAvisoBancario.ID, dadosDevolucao.getAvisoBancario().getId())); Collection avisoBancario = fachada.pesquisar(filtroAvisoBancario, AvisoBancario.class.getName()); BigDecimal valorFinal = null; if (avisoBancario != null && !avisoBancario.isEmpty()) { AvisoBancario dadosAvisoBancario = (AvisoBancario) ((List) avisoBancario).get(0); BigDecimal valorDevolucao2 = dadosAvisoBancario.getValorDevolucaoCalculado(); valorFinal = (valorDevolucao2.subtract(dadosDevolucao.getValorDevolucao())); } fachada.atualizaValorArrecadacaoAvisoBancaraio(valorFinal, dadosDevolucao.getAvisoBancario().getId()); } } } //Seta o mapeamento de retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); //Obt�m a sess�o //HttpSession sessao = httpServletRequest.getSession(false); //mensagem de erro quando o usu�rio tenta excluir sem ter selecionado nenhum registro if (ids == null || ids.length == 0) { throw new ActionServletException( "atencao.registros.nao_selecionados"); } //------------ REGISTRAR TRANSA��O ---------------- UsuarioAcaoUsuarioHelper usuarioAcaoUsuarioHelper = new UsuarioAcaoUsuarioHelper(usuarioLogado,UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); Collection<UsuarioAcaoUsuarioHelper> colecaoUsuarios = new ArrayList(); colecaoUsuarios.add(usuarioAcaoUsuarioHelper); //------------ REGISTRAR TRANSA��O ---------------- fachada.remover(ids, Devolucao.class.getName(),operacaoEfetuada, colecaoUsuarios); //Monta a p�gina de sucesso if (retorno.getName().equalsIgnoreCase("telaSucesso")) { montarPaginaSucesso(httpServletRequest, ids.length + " Devolu�ao(�es) removida(s) com sucesso.", "Realizar outra Manuten��o de Devolu��o", "exibirFiltrarDevolucaoAction.do?tela=manterDevolucao&menu=sim"); } return retorno; } }