package gcom.gui.micromedicao;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.FiltroMovimentoRoteiroEmpresa;
import gcom.micromedicao.MovimentoRoteiroEmpresa;
import gcom.util.Util;
import gcom.util.filtro.ParametroNaoNulo;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Map;
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 MonitorarLeituraMobileAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("monitorarLeitura");
HttpSession sessao = httpServletRequest.getSession(false);
MonitorarLeituraMobileActionForm form = (MonitorarLeituraMobileActionForm) actionForm;
String idRota = httpServletRequest.getParameter("idRota");
if (idRota == null || idRota.equals("") || idRota.equals("undefined")) {
idRota = (String) sessao.getAttribute("idRota");
sessao.removeAttribute("idRota");
}
if (idRota != null && Util.validarStringNumerica(idRota)
&& form.getMesAno() != null
&& Util.validarMesAno(form.getMesAno())) {
sessao.setAttribute("idRota", idRota);
FiltroMovimentoRoteiroEmpresa filtro = new FiltroMovimentoRoteiroEmpresa(
FiltroMovimentoRoteiroEmpresa.TEMPO_LEITURA);
filtro
.adicionarCaminhoParaCarregamentoEntidade(FiltroMovimentoRoteiroEmpresa.IMOVEL);
filtro
.adicionarCaminhoParaCarregamentoEntidade(FiltroMovimentoRoteiroEmpresa.LOCALIDADE);
filtro
.adicionarCaminhoParaCarregamentoEntidade(FiltroMovimentoRoteiroEmpresa.ROTA);
filtro
.adicionarCaminhoParaCarregamentoEntidade(FiltroMovimentoRoteiroEmpresa.LEITURISTA);
filtro
.adicionarCaminhoParaCarregamentoEntidade(FiltroMovimentoRoteiroEmpresa.FUNCIONARIO);
filtro
.adicionarCaminhoParaCarregamentoEntidade(FiltroMovimentoRoteiroEmpresa.CLIENTE);
filtro
.adicionarParametro(new ParametroSimples(
FiltroMovimentoRoteiroEmpresa.ANO_MES_MOVIMENTO,
Util.formatarMesAnoComBarraParaAnoMes(form
.getMesAno())));
filtro.adicionarParametro(new ParametroSimples(
FiltroMovimentoRoteiroEmpresa.ROTA_ID, idRota));
filtro.adicionarParametro(new ParametroNaoNulo(
FiltroMovimentoRoteiroEmpresa.TEMPO_LEITURA));
// Collection colecao =
// f.pesquisar(filtro,MovimentoRoteiroEmpresa.class.getName());
Collection colecao;
Map resultado = controlarPaginacao(httpServletRequest, retorno,
filtro, MovimentoRoteiroEmpresa.class.getName());
colecao = (Collection) resultado.get("colecaoRetorno");
retorno = (ActionForward) resultado.get("destinoActionForward");
if (colecao == null || colecao.isEmpty()) {
throw new ActionServletException(
"atencao.pesquisa.nenhumresultado", null,
"Leituras Realizadas");
} else {
MovimentoRoteiroEmpresa m = (MovimentoRoteiroEmpresa) colecao
.iterator().next();
if (m.getRota().getLeiturista().getCliente() != null) {
form.setLeiturista(m.getRota().getLeiturista().getCliente()
.getNome());
} else {
form.setLeiturista(m.getRota().getLeiturista()
.getFuncionario().getNome());
}
sessao.setAttribute("colecao", colecao);
}
}
return retorno;
}
}