package gcom.gui.atendimentopublico.ordemservico;
import gcom.atendimentopublico.ordemservico.ArquivoTextoAcompanhamentoServico;
import gcom.atendimentopublico.ordemservico.FiltroArquivoTextoAcompanhamentoServico;
import gcom.atendimentopublico.ordemservico.OSProgramacaoAcompanhamentoServico;
import gcom.atendimentopublico.ordemservico.OrdemServico;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.SituacaoTransmissaoLeitura;
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 org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* [UC1199] � Acompanhamento Arquivos Roteiro Exibir Reordenar Sequencial
*
* @author Th�lio Ara�jo
*
* @date 31/08/2011
*/
public class ExibirAcompanhamentoArqRoteiroReordenarSequencialAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,ActionForm actionForm,
HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("exibirReordenarSequencialOS");
// Form
AcompanharRoteiroProgramacaoOrdemServicoActionForm
acompanharActionForm = (AcompanharRoteiroProgramacaoOrdemServicoActionForm) actionForm;
String chaveOs = httpServletRequest.getParameter("chave");
String chaveArquivo = httpServletRequest.getParameter("chaveArquivo");
String dataProgramacao = httpServletRequest.getParameter("dataProgramacao");
Collection<OSProgramacaoAcompanhamentoServico> colecaoOsProgramacaoAcompanhamentoServico =
Fachada.getInstancia().pesquisarOSProgramacaoAcompArquivoComDataRoteiroIdEquipe(Util.converteStringParaDate(dataProgramacao),
Util.converterStringParaInteger(chaveArquivo));
OrdemServico ordemServico = Fachada.getInstancia().recuperaOSPorId(new Integer(chaveOs));
ArquivoTextoAcompanhamentoServico arquivoTextoAcompanhamentoServico = null;
if (chaveArquivo != null){
FiltroArquivoTextoAcompanhamentoServico filtroArquivoTextoAcompanhamentoServico = new FiltroArquivoTextoAcompanhamentoServico();
filtroArquivoTextoAcompanhamentoServico.adicionarParametro(new ParametroSimples(FiltroArquivoTextoAcompanhamentoServico.ID, chaveArquivo));
Collection<?> colecaoArquivoTxtAcompanhamentoServico = Fachada.getInstancia().pesquisar(
filtroArquivoTextoAcompanhamentoServico,
ArquivoTextoAcompanhamentoServico.class.getName());
arquivoTextoAcompanhamentoServico = (ArquivoTextoAcompanhamentoServico) colecaoArquivoTxtAcompanhamentoServico
.iterator().next();
if (arquivoTextoAcompanhamentoServico.getSituacaoTransmissaoLeitura().getId().equals(SituacaoTransmissaoLeitura.TRANSMITIDO)){
throw new ActionServletException("atencao.nao_possivel.reordenar_os.situacao_finalizado");
}
}
if (ordemServico.getSituacao() != OrdemServico.SITUACAO_PENDENTE){
throw new ActionServletException("atencao.situacao.diferente_pendente", "reordenar o sequencial da");
}
if (colecaoOsProgramacaoAcompanhamentoServico != null && !colecaoOsProgramacaoAcompanhamentoServico.isEmpty()) {
Iterator<OSProgramacaoAcompanhamentoServico> itera = colecaoOsProgramacaoAcompanhamentoServico.iterator();
while (itera.hasNext()) {
OSProgramacaoAcompanhamentoServico osProgramacaoAcompServico = (OSProgramacaoAcompanhamentoServico) itera.next();
if (osProgramacaoAcompServico.getOrdemServico().getId() == ordemServico.getId() ||
osProgramacaoAcompServico.getOrdemServico().getId().equals(ordemServico.getId())){
acompanharActionForm.setIdOrdemServico(chaveOs);
acompanharActionForm.setDescricaoOrdemServico(ordemServico.getServicoTipo().getDescricao());
acompanharActionForm.setSequencialProgramacao(Integer.toString(osProgramacaoAcompServico.getSequencialProgramacao()));
acompanharActionForm.setChaveArquivo(chaveArquivo);
}
}
}
return retorno;
}
}