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 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 InserirNegativadorRetornoMotivoAction 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
InserirNegativadorRetornoMotivoActionForm form = (InserirNegativadorRetornoMotivoActionForm) actionForm;
Integer idNegativador = 0;
short codigoRetornoMotivo = 0;
String descricaoRetornoMotivo = "";
short indicadorRegistroAceito = 0;
NegativadorRetornoMotivo negativadorRetornoMotivo = new NegativadorRetornoMotivo();
Negativador negativador = new Negativador();
//------------ REGISTRAR TRANSA��O ----------------
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_INSERIR_NEGATIVADOR_RETORNO_MOTIVO,
new UsuarioAcaoUsuarioHelper(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_INSERIR_NEGATIVADOR_RETORNO_MOTIVO);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
// ------------ REGISTRAR TRANSA��O ----------------
if (form.getIdNegativador() != null && !form.getIdNegativador().equals("")){
idNegativador = new Integer(form.getIdNegativador());
negativador.setId(idNegativador);
negativadorRetornoMotivo.setNegativador(negativador);
}
if (form.getCodigoMotivo() != null && !form.getCodigoMotivo().equals("")){
codigoRetornoMotivo = Short.parseShort(form.getCodigoMotivo());
negativadorRetornoMotivo.setCodigoRetornoMotivo(codigoRetornoMotivo);
}
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);
}
FiltroNegativadorRetornoMotivo filtroNegativadorRetornoMotivo = new FiltroNegativadorRetornoMotivo();
//check do c�digo do motivo
//caso j� exista no cadastro levanta exception
if (codigoRetornoMotivo != 0){
filtroNegativadorRetornoMotivo.limparListaParametros();
filtroNegativadorRetornoMotivo.adicionarParametro(new ParametroSimples(FiltroNegativadorRetornoMotivo.CODIGO_RETORNO_MOTIVO, codigoRetornoMotivo));
filtroNegativadorRetornoMotivo.adicionarParametro(new ParametroSimples(FiltroNegativadorRetornoMotivo.NEGATIVADOR_RETORNO_MOTIVO_NEGATIVADOR, negativadorRetornoMotivo.getNegativador().getId()));
Collection codigoMotivoEncontrado = Fachada.getInstancia().pesquisar(filtroNegativadorRetornoMotivo, NegativadorRetornoMotivo.class.getName());
if (codigoMotivoEncontrado != null && !codigoMotivoEncontrado.isEmpty()) {
throw new ActionServletException("atencao.codigo_motivo_negativador_retorno_motivo_ja_existe_cadastro");
}
}
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,negativadorRetornoMotivo.getNegativador().getId()));
filtroNegativadorRetornoMotivo.adicionarCaminhoParaCarregamentoEntidade("negativador.cliente");
Collection collNegativadorRetornoMotivo = Fachada.getInstancia().pesquisar(filtroNegativadorRetornoMotivo, NegativadorRetornoMotivo.class.getName());
if (collNegativadorRetornoMotivo != null && !collNegativadorRetornoMotivo.isEmpty()){
throw new ActionServletException("atencao.codigo_motivo_correspondente_registro_aceito_ja_existe_cadastro");
}
}
negativadorRetornoMotivo.setIndicadorUso(new Short("1").shortValue());
negativadorRetornoMotivo.setUltimaAlteracao(new Date());
// ------------ REGISTRAR TRANSA��O ----------------
negativadorRetornoMotivo.setOperacaoEfetuada(operacaoEfetuada);
negativadorRetornoMotivo.adicionarUsuario(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(negativadorRetornoMotivo);
// ------------ REGISTRAR TRANSA��O ----------------
// Insere o NegativadorRetornoMotivo
@SuppressWarnings("unused")
Integer codigoNegativadorRetornoMotivo = (Integer) Fachada.getInstancia().inserir(negativadorRetornoMotivo);
montarPaginaSucesso(httpServletRequest, "Motivo de retorno do negativador "
+ descricaoRetornoMotivo + " inserido com sucesso.",
"Inserir outro Motivo de Retorno do Registro do Negativador",
"exibirInserirNegativadorRetornoMotivoAction.do?menu=sim",
"","");
return retorno;
}
}