package gcom.gui.cadastro.localidade;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
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;
/**
* Descri��o da classe
*
* @author Thiago Ten�rio
* @date 30/10/2006
*/
public class ExibirAtualizarGerenciaRegionalAction extends GcomAction {
/**
* [UC00] Atualizar Ger�ncia Regional
*
* Este caso de uso permite alterar uma valor de uma Ger�ncia Regional
*
* @author Thiago Ten�rio, Ivan S�rgio
* @date 02/10/2007, 11/06/2007
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("atualizarGerenciaRegional");
HttpSession sessao = httpServletRequest.getSession(false);
AtualizarGerenciaRegionalActionForm atualizarGerenciaRegionalActionForm =
(AtualizarGerenciaRegionalActionForm) actionForm;
String removerEndereco = (String) httpServletRequest.getParameter("removerEndereco");
String objetoConsulta = (String) httpServletRequest.getParameter("objetoConsulta");
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
// Remove o endereco informado.
if (removerEndereco != null
&& !removerEndereco.trim().equalsIgnoreCase("")) {
if (sessao.getAttribute("colecaoEnderecos") != null) {
Collection enderecos = (Collection) sessao
.getAttribute("colecaoEnderecos");
if (!enderecos.isEmpty()) {
enderecos.remove(enderecos.iterator().next());
}
}
} else {
if (httpServletRequest.getParameter("menu") != null) {
atualizarGerenciaRegionalActionForm.setGerenciaRegionalID("");
atualizarGerenciaRegionalActionForm.setNome("");
atualizarGerenciaRegionalActionForm.setNomeAbreviado("");
}
Fachada fachada = Fachada.getInstancia();
String idGerenciaRegional = null;
if (httpServletRequest.getParameter("idRegistroAtualizacao") != null
&& !httpServletRequest.getParameter("idRegistroAtualizacao")
.equals("")) {
sessao.removeAttribute("gerenciaRegional");
sessao.removeAttribute("colecaoGerenciaRegionalTela");
}
// Verifica se veio do filtrar ou do manter
if (httpServletRequest.getParameter("manter") != null) {
sessao.setAttribute("manter", true);
} else if (httpServletRequest.getParameter("filtrar") != null) {
sessao.removeAttribute("manter");
}
// Usado para o botao Voltar
if (sessao.getAttribute("gerenciaRegional") != null) {
//Definindo a volta do bot�o Voltar p Filtrar Localidade
sessao.setAttribute("voltar", "manter");
}else {
sessao.setAttribute("voltar", "filtrar");
}
if(objetoConsulta != null && !objetoConsulta.trim().equalsIgnoreCase("")){
switch (Integer.parseInt(objetoConsulta)) {
//Gerente da Localidade
case 1:
this.pesquisarCliente(atualizarGerenciaRegionalActionForm);
break;
default:
break;
}
}
// Verifica se o servicoCobrancaValor j� est� na sess�o, em caso
// afirmativo
// significa que o usu�rio j� entrou na tela e apenas selecionou algum
// item que deu um reload na tela e em caso negativo significa que ele
// est� entrando pela primeira vez
if (sessao.getAttribute("colecaoGerenciaRegionalTela") == null) {
if (sessao.getAttribute("gerenciaRegional") != null) {
GerenciaRegional gerenciaRegional = (GerenciaRegional) sessao.getAttribute("gerenciaRegional");
sessao.setAttribute("idGerenciaRegional", gerenciaRegional.getId().toString());
sessao.setAttribute("gerenciaRegional", gerenciaRegional);
atualizarGerenciaRegionalActionForm.setGerenciaRegionalID(gerenciaRegional.getId().toString());
atualizarGerenciaRegionalActionForm.setNome(gerenciaRegional.getNome());
atualizarGerenciaRegionalActionForm.setCnpjGerenciaRegional(gerenciaRegional.getCnpjGerenciaRegional());
atualizarGerenciaRegionalActionForm.setNomeAbreviado(gerenciaRegional.getNomeAbreviado());
atualizarGerenciaRegionalActionForm.setTelefone(gerenciaRegional.getFone());
atualizarGerenciaRegionalActionForm.setRamal(gerenciaRegional.getRamalFone());
atualizarGerenciaRegionalActionForm.setFax(gerenciaRegional.getFax());
atualizarGerenciaRegionalActionForm.setEmail(gerenciaRegional.getEmail());
if(gerenciaRegional.getCliente() != null
&& !gerenciaRegional.getCliente().equals("")){
atualizarGerenciaRegionalActionForm.setIdCliente(
gerenciaRegional.getCliente().getId().toString());
atualizarGerenciaRegionalActionForm.setNomeCliente(
gerenciaRegional.getCliente().getNome());
}
if(gerenciaRegional.getIndicadorUso() != null) {
atualizarGerenciaRegionalActionForm.setIndicadorUso(gerenciaRegional
.getIndicadorUso().toString());
}else {
// Seta como Ativo
Short indicadorUso = 1;
gerenciaRegional.setIndicadorUso(indicadorUso);
atualizarGerenciaRegionalActionForm.setIndicadorUso(gerenciaRegional
.getIndicadorUso().toString());
}
Collection colecaoEnderecos = null;
if (gerenciaRegional.getEnderecoFormatado() != null) {
colecaoEnderecos = new ArrayList();
Localidade endereco = new Localidade();
endereco.setLogradouroCep(gerenciaRegional.getLogradouroCep());
endereco.setLogradouroBairro(gerenciaRegional.getLogradouroBairro());
endereco.setComplementoEndereco(gerenciaRegional.getComplementoEndereco());
endereco.setNumeroImovel(gerenciaRegional.getNumeroImovel());
endereco.setEnderecoReferencia(gerenciaRegional.getEnderecoReferencia());
colecaoEnderecos.add(endereco);
sessao.setAttribute("colecaoEnderecos", colecaoEnderecos);
}
sessao.setAttribute("gerenciaRegionalAtualizar", gerenciaRegional);
sessao.removeAttribute("gerenciaRegional");
} else if((httpServletRequest.getParameter("desfazer") != null
&& httpServletRequest.getParameter("desfazer").equalsIgnoreCase("S")) ||
httpServletRequest.getParameter("idRegistroAtualizacao") != null) {
GerenciaRegional gerenciaRegional = null;
idGerenciaRegional = null;
if (httpServletRequest.getParameter("idRegistroAtualizacao") == null
|| httpServletRequest.getParameter(
"idRegistroAtualizacao").equals("")) {
gerenciaRegional = (GerenciaRegional) sessao
.getAttribute("gerenciaRegional");
} else {
idGerenciaRegional = (String) httpServletRequest
.getParameter("idRegistroAtualizacao");
sessao.setAttribute("idRegistroAtualizacao",
idGerenciaRegional);
}
if (idGerenciaRegional == null) {
gerenciaRegional = (GerenciaRegional) sessao.getAttribute("gerenciaRegionalAtualizar");
idGerenciaRegional = gerenciaRegional.getId().toString();
}
if (idGerenciaRegional != null) {
filtroGerenciaRegional
.adicionarCaminhoParaCarregamentoEntidade("enderecoReferencia");
filtroGerenciaRegional
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTipo");
filtroGerenciaRegional
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTitulo");
filtroGerenciaRegional
.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro.municipio.unidadeFederacao");
filtroGerenciaRegional
.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.cep");
filtroGerenciaRegional
.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtroGerenciaRegional
.adicionarParametro(new ParametroSimples(
FiltroGerenciaRegional.ID,
idGerenciaRegional));
Collection<GerenciaRegional> colecaoGerenciaRegional = fachada
.pesquisar(filtroGerenciaRegional,
GerenciaRegional.class.getName());
if (colecaoGerenciaRegional == null
|| colecaoGerenciaRegional.isEmpty()) {
throw new ActionServletException(
"atencao.atualizacao.timestamp");
}
httpServletRequest.setAttribute("colecaoGerenciaRegional", colecaoGerenciaRegional);
gerenciaRegional = (GerenciaRegional) colecaoGerenciaRegional.iterator().next();
}
atualizarGerenciaRegionalActionForm.setGerenciaRegionalID(gerenciaRegional.getId().toString());
atualizarGerenciaRegionalActionForm.setNome(gerenciaRegional.getNome());
atualizarGerenciaRegionalActionForm.setNomeAbreviado(gerenciaRegional.getNomeAbreviado());
atualizarGerenciaRegionalActionForm.setTelefone(gerenciaRegional.getFone());
atualizarGerenciaRegionalActionForm.setRamal(gerenciaRegional.getRamalFone());
atualizarGerenciaRegionalActionForm.setFax(gerenciaRegional.getFax());
atualizarGerenciaRegionalActionForm.setEmail(gerenciaRegional.getEmail());
if(gerenciaRegional.getCliente() != null){
atualizarGerenciaRegionalActionForm.setIdCliente(
gerenciaRegional.getCliente().getId().toString());
atualizarGerenciaRegionalActionForm.setNomeCliente(
gerenciaRegional.getCliente().getNome());
}
if(gerenciaRegional.getIndicadorUso() != null) {
atualizarGerenciaRegionalActionForm.setIndicadorUso(gerenciaRegional
.getIndicadorUso().toString());
}else {
// Seta como Ativo
Short indicadorUso = 1;
gerenciaRegional.setIndicadorUso(indicadorUso);
atualizarGerenciaRegionalActionForm.setIndicadorUso(gerenciaRegional
.getIndicadorUso().toString());
}
sessao.setAttribute("gerenciaRegionalAtualizar", gerenciaRegional);
if (gerenciaRegional.getEnderecoFormatado() != null) {
Collection colecaoEnderecos = new ArrayList();
Localidade endereco = new Localidade();
endereco.setLogradouroCep(gerenciaRegional.getLogradouroCep());
endereco.setLogradouroBairro(gerenciaRegional.getLogradouroBairro());
endereco.setComplementoEndereco(gerenciaRegional.getComplementoEndereco());
endereco.setNumeroImovel(gerenciaRegional.getNumeroImovel());
endereco.setEnderecoReferencia(gerenciaRegional.getEnderecoReferencia());
colecaoEnderecos.add(endereco);
sessao.setAttribute("colecaoEnderecos", colecaoEnderecos);
}
}
}
}
httpServletRequest.setAttribute("colecaoGerenciaRegionalTela", sessao
.getAttribute("colecaoGerenciaRegionalTipoValorTela"));
//Codigo Cliente
if(atualizarGerenciaRegionalActionForm.getIdCliente() != null &&
!atualizarGerenciaRegionalActionForm.getIdCliente().equals("") &&
atualizarGerenciaRegionalActionForm.getNomeCliente() != null &&
!atualizarGerenciaRegionalActionForm.getNomeCliente().equals("")){
httpServletRequest.setAttribute("gerenteLocalidadeEncontrado","true");
}
return retorno;
}
/**
* Pesquisa Cliente
*
* @author Rafael Pinto
* @date 15/08/2006
*/
private void pesquisarCliente(AtualizarGerenciaRegionalActionForm form) {
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro(
new ParametroSimples(FiltroCliente.ID,
new Integer(form.getIdCliente())));
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoCliente =
this.getFachada().pesquisar(filtroCliente,Cliente.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoCliente != null && !colecaoCliente.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
Cliente cliente =
(Cliente) Util.retonarObjetoDeColecao(colecaoCliente);
form.setIdCliente(cliente.getId().toString());
form.setNomeCliente(cliente.getNome());
} else {
form.setIdCliente("");
form.setNomeCliente("Cliente inexistente");
}
}
}