package gcom.gui.micromedicao; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.interceptor.RegistradorOperacao; import gcom.micromedicao.FiltroItemServico; import gcom.micromedicao.ItemServico; import gcom.seguranca.acesso.Operacao; 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; public class InserirItemServicoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //Seta o retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); InserirItemServicoActionForm form = (InserirItemServicoActionForm) actionForm; HttpSession sessao = httpServletRequest.getSession(false); Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); String descricao = form.getDescricao(); String descricaoAbreviada = form.getDescricaoAbreviada(); String codigoConstanteCalculo = form.getCodigoConstanteCalculo(); String codigoItem = form.getCodigoItem(); if(descricao == null || descricao.equals("")){ //Descri��o n�o informada throw new ActionServletException("atencao.descricao_sistema_abastecimento_nao_informado"); } else{ //[FS0003] - Verificar descri��o do item j� informado. FiltroItemServico filtroItemServico = new FiltroItemServico(); filtroItemServico.adicionarParametro( new ParametroSimples(FiltroItemServico.DESCRICAO, descricao)); Collection colecaoItemServico = Fachada.getInstancia().pesquisar( filtroItemServico, ItemServico.class.getName()); if ( colecaoItemServico != null && !colecaoItemServico.isEmpty()) { throw new ActionServletException("atencao.descricao_existente",null,descricao); } } if(descricaoAbreviada == null || descricaoAbreviada.equals("")){ //Descri��o Abreviada n�o informada throw new ActionServletException("atencao.descricao_abreviada_nao_informada"); //[FS0004] - Verificar descri��o abreviada do item j� informado. } else { FiltroItemServico filtroItemServico = new FiltroItemServico(); filtroItemServico.adicionarParametro( new ParametroSimples(FiltroItemServico.DESCRICAO_ABREVIADA, descricaoAbreviada)); Collection colecaoItemServico = Fachada.getInstancia().pesquisar( filtroItemServico, ItemServico.class.getName()); if ( colecaoItemServico != null && !colecaoItemServico.isEmpty() ) { throw new ActionServletException("atencao.descricao_abreviada_tipo_debito_ja_existente",null,descricaoAbreviada); } } //[FS0005] - Verificar constante de c�lculo j� informado if(codigoConstanteCalculo != null && !codigoConstanteCalculo.equals("")){ FiltroItemServico filtroItemServico = new FiltroItemServico(); filtroItemServico.adicionarParametro( new ParametroSimples(FiltroItemServico.CODIGO_CONSTANTE_CALCULO, new Integer (codigoConstanteCalculo))); Collection colecaoItemServico = Fachada.getInstancia().pesquisar( filtroItemServico, ItemServico.class.getName()); if ( colecaoItemServico != null && !colecaoItemServico.isEmpty() ) { throw new ActionServletException("atencao.codigo_constante_calculo_existente",null,form.getCodigoConstanteCalculo()); } } //[FS0006] - Verificar c�digo do item j� informado. if(codigoItem != null && !codigoItem.equals("")){ FiltroItemServico filtroItemServico = new FiltroItemServico(); filtroItemServico.adicionarParametro( new ParametroSimples(FiltroItemServico.CODIGO_ITEM, new Long (codigoItem))); Collection colecaoItemServico = Fachada.getInstancia().pesquisar( filtroItemServico, ItemServico.class.getName()); if ( colecaoItemServico != null && !colecaoItemServico.isEmpty()) { throw new ActionServletException("atencao.codigo_existente",null,form.getCodigoItem()); } } //Criar o objeto itemServico que ser� inserido na base ItemServico itemServico = new ItemServico(); itemServico.setDescricao(descricao); itemServico.setDescricaoAbreviada(descricaoAbreviada); itemServico.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO); if (codigoConstanteCalculo != null && !codigoConstanteCalculo.equals("")){ itemServico.setCodigoConstanteCalculo(new Integer (codigoConstanteCalculo)); } itemServico.setUltimaAlteracao(new Date()); if (codigoItem != null && !codigoItem.equals("")){ itemServico.setCodigoItem(new Long (codigoItem)); } //------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_INSERIR_ITEM_SERVICO, itemServico.getId(), itemServico.getId(), new UsuarioAcaoUsuarioHelper(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); registradorOperacao.registrarOperacao(itemServico); //------------ REGISTRAR TRANSA��O ---------------- Integer codigoItemServicoInserido = (Integer) this.getFachada().inserir(itemServico); montarPaginaSucesso(httpServletRequest, "Item de Contrato - " + itemServico.getDescricao().toUpperCase() + " inserido com sucesso.", "Inserir outro Item de Contrato", "exibirInserirItemServicoAction.do?menu=sim", "exibirAtualizarItemServicoAction.do?menu=sim&idRegistroAtualizacao=" + codigoItemServicoInserido, "Atualizar Item de Contrato Inserido"); //devolve o mapeamento de retorno return retorno; } }