package gcom.gui.micromedicao;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.FiltroCategoria;
import gcom.cadastro.imovel.FiltroSubCategoria;
import gcom.cadastro.imovel.Subcategoria;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.micromedicao.ConsumoMinimoArea;
import gcom.micromedicao.FiltroConsumoMinimoArea;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Iterator;
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 R�mulo Aur�lio
* @date 14/05/2008
*/
public class ExibirAdicionarConsumoAreaAction extends GcomAction {
/**
* Este caso de uso permite a inclus�o ou altera��o de um novo consumo pela
* �rea
*
* [UC0781] Informar Consumo por �rea
*
*
* @author R�mulo Aur�lio
* @date 12/05/2008
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("exibirAdicionarConsumoArea");
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
AdicionarConsumoAreaActionForm form = (AdicionarConsumoAreaActionForm) actionForm;
Collection<ConsumoMinimoArea> colecaoConsumoMinimoArea = (Collection<ConsumoMinimoArea>) sessao.getAttribute("colecaoConsumoMinimoArea");
if (httpServletRequest.getParameter("adicionar") != null) {
httpServletRequest.setAttribute("adicionar", true);
form.setNumeroArea("");
form.setNumeroConsumo("");
}
if (httpServletRequest.getParameter("mesAnoReferencia") != null) {
form.setMesAnoReferencia(""
+ httpServletRequest.getParameter("mesAnoReferencia"));
sessao.setAttribute("mesAnoReferencia", httpServletRequest.getParameter("mesAnoReferencia"));
}
if (httpServletRequest.getParameter("categoria") != null) {
String idCategoria = httpServletRequest.getParameter("categoria");
FiltroCategoria filtroCategoria = new FiltroCategoria();
filtroCategoria.adicionarParametro(new ParametroSimples(
FiltroCategoria.CODIGO, idCategoria));
sessao.setAttribute("idCategoria", idCategoria);
Collection<Categoria> colecaoCategoria = fachada.pesquisar(
filtroCategoria, Categoria.class.getName());
if (colecaoCategoria != null && !colecaoCategoria.isEmpty()) {
Categoria categoria = colecaoCategoria.iterator().next();
form.setCategoria(categoria.getDescricao());
}
}
if (httpServletRequest.getParameter("subCategoria") != null) {
String idSubcategoria = httpServletRequest
.getParameter("subCategoria");
FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria();
filtroSubCategoria.adicionarParametro(new ParametroSimples(
FiltroSubCategoria.CODIGO, idSubcategoria));
sessao.setAttribute("idSubCategoria", idSubcategoria);
Collection<Subcategoria> colecaoSubCategoria = fachada.pesquisar(
filtroSubCategoria, Subcategoria.class.getName());
if (colecaoSubCategoria != null && !colecaoSubCategoria.isEmpty()) {
Subcategoria subCategoria = colecaoSubCategoria.iterator().next();
form.setSubCategoria(subCategoria.getDescricao());
}
}
if (httpServletRequest.getAttribute("idRegistroAtualizacao") != null) {
String id = (String) httpServletRequest
.getAttribute("idRegistroAtualizacao");
FiltroConsumoMinimoArea filtroConsumoMinimoArea = new FiltroConsumoMinimoArea();
filtroConsumoMinimoArea.adicionarParametro(new ParametroSimples(
FiltroConsumoMinimoArea.ID, id));
filtroConsumoMinimoArea
.adicionarCaminhoParaCarregamentoEntidade(FiltroConsumoMinimoArea.CATEGORIA);
filtroConsumoMinimoArea
.adicionarCaminhoParaCarregamentoEntidade(FiltroConsumoMinimoArea.SUBCATEGORIA);
Collection<ConsumoMinimoArea> colecaoConsumoMinimoAreaBase = fachada.pesquisar(
filtroConsumoMinimoArea, ConsumoMinimoArea.class.getName());
ConsumoMinimoArea consumoMinimoArea = colecaoConsumoMinimoAreaBase.iterator().next();
form.setCategoria(consumoMinimoArea.getCategoria().getDescricao());
form.setMesAnoReferencia(Util
.formatarAnoMesParaMesAno(consumoMinimoArea
.getAnoMesReferencia()));
form.setNumeroArea(Util.formatarMoedaReal(consumoMinimoArea
.getNumeroAreaFinal()));
form.setNumeroConsumo(consumoMinimoArea.getNumeroConsumo()
.toString());
}
if (httpServletRequest.getParameter("atualizarComponente") != null) {
int posicaoComponente = 0;
if (httpServletRequest.getParameter("atualizaComponente") != null
&& !httpServletRequest.getParameter("atualizaComponente")
.equals("")) {
posicaoComponente = new Integer(httpServletRequest
.getParameter("atualizaComponente")).intValue();
sessao.setAttribute("posicaoComponente", posicaoComponente);
if (colecaoConsumoMinimoArea != null
&& !colecaoConsumoMinimoArea.isEmpty()) {
posicaoComponente = (Integer) sessao
.getAttribute("posicaoComponente");
int index = 0;
Iterator<ConsumoMinimoArea> colecaoConsumoMinimoAreaIterator = colecaoConsumoMinimoArea.iterator();
while (colecaoConsumoMinimoAreaIterator.hasNext()) {
index++;
ConsumoMinimoArea consumoMinimoArea = colecaoConsumoMinimoAreaIterator.next();
if (index == posicaoComponente) {
sessao.setAttribute("posicaoComponente",
posicaoComponente);
form.setMesAnoReferencia(Util
.formatarAnoMesParaMesAno(consumoMinimoArea
.getAnoMesReferencia()));
if (consumoMinimoArea.getCategoria() != null) {
FiltroCategoria filtroCategoria = new FiltroCategoria();
filtroCategoria
.adicionarParametro(new ParametroSimples(
FiltroCategoria.CODIGO,
consumoMinimoArea
.getCategoria().getId()));
Collection<Categoria> colecaoCategoria = fachada
.pesquisar(filtroCategoria,
Categoria.class.getName());
Categoria categoria =colecaoCategoria.iterator().next();
form.setCategoria(categoria.getDescricao());
} else {
form.setCategoria("");
}
if (consumoMinimoArea.getSubCategoria() != null) {
FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria();
filtroSubCategoria
.adicionarParametro(new ParametroSimples(
FiltroSubCategoria.CODIGO,
consumoMinimoArea
.getSubCategoria()
.getId()));
Collection<Subcategoria> colecaoSubcategoria = fachada
.pesquisar(filtroSubCategoria,
Subcategoria.class.getName());
Subcategoria subCategoria = colecaoSubcategoria.iterator().next();
form.setSubCategoria(subCategoria
.getDescricao());
}
form.setNumeroArea(Util
.formatarMoedaReal(consumoMinimoArea
.getNumeroAreaFinal()));
form.setNumeroConsumo(consumoMinimoArea
.getNumeroConsumo().toString());
}
}
}
}
}
httpServletRequest.setAttribute("nomeCampo","numeroArea");
return retorno;
}
}