package gcom.gui.cadastro.localidade;
import gcom.cadastro.geografico.FiltroMunicipio;
import gcom.cadastro.geografico.Municipio;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.SetorComercial;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.interceptor.RegistradorOperacao;
import gcom.seguranca.acesso.Operacao;
import gcom.seguranca.acesso.OperacaoEfetuada;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.seguranca.acesso.usuario.UsuarioAcao;
import gcom.seguranca.acesso.usuario.UsuarioAcaoUsuarioHelper;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
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;
public class InserirSetorComercialAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Seta o retorno
ActionForward retorno = actionMapping.findForward("telaSucesso");
PesquisarAtualizarSetorComercialActionForm form = (PesquisarAtualizarSetorComercialActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
//------------ REGISTRAR TRANSA��O ----------------
RegistradorOperacao registradorOperacao = new RegistradorOperacao(
Operacao.OPERACAO_SETOR_COMERCIAL_INSERIR,
new UsuarioAcaoUsuarioHelper(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO));
Operacao operacao = new Operacao();
operacao.setId(Operacao.OPERACAO_SETOR_COMERCIAL_INSERIR);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setOperacao(operacao);
//------------ REGISTRAR TRANSA��O ----------------
String localidadeID = form.getLocalidadeID();
String setorComercialCD = form.getSetorComercialCD();
String setorComercialNome = form.getSetorComercialNome();
String municipioID = form.getMunicipioID();
String indicadorSetorAlternativo = "";
//Indicador Setor Alternativo
if ( form.getIndicadorSetorAlternativo() != null && !form.getIndicadorSetorAlternativo().equals("") ) {
indicadorSetorAlternativo = form.getIndicadorSetorAlternativo();
}
if (Util.verificarNaoVazio(localidadeID)) {
Collection colecaoPesquisa = null;
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(
new ParametroSimples(
FiltroLocalidade.ID,
localidadeID));
filtroLocalidade.adicionarParametro(
new ParametroSimples(
FiltroLocalidade.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
//Retorna localidade
colecaoPesquisa =
this.getFachada().pesquisar(filtroLocalidade,
Localidade.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
//Localidade inexistente
throw new ActionServletException("atencao.pesquisa.localidade_inexistente");
} else {
Localidade localidade =
(Localidade) Util.retonarObjetoDeColecao(colecaoPesquisa);
if (setorComercialCD == null || setorComercialCD.equalsIgnoreCase("")) {
//C�digo do setor comercial n�o informado.
throw new ActionServletException("atencao.codigo_setor_comercial_nao_informado");
} else if (setorComercialNome == null
|| setorComercialNome.equalsIgnoreCase("")) {
//Nome do setor comercial n�o informado.
throw new ActionServletException("atencao.nome_setor_comercial_nao_informado");
} else if (municipioID == null || municipioID.equalsIgnoreCase("")) {
//C�digo do munic�pio n�o informado.
throw new ActionServletException("atencao.municipio_nao_informado");
} else {
FiltroMunicipio filtroMunicipio = new FiltroMunicipio();
filtroMunicipio.adicionarParametro(
new ParametroSimples(
FiltroMunicipio.ID,
municipioID));
filtroMunicipio.adicionarParametro(
new ParametroSimples(
FiltroMunicipio.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
//Retorna municipio
colecaoPesquisa = this.getFachada().pesquisar(
filtroMunicipio,
Municipio.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
throw new ActionServletException("atencao.pesquisa.municipio_inexistente");
} else {
Municipio municipio =
(Municipio) Util.retonarObjetoDeColecao(colecaoPesquisa);
//Cria o objeto setorComercial que ser�
// inserido na base
SetorComercial setorComercial = new SetorComercial();
setorComercial.setCodigo(Integer.parseInt(setorComercialCD));
setorComercial.setDescricao(setorComercialNome);
setorComercial.setLocalidade(localidade);
setorComercial.setMunicipio(municipio);
setorComercial.setIndicadorUso(ConstantesSistema.INDICADOR_USO_ATIVO);
setorComercial.setUltimaAlteracao(new Date());
setorComercial.setIndicadorSetorAlternativo(new Short (indicadorSetorAlternativo) );
//------------ REGISTRAR TRANSA��O ----------------
setorComercial.setOperacaoEfetuada(operacaoEfetuada);
setorComercial.adicionarUsuario(usuario,
UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO);
registradorOperacao.registrarOperacao(setorComercial);
//------------ REGISTRAR TRANSA��O ----------------
Collection colecaoFontes = (Collection)
this.getSessao(httpServletRequest).getAttribute("colecaoFonteCaptacao");
Integer codigoSetorComercialInserido =
(Integer) this.getFachada().inserirSetorComercial(setorComercial,colecaoFontes);
montarPaginaSucesso(httpServletRequest,
"Setor Comercial de c�digo " + setorComercial.getCodigo()
+ " da localidade " + localidade.getId()
+ " - " + localidade.getDescricao().toUpperCase()
+ " inserido com sucesso.",
"Inserir outro Setor Comercial",
"exibirInserirSetorComercialAction.do?menu=sim",
"exibirAtualizarSetorComercialAction.do?menu=sim&setorComercialID=" +
codigoSetorComercialInserido, "Atualizar Setor Comercial Inserido");
}
}
}
} else {
// Campo localidadeID n�o informado.
throw new ActionServletException("atencao.localidade_nao_informada");
}
//devolve o mapeamento de retorno
return retorno;
}
}