package gcom.gui.cadastro.imovel;
import gcom.cadastro.imovel.Categoria;
import gcom.fachada.Fachada;
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 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;
/**
* Description of the Class
*
* @author Roberta Costa
* @created 30 de Dezembro de 2005
*/
public class AtualizarCategoriaAction 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) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("telaSucesso");
CategoriaActionForm categoriaActionForm = (CategoriaActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
// ------------ REGISTRAR TRANSA��O ----------------
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_CATEGORIA_ATUALIZAR,
new UsuarioAcaoUsuarioHelper(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_CATEGORIA_ATUALIZAR);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
// ------------ REGISTRAR TRANSA��O ----------------
Fachada fachada = Fachada.getInstancia();
// Mudar isso quando tiver esquema de seguran�a
Categoria categoria = (Categoria) sessao.getAttribute("categoria");
// Pegando os dados do Formul�rio
String descricao = (String) categoriaActionForm.getDescricao();
String descricaoAbreviada = (String) categoriaActionForm
.getDescricaoAbreviada();
Integer codigoCategoria = new Integer(categoriaActionForm
.getIdCategoria());
Integer consumoMinimo = new Integer(categoriaActionForm
.getConsumoMinimo());
Integer consumoEstouro = new Integer(categoriaActionForm
.getConsumoEstouro());
BigDecimal vezesMediaEstouro = new BigDecimal(categoriaActionForm
.getVezesMediaEstouro().replace(",", "."));
Integer mediaBaixoConsumo = new Integer(categoriaActionForm
.getMediaBaixoConsumo());
BigDecimal porcentagemMediaBaixoConsumo = new BigDecimal(
categoriaActionForm.getPorcentagemMediaBaixoConsumo().replace(
",", "."));
Integer consumoAlto = new Integer(categoriaActionForm.getConsumoAlto());
BigDecimal vezesMediaAltoConsumo = new BigDecimal(categoriaActionForm
.getVezesMediaAltoConsumo().replace(",", "."));
Short indicadorDeUso = new Short(categoriaActionForm.getIndicadorUso());
// Seta os campos para serem atualizados
categoria.setId(codigoCategoria);
categoria.setDescricao(descricao);
categoria.setDescricaoAbreviada(descricaoAbreviada);
categoria.setConsumoMinimo(consumoMinimo);
categoria.setConsumoEstouro(consumoEstouro);
categoria.setVezesMediaEstouro(vezesMediaEstouro);
categoria.setMediaBaixoConsumo(mediaBaixoConsumo);
categoria.setPorcentagemMediaBaixoConsumo(porcentagemMediaBaixoConsumo);
categoria.setVezesMediaAltoConsumo(vezesMediaAltoConsumo);
categoria.setConsumoAlto(consumoAlto);
categoria.setIndicadorUso(indicadorDeUso);
// ------------ REGISTRAR TRANSA��O ----------------
categoria.setOperacaoEfetuada(operacaoEfetuada);
categoria.adicionarUsuario(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(categoria);
// ------------ REGISTRAR TRANSA��O ----------------
// Atualiza a Categoria - As valida��es est�o no Controlador
fachada.atualizarCategoria(categoria);
montarPaginaSucesso(httpServletRequest, "Categoria de c�digo "
+ categoria.getId() + " atualizada com sucesso.",
"Realizar outra Manuten��o de Categoria",
"exibirManterCategoriaAction.do?menu=sim");
return retorno;
}
}