package gcom.gui.cobranca.spcserasa;
import gcom.cobranca.Negativador;
import gcom.cobranca.NegativadorRetornoMotivo;
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.spcserasa.FiltroNegativadorRetornoMotivo;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import gcom.util.filtro.ParametroSimplesDiferenteDe;
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;
/**
* Description of the Class
*
* @author Thiago Vieira
*/
public class AtualizarNegativadorRetornoMotivoAction 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) {
// localiza o action no objeto actionmapping
ActionForward retorno = actionMapping.findForward("telaSucesso");
HttpSession sessao = httpServletRequest.getSession(false);
// Usuario logado no sistema
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
// Pega o form do cliente
AtualizarNegativadorRetornoMotivoActionForm form = (AtualizarNegativadorRetornoMotivoActionForm) actionForm;
String descricaoRetornoMotivo = "";
short indicadorRegistroAceito = 0;
short indicadorUso = 0;
Long time = Long.parseLong(form.getTime());
Integer idNegativadorRetornoMotivo = new Integer(form.getIdNegativadorRetornoMotivo());
Integer idNegativador = new Integer(form.getIdNegativador());
NegativadorRetornoMotivo negativadorRetornoMotivo = new NegativadorRetornoMotivo();
//------------ REGISTRAR TRANSA��O ----------------
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_ATUALIZAR_NEGATIVADOR_RETORNO_MOTIVO,
new UsuarioAcaoUsuarioHelper(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_CLIENTE_INSERIR);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
// ------------ REGISTRAR TRANSA��O ----------------
if (form.getDescricaoRetornoMotivo() != null && !form.getDescricaoRetornoMotivo().equals("")){
descricaoRetornoMotivo = form.getDescricaoRetornoMotivo();
negativadorRetornoMotivo.setDescricaoRetornocodigo(descricaoRetornoMotivo);
}
if (form.getIndicadorRegistroAceito() != null && !form.getIndicadorRegistroAceito().equals("")){
indicadorRegistroAceito = Short.parseShort(form.getIndicadorRegistroAceito());
negativadorRetornoMotivo.setIndicadorRegistroAceito(indicadorRegistroAceito);
}
if (form.getIndicadorUso() != null && !form.getIndicadorUso().equals("")){
indicadorUso = Short.parseShort(form.getIndicadorUso());
negativadorRetornoMotivo.setIndicadorUso(indicadorUso);
}
// Check para atualiza��o realizada por outro usu�rio
FiltroNegativadorRetornoMotivo filtroNegativadorRetornoMotivo = new FiltroNegativadorRetornoMotivo();
filtroNegativadorRetornoMotivo.adicionarParametro(new ParametroSimples(FiltroNegativadorRetornoMotivo.ID, idNegativadorRetornoMotivo));
filtroNegativadorRetornoMotivo.adicionarCaminhoParaCarregamentoEntidade("negativador");
Collection collNegativadorRetornoMotivo = Fachada.getInstancia().pesquisar(filtroNegativadorRetornoMotivo, NegativadorRetornoMotivo.class.getName());
NegativadorRetornoMotivo negativadorRetornoMotivoAtual = (NegativadorRetornoMotivo)collNegativadorRetornoMotivo.iterator().next();
if (negativadorRetornoMotivoAtual.getUltimaAlteracao().getTime() != time){
throw new ActionServletException("atencao.registro_remocao_nao_existente");
}
if (indicadorRegistroAceito == ConstantesSistema.INDICADOR_REGISTRO_ACEITO){
filtroNegativadorRetornoMotivo.limparListaParametros();
filtroNegativadorRetornoMotivo.adicionarParametro(new ParametroSimples(
FiltroNegativadorRetornoMotivo.INDICADOR_REGISTRO_ACEITO, ConstantesSistema.INDICADOR_REGISTRO_ACEITO));
filtroNegativadorRetornoMotivo.adicionarParametro(new ParametroSimples(
FiltroNegativadorRetornoMotivo.NEGATIVADOR_RETORNO_MOTIVO_NEGATIVADOR, idNegativador));
filtroNegativadorRetornoMotivo.adicionarParametro(new ParametroSimplesDiferenteDe(
FiltroNegativadorRetornoMotivo.CODIGO_RETORNO_MOTIVO, negativadorRetornoMotivoAtual.getCodigoRetornoMotivo()));
collNegativadorRetornoMotivo = Fachada.getInstancia().pesquisar(filtroNegativadorRetornoMotivo, NegativadorRetornoMotivo.class.getName());
if (collNegativadorRetornoMotivo != null && !collNegativadorRetornoMotivo.isEmpty()){
throw new ActionServletException("atencao.negativador_retorno_motivo_ja_existe_cadastro");
}
}
negativadorRetornoMotivo.setId(idNegativadorRetornoMotivo);
Negativador negativador = new Negativador();
negativador.setId(idNegativador);
negativadorRetornoMotivo.setNegativador(negativador);
negativadorRetornoMotivo.setCodigoRetornoMotivo(negativadorRetornoMotivoAtual.getCodigoRetornoMotivo());
negativadorRetornoMotivo.setUltimaAlteracao(new Date());
//------------ REGISTRAR TRANSA��O ----------------
negativadorRetornoMotivo.setOperacaoEfetuada(operacaoEfetuada);
negativadorRetornoMotivo.adicionarUsuario(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(negativadorRetornoMotivo);
//------------ REGISTRAR TRANSA��O ----------------
// atualiza o NegativadorRetornoMotivo
Fachada.getInstancia().atualizar(negativadorRetornoMotivo);
montarPaginaSucesso(httpServletRequest, "Motivo de retorno do registro do negativador "
+ descricaoRetornoMotivo + " atualizado com sucesso.",
"Realizar outra manuten��o de motivo de retorno do registro do negativador",
"exibirFiltrarNegativadorRetornoMotivoAction.do?menu=sim",
"","");
return retorno;
}
}