package gcom.gui.faturamento;
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.faturamento.ConsumoMinimoParametro;
import gcom.faturamento.FiltroConsumoMinimoParametro;
import gcom.gui.GcomAction;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Iterator;
import java.util.List;
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;
public class ExibirAdicionarConsumoParametroAction extends GcomAction {
/**
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("exibirAdicionarConsumoParametro");
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
AdicionarConsumoParametroActionForm form = (AdicionarConsumoParametroActionForm) actionForm;
List<ConsumoMinimoParametro> colecaoConsumoMinimoParametro = (List<ConsumoMinimoParametro>) sessao.getAttribute("colecaoConsumoMinimoParametro");
if (httpServletRequest.getParameter("adicionar") != null) {
httpServletRequest.setAttribute("adicionar", true);
form.setNumeroParametro("");
form.setNumeroConsumo("");
}
if (httpServletRequest.getParameter("mesAnoReferencia") != null) {
form.setMesAnoReferencia("" + httpServletRequest.getParameter("mesAnoReferencia"));
sessao.setAttribute("mesAnoReferencia", httpServletRequest.getParameter("mesAnoReferencia"));
}
if (httpServletRequest.getParameter("idCategoria") != null
&& !httpServletRequest.getParameter("idCategoria").equals("")
&& !httpServletRequest.getParameter("idCategoria").equals("-1")) {
String idCategoria = httpServletRequest.getParameter("idCategoria");
FiltroCategoria filtroCategoria = new FiltroCategoria();
filtroCategoria.adicionarParametro(new ParametroSimples(
FiltroCategoria.CODIGO, idCategoria));
sessao.setAttribute("idCategoria", idCategoria);
List<Categoria> colecaoCategoria = (List) fachada.pesquisar(
filtroCategoria, Categoria.class.getName());
if (colecaoCategoria != null && !colecaoCategoria.isEmpty()) {
Categoria categoria = colecaoCategoria.iterator().next();
form.setIdCategoria(categoria.getDescricao());
}
} else {
sessao.removeAttribute("idCategoria");
}
if (httpServletRequest.getParameter("idSubCategoria") != null
&& !httpServletRequest.getParameter("idSubCategoria").equals("")
&& !httpServletRequest.getParameter("idSubCategoria").equals("-1")) {
String idSubcategoria = httpServletRequest
.getParameter("idSubCategoria");
FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria();
filtroSubCategoria.adicionarParametro(new ParametroSimples(
FiltroSubCategoria.CODIGO, idSubcategoria));
sessao.setAttribute("idSubCategoria", idSubcategoria);
List<Subcategoria> colecaoSubCategoria = (List) fachada.pesquisar(
filtroSubCategoria, Subcategoria.class.getName());
if (colecaoSubCategoria != null && !colecaoSubCategoria.isEmpty()) {
Subcategoria subCategoria = colecaoSubCategoria.iterator().next();
form.setIdSubCategoria(subCategoria.getDescricao());
}
} else {
sessao.removeAttribute("idSubCategoria");
form.setIdSubCategoria("");
}
if (httpServletRequest.getAttribute("idRegistroAtualizacao") != null) {
String id = (String) httpServletRequest
.getAttribute("idRegistroAtualizacao");
FiltroConsumoMinimoParametro filtroConsumoMinimoParametro = new FiltroConsumoMinimoParametro();
filtroConsumoMinimoParametro.adicionarParametro(new ParametroSimples(
FiltroConsumoMinimoParametro.ID, id));
filtroConsumoMinimoParametro
.adicionarCaminhoParaCarregamentoEntidade(FiltroConsumoMinimoParametro.CATEGORIA);
filtroConsumoMinimoParametro
.adicionarCaminhoParaCarregamentoEntidade(FiltroConsumoMinimoParametro.SUBCATEGORIA);
List<ConsumoMinimoParametro> colecaoConsumoMinimoParametroBase = (List) fachada.pesquisar(
filtroConsumoMinimoParametro, ConsumoMinimoParametro.class.getName());
ConsumoMinimoParametro consumoMinimoParametro = colecaoConsumoMinimoParametroBase.iterator().next();
form.setIdCategoria(consumoMinimoParametro.getCategoria().getDescricao());
form.setMesAnoReferencia(Util.formatarAnoMesParaMesAno(
consumoMinimoParametro.getAnoMesReferencia()));
form.setNumeroParametro(Util.formatarMoedaReal(consumoMinimoParametro.getNumeroParametroFinal()));
form.setNumeroConsumo(consumoMinimoParametro.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 (colecaoConsumoMinimoParametro != null
&& !colecaoConsumoMinimoParametro.isEmpty()) {
posicaoComponente = (Integer) sessao
.getAttribute("posicaoComponente");
int index = 0;
Iterator<ConsumoMinimoParametro> colecaoConsumoMinimoParametroIterator = colecaoConsumoMinimoParametro.iterator();
while (colecaoConsumoMinimoParametroIterator.hasNext()) {
index++;
ConsumoMinimoParametro consumoMinimoParametro = colecaoConsumoMinimoParametroIterator.next();
if (index == posicaoComponente) {
sessao.setAttribute("posicaoComponente", posicaoComponente);
form.setMesAnoReferencia(Util.formatarAnoMesParaMesAno(
consumoMinimoParametro.getAnoMesReferencia()));
if (consumoMinimoParametro.getCategoria() != null) {
FiltroCategoria filtroCategoria = new FiltroCategoria();
filtroCategoria.adicionarParametro(new ParametroSimples(
FiltroCategoria.CODIGO, consumoMinimoParametro.getCategoria().getId()));
List<Categoria> colecaoCategoria = (List) fachada
.pesquisar(filtroCategoria, Categoria.class.getName());
Categoria categoria =colecaoCategoria.iterator().next();
form.setIdCategoria(categoria.getDescricao());
} else {
form.setIdCategoria("");
}
if (consumoMinimoParametro.getSubCategoria() != null) {
FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria();
filtroSubCategoria.adicionarParametro(new ParametroSimples(
FiltroSubCategoria.CODIGO, consumoMinimoParametro.getSubCategoria().getId()));
List<Subcategoria> colecaoSubcategoria = (List) fachada
.pesquisar(filtroSubCategoria, Subcategoria.class.getName());
Subcategoria subCategoria = colecaoSubcategoria.iterator().next();
form.setIdSubCategoria(subCategoria.getDescricao());
}
form.setNumeroParametro(Util.formatarMoedaReal(
consumoMinimoParametro.getNumeroParametroFinal()));
form.setNumeroConsumo(consumoMinimoParametro.getNumeroConsumo().toString());
}
}
}
}
}
httpServletRequest.setAttribute("nomeCampo","numeroParametro");
return retorno;
}
}