package gcom.gui.atendimentopublico.ordemservico;
import gcom.atendimentopublico.ordemservico.ComandoOrdemSeletiva;
import gcom.atendimentopublico.ordemservico.FiltroServicoTipo;
import gcom.atendimentopublico.ordemservico.ServicoTipo;
import gcom.atendimentopublico.registroatendimento.AtendimentoMotivoEncerramento;
import gcom.atendimentopublico.registroatendimento.FiltroAtendimentoMotivoEncerramento;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.gui.StatusWizard;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
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;
/**
* [UC1192] Movimentar OS Seletiva de Inspe��o de Anormalidade
*
* Action respons�vel por montar todo o esquema do
* processo de movimentar ordens de servi�o.
*
* @author Vivianne Sousa
* @date 14/07/2011
*/
public class ExibirMovimentarOSSeletivaInspecaoAnormalidadeAction extends GcomAction {
/**
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Localiza o action no objeto
ActionForward retorno = actionMapping.findForward("movimentarOSSeletivaInspecaoAnormalidadeEmitirOS");
MovimentarOSSeletivaInspecaoAnormalidadeActionForm form = (MovimentarOSSeletivaInspecaoAnormalidadeActionForm) actionForm;
//Obt�m a inst�ncia da sess�o
HttpSession sessao = httpServletRequest.getSession(false);
if (httpServletRequest.getParameter("desfazer") != null
&& httpServletRequest.getParameter("desfazer").equalsIgnoreCase("true")) {
this.limparForm(form);
this.limparSessao(sessao);
this.pesquisarColecoes(sessao, form);
}
if (httpServletRequest.getParameter("comando") != null
&& !httpServletRequest.getParameter("comando").equals("")) {
form.setIdComando(httpServletRequest.getParameter("comando"));
ComandoOrdemSeletiva comandoOrdemSeletiva = this.getFachada().pesquisarComandoOSSeletiva(new Integer(form.getIdComando()));
if(comandoOrdemSeletiva == null){
throw new ActionServletException("atencao.comando.inexistente");
}else{
// if (comandoOrdemSeletiva.getDataExecucao() == null) {
// throw new ActionServletException("atencao.comando.nao_executado.nao_possivel.movimentacao");
// }
// if (comandoOrdemSeletiva.getIndicadorGeracaoTxt() == null ||
// comandoOrdemSeletiva.getIndicadorGeracaoTxt().compareTo(ConstantesSistema.NAO) == 0) {
// throw new ActionServletException("atencao.comando.arquivo_txt.nao_gerado.nao_possivel.movimentacao");
// }
if (comandoOrdemSeletiva.getDataEncerramento() != null) {
throw new ActionServletException("atencao.comando.ja_encerrado.nao_possivel.movimentacao");
}
form.setIdEmpresa(comandoOrdemSeletiva.getEmpresa().getId().toString());
}
this.pesquisarColecoes(sessao, form);
}
//Monta o Status do Wizard
StatusWizard statusWizard = new StatusWizard(
"movimentarOSSeletivaInspecaoAnormalidadeWizardAction", "movimentarOSSeletivaInspecaoAnormalidadeAction",
"cancelarMovimentarOrdemServicoAction", null);
//monta a primeira aba do processo
statusWizard
.inserirNumeroPaginaCaminho(statusWizard.new StatusWizardItem(
1, "abaEmitirOSA.gif", "abaEmitirOSD.gif",
"exibirMovimentarOSSeletivaInspecaoAnormalidadeEmitirOSAction",
"movimentarOSSeletivaInspecaoAnormalidadeEmitirOSAction"));
//monta a segunda aba do processo
statusWizard
.inserirNumeroPaginaCaminho(statusWizard.new StatusWizardItem(
2, "abaGerarOSA.gif", "abaGerarOSD.gif",
"exibirMovimentarOSSeletivaInspecaoAnormalidadeGerarOSAction",
"movimentarOSSeletivaInspecaoAnormalidadeGerarOSAction"));
//monta a terceira aba do processo
statusWizard
.inserirNumeroPaginaCaminho(statusWizard.new StatusWizardItem(
3, "abaEncerrarOSA.gif", "abaEncerrarOSD.gif",
"exibirMovimentarOSSeletivaInspecaoAnormalidadeEncerrarOSAction",
"movimentarOSSeletivaInspecaoAnormalidadeEncerrarOSAction"));
statusWizard.setCaminhoActionDesfazer("exibirMovimentarOSSeletivaInspecaoAnormalidadeAction.do");
statusWizard.setCaminhoActionVoltarFiltro("exibirConsultarComandosOSSeletivaInspecaoAnormalidadeAction");
statusWizard.setNomeBotaoConcluir("Emitir OS");
//manda o statusWizard para a sess�o
sessao.setAttribute("statusWizard", statusWizard);
//retorna o mapeamento contido na vari�vel retorno
return retorno;
}
private void limparForm(MovimentarOSSeletivaInspecaoAnormalidadeActionForm form){
form.setNumeroOSInicialEmitir("");
form.setNumeroOSFinalEmitir("");
form.setNumerosOSEmitir(new String[10]);
form.setNumeroOSInicial("");
form.setNumeroOSFinal("");
form.setTipoPesquisa("");
form.setIdTipoServico("");
form.setMatriculasImoveis(new String[10]);
form.setNumerosOS(new String[10]);
form.setIdMotivoEncerramento("");
form.setDataEncerramento("");
form.setHoraEncerramento("");
form.setObservacaoEncerramento("");
}
private void limparSessao(HttpSession sessao){
sessao.removeAttribute("colecaoOSEmitir");
sessao.removeAttribute("motivoInformado");
sessao.removeAttribute("habilitaNumerosOS");
sessao.removeAttribute("colecaoOSEncerrar");
}
private void pesquisarColecoes(
HttpSession sessao,
MovimentarOSSeletivaInspecaoAnormalidadeActionForm form) {
// Cole��o de Tipos de Servi�o
FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo();
filtroServicoTipo.adicionarParametro(new ParametroSimples(
FiltroServicoTipo.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
filtroServicoTipo.adicionarParametro(new ParametroSimples(
FiltroServicoTipo.INDICADOR_GERAR_OS_INSP_ANORMALIDADE, ConstantesSistema.INDICADOR_USO_ATIVO));
filtroServicoTipo.setCampoOrderBy(FiltroServicoTipo.DESCRICAO);
Collection<ServicoTipo> colecaoServicoTipo =
this.getFachada().pesquisar(
filtroServicoTipo,
ServicoTipo.class.getName());
sessao.setAttribute("colecaoServicoTipo", colecaoServicoTipo);
// Cole��o de Motivo de Encerramento de OS
FiltroAtendimentoMotivoEncerramento filtroAtendimentoMotivoEncerramento = new FiltroAtendimentoMotivoEncerramento();
filtroAtendimentoMotivoEncerramento.setCampoOrderBy(FiltroAtendimentoMotivoEncerramento.DESCRICAO);
filtroAtendimentoMotivoEncerramento.adicionarParametro(new ParametroSimples(
FiltroAtendimentoMotivoEncerramento.INDICADOR_DUPLICIDADE, ConstantesSistema.NAO));
filtroAtendimentoMotivoEncerramento.adicionarParametro(new ParametroSimples(
FiltroAtendimentoMotivoEncerramento.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
Collection<AtendimentoMotivoEncerramento> colecaoAtendimentoMotivoEncerramento =
this.getFachada().pesquisar(
filtroAtendimentoMotivoEncerramento,
AtendimentoMotivoEncerramento.class.getName());
sessao.setAttribute("colecaoAtendimentoMotivoEncerramento", colecaoAtendimentoMotivoEncerramento);
}
}