package gcom.gui.cobranca; import gcom.cobranca.MotivoNaoAceitacaoEncerramentoOS; 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.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioAcao; import gcom.seguranca.acesso.usuario.UsuarioAcaoUsuarioHelper; import gcom.util.Util; import java.math.BigDecimal; 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; /** * [UC1171] Inserir Motivos de N�o Aceita��o de Encerramento de OS * * Classe respons�vel por inserir na base de dados o motivo de n�o * aceita��o do encerramento da OS. * * @author Diogo Peixoto * @since 20/05/2011 * */ public class InserirMotivoNaoAceitacaoEncerramentoOSAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); InserirMotivoNaoAceitacaoEncerramentoOSActionForm form = (InserirMotivoNaoAceitacaoEncerramentoOSActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO); //Recuperando os dados do formul�rio String descricao = form.getDescricao(); String servicoDescontarCorteSupressao = form.getMultiplicadorValorServicoDescontarCorteSupressao(); String servicoDescontarNaoExecutados = form.getMultiplicadorValorServicoDescontarNaoExecutados(); String percentualMultaAplicar = form.getPercentualMultaAplicar(); //Configurando os valores do objeto para ser inserido na base de dados MotivoNaoAceitacaoEncerramentoOS motivoNaoAceitacao = new MotivoNaoAceitacaoEncerramentoOS(); if(Util.verificarNaoVazio(descricao)){ if(descricao.length() <= 40){ motivoNaoAceitacao.setDescricaoMotivoNaoAceitacaoEncerramentoOS(descricao); }else{ throw new ActionServletException("atencao.execedeu_limit_observacao", "Descri��o", "40"); } }else{ throw new ActionServletException("atencao.campo.informada", null ,"Descri��o " ); } Short multiplicadorServicoDescontarCorteSupressao = null; if(servicoDescontarCorteSupressao != null && !servicoDescontarCorteSupressao.equals("")){ try{ multiplicadorServicoDescontarCorteSupressao = Short.valueOf(servicoDescontarCorteSupressao); motivoNaoAceitacao.setMultiplicadorValorServicoDescontarCorteSupressao(multiplicadorServicoDescontarCorteSupressao); }catch (NumberFormatException e) { throw new ActionServletException("atencao.gsan.campo_formato_invalido", null , "Multiplicador do valor de servi�o a ser descontado por servi�os n�o efetivamente executados" ); } }else{ throw new ActionServletException("atencao.campo.informado", null , "Multiplicador do valor de servi�o a ser descontado por corte ou supress�o" ); } Short multiplicadorServicoDescontarNaoExecutados; if(servicoDescontarNaoExecutados != null && !servicoDescontarNaoExecutados.equals("")){ try{ multiplicadorServicoDescontarNaoExecutados = Short.valueOf(servicoDescontarNaoExecutados); motivoNaoAceitacao.setMultiplicadorValorServicoDescontarNaoExecutados(multiplicadorServicoDescontarNaoExecutados); }catch (NumberFormatException e) { throw new ActionServletException("atencao.gsan.campo_formato_invalido", null , "Multiplicador do valor de servi�o a ser descontado por servi�os n�o efetivamente executados" ); } }else{ throw new ActionServletException("atencao.campo.informado", null , "Multiplicador do valor de servi�o a ser descontado por servi�os n�o efetivamente executados" ); } BigDecimal percentualMultaAplicarServicos = null; if(percentualMultaAplicar != null && !percentualMultaAplicar.equals("")){ try{ percentualMultaAplicarServicos = Util.formatarMoedaRealparaBigDecimal(percentualMultaAplicar); motivoNaoAceitacao.setPercentualMultaAplicar(percentualMultaAplicarServicos); }catch (NumberFormatException e) { throw new ActionServletException("atencao.gsan.campo_formato_invalido", null , "Percentual da multa a ser aplicada por servi�os n�o efetivamente executados" ); } }else{ throw new ActionServletException("atencao.campo.informado", null , "Percentual da multa a ser aplicada por servi�os n�o efetivamente executados"); } // [UC0107] Registrar Transa��o RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_INSERIR_MOTIVO_NAO_ACEITACAO_ENCERRAMENTO_OS, motivoNaoAceitacao.getId(), motivoNaoAceitacao.getId(), new UsuarioAcaoUsuarioHelper(usuarioLogado, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); registradorOperacao.registrarOperacao(motivoNaoAceitacao); // [UC0107] Fim Registrar Transa��o //FS0007 - Inserindo na base Integer id = (Integer) fachada.inserir(motivoNaoAceitacao); montarPaginaSucesso(httpServletRequest, "Motivo de n�o aceita��o do encerramento de OS "+ id + " inserido com sucesso.", "Inserir outro motivo de n�o aceita��o", "exibirInserirMotivoNaoAceitacaoEncerramentoOSAction.do?limpar=OK", "exibirAtualizarMotivoNaoAceitacaoEncerramentoOSAction.do?idRegistroAtualizar=" + id+"&primeiraVez=Ok", "Atualizar motivo de n�o aceita��o inserido"); return retorno; } }