package gcom.gui.cadastro.geografico;
import gcom.cadastro.geografico.Bairro;
import gcom.cadastro.geografico.FiltroBairro;
import gcom.cadastro.geografico.FiltroMunicipio;
import gcom.cadastro.geografico.Municipio;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Iterator;
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;
/**
* Description of the Class
*
* @author compesa
* @created 1 de Julho de 2004
*/
public class AtualizarBairroAction 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) {
//Seta o mapeamento de retorno
ActionForward retorno = actionMapping.findForward("telaSucesso");
BairroActionForm bairroActionForm = (BairroActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
/*
* [UC0107] Registrar Transa��o
*
*/
// RegistradorOperacao registradorOperacao = new RegistradorOperacao(
// Operacao.OPERACAO_BAIRRO_ATUALIZAR,
// new UsuarioAcaoUsuarioHelper(Usuario.USUARIO_TESTE,
// UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
//
// Operacao operacao = new Operacao();
// operacao.setId(Operacao.OPERACAO_BAIRRO_ATUALIZAR);
//
// OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
// operacaoEfetuada.setOperacao(operacao);
// [UC0107] -Fim- Registrar Transa��o
//Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = (Usuario)sessao.getAttribute(Usuario.USUARIO_LOGADO);
Bairro bairro = (Bairro) sessao.getAttribute("bairro");
String idMunicipio = (String) bairroActionForm.getIdMunicipio();
Municipio municipio = null;
if (idMunicipio != null && !idMunicipio.equals("")) {
FiltroMunicipio filtroMunicipio = new FiltroMunicipio();
filtroMunicipio.adicionarParametro(new ParametroSimples(
FiltroMunicipio.ID, idMunicipio));
filtroMunicipio.adicionarParametro(new ParametroSimples(
FiltroMunicipio.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection municipios = fachada.pesquisar(filtroMunicipio,
Municipio.class.getName());
if (municipios != null && !municipios.isEmpty()) {
//O municipio foi encontrado
Iterator municipioIterator = municipios.iterator();
municipio = (Municipio) municipioIterator.next();
} else {
throw new ActionServletException(
"atencao.pesquisa_inexistente", null, "Munic�pio");
}
}
int codigoBairro = 0;
String codigoBairroPesquisar = (String) bairroActionForm
.getCodigoBairro();
// FiltroBairro filtroBairro = new FiltroBairro();
codigoBairro = Integer.parseInt(codigoBairroPesquisar);
Integer codigoBairroPrefeitura = null;
if (bairroActionForm.getCodigoBairroPrefeitura() != null
&& !bairroActionForm.getCodigoBairroPrefeitura()
.equalsIgnoreCase("")) {
codigoBairroPrefeitura = new Integer(bairroActionForm
.getCodigoBairroPrefeitura());
}
Short indicadorDeUso = new Short(bairroActionForm.getIndicadorUso());
//Verifica se o nome do bairro � diferente do atual, caso sim, verifica se ja existe o bairro na base
if (!bairro.getNome().equalsIgnoreCase(bairroActionForm.getNomeBairro())){
FiltroBairro filtroBairroExistente = new FiltroBairro();
filtroBairroExistente.adicionarParametro(new ParametroSimples(
FiltroBairro.MUNICIPIO_ID, bairroActionForm.getIdMunicipio()));
filtroBairroExistente.adicionarParametro(new ParametroSimples(
FiltroBairro.NOME, bairroActionForm.getNomeBairro()));
filtroBairroExistente
.adicionarCaminhoParaCarregamentoEntidade("municipio");
Collection collectionBairro = (Collection) fachada.pesquisar(
filtroBairroExistente, Bairro.class.getName());
if (collectionBairro != null && !collectionBairro.isEmpty()) {
throw new ActionServletException(
"atencao.bairro_existente_municipio");
}
}
Collection colecaoBairroArea = null;
if (sessao.getAttribute("colecaoBairroArea") != null){
colecaoBairroArea = (Collection)sessao.getAttribute("colecaoBairroArea");
}
if (colecaoBairroArea == null || colecaoBairroArea.isEmpty()){
throw new ActionServletException("atencao.campo_selecionado.obrigatorio",null,"�reas do Bairro");
}
//seta os campos para serem atualizados
bairro.setMunicipio(municipio);
bairro.setCodigo(codigoBairro);
bairro.setNome(bairroActionForm.getNomeBairro());
bairro.setCodigoBairroPrefeitura(codigoBairroPrefeitura);
bairro.setIndicadorUso(indicadorDeUso);
//regitrando operacao
// bairro.setOperacaoEfetuada(operacaoEfetuada);
// bairro.adicionarUsuario(Usuario.USUARIO_TESTE, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
// registradorOperacao.registrarOperacao(bairro);
fachada.atualizarBairro(bairro,colecaoBairroArea,
(Collection)sessao.getAttribute("colecaoBairroAreaRemover"),usuarioLogado);
montarPaginaSucesso(httpServletRequest, "Bairro de c�digo "
+ bairro.getCodigo() + " do munic�pio "+ bairro.getMunicipio().getNome() + " atualizado com sucesso.",
"Realizar outra Manuten��o de Bairro",
"exibirFiltrarBairroAction.do?menu=sim");
return retorno;
}
}