package gcom.gui.atendimentopublico.registroatendimento;
import java.util.Collection;
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;
import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipoEspecificacao;
import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao;
import gcom.cadastro.unidade.UnidadeOrganizacional;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.filtro.ParametroSimples;
/**
* Esta classe tem por finalidade validar as informa��es da primeira aba do
* processo de inser��o de um registro de atendimento
*
* @author S�vio Luiz
* @date 10/08/2006
*/
public class AtualizarRegistroAtendimentoDadosGeraisAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("");
AtualizarRegistroAtendimentoActionForm atualizarRegistroAtendimentoActionForm = (AtualizarRegistroAtendimentoActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
FiltroSolicitacaoTipoEspecificacao filtroSolicitacaoTipoEspecificacao = new FiltroSolicitacaoTipoEspecificacao();
filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples(FiltroSolicitacaoTipoEspecificacao.ID, atualizarRegistroAtendimentoActionForm.getEspecificacao()));
filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples(FiltroSolicitacaoTipoEspecificacao.INDICADOR_ENCERRAMENTO_AUTOMATICO, SolicitacaoTipoEspecificacao.INDICADOR_COM_ENCERRAMENTO_AUTOMATICO));
Collection colecaoSolicitacaoTipoEspecificacao = fachada
.pesquisar(filtroSolicitacaoTipoEspecificacao,
SolicitacaoTipoEspecificacao.class.getName());
// Caso a especifica��o seja de encerramento autom�tico, verifica se a observa��o foi informada
if (colecaoSolicitacaoTipoEspecificacao != null && !colecaoSolicitacaoTipoEspecificacao.isEmpty()) {
if (atualizarRegistroAtendimentoActionForm.getObservacao() == null || atualizarRegistroAtendimentoActionForm.getObservacao().trim().equals("")) {
throw new ActionServletException("atencao.campo_selecionado.obrigatorio", null, "Observa��o");
}
}
if(atualizarRegistroAtendimentoActionForm.getObservacao() != null &&
!atualizarRegistroAtendimentoActionForm.getObservacao().equals("") &&
atualizarRegistroAtendimentoActionForm.getObservacao().length() > 400){
String[] msg = new String[2];
msg[0]="Observa��o";
msg[1]="400";
throw new ActionServletException("atencao.execedeu_limit_observacao",null,msg);
}
fachada.validarInserirRegistroAtendimentoDadosGerais(
atualizarRegistroAtendimentoActionForm.getDataAtendimento(),
atualizarRegistroAtendimentoActionForm.getHora(),
atualizarRegistroAtendimentoActionForm.getTempoEsperaInicial(),
atualizarRegistroAtendimentoActionForm.getTempoEsperaFinal(),
atualizarRegistroAtendimentoActionForm.getUnidade(),
null);
String idUnidade = atualizarRegistroAtendimentoActionForm.getUnidade();
String descricaoUnidade = atualizarRegistroAtendimentoActionForm
.getDescricaoUnidade();
if (idUnidade != null && !idUnidade.equalsIgnoreCase("")
&& (descricaoUnidade == null || descricaoUnidade.equals(""))) {
UnidadeOrganizacional unidadeOrganizacionalSelecionada = fachada
.verificarAutorizacaoUnidadeAberturaRA(new Integer(
idUnidade), false);
if (unidadeOrganizacionalSelecionada != null) {
atualizarRegistroAtendimentoActionForm
.setUnidade(unidadeOrganizacionalSelecionada.getId()
.toString());
atualizarRegistroAtendimentoActionForm
.setDescricaoUnidade(unidadeOrganizacionalSelecionada
.getDescricao());
if (unidadeOrganizacionalSelecionada.getMeioSolicitacao() != null) {
atualizarRegistroAtendimentoActionForm
.setMeioSolicitacao(unidadeOrganizacionalSelecionada
.getMeioSolicitacao().getId().toString());
}
} else {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null,
"Unidade de Atendimento");
}
}
return retorno;
}
}