package gcom.gui.cadastro.cliente; import java.util.Collection; import gcom.cadastro.cliente.ClienteTipo; import gcom.cadastro.cliente.FiltroClienteTipo; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.seguranca.acesso.PermissaoEspecial; import gcom.seguranca.acesso.usuario.FiltroUsuarioPemissaoEspecial; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioPermissaoEspecial; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; 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; import org.apache.struts.validator.DynaValidatorForm; /** * Action que inicializa a primeira p�gina do processo de atualizar cliente * * @author Rodrigo */ public class ExibirAtualizarClienteNomeTipoAction 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) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("atualizarClienteNomeTipo"); // Pesquisa os Tipos de Clientes para a p�gina FiltroClienteTipo filtroClienteTipo = new FiltroClienteTipo(); HttpSession session = httpServletRequest.getSession(false); Usuario usuario = (Usuario) session.getAttribute("usuarioLogado"); Fachada fachada = Fachada.getInstancia(); // DynaValidatorForm clienteActionForm = (DynaValidatorForm) actionForm; /** *************************************************************************************** */ /** * Recebe o form da inicializa��o do processo - Esta foi a solu��o * encontrada para a * */ /** * passagem do inserir direto para o atualizar pela consulta, fazendo as * substitui��o * */ /** * dos dados do form de mesmo nome corretamente, � preciso criar um form * novo no exibir * */ /** action (neste caso ExibirAtualizarClienteAction) * */ /** *************************************************************************************** */ if (httpServletRequest.getAttribute("ClienteActionForm") != null) { session.setAttribute("ClienteActionForm", httpServletRequest .getAttribute("ClienteActionForm")); } DynaValidatorForm clienteActionForm = (DynaValidatorForm) session.getAttribute("ClienteActionForm"); /** *************************************************************************************** */ /** Verificar as permiss�o especial para alterar o nome do cliente * */ boolean temPermissaoAlterarNomeCliente = fachada .verificarPermissaoAlterarNomeCliente(usuario); httpServletRequest.setAttribute("temPermissaoAlterarNomeCliente", temPermissaoAlterarNomeCliente); /** *************************************************************************************** */ /** Verificar as permiss�o especial habilitar acrescimos por impontualidade* */ boolean temPermissaoAlterarAcrescimos = fachada .verificarPermissaoValAcrescimosImpontualidade(usuario); httpServletRequest.setAttribute("temPermissaoAlterarAcrescimos", temPermissaoAlterarAcrescimos); // Verifica o indicador Cobranca de acrescimos /** *************************************************************************************** */ SistemaParametro sistemaParametro = fachada .pesquisarParametrosDoSistema(); String descricao = ""; String descricaoAbreviada = ""; if (sistemaParametro.getIndicadorUsoNMCliReceitaFantasia().intValue() == ConstantesSistema.INDICADOR_USO_ATIVO .intValue()) { session.setAttribute("indicadorNomeFantasia", true); descricao = "Nome na Receita Federal:"; descricaoAbreviada = "Nome de Fantasia:"; } else { descricao = "Nome: "; descricaoAbreviada = "Nome Abreviado: "; session.removeAttribute("indicadorNomeFantasia"); } session.setAttribute("descricao", descricao); session.setAttribute("descricaoAbreviada", descricaoAbreviada); String indicadorPessoaFisicaJuridica = (String) clienteActionForm.get("indicadorPessoaFisicaJuridica"); filtroClienteTipo.adicionarParametro(new ParametroSimples( FiltroClienteTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroClienteTipo.adicionarParametro(new ParametroSimples(FiltroClienteTipo.INDICADOR_PESSOA_FISICA_JURIDICA, indicadorPessoaFisicaJuridica)); filtroClienteTipo.setCampoOrderBy(FiltroClienteTipo.DESCRICAO); httpServletRequest.setAttribute("colecaoTipoPessoa", Fachada .getInstancia().pesquisar(filtroClienteTipo, ClienteTipo.class.getName())); /** * Verificar as permiss�o especial para Visualizar Dia de Vencimento em * Cliente * */ boolean temPermissaoVisualizarDiaVencimentoContaCliente = fachada .verificarPermissaoVisualizarDiaVencimentoContaCliente(usuario); httpServletRequest.setAttribute( "temPermissaoVisualizarDiaVencimentoContaCliente", temPermissaoVisualizarDiaVencimentoContaCliente); /** *************************************************************************************** */ //Verificar se o usu�rio possui permiss�o especial para negativar cliente FiltroUsuarioPemissaoEspecial filtroUsuarioPemissaoEspecial = new FiltroUsuarioPemissaoEspecial(); filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.USUARIO_ID, usuario.getId())); filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.PERMISSAO_ESPECIAL_ID, PermissaoEspecial.INSERIR_MANTER_CLIENTE_SEM_NEGATIVACAO)); Collection colecaoUsuarioPermisao = fachada.pesquisar(filtroUsuarioPemissaoEspecial, UsuarioPermissaoEspecial.class.getName()); session.removeAttribute("permissaoEspecial"); if (colecaoUsuarioPermisao != null && !colecaoUsuarioPermisao.isEmpty()) { session.setAttribute("permissaoEspecial", "true"); } //********************************************************************** // CRC2103 // Autor: Ivan Sergio // Data: 02/07/2009 // Verifica se a tela deve ser exibida como um PopUp //********************************************************************** if (httpServletRequest.getParameter("POPUP") != null) { if (httpServletRequest.getParameter("POPUP").equals("true")) { session.setAttribute("POPUP", "true"); }else { session.setAttribute("POPUP", "false"); } }else if (session.getAttribute("POPUP") == null) { session.setAttribute("POPUP", "false"); } //********************************************************************** return retorno; } }