package gcom.gui.cadastro.cliente;
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 java.util.Collection;
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 inserir cliente
*
* @author Rodrigo
*/
public class ExibirInserirClienteNomeTipoAction 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("inserirClienteNomeTipo");
HttpSession session = httpServletRequest.getSession(false);
Usuario usuario = (Usuario) session.getAttribute("usuarioLogado");
Fachada fachada = Fachada.getInstancia();
DynaValidatorForm clienteActionForm = (DynaValidatorForm) actionForm;
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);
//Pesquisa os Tipos de Clientes para a p�gina
String indicadorPessoaFisicaJuridica = (String) clienteActionForm.get("indicadorPessoaFisicaJuridica");
FiltroClienteTipo filtroClienteTipo = new FiltroClienteTipo();
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;
}
}