package gcom.gui.arrecadacao; import gcom.arrecadacao.Arrecadador; import gcom.arrecadacao.ArrecadadorContrato; import gcom.arrecadacao.FiltroArrecadador; import gcom.arrecadacao.banco.ContaBancaria; import gcom.arrecadacao.banco.FiltroContaBancaria; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.FiltroCliente; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; 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; /** * Descri��o da classe * * @author Marcio Roberto * @date 19/03/2007 */ public class InserirContratoArrecadadorAction extends GcomAction { /** * Este caso de uso permite a inclus�o de um novo Contrato de Arrecadador * * [UC0509] InserirContratoArrecadador * * * @author Marcio Roberto * @date 19/03/2007 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); InserirContratoArrecadadorActionForm inserirContratoArrecadadorActionForm = (InserirContratoArrecadadorActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); sessao.setAttribute("caminhoRetornoVoltar", "/gsan/exibirInserirContratoArrecadadorAction.do"); Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); ArrecadadorContrato arrecadadorContrato = new ArrecadadorContrato(); FiltroArrecadador filtroArrecadador = new FiltroArrecadador(); // Arrecadador if (inserirContratoArrecadadorActionForm.getIdClienteCombo() != null && !inserirContratoArrecadadorActionForm.getIdClienteCombo() .equals("")) { // Inclui a obejeto de cliente no filtro de arrecadador filtroArrecadador .adicionarCaminhoParaCarregamentoEntidade("cliente"); // filtra arrecadador pelo cliente filtroArrecadador.adicionarParametro(new ParametroSimples( FiltroArrecadador.CLIENTE_ID, inserirContratoArrecadadorActionForm.getIdClienteCombo())); // Preenche colecao de arrecadador baseado no cliente escolhido Collection<Arrecadador> colecaoArrecadador = fachada.pesquisar( filtroArrecadador, Arrecadador.class.getName()); if (colecaoArrecadador != null && !colecaoArrecadador.isEmpty()) { Iterator iteratorColecaoArrecadador = colecaoArrecadador .iterator(); while (iteratorColecaoArrecadador.hasNext()) { Arrecadador arrecadador = (Arrecadador) iteratorColecaoArrecadador .next(); arrecadadorContrato.setArrecadador(arrecadador); } } else { arrecadadorContrato.setArrecadador(null); } } // [FS0007]-Verificar exist�ncia do contrato de arrecadador String numeroContrato = inserirContratoArrecadadorActionForm .getNumeroContrato(); // Numero de Contrato arrecadadorContrato .setNumeroContrato(inserirContratoArrecadadorActionForm .getNumeroContrato()); // Conta Deposito Arrecadador FiltroContaBancaria filtroContaBancaria = new FiltroContaBancaria(); if (inserirContratoArrecadadorActionForm .getIdContaBancariaArrecadador() != null && !inserirContratoArrecadadorActionForm .getIdContaBancariaArrecadador().equals("")) { filtroContaBancaria.adicionarParametro(new ParametroSimples( FiltroContaBancaria.ID, inserirContratoArrecadadorActionForm .getIdContaBancariaArrecadador())); Collection<ContaBancaria> colecaoContaBancariaArrecadador = fachada .pesquisar(filtroContaBancaria, ContaBancaria.class .getName()); if (colecaoContaBancariaArrecadador != null && !colecaoContaBancariaArrecadador.isEmpty()) { Iterator iteratorColecaoContaBancariaArrecadador = colecaoContaBancariaArrecadador .iterator(); while (iteratorColecaoContaBancariaArrecadador.hasNext()) { ContaBancaria contaBancariaArrecadador = (ContaBancaria) iteratorColecaoContaBancariaArrecadador .next(); arrecadadorContrato .setContaBancariaDepositoArrecadacao(contaBancariaArrecadador); } } else { arrecadadorContrato.setContaBancariaDepositoArrecadacao(null); } } // Conta Deposito Tarifa filtroContaBancaria = new FiltroContaBancaria(); if (inserirContratoArrecadadorActionForm.getIdContaBancariaTarifa() != null && !inserirContratoArrecadadorActionForm .getIdContaBancariaTarifa().equals("")) { filtroContaBancaria.adicionarParametro(new ParametroSimples( FiltroContaBancaria.ID, inserirContratoArrecadadorActionForm .getIdContaBancariaTarifa())); Collection<ContaBancaria> colecaoContaBancariaTarifa = fachada .pesquisar(filtroContaBancaria, ContaBancaria.class .getName()); if (colecaoContaBancariaTarifa != null && !colecaoContaBancariaTarifa.isEmpty()) { Iterator iteratorColecaoContaBancariaTarifa = colecaoContaBancariaTarifa .iterator(); while (iteratorColecaoContaBancariaTarifa.hasNext()) { ContaBancaria contaBancariaTarifa = (ContaBancaria) iteratorColecaoContaBancariaTarifa .next(); arrecadadorContrato .setContaBancariaDepositoTarifa(contaBancariaTarifa); } } else { arrecadadorContrato.setContaBancariaDepositoTarifa(null); } } // Cliente Cliente cliente = new Cliente(); cliente.setId(new Integer(inserirContratoArrecadadorActionForm .getIdCliente())); // [FS0004]-Verificar se pessoa f�sica FiltroCliente filtroCliente = new FiltroCliente(); filtroCliente.adicionarParametro(new ParametroSimples(FiltroCliente.ID, cliente.getId())); filtroCliente.adicionarCaminhoParaCarregamentoEntidade("clienteTipo"); Collection colecaoCliente = fachada.pesquisar(filtroCliente, Cliente.class.getName()); Cliente clientePesq = (Cliente) Util .retonarObjetoDeColecao(colecaoCliente); if (clientePesq.getClienteTipo().getIndicadorPessoaFisicaJuridica() != null && clientePesq.getClienteTipo() .getIndicadorPessoaFisicaJuridica().equals( new Short("2"))) { throw new ActionServletException( "atencao.cliente_arrecadador_pessoa_fisica"); } arrecadadorContrato.setCliente(cliente); // C�digo Convenio arrecadadorContrato .setCodigoConvenio(inserirContratoArrecadadorActionForm .getIdConvenio()); // IndicadorCobrancaISS if (inserirContratoArrecadadorActionForm.getIndicadorCobranca() != null) { arrecadadorContrato .setIndicadorCobrancaIss(new Short( inserirContratoArrecadadorActionForm .getIndicadorCobranca())); } else { arrecadadorContrato.setIndicadorCobrancaIss(null); } // Intervalo de Datas do Contrato arrecadadorContrato.setDataContratoInicio(Util .converteStringParaDate(inserirContratoArrecadadorActionForm .getDtInicioContrato())); arrecadadorContrato.setDataContratoFim(Util .converteStringParaDate(inserirContratoArrecadadorActionForm .getDtFimContrato())); arrecadadorContrato.setTamanhoMaximoIdentificacaoImovel(new Integer( inserirContratoArrecadadorActionForm .getTamanhoMaximoIdentificacaoImovel()).shortValue()); String emailCliente = inserirContratoArrecadadorActionForm .getEmailCliente(); if (emailCliente != null && !emailCliente.trim().equals("")) { arrecadadorContrato.setDescricaoEmail(emailCliente); } else { arrecadadorContrato.setDescricaoEmail(null); } Collection colecaoArrecadadorContratoTarifa = (Collection) sessao.getAttribute("colecaoArrecadadorContratoTarifaSelecionados"); if (colecaoArrecadadorContratoTarifa == null || colecaoArrecadadorContratoTarifa.isEmpty()) { throw new ActionServletException("atencao.required", null, "Arrecadador(es) Contrato(s) Tarifa(s)"); } Integer idContratoArrecadador = fachada.inserirContratoArrecadador( arrecadadorContrato, colecaoArrecadadorContratoTarifa, usuario); String idRegistroAtualizacao = idContratoArrecadador.toString(); sessao.setAttribute("idRegistroAtualizacao", idRegistroAtualizacao); // Monta a p�gina de sucesso montarPaginaSucesso(httpServletRequest, "Contrato de Arrecadador " + numeroContrato + " inserido com sucesso.", "Inserir outro Contrato de Arrecadador", "exibirInserirContratoArrecadadorAction.do?menu=sim", "exibirAtualizarContratoArrecadadorAction.do?idRegistroInseridoAtualizar=" + idContratoArrecadador, "Atualizar Contrato de Arrecadador Inserido"); sessao.removeAttribute("InserirContratoArrecadadorActionForm"); return retorno; } }