package gcom.gui.arrecadacao.banco; import gcom.arrecadacao.ArrecadacaoForma; import gcom.arrecadacao.aviso.AvisoAcerto; import gcom.arrecadacao.aviso.AvisoBancario; import gcom.arrecadacao.aviso.AvisoDeducoes; import gcom.arrecadacao.banco.ContaBancaria; import gcom.arrecadacao.banco.FiltroContaBancaria; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioAcao; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.Collection; import java.util.Date; import java.util.Iterator; import java.util.Map; 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 de exibir atulizar o aviso bancario * * @author thiago toscano * @date 10/03/2006 */ public class AtualizarAvisoBancarioAction extends GcomAction { /** * M�todo responsavel por responder a requisicao * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); AvisoBancarioActionForm form = (AvisoBancarioActionForm) actionForm; HttpSession sessao = request.getSession(false); Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); // ------------ REGISTRAR TRANSA��O ---------------- // RegistradorOperacao registradorOperacao = new RegistradorOperacao( // Operacao.OPERACAO_AVISO_BANCARIO_ATUALIZAR, // new UsuarioAcaoUsuarioHelper(usuarioLogado, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // // Operacao operacao = new Operacao(); // operacao.setId(Operacao.OPERACAO_SUBCATEGORIA_ATUALIZAR); // // OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); // operacaoEfetuada.setOperacao(operacao); //------------ REGISTRAR TRANSA��O ---------------- AvisoBancario avisoBancario = (AvisoBancario) sessao.getAttribute("avisoBancario"); avisoBancario.adicionarUsuario(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); Map<String, String[]> requestMap = request.getParameterMap(); //avisoBancario.setUltimaAlteracao(new Date(System.currentTimeMillis())); FiltroContaBancaria filtroContaBancaria = new FiltroContaBancaria(); filtroContaBancaria.adicionarCaminhoParaCarregamentoEntidade("agencia"); filtroContaBancaria.adicionarCaminhoParaCarregamentoEntidade("agencia.banco"); Date dataLancamento = null; if(form.getDataLancamento() != null && !form.getDataLancamento().equals("")){ dataLancamento = Util.converteStringParaDate(form.getDataLancamento()); avisoBancario.setDataLancamento(dataLancamento); }else{ throw new ActionServletException("atencao.avisoBancario.data_lancamento_invalida"); } if (form.getIdContaBancaria()!= null && !"".equals(form.getIdContaBancaria().trim())) { filtroContaBancaria.adicionarParametro(new ParametroSimples(FiltroContaBancaria.ID,form.getIdContaBancaria())); Collection coll = Fachada.getInstancia().pesquisar(filtroContaBancaria, ContaBancaria.class.getSimpleName()); avisoBancario.setContaBancaria((ContaBancaria)coll.iterator().next()); }else{ if (requestMap.get("idContaRequest") != null) { String idConta = (requestMap.get("idContaRequest"))[0]; filtroContaBancaria.adicionarParametro(new ParametroSimples(FiltroContaBancaria.ID,idConta)); Collection coll = Fachada.getInstancia().pesquisar(filtroContaBancaria, ContaBancaria.class.getSimpleName()); avisoBancario.setContaBancaria((ContaBancaria)coll.iterator().next()); } } // ------------------------------ // -- ArrecadacaoForma // ------------------------------ if (form.getIdFormaArrecadacao() != null && !form.getIdFormaArrecadacao().equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) { ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma(); arrecadacaoForma.setId(new Integer(form.getIdFormaArrecadacao())); avisoBancario.setArrecadacaoForma(arrecadacaoForma); } if (form.getNumeroDocumento()!= null && !"".equals(form.getNumeroDocumento().trim())) avisoBancario.setNumeroDocumento(Integer.parseInt(form.getNumeroDocumento())); if (form.getDataRealizacao()!= null && !"".equals(form.getDataRealizacao().trim())) { Date data = Util.converteStringParaDate(form.getDataRealizacao()); if (data == null) { throw new ActionServletException("atencao.avisoBancario.data_realizacao_invalida"); } if (data.getTime() > new Date(System.currentTimeMillis()).getTime()) { throw new ActionServletException("atencao.avisoBancario.data_realizacao_menor_que_hoje",null,Util.formatarData(new Date(System.currentTimeMillis()))); } if (data.getTime() < dataLancamento.getTime()) { throw new ActionServletException("atencao.avisoBancario.data_realizacao_menor_que_data_lancamento", Util.formatarData(data), Util.formatarData(dataLancamento)); } avisoBancario.setDataRealizada(Util.converteStringParaDate(form.getDataRealizacao())); } if (form.getValorArrecadacao()!= null && !"".equals(form.getValorArrecadacao().trim())) avisoBancario.setValorArrecadacaoInformado(Util.formatarMoedaRealparaBigDecimal(form.getValorArrecadacao().trim())); if (form.getValorDevolucao()!= null && !"".equals(form.getValorDevolucao().trim())) avisoBancario.setValorDevolucaoInformado(Util.formatarMoedaRealparaBigDecimal(form.getValorDevolucao().trim())); // pegando os valores que foram alterados Collection collAvisoDeducoes = (Collection) sessao.getAttribute("avisoDeducoes"); BigDecimal somatorioValorDeducao = new BigDecimal("0.00"); if (collAvisoDeducoes != null && !collAvisoDeducoes.isEmpty()) { Iterator it = collAvisoDeducoes.iterator(); int i = 0; while (it.hasNext()) { AvisoDeducoes avisoDeducoes = (AvisoDeducoes) it.next(); if (request.getParameter("posicaoAvisoDeducao_" + i) != null) { avisoDeducoes.setValorDeducao(Util.formatarMoedaRealparaBigDecimal(request.getParameter("posicaoAvisoDeducao_" + i).toString().trim())); somatorioValorDeducao = somatorioValorDeducao.add((Util.formatarMoedaRealparaBigDecimal(request.getParameter("posicaoAvisoDeducao_" + i).toString().trim()))); } i++; } } Collection collAvisoDeducoesRemover = (Collection) sessao.getAttribute("avisoDeducoesRemover"); /*if (collAvisoDeducoesRemover != null) { Iterator it = collAvisoDeducoesRemover.iterator(); while(it.hasNext()) { } }*/ // pegando os valores que foram alterados Collection collAvisoAcerto = (Collection) sessao.getAttribute("avisoAcerto"); if (collAvisoAcerto != null && !collAvisoAcerto.isEmpty()) { Iterator it = collAvisoAcerto.iterator(); int i = 0; while (it.hasNext()) { AvisoAcerto avisoAcerto = (AvisoAcerto) it.next(); if (request.getParameter("posicaoAvisoAcerto_" + i) != null) { avisoAcerto.setValorAcerto(Util.formatarMoedaRealparaBigDecimal(request.getParameter("posicaoAvisoAcerto_" + i).toString().trim())); } i++; } } Collection collAvisoAcertoRemover = (Collection) sessao.getAttribute("avisoAcertoRemover"); /*if (collAvisoAcertoRemover != null) { Iterator it = collAvisoAcertoRemover.iterator(); while(it.hasNext()) { } }*/ if (form.getValorArrecadacao() == null || form.getValorArrecadacao().equals("")){ form.setValorArrecadacao("0,00"); } if (form.getValorDevolucao() == null || form.getValorDevolucao().equals("")){ form.setValorDevolucao("0,00"); } if (form.getValorDeducao() == null || form.getValorDeducao().equals("")){ form.setValorDeducao("0,00"); } BigDecimal valorRealizado = Util.formatarMoedaRealparaBigDecimal(form.getValorArrecadacao()).subtract(Util.formatarMoedaRealparaBigDecimal(form.getValorDevolucao())); valorRealizado = valorRealizado.subtract(somatorioValorDeducao); avisoBancario.setValorRealizado(valorRealizado); Fachada.getInstancia().atualizarAvisoBancario(avisoBancario, collAvisoDeducoes, collAvisoDeducoesRemover, collAvisoAcerto, collAvisoAcertoRemover, usuarioLogado); sessao.removeAttribute("avisoDeducoes"); sessao.removeAttribute("avisoDeducoesRemover"); sessao.removeAttribute("avisoAcerto"); sessao.removeAttribute("avisoAcertoRemover"); request.setAttribute("caminhoFuncionalidade","exibirFiltrarAvisoBancarioAction.do?menu=sim"); request.setAttribute("labelPaginaSucesso"," Realizar outra Manuten��o de Aviso Banc�rio"); request.setAttribute("mensagemPaginaSucesso","Aviso Banc�rio de c�digo " + avisoBancario.getId() + " com Data de Lan�amento " + Util.formatarData(avisoBancario.getDataLancamento()) + " e seq�encial " + avisoBancario.getNumeroSequencial() + " do arrecadador " + avisoBancario.getArrecadador().getCliente().getNome() + " atualizado com sucesso. "); return retorno; } }