package gcom.gui.atendimentopublico.registroatendimento;
import gcom.atendimentopublico.registroatendimento.SolicitacaoTipo;
import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoGrupo;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import java.util.Collection;
import java.util.Date;
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;
/**
* Descri��o da classe
*
* @author R�mulo Aur�lio
* @date 07/11/2006
*/
public class AtualizarTipoSolicitacaoEspecificacaoAction extends GcomAction {
/**
* Description of the Method
*
* @param actionMapping
* Description of the Parameter
* @param actionForm
* Description of the Parameter
* @param httpServletRequest
* Description of the Parameter
* @param httpServletResponse
* Description of the Parameter
* @return Description of the Return Value
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
// Obt�m a inst�ncia da Fachada
Fachada fachada = Fachada.getInstancia();
// Set no mapeamento de retorno
ActionForward retorno = actionMapping.findForward("telaSucesso");
AtualizarTipoSolicitacaoEspecificacaoActionForm atualizarTipoSolicitacaoEspecificacaoActionForm = (AtualizarTipoSolicitacaoEspecificacaoActionForm) actionForm;
Collection colecaoSolicitacaoTipoEspecificacao = (Collection) sessao
.getAttribute("colecaoSolicitacaoTipoEspecificacao");
if (colecaoSolicitacaoTipoEspecificacao == null
|| colecaoSolicitacaoTipoEspecificacao.isEmpty()) {
throw new ActionServletException("atencao.required", null,
" Especifica��o do Tipo da Solicita��o");
}
// Fachada fachada = Fachada.getInstancia();
SolicitacaoTipo solicitacaoTipo = new SolicitacaoTipo();
// id da solicitacao tipo
solicitacaoTipo.setId(new Integer(
atualizarTipoSolicitacaoEspecificacaoActionForm
.getIdTipoSolicitacao()));
// descri��o da solicita��o tipo
if (atualizarTipoSolicitacaoEspecificacaoActionForm.getDescricao() != null
&& !atualizarTipoSolicitacaoEspecificacaoActionForm
.getDescricao().equals("")) {
solicitacaoTipo
.setDescricao(atualizarTipoSolicitacaoEspecificacaoActionForm
.getDescricao());
}
// id do grupo de solicita��o da descri��o selecionada
if (atualizarTipoSolicitacaoEspecificacaoActionForm
.getIdgrupoTipoSolicitacao() != null
&& !atualizarTipoSolicitacaoEspecificacaoActionForm
.getIdgrupoTipoSolicitacao().equals("")) {
SolicitacaoTipoGrupo solicitacaoTipoGrupo = new SolicitacaoTipoGrupo();
solicitacaoTipoGrupo.setId(new Integer(
atualizarTipoSolicitacaoEspecificacaoActionForm
.getIdgrupoTipoSolicitacao()));
solicitacaoTipo.setSolicitacaoTipoGrupo(solicitacaoTipoGrupo);
}
// indicativo de falta d'agua
if (atualizarTipoSolicitacaoEspecificacaoActionForm
.getIndicadorFaltaAgua() != null
&& !atualizarTipoSolicitacaoEspecificacaoActionForm
.getIndicadorFaltaAgua().equals("")) {
solicitacaoTipo.setIndicadorFaltaAgua(new Short(
atualizarTipoSolicitacaoEspecificacaoActionForm
.getIndicadorFaltaAgua()));
} else {
throw new ActionServletException("atencao.indicador.selecionado",
null, "Falta D'�gua");
}
// indicativo de tarifa social
if (atualizarTipoSolicitacaoEspecificacaoActionForm
.getIndicadorTarifaSocial() != null
&& !atualizarTipoSolicitacaoEspecificacaoActionForm
.getIndicadorTarifaSocial().equals("")) {
solicitacaoTipo.setIndicadorTarifaSocial(new Short(
atualizarTipoSolicitacaoEspecificacaoActionForm
.getIndicadorTarifaSocial()));
} else {
throw new ActionServletException("atencao.indicador.selecionado",
null, "Tarifa Social");
}
// indicativo de uso do sistema
if (atualizarTipoSolicitacaoEspecificacaoActionForm
.getIndicadorUsoSistema() != null
&& !atualizarTipoSolicitacaoEspecificacaoActionForm
.getIndicadorUsoSistema().equals("")) {
solicitacaoTipo.setIndicadorUsoSistema(new Short(
atualizarTipoSolicitacaoEspecificacaoActionForm
.getIndicadorUsoSistema()));
} else {
throw new ActionServletException("atencao.indicador.selecionado",
null, "Uso Sistema");
}
// data e hora correntes
solicitacaoTipo.setUltimaAlteracao(new Date());
// indicador uso
if ( atualizarTipoSolicitacaoEspecificacaoActionForm.getIndicadorUso() != null ) {
solicitacaoTipo.setIndicadorUso(new Short(atualizarTipoSolicitacaoEspecificacaoActionForm.getIndicadorUso()));
}
Collection colecaoSolicitacaoTipoEspecificacaoRemovidos = null;
if (sessao.getAttribute("colecaoSolicitacaoTipoEspecificacaoRemovidos") != null) {
colecaoSolicitacaoTipoEspecificacaoRemovidos = (Collection) sessao
.getAttribute("colecaoSolicitacaoTipoEspecificacaoRemovidos");
}
// atualiza o tipo de solicita��o com especifica��es na base
fachada.atualizarTipoSolicitacaoEspecificacao(solicitacaoTipo,
colecaoSolicitacaoTipoEspecificacao, usuario,
colecaoSolicitacaoTipoEspecificacaoRemovidos);
// remove o parametro de retorno
sessao.removeAttribute("retornarTela");
sessao.removeAttribute("retornarTelaPopup");
sessao.removeAttribute("colecaoImovelSituacao");
sessao.removeAttribute("colecaoSolicitacaoTipoGrupo");
montarPaginaSucesso(httpServletRequest,
"Tipo de Solicita��o com Especifica��es "
+ solicitacaoTipo.getDescricao()
+ " atualizado com sucesso!",
"Realizar outra Manuten��o Tipo Solicita��o com Especifica��o",
"exibirFiltrarTipoSolicitacaoEspecificacaoAction.do?menu=sim");
return retorno;
}
}