package gcom.gui.atendimentopublico.ordemservico;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
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;
/**
* [UC0456] Elaborar Roteiro de Programa��o de Ordem de Servi�o
*
* @author Rafael Pinto
*
* @date 04/09/2006
*/
public class ExibirElaborarOrdemServicoRoteiroCriteriosAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("exibirElaborarOrdemServico");
HttpSession sessao = httpServletRequest.getSession(false);
ElaborarOrdemServicoRoteiroCriteriosActionForm
elaborarOrdemServicoRoteiroCriteriosActionForm =
(ElaborarOrdemServicoRoteiroCriteriosActionForm) actionForm;
String origemServicos =
elaborarOrdemServicoRoteiroCriteriosActionForm.getOrigemServicos();
String criterioSelecao =
elaborarOrdemServicoRoteiroCriteriosActionForm.getCriterioSelecao();
String servicoDiagnosticado =
elaborarOrdemServicoRoteiroCriteriosActionForm.getServicoDiagnosticado();
String servicoAcompanhamento =
elaborarOrdemServicoRoteiroCriteriosActionForm.getServicoAcompanhamento();
// Coloca com default a orige servi�o como (Solicitado)
if(origemServicos == null || origemServicos.equals("")){
origemServicos = "1";
elaborarOrdemServicoRoteiroCriteriosActionForm.setOrigemServicos(origemServicos);
}
// Coloca com default o criterio de sele��o como (Tipo de Servi�o)
if(criterioSelecao == null || criterioSelecao.equals("")){
criterioSelecao = "1";
}
// Coloca com default o servi�o diagnosticado como (Todos)
if(servicoDiagnosticado == null || servicoDiagnosticado.equals("")){
elaborarOrdemServicoRoteiroCriteriosActionForm.setServicoDiagnosticado(
""+ConstantesSistema.NUMERO_NAO_INFORMADO);
}
// Coloca com default os servi�os acompanhados como (Todos)
if(servicoAcompanhamento == null || servicoAcompanhamento.equals("")){
elaborarOrdemServicoRoteiroCriteriosActionForm.setServicoAcompanhamento(
""+ConstantesSistema.NUMERO_NAO_INFORMADO);
}
// Recebe a data do roteiro de [UC0455] - Exbir Calendario
//elaborarOrdemServicoRoteiroCriteriosActionForm.setDataRoteiro("12/09/2006");
// Seta o id da Unidade de Lotacao do Usuario
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
elaborarOrdemServicoRoteiroCriteriosActionForm.setUnidadeLotacao(
""+usuario.getUnidadeOrganizacional().getId());
// Monta a colecao de tipos Servicos
this.pesquisarServicoDisponivel(
httpServletRequest,new Integer(criterioSelecao),new Integer(origemServicos));
return retorno;
}
/**
* Pesquisa Servicos Disponiveis a partir da origem do servico:(Solicitados,Seletivos e Ambos)
* e partir do criterio:(Tipo de Servico,Tipo de Equipe,Unidade,Localidade,Setor e Distrito)
*
* @author Rafael Pinto
* @date 17/08/2006
*
* @param criterio,origemServico
*
* @return Tipos de Servico:
* ServicoTipo
* ServicoPerfilTipo
* UnidadeOrganizacional
* Localidade
* SetorComercial
* DistritoOperacional
*/
private void pesquisarServicoDisponivel(HttpServletRequest httpServletRequest,
int criterio,int origemServicos){
HttpSession sessao = httpServletRequest.getSession(false);
Collection colecaoServicoDisponivel =
(Collection) sessao.getAttribute("colecaoServicoDisponivel"+criterio+origemServicos);
if(colecaoServicoDisponivel == null){
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
colecaoServicoDisponivel =
Fachada.getInstancia().pesquisarTipoServicoDisponivelPorCriterio(
usuario.getUnidadeOrganizacional(),criterio,origemServicos);
sessao.setAttribute("colecaoServicoDisponivel"+criterio+origemServicos,colecaoServicoDisponivel);
}
if (colecaoServicoDisponivel == null || colecaoServicoDisponivel.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null,"Servi�o Dispon�vel");
} else {
httpServletRequest.setAttribute("colecaoTipoServico",colecaoServicoDisponivel);
}
}
}