package gcom.gui.micromedicao; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.bean.InformarSubdivisoesDeRotaHelper; import gcom.util.ConstantesSistema; import java.util.ArrayList; 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; /** * @see gcom.gui.micromedicao.InformarSubdivisoesDeRotaAction * @see gcom.gui.micromedicao.InformarSubdivisoesDeRotaActionForm * @see gcom.gui.micromedicao.ExibirInformarSubdivisoesDeRotaAction * * @author Victor Cisneiros * @date 28/09/2008 */ public class InformarSubdivisoesDeRotaAction extends GcomAction { @Override public ActionForward execute( ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionForward retorno = mapping.findForward("telaSucesso"); HttpSession session = request.getSession(); Fachada fachada = Fachada.getInstancia(); InformarSubdivisoesDeRotaActionForm form = (InformarSubdivisoesDeRotaActionForm) actionForm; List<InformarSubdivisoesDeRotaActionForm> subdivisoes = (List<InformarSubdivisoesDeRotaActionForm>) session.getAttribute("subdivisoesDeRota"); if (subdivisoes == null || subdivisoes.size() == 0) { throw new ActionServletException("atencao.pesquisa_inexistente", null, "Subdivisoes de Rota"); } List<InformarSubdivisoesDeRotaHelper> helpers = new ArrayList<InformarSubdivisoesDeRotaHelper>(); for (InformarSubdivisoesDeRotaActionForm subdivisao : subdivisoes) { InformarSubdivisoesDeRotaHelper helper = new InformarSubdivisoesDeRotaHelper(); helper.setIdRota(new Integer(subdivisao.getIdRota())); helper.setCodigoRota(new Short(subdivisao.getCodigoRota())); helper.setQuadraInicial(new Integer(subdivisao.getQuadraInicial())); helper.setQuadraFinal(new Integer(subdivisao.getQuadraFinal())); helper.setIndicadorTransmissaoOffline(ConstantesSistema.NAO); if(subdivisao.getIdLeiturista() != null && !subdivisao.getIdLeiturista().equals("")){ helper.setIdLeiturista(new Integer(subdivisao.getIdLeiturista())); }else{ throw new ActionServletException("atencao.campo_selecionado.obrigatorio",null,"Indicador Sequencial de Leitura"); } helpers.add(helper); } for (int i = 0; i < helpers.size() -1; i++) { helpers.get(i).setQuadraFinal(helpers.get(i +1).getQuadraInicial() -1); } InformarSubdivisoesDeRotaHelper rotaOriginal = helpers.remove(0); rotaOriginal.setQuadraInicial(1); if (helpers.size() > 0) { helpers.get(helpers.size() -1).setQuadraFinal(9999); } Integer idRotaOriginal = new Integer(form.getIdRota()); fachada.informarSubdivisoesDeRota(idRotaOriginal, rotaOriginal, helpers); montarPaginaSucesso(request, "Subdivis�es da Rota de c�digo " + idRotaOriginal + " realizadas com sucesso.", "Informar outra subdivisao", "exibirInformarSubdivisoesDeRotaAction.do?menu=sim"); return retorno; } }