package gcom.gui.cadastro.imovel; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.FiltroCategoria; import gcom.cadastro.imovel.FiltroSubCategoria; import gcom.cadastro.imovel.Subcategoria; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.interceptor.RegistradorOperacao; 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.ConstantesSistema; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.Date; 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 respons�vel pela inser��o da subcategoria * * [UC0058] Inserir Subcategoria * * @author Fernanda Paiva * @date 28/12/2005 */ public class InserirSubcategoriaAction 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("telaSucesso"); InserirSubcategoriaActionForm inserirSubcategoriaActionForm = (InserirSubcategoriaActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); //------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_SUBCATEGORIA_INSERIR, new UsuarioAcaoUsuarioHelper(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_SUBCATEGORIA_INSERIR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); //------------ REGISTRAR TRANSA��O ---------------- //Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //Obt�m a sess�o //HttpSession sessao = httpServletRequest.getSession(false); String categoria = inserirSubcategoriaActionForm.getCategoria(); String descricaoSubcategoria = (String) inserirSubcategoriaActionForm .getDescricaoSubcategoria(); Integer codigoSubcategoria = new Integer(inserirSubcategoriaActionForm .getCodigoSubcategoria()); String descricaoAbreviada = inserirSubcategoriaActionForm .getDescricaoAbreviada(); String codigoTarifaSocial = inserirSubcategoriaActionForm .getCodigoTarifaSocial(); Integer codigoGrupoSubcategoria = null; if (inserirSubcategoriaActionForm.getCodigoGrupoSubcategoria() != null && !inserirSubcategoriaActionForm.getCodigoGrupoSubcategoria().equalsIgnoreCase("")) { codigoGrupoSubcategoria = new Integer(inserirSubcategoriaActionForm .getCodigoGrupoSubcategoria()); } String numeroFatorFiscalizacao = inserirSubcategoriaActionForm .getNumeroFatorFiscalizacao(); Short indicadorTarifaConsumo = null; if (inserirSubcategoriaActionForm.getIndicadorTarifaConsumo() != null && !inserirSubcategoriaActionForm.getIndicadorTarifaConsumo().equalsIgnoreCase("")) { indicadorTarifaConsumo = new Integer(inserirSubcategoriaActionForm .getIndicadorTarifaConsumo()).shortValue(); } String indicadorSazonalidade = inserirSubcategoriaActionForm .getIndicadorSazonalidade(); Categoria categoriaSelecionada = null; Subcategoria subcategoriaSelecionada = null; //Verifica a descri��o da categoria if (categoria != null && !categoria.equals("")) { FiltroCategoria filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro(new ParametroSimples( FiltroCategoria.CODIGO, categoria)); Collection<Categoria> categorias = fachada.pesquisar( filtroCategoria, Categoria.class.getName()); if (categorias != null && categorias.isEmpty()) { throw new ActionServletException( "atencao.categoria_inexistente", null, "codigo"); } categoriaSelecionada = categorias.iterator().next(); } if (codigoSubcategoria != null) { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro(new ParametroSimples( FiltroSubCategoria.CODIGO, codigoSubcategoria)); filtroSubcategoria.adicionarParametro(new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, categoria)); filtroSubcategoria .adicionarCaminhoParaCarregamentoEntidade("categoria"); Collection<Subcategoria> subcategorias = fachada.pesquisar( filtroSubcategoria, Subcategoria.class.getName()); if (subcategorias != null && !subcategorias.isEmpty()) { subcategoriaSelecionada = subcategorias.iterator().next(); throw new ActionServletException( "atencao.subcategoria_ja_existente", codigoSubcategoria.toString(), subcategoriaSelecionada .getCategoria().getDescricao()); } } Short indicadorDeUso = ConstantesSistema.INDICADOR_USO_ATIVO; //cria o objeto subcategoria para ser inserido Subcategoria subcategoria = new Subcategoria(codigoSubcategoria, descricaoSubcategoria, indicadorDeUso, new Short( indicadorSazonalidade), descricaoAbreviada, codigoTarifaSocial, codigoGrupoSubcategoria, new Short(numeroFatorFiscalizacao), indicadorTarifaConsumo, new Date(), categoriaSelecionada); //------------ REGISTRAR TRANSA��O ---------------- subcategoria.setOperacaoEfetuada(operacaoEfetuada); subcategoria.adicionarUsuario(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); registradorOperacao.registrarOperacao(subcategoria); //------------ REGISTRAR TRANSA��O ---------------- fachada.inserir(subcategoria); montarPaginaSucesso(httpServletRequest, "Subcategoria de c�digo " + subcategoria.getCodigo() + " da categoria " + subcategoria.getCategoria().getDescricao() + " inserida com sucesso.", "Inserir outra Subcategoria", "exibirInserirSubcategoriaAction.do?menu=sim", "exibirAtualizarSubcategoriaAction.do?idRegistroAtualizacao=" + subcategoria.getId(), "Atualizar Subcategoria Inserida"); return retorno; } }