package gcom.gui.faturamento.conta;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import gcom.fachada.Fachada;
import gcom.faturamento.conta.ContaMotivoRetificacao;
import gcom.faturamento.conta.ContaMotivoRetificacaoColuna;
import gcom.faturamento.conta.ContaMotivoRetificacaoColunaPK;
import gcom.faturamento.conta.FiltroContaMotivoRetificacao;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.transacao.TabelaColuna;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
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;
/**
* Action respons�vel pela exibi��o da pagina de inserir motivo de retifica��o
* [UC1117] Inserir Motivo Retifica��o
*
* @author Mariana Victor
* @date 11/01/2011
*/
public class InserirMotivoRetificacaoAction 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) {
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
// Set no mapeamento de retorno
ActionForward retorno = actionMapping.findForward("telaSucesso");
InserirMotivoRetificacaoActionForm form = (InserirMotivoRetificacaoActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
//[FS0004] - Verificar preenchimento dos campos
if(form.getDescricao() == null){
throw new ActionServletException("atencao.naoinformado",null, "Descri��o");
}
if(form.getIndicadorCompetenciaConsumo() == null){
throw new ActionServletException("atencao.naoinformado",null, "Indicativo de Validar Compet�ncia de Consumo");
}
//[FS0001] � Verificar exist�ncia da descri��o
FiltroContaMotivoRetificacao filtroContaMotivoRetificacao = new FiltroContaMotivoRetificacao();
filtroContaMotivoRetificacao.adicionarParametro(
new ParametroSimples(FiltroContaMotivoRetificacao.DESCRICAO, form.getDescricao()));
Collection colecaoContaMotivoRetificacao = fachada.pesquisar(filtroContaMotivoRetificacao, ContaMotivoRetificacao.class.getName());
if (colecaoContaMotivoRetificacao != null && !colecaoContaMotivoRetificacao.isEmpty()) {
throw new ActionServletException("Motivo da Retifica��o com esta descri��o j� existe",
null, "Descri��o");
}
ContaMotivoRetificacao contaMotivoRetificacao = new ContaMotivoRetificacao();
Date data = new Date();
contaMotivoRetificacao.setIndicadorUso(ConstantesSistema.SIM);
contaMotivoRetificacao.setDescricao(
form.getDescricao());
contaMotivoRetificacao.setUltimaAlteracao(
data);
contaMotivoRetificacao.setIndicadorCompetenciaConsumo(
new Short(form.getIndicadorCompetenciaConsumo()));
if (form.getNumeroOcorrenciasNoAno() != null && !form.getNumeroOcorrenciasNoAno().equals("")) {
contaMotivoRetificacao.setNumeroOcorrenciasNoAno(
new Integer(form.getNumeroOcorrenciasNoAno()));
}
Integer id = (Integer) fachada.inserir(contaMotivoRetificacao);
ContaMotivoRetificacao contaMotivo = new ContaMotivoRetificacao();
contaMotivo.setId(id);
if (sessao.getAttribute("colecaoCampos") != null
&& !sessao.getAttribute("colecaoCampos").equals("")) {
Collection<TabelaColuna> colecaoCampos = (Collection<TabelaColuna>) sessao.getAttribute("colecaoCampos");
Iterator iterator = colecaoCampos.iterator();
while (iterator.hasNext()) {
TabelaColuna tabelaColuna = (TabelaColuna) iterator.next();
ContaMotivoRetificacaoColunaPK contaMotivoRetificacaoColunaPK = new ContaMotivoRetificacaoColunaPK();
contaMotivoRetificacaoColunaPK.setContaMotivoRetificacaoId(contaMotivo.getId());
contaMotivoRetificacaoColunaPK.setTabelaColunaId(tabelaColuna.getId());
ContaMotivoRetificacaoColuna contaMotivoRetificacaoColuna = new ContaMotivoRetificacaoColuna();
contaMotivoRetificacaoColuna.setComp_id(contaMotivoRetificacaoColunaPK);
contaMotivoRetificacaoColuna.setUltimaAlteracao(data);
fachada.inserir(contaMotivoRetificacaoColuna);
}
}
montarPaginaSucesso(httpServletRequest,
"Motivo de retifica��o de conta inserido com sucesso",
"Inserir outro motivo de retifica��o de conta",
"exibirInserirMotivoRetificacaoAction.do?menu=sim",
"exibirAtualizarMotivoRetificacaoAction.do?idContaMotivoRetificacao="+id,
"Atualizar motivo de retifica��o de conta inserida");
return retorno;
}
}