package gcom.gui.arrecadacao;
import gcom.arrecadacao.ArrecadacaoForma;
import gcom.arrecadacao.FiltroArrecadacaoForma;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
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;
/**
* Descri��o da classe
*
* @author Vin�cius Medeiros
* @date 27/03/2008
*/
public class InserirArrecadacaoFormaAction extends GcomAction {
/**
* Este caso de uso permite a inclus�o de uma Forma de Arrecadacao
*
* [UC0757] Inserir Forma de Arrecadacao
*
*
* @author Vin�cius Medeiros
* @date 08/04/2008
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o caminho de retorno
ActionForward retorno = actionMapping.findForward("telaSucesso");
InserirArrecadacaoFormaActionForm inserirArrecadacaoFormaActionForm = (InserirArrecadacaoFormaActionForm) actionForm;
// Mudar isso quando houver um esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
// Obt�m a inst�ncia da fachada
Fachada fachada = Fachada.getInstancia();
String descricao = inserirArrecadacaoFormaActionForm.getDescricao();
ArrecadacaoForma arrecadacaoForma = new ArrecadacaoForma();
Collection colecaoPesquisa = null;
// Verifica se a Descri��o foi preenchida.
if (!"".equals(inserirArrecadacaoFormaActionForm.getDescricao())&& !"".equals(
inserirArrecadacaoFormaActionForm.getCodigoArrecadacaoForma())) {
arrecadacaoForma.setDescricao(inserirArrecadacaoFormaActionForm.getDescricao());
arrecadacaoForma.setCodigoArrecadacaoForma(inserirArrecadacaoFormaActionForm.getCodigoArrecadacaoForma());
} else {
throw new ActionServletException("atencao.required", null,
"descricao");
}
// Seta a Ultima altera��o
arrecadacaoForma.setUltimaAlteracao(new Date());
FiltroArrecadacaoForma filtroArrecadacaoForma = new FiltroArrecadacaoForma();
filtroArrecadacaoForma.adicionarParametro(new ParametroSimples(
FiltroArrecadacaoForma.DESCRICAO, arrecadacaoForma.getDescricao()));
colecaoPesquisa = (Collection) fachada.pesquisar(filtroArrecadacaoForma,
ArrecadacaoForma.class.getName());
if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) {
// Caso j� haja uma Forma de Arrecada��o com a descri��o passada
throw new ActionServletException(
"atencao.arrecadacao_forma_ja_cadastrada", null, arrecadacaoForma
.getDescricao());
} else {
arrecadacaoForma.setDescricao(descricao);
Integer idArrecadacaoForma = (Integer) fachada.inserir(arrecadacaoForma);
montarPaginaSucesso(httpServletRequest,
"Forma de Arrecada��o de descri��o " + descricao
+ " inserido com sucesso.",
"Inserir outra Forma de Arrecada��o",
"exibirInserirArrecadacaoFormaAction.do?menu=sim",
"exibirAtualizarArrecadacaoFormaAction.do?idRegistroAtualizacao="
+ idArrecadacaoForma,
"Atualizar Forma de Arrecada��o Inserido");
sessao.removeAttribute("InserirArrecadacaoFormaActionForm");
return retorno;
}
}
}