package gcom.gui.atendimentopublico.ordemservico;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.relatorio.ExibidorProcessamentoTarefaRelatorio;
import gcom.relatorio.atendimentopublico.RelatorioOrdemServico;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaRelatorio;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
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;
/**
* Action respons�vel por validar os dados informados na p�gina de Emitir OS do processo
* de movimentar ordem de servi�o.
*
* @author Vivianne Sousa
* @date 14/07/2011
*/
public class MovimentarOSSeletivaInspecaoAnormalidadeEmitirOSAction extends ExibidorProcessamentoTarefaRelatorio {
/**
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("telaSucesso");
//Cria uma inst�ncia da sess�o
// HttpSession sessao = httpServletRequest.getSession(false);
MovimentarOSSeletivaInspecaoAnormalidadeActionForm form = (MovimentarOSSeletivaInspecaoAnormalidadeActionForm) actionForm;
if (httpServletRequest.getParameter("concluir") != null
&& (httpServletRequest.getParameter("concluir")).toString().equalsIgnoreCase("true")) {
//Se clicou no bot�o de "Emitir"
// if () {
String mensagem = validarFormEmitirOSRA(form);
StringTokenizer idsOrdemServico = null;
if (mensagem != null && !mensagem.equals("")) {
throw new ActionServletException(mensagem);
}else{
if (form.getNumerosOSRegistroAtendimentoEmitir() != null
&& form.getNumerosOSRegistroAtendimentoEmitir().length > 0){
String[] idsOS = form.getNumerosOSRegistroAtendimentoEmitir();
String chave = "";
for (int j=0; j< idsOS.length; j++) {
chave = chave+"$"+idsOS[j];
}
idsOrdemServico = new StringTokenizer(chave, "$");
}else{
List<Integer> numerosOSPesquisar = new ArrayList();
String chave = "";
for (int i = 0; i < form.getNumerosOSEmitir().length; i++) {
if (form.getNumerosOSEmitir()[i] != null
&& !form.getNumerosOSEmitir()[i].equals("")) {
numerosOSPesquisar.add(new Integer((form.getNumerosOSEmitir()[i]).trim()));
chave = chave+"$"+(form.getNumerosOSEmitir()[i]).trim();
}
}
idsOrdemServico = new StringTokenizer(chave, "$");
verificaSeOSFazParteComando(numerosOSPesquisar,form.getIdComando());
}
String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio");
RelatorioOrdemServico relatorioOrdemServico = new RelatorioOrdemServico(
(Usuario)(httpServletRequest.getSession(false)).getAttribute("usuarioLogado"));
relatorioOrdemServico.addParametro("idsOrdemServico", idsOrdemServico);
if (tipoRelatorio == null) {
tipoRelatorio = TarefaRelatorio.TIPO_PDF + "";
}
relatorioOrdemServico.addParametro("tipoFormatoRelatorio", Integer.parseInt(tipoRelatorio));
retorno = processarExibicaoRelatorio(relatorioOrdemServico,
tipoRelatorio, httpServletRequest, httpServletResponse,actionMapping);
// devolve o mapeamento contido na vari�vel retorno
return retorno;
}
// } else {
// throw new ActionServletException(
// "atencao.selecione.um_tipo.emissao.ordem_servico");
// }
}
// Monta p�gina de sucesso
montarPaginaSucesso(httpServletRequest, "Ordem(ns) de Servi�o emitida(s) com sucesso!",
"Voltar",
"exibirMovimentarOSSeletivaInspecaoAnormalidadeAction.do?comando=" + form.getIdComando());
//Retorna o mapemaneto na vari�vel "retorno"
return retorno;
}
public String validarFormEmitirOSRA(MovimentarOSSeletivaInspecaoAnormalidadeActionForm form) {
if ((form.getNumerosOSRegistroAtendimentoEmitir() == null
|| form.getNumerosOSRegistroAtendimentoEmitir().length == 0)&&
(!(form.getNumerosOSEmitir() != null && form.getNumerosOSEmitir().length != 0
|| (form.getNumerosOSEmitir()[0] != null && !form.getNumerosOSEmitir()[0].equals(""))
|| (form.getNumerosOSEmitir()[1] != null && !form.getNumerosOSEmitir()[1].equals(""))
|| (form.getNumerosOSEmitir()[2] != null && !form.getNumerosOSEmitir()[2].equals(""))
|| (form.getNumerosOSEmitir()[3] != null && !form.getNumerosOSEmitir()[3].equals(""))
|| (form.getNumerosOSEmitir()[4] != null && !form.getNumerosOSEmitir()[4].equals(""))
|| (form.getNumerosOSEmitir()[5] != null && !form.getNumerosOSEmitir()[5].equals(""))
|| (form.getNumerosOSEmitir()[6] != null && !form.getNumerosOSEmitir()[6].equals(""))
|| (form.getNumerosOSEmitir()[7] != null && !form.getNumerosOSEmitir()[7].equals(""))
|| (form.getNumerosOSEmitir()[8] != null && !form.getNumerosOSEmitir()[8].equals(""))
|| (form.getNumerosOSEmitir()[9] != null && !form.getNumerosOSEmitir()[9].equals(""))))) {
return "atencao.selecione.alguma.ordens_servico";
}
return null;
}
// [FS0001] - Verificar se ordem de servi�o faz parte do comando
public String verificaSeOSFazParteComando(List<Integer> numerosOSPesquisar,String idComandoOrdemSeletiva) {
String retorno = null;
String OsNaoFazParteComando = Fachada.getInstancia().retornaOsNaoFazParteComando(
new Integer (idComandoOrdemSeletiva),numerosOSPesquisar);
if(!OsNaoFazParteComando.equalsIgnoreCase("")){
throw new ActionServletException("atencao.os.nao_contida_comando",null,OsNaoFazParteComando);
}
return retorno;
}
}